Linux的起源、特点和版本号
前言
最近上陈渝老师的《高级操作系统》,需要在ucore实验平台上完成一个麻雀虽小五脏俱全的OS,本着看过一小半《30天自制操作系统》的自信,以为这不过是小case,怎料被虐得惨不忍睹,好多源代码看不懂,难受的无助感四处蔓延。但是,这点小小的挫折怎能打击一个内心强大的程序猿呢?仔细分析了一下难点,其实汇编语言和Linux C编程不够熟练,连Linux一些常用的Shell命令都想不起来,真是不应该。so 花时间去学吧,昨晚在紫荆那儿淘了一本《Linux C编程……》,正适合我这种Linux菜鸟循序渐进地学。从今天开始系统地学习汇编语言和Linux C编程,还有总结整理相关的OS原理,Go on!
Linux的起源、特点和版本号
Linux OS是一个类UNIX OS,最早由芬兰人Linus Torvalds设计。后来经过世界各地成千上万的志愿者设计和实现,目的是为了建立不受任何商品化软件版权制约的、全世界都可以自用使用的OS。虽然Linux借鉴了UNIX的许多思想,但是所有的源代码都是重写的。
Linux具备以下一些重要特点:
- Linux是一个免费软件。这个不用多说。全世界无数的程序员的精华作品,而且还在不断地改善壮大。
- 完全兼容POSIX1.0标准。
- 多用户、多任务系统。多用户是指每个用户都对自己的文件设备有相应独立的权利,相互之间不受影响。多任务是指多个程序可以独立地运行。
- 良好的用户界面。Linux为用户提供了两种界面:文本界面和图形用户界面。我们都来用Shell吧,哈哈。
- 支持多种文件系统。
- 丰富的网络功能。极其完善的内置网络功能可以说是linux领先于其他OS的一大特点。
- 可靠的系统安全。
- 良好的可移植性。Linux可以在从微型计算机到大型计算机的任何环境和任何平台上运行。我正想入手个树莓派来玩玩呢。
Linux的版本号也挺有意思的。值得注意的是,Linux的版本号其实是分为两部分的,即内核(Kernel)和发行套件(Distribution)版本,这两者是相对独立的。
Linux每个内核版本都是类似x.y.zz-www的一组数字,其中,x.y为Linux的主版本号,zz是次版本号,www则是发行号(它和发行版本号无关)。在Ubuntu的Shell中输入“uname -a”命令可以查看相应的内核版本。我在虚拟机上查看了一下内核版本,如下图所示。
而发行套件本质上只是Linux的一个大软件包,在Kernel的基础上集成了类似C/C++编译器、Perl脚本解释程序、Shell命令解释器等。较为流行的发行版本有Ubuntu、Fedora、Debian、红旗Linux等。在Shell中可以通过“sudo lsb_release -a”来查看相应的发行套件版本。
我觉得Linux中有几个术语也是应该了解的。
- GNU(GNU’s Not UNIX),目的是为了实现一个符合UNIX系统接口标准、软件丰富而且可以自由使用的软件库。
- GPL(GNU General Public License)GNU通用公共许可证,GPL要求在发布软件的同时必须发布源代码,而且允许任何用户能够以源代码的形式将软件复制或者发布给别的用户。
- POSIX(Portable Operating System Interface of UNIX)可移植的UNIX操作系统接口。