草庐IT

【历史上的今天】4 月 7 日:IBM System/360 问世;以太网的发明者诞生;第一个 RFC 文档发布

历史上的今天 2023-07-17 原文

整理 | 王启隆

透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。

今天是 2023 年 4 月 7 日,在 1947 年的今天,福特汽车公司创始人亨利·福特去世。提起福特汽车,人们自然会联想到福特汽车公司和他的创始人亨利·福特。福特汽车公司历史悠久,早在 20 世纪初便成了世界上最大的汽车公司之一,并被誉为“汽车大王”。而他的创始人亨利·福特更是一位具有传奇色彩的人物,是他使福特公司从无到有、从小到大的。回顾科技历史上的 4 月 7 日,今天的计算机界都发生过哪些关键事件呢?

1944 年 4 月 7 日:互联网发展的首席协议架构师 David D. Clark 出生

大卫·克拉克(David Dana “Dave” Clark)出生于 1944 年 4 月 7 日,他是美国的计算机科学家和互联网先驱,自 1970 年代中期以来一直参与互联网的建设。他目前年已 77 岁,在麻省理工学院计算机科学与人工智能实验室(CSAIL)担任高级研究科学家。克拉克的一句名言“我们拒绝:国王、总统和投票;我们只相信:粗略的共识和编程代码。”(We reject: kings, presidents, and voting. We believe in: rough consensus and running code.)曾一度影响 80 年代软件开发领域乃至整个计算机科学界的风气。

图源:维基百科

克拉克于 1966 年毕业于斯沃斯莫尔学院。1968 年,他在麻省理工学院获得电气工程硕士学位和工程师学位,并在 Jerry Saltzer 手下从事 Multics 系统的 I/O 架构工作。随后他于 1973 年获得了麻省理工学院电气工程博士学位。从 1981 年到 1989 年,他一直担任互联网发展的首席协议架构师,并担任互联网活动委员会主席,该委员会后来成为互联网架构委员会。他还曾担任国家研究委员会计算机科学和电信委员会主席。

1990 年,克拉克被授予 SIGCOMM 奖,该奖项以表彰他对 Internet 协议和体系结构的重大贡献。1996 年,克拉克因设计和开发有效的互联网协议实现技术而被选为美国国家工程院院士。2001 年,他被选为计算机协会会员;同样在 2001 年,他获得了科罗拉多州特柳赖德市的特柳赖德科技节技术奖,以及 2011 年牛津大学牛津互联网研究所颁发的互联网与社会终身成就奖。克拉克近期的研究兴趣包括后 PC 时代的互联网体系结构以及“支持实时流量的互联网扩展、服务的明确分配、定价和相关经济问题”。

资料来源:维基百科

1946 年 4 月 7 日:3Com 的创始人 Robert Metcalfe 出生

1946 年 4 月 7 日,美国工程师兼企业家罗伯特·梅特卡夫(Robert Melancton Metcalfe)出生,他于 1970 年帮助开创了互联网,随后和人共同发明了以太网,共同创立了 3C​​om 并制定了梅特卡夫定律;梅特卡夫定律描述了互联网、社交网络和万维网等通信技术和网络的许多网络效应,该定律的内容是:电信网络的价值与系统连接用户数的平方成正比。自 2011 年 1 月起,梅特卡夫开始担任德克萨斯大学奥斯汀分校创新与创业学教授。

图源:维基百科

梅特卡夫出生于美国纽约布鲁克林。他的父亲是一名专门研究陀螺仪的测试技术员,他的母亲则是一名家庭主妇,但后来成为湾岸高中的秘书。1964 年,梅特卡夫从 Bay Shore 高中毕业,加入 MIT 1968 届班级。他最终于 1969 年从 MIT 毕业,获得了双学位,一个是电气工程专业,另一个是麻省理工斯隆管理学院的工业管理专业。然后他去哈佛读研究生,1970 年获得应用数学硕士学位,1973 年获得计算机科学(应用数学)博士学位。

在攻读计算机科学博士学位期间,哈佛曾拒绝让梅特卡夫负责将学校连接到全新的 ARPAnet(阿帕网);因此,梅特卡夫在麻省理工学院的 MAC 项目中另寻了一份工作。在 MAC,梅特卡夫负责构建一些将 MIT 的小型计算机与 ARPAnet 连接起来的硬件。

