精英联盟总队|最详细的Linux简史——Linux大神带你领略它的前世今生

作者简介:陈华才 , 博士 , 高级工程师 , 《用芯探核 基于龙芯的Linux内核探索解析》的作者 , 负责龙芯3号处理器的内核开发 。 作为Linux内核中MIPS/ 龙芯3 号的Maintainer , 向Linux内核官方提交了大量的代码 。
1991年 , 芬兰大学生Linus Torvalds开发出最初的Linux , 这个操作系统适用于基于Intel 80386微处理器的IBM PC兼容机 。 经过多年的发展 , Linux已经可以在许多其他平台上运行 , 包括Alpha、Itanium(IA64)、MIPS、ARM、SPARC、MC680x0、PowerPC以及zSeries 。
Linux最吸引人的一个优点就在于它是一个自由的操作系统:它的源代码基于GNU公共许可证(GNU Public License , GPL) , 是开放的 , 任何人都可以获得源码并研究它;只要得到源代码 , 就可以深入探究这个成功而又现代的操作系统 。
Linux提倡自由、开源、共享、人人为我 , 我为人人 。 在GPL的号召下 , 全世界的Linux开发者组成了一个虚拟的开源社区 。 这是一种非常优秀的组织结构 , 尽管大家分布在世界各地 , 但是可以通过源代码和互联网进行高效的无障碍交流 。 大家既从开源社区获取资源 , 也把自己的贡献回馈给开源社区 。
接下来 , 本文主要从Linux内核的特点、Linux内核发展简史和Linux内核的开发模式三个方面进行介绍 , 最后简单讲述什么是长期维护稳定版 。
精英联盟总队|最详细的Linux简史——Linux大神带你领略它的前世今生Linux内核的特点从技术角度来说 , Linux只是操作系统内核 , 而不是一个完全的类UNIX操作系统 , 这是因为它不包含全部的UNIX应用程序 , 诸如文件系统实用程序、命令解释器、窗口系统、图形化桌面、系统管理员命令、文本编辑程序、编译开发程序等 。 以上这些应用程序大部分都可在GNU公共许可证下免费获得 , 因此包含Linux内核、基础运行环境(运行时库如GLibc)、编译环境(如GCC)、外壳程序(Shell , 即命令解释器)和图形操作界面(GUI)的完整操作系统套件被称为GNU/Linux 。 尽管如此 , 在大多数情况下 , 仍用Linux来指代完整的GNU/Linux 。
Linux 内核遵循IEEE POSIX标准(POSIX全称是Portable Operating System Interface of UNIX) 。 它包括了现代UNIX操作系统的全部特点 , 诸如虚拟存储、虚拟文件系统、内核线程、轻量级进程、UNIX信号量、SVR4进程间通信、支持内核抢占、对称多处理器(Symmetric Multi-Processor , SMP)系统等 。
Linux内核是一体化内核(或称宏内核)操作系统 , 宏内核的设计风格是“凡是可以在内核里实现的都在内核里实现” 。 因此 , 除了异常/中断处理、内存管理和进程管理三大基本功能以外 , 文件系统、设备驱动和网络协议也放在内核层实现 。
宏内核的优点是内核内部的各种互操作都可以通过函数调用实现 , 因此性能较好;而缺点是体积较大且理论上健壮性不太好(因为内部耦合性太高) 。 与宏内核相对的是微内核 , 最常见的是实现是GNU Hurd , 其设计风格是“凡是可以不在内核里实现的都不在内核里实现” , 因此很多功能子系统被设计成了一种服务(进程) 。
微内核的优点是体积较小且理论上更健壮(因内核本身的功能较少而不容易出错);而缺点是操作系统的大量互操作都依赖于进程间通信(Inter-Process Communication ,IPC) , 因此性能较差 。 微内核虽然把一些内核的核心功能剥离到了服务进程中 , 但重要的服务崩溃后实际上跟内核崩溃类似 , 因为整个系统也同样处于一个基本不可用的状态 。
Linux虽然是宏内核 , 但是也吸收了一些微内核的优点 , 比如从1.0版本开始就可以通过模块化(将一些非核心的功能设计成可以运行时动态加载/卸载的内核模块)来减少内核核心部分的体积 。