返回

文章详情

为套接字接口欢呼

Hacker News2026年7月29日 02:25

由人工智能生成。1983年,加利福尼亚大学伯克利分校(UCB)发布了其UNIX操作系统的4.2版本,即伯克利标准发行版(BSD)。对许多人来说,这是定义在线服务诞生的‘时代事件’,因为这是发布BSD‘套接字’网络模型的版本。实际上,计算系统与其上运行的操作系统恰逢其时结合在一起。这导致全球网络服务访问的显著增加。这种首个无处不在的网络方式的安装是通过磁带进行的,这些磁带是通过邮寄获得的。对于现代人来说,这可能显得奇怪,因为现代操作系统的安装通常是网络驱动的事件。如果不从网络下载完整的ISO映像或可引导的VMDK磁盘映像,你通常会下载一个较小的系统,它从网络引导。这是正常的——网络是被假定的。回到1980年代,尽管‘网络’可能已存在,但它过于狭窄——拨号电话的速度低至1200或2400波特率,并且缺乏常用协议来说明如何找到和获取内容。即便你有权访问‘网络’,也很难可靠地检索诸如新操作系统的二进制代码之类的东西。几乎在每个地方它的样子都不同。套接字是改变这一切的重要组成部分。在套接字出现后,网络UNIX系统开始看起来大体一致。我们达到了更标准化的网络访问模型。早期的BSD版本对于PDP-11小型计算机,可以追溯到1978年,是通过磁带分发给全球的研究社区:版本1的代码有30份,版本2有75份。该系统是根据‘加利福尼亚大学董事会’发布的许可证发行的,并仔细限制了责任和用户权利。你通过邮寄收到代码,存储在长长的磁带卷中。如果你想更新代码,董事会要求许可证签署者的连续性。这导致了问题,因为学术角色通常在部门成员之间变化,而董事会的律师并没有预见到这一点。当你通过磁带收到这样的操作系统时,它由一系列线性录音组成。每个录音都有一个‘传输结束’(EOT)标记,你可以跳过它来达到下一个块。实际上,字节流以固定格式读取。开始时,你需要在开关控制台上手动输入最小的十六进制代码。这取决于你的计算机架构。该代码通过读取第一个磁带块到内存中进行引导,之后你可以进入内存以运行它作为引导加载程序。输入十六进制代码意味着在16位字段中设置开关——上或下,开或关——对照打印的清单检查它们,然后逐个地址将其提交到内存。这是缓慢而容易出错的。真正的磁带结束标记是一个银色标签,触发光电二极管停止磁带电机。加载引导加载程序后,你可以格式化磁盘并将磁带归档(TAR)数据从磁带解压到上面。这将所有操作系统文件编码到本地磁盘。这个过程几乎耗时一天。如果你需要重新编译系统,例如,添加设备驱动程序,这可能需要两到三天。尽管如此,许多人仍然接受这个成本以获得对UNIX系统的访问。版本4.2BSD附带了一些重大变化。这些包括错误修复、改进的文件系统配额方法和符号链接——这最初让习惯于硬链接的用户感到困惑。与这些一起的是伯克利套接字网络系统,这是根据国防高级研究计划局(DARPA)的合同开发的。当时,这一切的意义尚不明确。在此之前,UNIX上访问网络服务依赖于如cu或tip等程序。这些程序作为终端仿真器,通过串口将字符发送到调制解调器。许多早期的调制解调器是通过魔术贴与电话听筒连接的声学耦合器——一部分是麦克风,另一部分是扬声器。你通过拨打电话连接。像Unix-to-Unix复制程序(UUCP)这样的工具使用脚本调用cu或类似工具建立连接,然后传输数据。即使使用cu也很慢。像vi编辑器(由Bill Joy开发的BSD创新,后来成为Sun Microsystems的联合创始人)这样的工具中的终端类型减少了屏幕更新,以适应慢速连接。UUCP是我们发送邮件、阅读网络新闻和接收(小)文件的方式。对于研究社区的大部分来说,它实际上就是网络。其他人使用IBM BITNET或像英国科学与工程研究委员会网络(SERC),后来是JANET(联合学术网络),它们通过X.25数据网络运行。套接字和UNIX文件模型套接字改变了这一切。它们提供了一种简单、一致的方式连接到ARPANET系统。重要的是,它们重新利用了现有的UNIX抽象。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