ARPAnet 后来成为了他博士论文最初的主题,但他在 Xerox PARC 工作时又获得了新论文的灵感,因为他在夏威夷大学阅读了一篇关于 ALOHA 网络的论文,并发现并修复了 AlohaNet 模型中的一些错误;有了新灵感之后,梅特卡夫撰写了新的论文,最终这篇文章在 1973 年为他赢得了哈佛博士学位。

1973 年梅特卡夫正式加入施乐 PARC,在里面和同事 David Boggs 发明了以太网。以太网最初是用于短距离连接计算机的标准。梅特卡夫确定以太网诞生的那一天是 1973 年 5 月 22 日,那天他分发了一份名为“Alto Ethernet”的备忘录,其中包含了它如何工作的粗略示意图。而 David Boggs 则一直记得另一个日期:11 月 11 日,也就是系统真正运行的第一天。

“这是以太网第一次作为一个词出现。其参与的站点,如 AlohaNet 或 ARPAnet,将注入他们的数据包,它们将以每秒兆比特的速度移动,会发生冲突、重传和回退。”

——梅特卡夫

1979 年,梅特卡夫离开 PARC,并在他位于帕洛阿尔托的公寓中共同创立了计算机网络设备制造商 3C​​om;1980 年,由于他对本地网络(特别是以太网)的发展做出的贡献,他获得了 ACM Grace Hopper 奖。1990 年,在一次董事会冲突中,3Com 董事会选择 Eric Benhamou 接替 Bill Krause 担任公司的 CEO,而不是梅特卡夫。随后梅特卡夫被赶出 3Com,开始了为期 10 年的出版商和专家生涯,为 InfoWorld 撰写互联网专栏。除了卓越的成就之外,梅特卡夫年轻时还对互联网做出了几个未能实现的预测,他在千禧年之前分别预测过互联网、无线网络和开源软件将在 1990 年代迎来消亡。

资料来源:维基百科、百度百科

1964 年 4 月 7 日:IBM 发布 System/360 系列大型计算机

图源:维基百科

IBM System/360(S/360)是美国 IBM 公司于 1964 年 4 月 7 日推出的大型机。System/360 的问世代表着世界上的电脑有了一种共同的交互方式,它们都共享代号为 OS/360 的操作系统,而并非每种产品都用量身订做的操作系统。让单一操作系统适用于整个系列的产品是 System/360 成功的关键,且实际上 IBM 目前的大型系统便是此系统的后裔。

System/360 系列堪称划时代的产品,首次引入软件兼容概念,在很大程度上改变了整个行业。该系列的开发过程被视为计算机发展史上的一次大豪赌,IBM 为此征召六万多名新员工,创建五座新工厂。System/360 系列的成功确保了 IBM 在 20 世纪 80 年代之前一直居于计算机行业的霸主地位。System/360 在市场上也非常成功,IBM 允许客户购买更小的系统,并且知道如果他们的需求增长,他们可以迁移到更大的系统,而无需重新编程应用软件或更换外围设备。它的设计影响了未来几年的计算机设计;许多人认为它是历史上最成功的计算机之一。

System/360 的首席架构师是 Gene Amdahl,该项目由 Fred Brooks 管理,对 IBM 的主席 Thomas J. Watson Jr.负责。System/360 的商业版本则由 Watson 的另一位副手 John R. Opel 进行试点。与当时的行业实践相比,IBM 创造了一个全新的计算机系列,从小型到大型,从低性能到高性能,全部使用相同的指令集(特定市场有两个例外)。IBM 于 1977 年底停止销售所有 System/360 型号,但 System/360 软件的应用程序级兼容性至今仍与 System z 大型机服务器保持一致。

资料来源:维基百科、百度百科

1969 年 4 月 7 日:Steve Crocker 编写并发布了第一个 RFC 文档

Request for Comments,简称 RFC,常见的翻译有“请求意见稿”或“意见征求”,“意见请求”,“请求评论”等等,它是由互联网工程任务组(IETF)发布的一系列备忘录。文件收集了有关互联网相关信息,以及 UNIX 和互联网社群的软件文件,以编号排定。目前 RFC 文件是由互联网协会(ISOC)赞助发行。

