TCP 发展历史
ARPANET, 阿帕网
- 网络控制协议 (Network Control Protocol, NCP)
- 下一代协议: 以分组、序列化、流量控制、超时和容错等为核心的一种新型的网络互联协议, 奠定 TCP/IP 协议基础
OSI & TCP/IP
这个标准发布的时候已经是 1984 年了,有点尴尬的是,OSI 搞得是很好,大家也都很满意,不过,等它发布的时候,ISO 组织却惊讶地发现满世界都在用一个叫做 TCP/IP 协议栈的东西,而且,跟 OSI 标准半毛钱关系都没有。
- TCP/IP 搭上了 UNIX 这辆时代快车,很快推出了基于套接字(socket)的实际编程接口;
UNIX 操作系统发展历史
- 图上标示的 Research 橘黄色部分,是由 AT&T 贝尔实验室不断开发的 UNIX 研究版本,从此引出 UNIX 分时系统第 8 版、第 9 版,终止于 1990 年的第 10 版(10.5)。这个版本可以说是操作系统界的少林派。天下武功皆出少林,世上 UNIX 皆出自贝尔实验室。
- 图中最上面所标识的操作系统版本,是加州大学伯克利分校(BSD)研究出的分支,从此引出 4.xBSD 实现,以及后面的各种 BSD 版本。这个可以看做是学院派。在历史上,学院派有力地推动了 UNIX 的发展,包括我们后面会谈到的 socket 套接字都是出自此派。
- 图中最下面的那一个部分,是从 AT&T 分支的商业派,致力于从 UNIX 系统中谋取商业利润。从此引出了 System III 和 System V(被称为 UNIX 的商用版本),还有各大公司的 UNIX 商业版。
一个基本事实是,网络编程套接字接口,最早是在 BSD 4.2 引入的,这个时间大概是 1983 年,几经演变后,成为了事实标准,包括 System III/V 分支也吸收了这部分能力,在上面这张大图上也可以看出来。
耳熟能详的重要 UNIX 玩家:
- SVR 4
- Solaris
- BSD
- macOS X
- Linux
UNIX 的出现和发展
POSIX 标准
POSIX(Portable Operating System Interface for Computing Systems)这个标准基于现有的 UNIX 实践和经验,描述了操作系统的调用服务接口。
Minix 操作系统
GNU
GNU 在自由软件基金会统一组织下,相继推出了编译器 GCC、调试器 GDB、Bash Shell 等运行于用户空间的程序。正是这些软件为 Linux 操作系统的开发创造了一个合适的环境,比如编译器 GCC、Bash Shell 就是 Linux 能够诞生的基础之一。