本章导读: 本章首先对 Linux发展简史进行简要介绍,然后对Linux内核进行了介绍,重点介绍了Linux内核的特点和功能,接着对Linux发行版进行介绍,并列举了一些典型的发行版;最后对嵌入式Linux进行了简要介绍,包括嵌入式Linux的特点和产品形态。
Linux是全球最受欢迎的开源操作系统。它是一个由C语言编写的,符合POSIX标准的类UNIX系统。
词条POSIX
POSIX是Portable Operating System Interface的缩写,表示可移植操作系统接口,它规定了操作系统应该为应用编程提供的接口标准。
词条UNIX
UNIX是一个强大的多用户、多任务分时操作系统,支持多种处理器架构,于1969年在AT&T的贝尔实验室开发。UNIX是商业操作系统,需要收费。
20世纪九十年代,由于当时UNIX的商业化,Andrew Tannebaum教授开发了Minix操作系统,用于教学和科研,并发布在Internet上,免费给全世界的学生使用。Minix具有UNIX的很多特点,但是不完全兼容。1991年,芬兰大学生Linus Torvalds为了给Minix用户设计一个比较有效的UNIX PC版本,写了一个“类Minix”的操作系统,并发布到了Minix新闻组,在众多支持者的帮助下,Linus推出了Linux第一个稳定版本。1991年11月份,Linux 0.10版本推出,次年12月份,Linux 0.11版本推出,并在发布网上免费供人们使用。Linux 0.13版本发布时,Linux已经非常接近于一种可靠、稳定的操作系统,Linus决定将0.13版本改称为0.95版本,到1994年3月,Linux发布了1.0版本。
Linux诞生、发展和壮大于网络,目前依然掌控于Linux社区,遍布全球数以万计的黑客和志愿者参与Linux开发,也有商业公司为Linux贡献代码。Linux内核核心开发队伍的领导者目前是Linus本人。
Linus其人
Linus Torvalds(1969.12.28 - ),芬兰赫尔辛基人。在1991年他还是一名大学生的时候,开发了Linux操作系统,在众多黑客的帮助和他的主持下,Linux操作系统蓬勃发展,他本人至今依然是Linux内核项目的核心和领导人物。他本人获奖无数,主要有:
Linux遵循GPL协议,允许任何人对代码进行修改或发行,包括商业行为。只要其遵守该GPL协议,所有基于Linux的软件也必须以GPL协议的形式发表,并提供源代码。
词条GPL
通用公共许可证”。只有GPL英文原版才具有法律效力。
在软件中采用了使用GPL协议的产品,该软件产品也必须采用GPL协议,即必须开源,这是GPL所谓的“传染性”。
获取Linux内核源码的网址为: http://www.kernel.org ,在这里能够下载各版本的内核源码,包括测试版和最新稳定版。
Linux的吉祥物是一只名叫Tux的企鹅,看起来像穿了一件晚礼服的企鹅,如下图。
Linux吉祥物创作于1996年,据说Linus被澳大利亚国家动物园的一只小企鹅轻轻咬了一下,于是就有了用企鹅做吉祥物的想法。
Tux全称tuxedo,但大多数人更倾向于另一种说法,说是Tux名字来源于“Torvalds UniX”。
Linux发音[’li:nэks],这也是Linus本人的发音,在不同语言里发音有差异,国内很大一部分人发音[’li:njuks]。
Linux内核的重要特点
Linux是一个开放自由的操作系统内核,具有一些鲜明的特点:
1. Linux是一个一体化内核;
注:“一体化内核”是也称“宏内核”,是相对于“微内核”而言的。几乎所有的嵌入式和实时系统都采用微内核,如VxWorks、uC/OS-II、PSOS等。
2. 可移植性强。尽管Linus最初只为在X86 PC上实现一个“类UNIX”,后来随着加入者的努力,Linux目前已经成为支持硬件平台最广泛的操作系统;
注:目前已经在X86、IA64、ARM、MIPS、AVR32、M68K、S390、Blackfin、M32R等众多架构处理器上运行。
3. 是一个可裁剪操作系统内核。Linux极具伸缩性,内核可以任意裁剪,可以大至几十或者上百兆,可以小至几百K,运行的设备从超级计算机、大型服务器到小型嵌入式系统、掌上移动设备或者嵌入式模块,都可以运行;
4. 模块化。Linux内核采用模块化设计,很多功能模块都可以编译为模块,可以在内核运行中动态加载/卸载而无需重启系统;
5. 网络支持完善。Linux内核集成了完整的POSIX网络协议栈,网络功能完善;
6. 稳定性强。运行Linux的内核的服务器可以做到几年不用复位重启;
7. 安全性好。Linux源码开放,由众多黑客参与Linux的开发,一旦发现漏洞都能及时修复;
8. 支持的设备广泛。Linux源码中,设备驱动源码占了很大比例,几乎能支持任何常见设备,无论是很老旧的设备还是最新推出的硬件设备,几乎都能找到Linux下的驱动。
Linux操作系统的特点
以Linux内核为核心的操作系统具有如下特点:
(1)开放性
遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互连。
词条OSI
OSI是Open System Interconnection的缩写,意为开放系统互联,该模型由ISO(国际标准化组织)制定。模型把网络通信分为7层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
词条ISO
ISO是International Organization for Standardization的缩写,即国际标准化组织,该组织是由国家标准化机构组成的世界范围的联合会,现有140个成员国。ISO中央办事机构设在瑞士的日内瓦。
(2)多用户
Linux操作系统是一个真正的多用户操作系统;系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源有特定的权限,互不影响。
经常有初学者将Linux的多用户与Windows的多用户弄混淆,实际上两者的差别是很大的。Windows桌面同一时刻只允许一个用户登录,其余用户必须锁定;而Linux则允许多个用户同时登录。
(3)多任务
多任务是现代计算机的最主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程平等地访问处理器。
多任务实际上很常见,例如我们在编写文档的时候,还可以一边听歌,甚至还可以从网上下载资料。这至少就有文档处理、音乐播放和网络下载三个任务,相互互不影响,并且是同时运行的。
(4)良好的用户界面
Linux向用户提供了两种界面:用户界面和系统调用。
Linux的传统用户界面是基于文本的命令行界面,即Shell,它既可以联机使用,又可存在文件上脱机使用。Shell有很强的程序设计能力,用户可方便地用它编制程序,从而为用户扩充系统功能提供了更高级的手段。
Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。
系统调用是提供给用户编程时使用的界面。用户可以在编程时直接使用系统提供的系统调用。系统通过这个界面为用户程序提供低级、高效率的服务。
(5)设备独立性
Linux操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux的设备独立性使得它具有高度适应能力,能够适应随时增加支持新设备。
设备独立性主要是对应用程序开发者来说的。例如,对应用开发者来说,系统自带的串口与USB串口的操作方式是一样的,都是串口设备,而不用关心这个串口设备实际对应的物理硬件是什么。
现代计算机都实现了设备独立特性。
(6)完善的网络功能
Linux内置完整的POSIX网络协议栈,在通信和网络功能方面优于其它操作系统。Linux为用户提供了完善的、强大的网络功能:
支持Internet。Linux免费提供了大量支持Internet的软件,使得用户能用Linux与世界上的其他人通过Internet网络进行通信。
网络文件传输。用户能通过一些Linux命令完成内部信息或文件的传输。
远程访问功能。Linux系统既允许本身通过网络访问远程的系统,也允许远程系统通过网络访问自身。
(7)可靠的系统安全
Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,为网络多用户环境中的用户提供了必要的安全保障。
(8)模块化
运行时可以根据系统的需要加载程序而无需重启系统。Linux的模块化极大地提高了Linux的可裁剪性和灵活性。
(9)良好的可移植性
Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境和任何平台上运行。目前已经成为支持平台最广泛的操作系统。
Linux内核移植分3个层次:体系结构级别移植、处理器级别移植和板级移植。对大多数开发者而言,只需进行板级移植。