Linux基础学习笔记1
文章目录
目标
- Linux相关背景知识
- 内核版本、发行版知识
- 了解开源协议
一、Linux的诞生
世界上任何事物的诞生是偶然的,发展却是必然的。1991年10月5日,Linux内核系统首次问世,开发者是一名芬兰计算机系大二学生Linus Torvalds。同时,它的源代码被放在了 nic.funet.fi 服务器的/pub/OS/Linux目录下。
二、Linux成长的五大基石
1. UNIX(UNiplexed Information and Computing System)
UNIX前身是又美国的通用电气,麻省理工学院和AT&T的贝尔实验室联合开发的项目------操作系 统MULTICS(多路信息与计算系统MULTiplexed Information and Computing System)。该系统存在效率低、功能庞杂 的缺点。
1969年,UNIX是由贝尔实验室里从事MULTICS研究的工作人员对MULTICS做了技术的裁剪,最初利用汇编语言编写的 (汇编语言可读性与可移植性差,C语言最初是为了能够在不同的硬件平台上移植UNIX而诞生的) 。发展过程中,曾经产生两大流派——AT&T的System V 和Berkeley分校的BSD流派,并衍生出许多发行版。
UNIX后来成为了AT&T贝尔实验室操作系统产品的注册商标,UNIX成为一种软件商品,其源代码也就不再随意公开。
2. MINIX(mini-UNIX)
1987年,由于后来UNIX源代码不公开,为了教学上的需要,Andrew S. Tanenbaum教授在UNIX的基础上开发了教学版的UNIX,取名为MINIX。MINIX首次公开源代码,在大学内可以免费使用,Linux刚开始就是参照MINIX系统开发的。
3. GNU项目(GNU’s not UNIX)
1984年,项目发起人Richard M Stallman希望开发一个类似UNIX且是自由软件的完整操作系统,即GNU系统。GNU项目里的开源软件工具是Linux能够诞生的基础条件之一,而且是目前编译Linux内核,制作Linux发行版的必备工具。(注:Linux也叫做GNU/Linux,业内正统叫法)
4. POSIX标准 (Potable Operating System Interface)
1986年,IEEE制定了IEEE P1003标准,这套标准被称为POSIX,意为“可移植的UNIX操作系统接口”。
POSIX定义了一整套的作业接口,包括系统调用,库函数,公共命令等等。主要目的是为了规范应用程序接口(即API),从而使得在一个遵守POSIX标准的操作系统上开发的应用软件能够容易地移植到另一个遵守同样标准的操作系统上。
注:红帽7.0及以后的版本和最新的ubantu采用新的技术替换了Sys V init,因此不再严格遵守POSIX标准。
5. Internet
让遍布世界各地的编程高手能够协同工作,形成Linux如此庞大的用户群。
三、内核版本与发行版
内核版本
内核版本是由Linux内核社区统一编码和发布。格式如下:
Linux中:
uname -r #查看内核版本号
1、当有大的结构性变化时,递增主版本号(major);
2、新增明显功能时递增次版本号(minor),次版本号有奇偶之分,奇数表示开发版,偶数表示稳定版;
3、每次对内核修订一次或打一次补丁就递增patch域;
4、当对少量代码做了优化或者修改,并重新编译一次,就递增build域;
5、在编译内核时可以指定一个内核的简单描述,形成desc域,开发员一般习惯采用一些具有实际意义的缩略字符串来描述当前内核的关键特征。
desc域 | 含义 |
---|---|
rc | Realease Candidate,后面接的数字越大越接近正式版 |
smp | 表示对称多处理器 |
pp | 测试版本 |
EL | 企业版 |
fc | fedora core |
Ps. 开发版十分活跃,会不断增加新功能,直到趋于稳定后由Linux冻结源代码,升级为高版本号的稳定版。稳定版用户可以提交bug,内核社区修补bug并发布补丁,不会增加新功能。
Linux发行版
Linux发行版指一些企业采用某些方法把Linux内核、glibc库、硬件驱动模块及各种应用软件打包集成在一起,以光盘或镜像文件的形式交付给用户安装使用。
按软件包管理方式的不同,目前的发行版可以分为两大阵营:
1、以红帽为首基于rpm包管理的阵营,包文件以rpm为扩展名。
2、以Ubantu为首的基于DPKG包管理的阵营,包文件以deb为扩展名。
开源协议
开源软件(free software)翻译为“自由的软件”,指软件使用者的“自由”。
协议具有法律约束力。
开源软件被开源协议所限制,常见的开源协议有BSD、Apache许可、GPL、LGPL等开源协议。
开源社区
说明
内容教材参考王良明老师的 《Linux操作系统基础教程》 第三版,蒋砚军老师、高占春老师的 《实用UNIX教程》。