RFC 始于 1969 年 4 月 7 日,由当时就读加州大学洛杉矶分校(UCLA)的斯蒂芬·克罗克(Stephen D. Crocker)用来记录有关 ARPANET 开发的非正式文档,他是第一份 RFC 文档的撰写者。最终演变为用来记录互联网规范、协议、过程等的标准文件。基本的互联网通信协议都有在 RFC 文件内详细说明。RFC 文件还额外加入许多的论题在标准内,例如对于互联网新开发的协议及发展中所有的记录。

图源:维基百科

如今,RFC 已经成为 IETF、Internet Architecture Board(IAB)还有其他一些主要的公共网络研究社区的正式出版物发布途径。在 RFC 诞生之时,互联网还不存在,只有 4 大研究中心的 4 台计算机连接成的原始网络:加州大学洛杉矶分校,斯坦福研究所,加州大学圣塔芭芭拉分校,和盐湖城的犹他大学。最初的 RFC 作者使用打字机撰写文档,并在美国国防部国防前沿研究项目署(ARPA)研究成员之间传阅。1969 年 12 月,他们开始通过 ARPA 网途径来发布新的 RFC 文档。第一份在 1969 年 4 月 7 日公开发表的 RFC 1。当初克罗克为了避免打扰他的室友,是在浴室里完成这篇文档的。

在 1970 年代,很多后来的 RFC 文档同样来自加州大学洛杉矶分校,这不仅得益于加州大学洛杉矶分校的学术质量,同时也因为加州大学洛杉矶分校是 ARPA 网第一批 Interface Message Processors(IMPs)成员之一。由 Douglas Engelbart 领导的,位于 Stanford Research Institute 的 Augmentation Research Center(ARC)是四个最初的 ARPA 网结点之一,也是最初的 Network Information Centre,同时被社会学家 Thierry Bardini 记录为早期大量 RFC 文档的发源地。

从 1969 年到 1998 年,Jon Postel 一直担任 RFC 文档的编辑职务。随着美国政府赞助合同的到期,Internet Society(代表 IETF),和南加州大学(USC)Information Sciences Institute 的网络部门合作,(在 IAB 领导下)负责 RFC 文档的起草和发布工作。Jon Postel 继续担任 RFC 编辑直到去世。随后,由 Bob Braden 接任整个项目的领导职务,同时 Joyce Reynolds 继续在团队中的担任职务。

庆祝 RFC 的 30 周年的 RFC 文件就是 RFC 2555。此外,在 1996 年 3 月,清华大学提交的适应不同国家和地区中文编码的汉字统一传输标准被 IETF 通过为 RFC 1922,成为中国大陆第一个被认可为 RFC 文件的提交协议。这些 RFC 文件塑造了互联网的内部运作,并在其成功中发挥了重要作用,可谓是承载了互联网的历史。

以史为镜,可以知兴替。计算机科学发展至今,有许多至关重要的事件、人物。在《新程序员:我们的技术时代,我们的程序人生》中,来自四十余位技术人跨越半个世纪,用代码敲出一个个真实的程序人生故事!

扫描或点击《新程序员:我们的技术时代,我们的程序人生》订阅!

