《Linux/UNIX系统编程手册(上、下册)》——1.4 总结

简介: 在此期间,随着AT&T不再对电信市场形成垄断,该公司被获准销售UNIX。这也就催生出了另一种UNIX的变种——System V,日后,它也成为了某些商业UNIX实现的基石。

本节书摘来自异步社区《Linux/UNIX系统编程手册(上、下册)》一书中的第1章,第1.4节,作者:【德】Michael Kerrisk著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 总结

1969年,贝尔实验室(AT&T的一个部门)的Ken Thompson在Digital PDP-7小型机上首次实现了UNIX系统。对该操作系统而言,无论是理念还是其双关语的称谓都来源于早期的MULTICS系统。时至1973年,UNIX已经被移植到了PDP-11小型机上,并以C语言对其进行了重写,C编程语言是由贝尔实验室的Dennis Ritchie设计并实现的。因为法律禁止AT&T销售UNIX,于是,在象征性地收取了一定的费用之后,AT&T索性将UNIX系统散布进了大学。这其中便包括了源码,因为这一廉价操作系统的代码可供大学计算机系的师生研究和修改,故而这一操作系统在校园内广受欢迎。

在UNIX系统的开发方面,加州大学伯克利分校扮演了“关键先生”。在该校,Ken Thompson及一干研究生又对这一操作系统进行了“精雕细琢”。到了1979年,这所大学发布了属于自己的UNIX发布版——BSD。这一发布版在学术界广为流传,并在日后成为某些商业UNIX实现的基石。

在此期间,随着AT&T不再对电信市场形成垄断,该公司被获准销售UNIX。这也就催生出了另一种UNIX的变种——System V,日后,它也成为了某些商业UNIX实现的基石。

有两股不同的潮流引领着(GNU/)Linux的开发。其中之一便是由Richard Stallman所创的GNU项目。20世纪80年代末,GNU项目已经开发出了一套几乎完备且可以自由分发的UNIX实现,但独缺一颗能够有效运作的内核。1991年,Linus Torvalds被Minix内核(由Andrew Tanenbaum编写)“灵魂附体”,于是便开发出了一颗能够在Intel x86-32架构上正常运作的内核。应Torvalds之邀,许多其他程序员也加入到了改进内核的行列中。随着时光的流逝,在一干程序员的不懈努力下,Linux逐渐发展壮大,并被移植到了多种硬件架构之上。

20世纪80年代末,UNIX和C语言的实现“百花齐放”,所引发的可移植性问题迫使人们开展针对以上两者的标准化工作。1989年,对C语言的标准化工作完成(C89颁布),在1999年,对C89这一标准进行了修订(C99颁布)。在操作系统接口方面,对其标准化的“第一次吃螃蟹”便催生出了POSIX.1,1988年和1990年,IEEE和ISO先后将POSIX.1采纳为标准。20世纪90年代,人们又开始酝酿一个囊括各版SUS在内的更为详尽的标准。2001年,合二为一的POSIX 1003.1-2001和SUSv3标准颁布。该标准合并并扩展了先前的POSIX标准和各版SUS。2008年,人们完成了对该标准的修订(改动幅度不算太大)工作,于是,合二为一的POSIX 1003.1-2008和SUSv4标准浮出水面。

与大多数商业UNIX实现不同,Linux的开发与发行可谓“风马牛不相及”。因此,并无单一的“官方”Linux发布版。各家Linux发行商所提供的只是当前稳定内核的快照,最多针对其打几个补丁。LSB开发并推广了一套Linux系统标准,其主要目的是用来保证二进制应用程序(即编译过的过程)在不同Linux发布版之间的兼容性,以便编译过的应用程序能够运行在任何符合LSB规范的操作系统上,但前提是操作系统所运行的硬件平台必须相同。

相关文章
|
4月前
|
安全 算法 Ubuntu
Linux(openssl)环境:编程控制让证书自签的技巧。
总结:在Linux环境中,OpenSSL是一个非常实用的工具,可以帮助我们轻松地生成自签名证书。通过上述三个简单步骤,即可为内部网络、测试环境或开发环境创建自签名证书。但在公共访问场景下,建议购买经过权威认证机构签发的证书,以避免安全警告。
208 13
|
4月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
112 4
|
4月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
248 3
|
12月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
6月前
|
JavaScript Ubuntu Linux
如何在阿里云的linux上搭建Node.js编程环境?
本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。
|
7月前
|
Linux
Linux编程: 在业务线程中注册和处理Linux信号
通过本文,您可以了解如何在业务线程中注册和处理Linux信号。正确处理信号可以提高程序的健壮性和稳定性。希望这些内容能帮助您更好地理解和应用Linux信号处理机制。
121 26
|
7月前
|
Linux
Linux编程: 在业务线程中注册和处理Linux信号
本文详细介绍了如何在Linux中通过在业务线程中注册和处理信号。我们讨论了信号的基本概念,并通过完整的代码示例展示了在业务线程中注册和处理信号的方法。通过正确地使用信号处理机制,可以提高程序的健壮性和响应能力。希望本文能帮助您更好地理解和应用Linux信号处理,提高开发效率和代码质量。
129 17
|
7月前
|
Unix Linux Shell
Linux新手入门手册
在Linux或类Unix系统中,掌握一系列基础命令和快捷键是提升工作效率的关键。这些工具和技巧不仅能帮助用户更高效地管理系统,还能在日常使用中带来极大的便利。以下是对这些基础操作与快捷键的详细解析大全。
126 9
|
7月前
|
安全 Unix Linux
Unix:Linux的“祖师爷”
Unix的诞生 Unix操作系统诞生于1969年,由肯·汤普逊(Kenneth Lane Thompson)和丹尼斯·里奇(Dennis MacAlistair Ritchie)在AT&T的贝尔实验室开发。其初衷是为了在闲置的PDP-7计算机上开发一个简单的操作系统,以便进行编程和游戏。最初的Unix是用汇编语言编写的,但随后为了更高效的开发和更好的可移植性,里奇和汤普逊用C语言重写了Unix的大部分代码,这奠定了Unix的基础,并促进了C语言的广泛应用。
149 2
|
9月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
379 13