Linux/Unix系统编程手册 第一章:历史和标准
Unix的开发不受控于某一个厂商或者组织,是由诸多商业和非商业团体共同贡献进行演化的。这导致两个结果:一是Unix集多种特性于一身,二是由于参与者众多,随着时间推移,Unix实现方式逐渐趋于分裂。
由于第二个结果导致的发展就是:大家要求统一标准。类似秦王扫六合,统一文字和货币。
Unix出现之后很快出现了C语言,随后Unix被C语言重写,这也是第一个以高级语言开发的操作系统。由于使用了高级语言,使得Unix能够像其他硬件架构进行移植,因为不再使用依赖硬件的低级语言了。
C/C++语言是系统编程语言,相对应的Java、Python等语言则是非系统编程语言。
Unix系统在1979年的第七版之后正式分裂成了2种实现:BSD和System V。
BSD是Unix发明人Thompson在母校加州大学伯克利分校带领研究生们增加诸多新功能新特性实现的。
System V则是由发明人Thompson之前所在的公司AT&T的Unix部门实现。
两者都相互使用了对方的专有源码,因此打了2场官司,最终于1994年达成和解,双方继续能够发布各自的系统(专有源码需要重写或删除,或者标记有copyright)。
当时的年代,计算机行业的传统形式是:每个公司提供自己的硬件和操作系统,硬件和操作系统相互搭配,不可移植,硬件和操作系统均是收费的,类似于今天iPhone只能是iPhone手机和iOS系统搭配,而不能iPhone和Android系统搭配
所以从一种硬件和系统换到另一种硬件和系统,代价昂贵,不仅要移植应用,技术人员还要重新学习适应。使用高级语言重写并且经过广泛移植在各种硬件并测试可行的Unix系统开始占领服务器系统OS市场。
Linux是从Andrew Tanenbaum(现代操作系统/Modern Operating Systems的作者)Minix借鉴而来,而Minix则是借鉴于Unix。完全的Linux应该叫做GNU/Linux,最初的Linux只是一个内核,只提供了管理硬件的功能,除此之外几乎不能做任何事,仅仅能让计算机开机而已,随后Linux使用了大量的GNU工具(包括shell,Emacs,gcc,glibc等等),才组成了一个完整的Linux系统。(个人认为Linux的真正名称应该是GNU/Linux,而不是Linux,大量工具来自于GNU,内核也是源自于Minix,后期更是诸多大牛加入出力,功劳全成Linus Torvalds的了,还把他说的像神一样,真是呵呵)。
2003年之前,Linux版本有稳定版和开发版的奇偶数之分,2003年之后不再有这个区分。
由于Uni存在两个分支,许多公司基于这2个分支中的一个基于自己的硬件进行开发并增加自己的特色导致Unix种类繁多,某一个程序无法很好的适应于所有的Unix实现,由此而出现了“标准化”的呼声。在此呼声下,国际统一了C语言和Unix系统的标准。
标准的演化是:首先出现了POSIX标准 ---> 基于POSIX产生了XPG标准 ---> 基于XPG和额外增加的标准产生了SUS标准 ---> 规范及修订POSIX和SUS标准产生了新标准,新标准可以称作POSIX,也可以叫做SUS。
最后是总结本章:
1969年Ken Thompson在AT&T公司发明了Unix系统,而后Thompson在加州大学伯克利分校和AT&T公司的Unix部门各自维护了一个实现,分裂成了2种版本。
分裂的2种版本各自吸收使用了对方的一些特色和专有源码,并相互起诉,最终和解。
分裂的2种版本导致各种不同的演化,最终由此产生了统一标准。Linux符合此标准,在Unix的市场上普及开来。
Linux/Unix系统编程手册 第一章:历史和标准的更多相关文章
- Linux/Unix系统编程手册 第二章:基本概念
本章预热与后续系统编程有关的概念. 术语“操作系统”通常包含2种含义:一是指完整的软件包,包括管理计算机资源的核心组件,已经附带的标准软件:二是独指管理硬件的内核. 内核具有诸多概功能,包括: 进程管 ...
- 《Linux/UNIX系统编程手册》第63章 IO多路复用、信号驱动IO以及epoll
关键词:fasync_helper.kill_async.sigsuspend.sigaction.fcntl.F_SETOWN_EX.F_SETSIG.select().poll().poll_wa ...
- 《Linux/UNIX系统编程手册》第56章 SOCKET:介绍
关键词: 1. socket基础 一个典型的客户端/服务器场景中,应用程序使用socket进行通信的方式如下: 各个应用程序创建一个socket.socket是一个允许通信的设备,两个应用程序都需要用 ...
- 《Linux/Unix系统编程手册》读书笔记6
<Linux/Unix系统编程手册>读书笔记 目录 第9章 这章主要讲了一堆关于进程的ID.实际用户(组)ID.有效用户(组)ID.保存设置用户(组)ID.文件系统用户(组)ID.和辅助组 ...
- 《Linux/Unix系统编程手册》读书笔记5
<Linux/Unix系统编程手册>读书笔记 目录 第8章 本章讲了用户和组,还有记录用户的密码文件/etc/passwd,shadow密码文件/etc/shadow还有组文件/etc/g ...
- 《Linux/Unix系统编程手册》读书笔记1
<Linux/Unix系统编程手册>读书笔记 目录 最近这一个月在看<Linux/Unix系统编程手册>,在学习关于Linux的系统编程.之前学习Linux的时候就打算写关于L ...
- 《Linux/Unix系统编程手册》读书笔记8 (文件I/O缓冲)
<Linux/Unix系统编程手册>读书笔记 目录 第13章 这章主要将了关于文件I/O的缓冲. 系统I/O调用(即内核)和C语言标准库I/O函数(即stdio函数)在对磁盘进行操作的时候 ...
- 《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)
<Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h> ...
- 《Linux/Unix系统编程手册》读书笔记4
<Linux/Unix系统编程手册>读书笔记 目录 第7章: 内存分配 通过增加堆的大小分配内存,通过提升program break位置的高度来分配内存. 基本学过C语言的都用过mallo ...
随机推荐
- POJ2699_The Maximum Number of Strong Kings
这题目,,,真是...诶.坑了好久. 给一个有向图.U->V表示U可以打败V并得一分. 如果一个人的得分最高,或者他打败所有比自己得分高的人,那么此人就是king. 现在给出每个人的得分,求最多 ...
- BZOJ3462 DZY Loves Math II(动态规划+组合数学)
容易发现这是一个有各种玄妙性质的完全背包计数. 对于每个质数,将其选取个数写成ax+b的形式,其中x=S/pi,0<b<x.那么可以枚举b的部分提供了多少贡献,多重背包计算,a的部分直接组 ...
- hdu6057 Kanade's convolution 【FWT】
题目链接 hdu6057 题意 给出序列\(A[0...2^{m} - 1]\)和\(B[0...2^{m} - 1]\),求所有 \[C[k] = \sum\limits_{i \; and \; ...
- Linux内核分析实验二:mykernel实验指导(操作系统是如何工作的)
计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要 ...
- 【DP/数学】【CF1061C】 Multiplicity
Description 给定一个序列 \(a\),求有多少非空序列 \(b\) 满足 \(b\) 是 \(a\) 的子序列并且 \(\forall~k~\in~[1,len_b],~~k \mid b ...
- BP神经网络人口预测程序(matlab实现)
自己测试人口预测的matlab实现: x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 ...
- Git7:使用Gitlab管理远程仓库
目录 1.安装 2.gitlab基本配置 3.gitlab的邮件配置 3.1.使用本地的postfix发送邮件 3.2.使用邮件发送模板 3.3.使用腾讯企业邮箱配置发送邮件 3.4.使用163邮箱来 ...
- Java基础-IO流对象之转换流(InputStreamReader与OutoutStreamWriter)
Java基础-IO流对象之转换流(InputStreamReader与OutoutStreamWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.转换流概述 我们之前 ...
- LocalDateTime与字符串互转/Date互转/LocalDate互转/指定日期/时间比较
Java 8中表示日期和时间的类有多个,主要的有: Instant:表示时刻,不直接对应年月日信息,需要通过时区转换 LocalDateTime: 表示与时区无关的日期和时间信息,不直接对应时刻,需要 ...
- 随机森林入门攻略(内含R、Python代码)
随机森林入门攻略(内含R.Python代码) 简介 近年来,随机森林模型在界内的关注度与受欢迎程度有着显著的提升,这多半归功于它可以快速地被应用到几乎任何的数据科学问题中去,从而使人们能够高效快捷地获 ...