有关【历史上的今天】4 月 7 日:IBM System/360 问世;以太网的发明者诞生;第一个 RFC 文档发布的更多相关文章

  1. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  2. ruby-on-rails - CarrierWave - PDF - 只选择第一页 - 2

    我的Rails应用程序中安装了carrierwave。但是,当用户上传多页pdf时,我只希望应用程序获取文档中的第一页并将其转换为jpeg。这可能吗?用什么命令?这是我的uploader。#encoding:utf-8classImageUploader[200,300]##defscale(width,height)##dosomething#end#Createdifferentversionsofyouruploadedfiles:version:thumbdoprocess:resize_to_fill=>[150,210]process:convert=>:jpgdefful

  3. ruby - 如何跳过 CSV 文件的第一行并将第二行作为标题 - 2

    有没有办法跳过CSV文件的第一行,让第二行作为标题?我有一个CSV文件,第一行是日期,第二行是标题,所以我需要能够在遍历它时跳过第一行。我尝试使用slice但它会将CSV转换为数组,我真的很想将其读取为CSV,以便我可以利用header。 最佳答案 根据您的数据,您可以使用另一种方法和skip_lines-option此示例跳过所有以#开头的行require'csv'CSV.parse(DATA.read,:col_sep=>';',:headers=>true,:skip_lines=>/^#/#Markcomments!)do|

  4. Ruby 等同于 Sphinx 文档生成器? - 2

    Ruby有一些不错的文档生成器,例如Yard、rDoc,甚至Glyph。问题是Sphinx可以做网站、PDF、epub、LaTex等。它在重组文本中完成所有这些事情。在Ruby世界中有替​​代方案吗?也许是程序的组合?如果我也能使用Markdown就更好了。 最佳答案 自1.0版以来,Sphinx有了“域”的概念,它是从Python和/或C以外的语言标记代码实体(如方法调用、对象、函数等)的方法。有一个rubydomain,所以你可以只使用Sphinx本身。您唯一会缺少的(我认为)是Sphinx使用autodoc从源代码自动创建文档

  5. arrays - 在一行中选择数组的第一个和最后一个元素 - 2

    我的任务是从数组中选择最高和最低的数字。我想我很清楚我想做什么,但只是努力以正确的格式访问信息以满足通过标准。defhigh_and_low(numbers)array=numbers.split("").map!{|x|x.to_i}array.sort!{|a,b|ba}putsarray[0,-1]end数字可能看起来像"80917234100",要通过,我需要输出"9234"。我正在尝试putsarray.first.last,但一直无法弄明白。 最佳答案 有Array#minmax完全满足您需要的方法:array=[80,

  6. ruby-on-rails - 在 irb 中阅读文档 - 2

    我怀念ipython的一件事是它有一个?为特定功能挖掘文档的运算符。我知道ruby​​有一个类似的命令行工具,但是我在irb中调用它非常不方便。ruby/irb有类似的东西吗? 最佳答案 Pry是IPython的Ruby版本,它支持?命令来查找有关方法的文档,但语法略有不同:pry(main)>?File.dirnameFrom:file.cinRubyCore(CMethod):Numberoflines:6visibility:publicsignature:dirname()Returnsallcomponentsofthef

  7. ruby-on-rails - Ruby 或 Rails 有只将第一个字符大写的方法吗? - 2

    或者好像我必须自己写方法?(保持DHA不变):ruby-1.9.2-p180:001>s='omega-3(DHA)'=>"omega-3(DHA)"ruby-1.9.2-p180:002>s.capitalize=>"Omega-3(dha)"ruby-1.9.2-p180:003>s.titleize=>"Omega3(Dha)"ruby-1.9.2-p180:005>s[0].upcase+s[1..-1]=>"Omega-3(DHA)" 最佳答案 如果我的回答只是垃圾,我深表歉意(我不做ruby)。但我相信我已经为您找到了答

  8. ruby - 使用 Nokogiri 和 Ruby 从 html 文档获取链接和 href 文本? - 2

    我正在尝试使用nokogirigem提取页面上的所有url及其链接文本,并将链接文本和url存储在散列中。FooBar我想回去{"Foo"=>"#foo","Bar"=>"#bar"} 最佳答案 这是一个单行:Hash[doc.xpath('//a[@href]').map{|link|[link.text.strip,link["href"]]}]#=>{"Foo"=>"#foo","Bar"=>"#bar"}拆分一点可以说更具可读性:h={}doc.xpath('//a[@href]').eachdo|link|h[link.t

  9. ruby - gsub 删除第一个逗号前的所有内容 - 2

    我有这个字符串:auteur="comtedeFlandreetHainaut,Baudouin,Jacques,Thierry"我想删除第一个逗号之前的所有内容,即在这种情况下保留“Baudouin,Jacques,Thierry”试过这个:nom=auteur.gsub(/.*,/,'')但这会删除最后一个逗号之前的每个逗号,只保留“Thierry”。 最佳答案 auteur.partition(",").last#=>"Baudouin,Jacques,Thierry" 关于rub

  10. ruby-on-rails - Order Hash 并删除第一个键值对 - 2

    我有一个以时间戳为键的哈希。hash={"2016-05-31T22:30:58+02:00"=>{"path"=>"/","method"=>"GET"},"2016-05-31T22:31:23+02:00"=>{"path"=>"/tour","method"=>"GET"},"2016-05-31T22:31:05+02:00"=>{"path"=>"/contact_us","method"=>"GET"}}我订购了这个系列并得到了第一双这样的:hash.sort_by{|k,_|k}.first.first但是我该如何删除它呢?删除方法requiresyou知道key的准确

随机推荐