1. Linux简介
Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由Linus Torvalds在1991年10月5日首次发布。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GPL许可,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。值得一提的是,Linux的作者同时也是Git开源项目的发起人,Git已经逐渐取代CVS和SVN,成为最受欢迎的程序代码版本控制软件。
严格来讲,术语Linux只表示操作系统内核本身。而日常所提及的Linux则多指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。由于这些支持用户空间的系统工具和库主要由Richard Stallman于1983年发起的GNU计划提供,自由软件基金会提议将该组合系统命名为GNU/Linux,但Linux不属于GNU计划。
尽管Linux的源代码是开放的,但如果想读完它的代码几乎是不可能的事情,也不是一件明智的事情。如果出于了解操作系统构造原理的目的,我们可以学习Minix操作系统,这是一个为教学而做的操作系统。也可以读一下早期的Unix源代码《Lion's Unix》。
Linux在服务器领域,已经成为主流的操作系统。而目前占手机市场份额最多Android系统也是基于Linux内核实现的。在桌面领域,多年来Linux也试图占据一席之地,但步履维艰,目前主要还是停留在极客用户范围内。
对于大部分普通用户来说,计算机操作系统就是Windows,Windows的很多概念和操作习惯已经深入人心。当用户从Windows切换到由苹果公司研发的同样很优秀的OS X系统上时会有各种的不习惯。同样地,刚接触Linux也是会有类似的水土不服的情况。不过,由于Linux操作系统下的各种操作更接近于计算机工程师的习惯,这会让一些对技术感兴趣的人兴奋不已。
Linux是一个操作系统,不是一个应用程序。应用程序是运行在操作系统之上的。操作系统为应用程序提供硬件的访问能力,例如CPU、内存、磁盘、wifi等。某一操作系统上的应用通常是不能在另一个操作系统上运行的,如果非要这样做,我们通常是需要使用模拟器或虚拟机的。目前市场上常见的操作系统有DOS(微软在发布Windows之前的操作系统、主要还是字符界面,也可以认为Windows是在DOS基础上添加图形界面的版本)、Windows、OS X(Mac电脑用的操作系统)、Linux、Android、iOS(苹果手机、平板用的操作系统)、Unix(老式服务器操作系统)。
理论上,一台电脑可以安装任何操作系统。但是,操作系统需要为特定的硬件编写驱动程序才能使用的。苹果公司自己生产的Mac电脑,通常只有苹果公司的OS X系统才能最大限度地发挥其硬件性能,如果在Mac电脑上安装Windows或Linux会出现或多或少的问题。除了苹果公司的Mac以外的电脑基本上都会针对Windows来生产,硬件制作商(例如显卡)都会主要针对Windows操作系统来开发驱动程序。
硬件会针对不同的操作系统编写驱动程序。同样地,软件也会针对不同的系统开发不同的版本。OS X下QQ显然功能显然是要比Windows下差很多的,而Linux下更是没有QQ。软件针对另外一个操作系统平台来编写新版本不是一件容易的事,这通常是需要重新实现所有代码的。尽管使用Java编写的程序声称可以在不同操作系统上运行,但不是所有Java代码都能100%兼容所有操作系统平台的,同一个Java应用程序在不同操作系统上的版本性能和稳定性并不一样。Java在不同操作系统平台上的解释器是不一样的。
2. Linux发行版
Linux发行版非常多,部分原因是因为其源代码和版权都开放,通常有一两个技术非常好的工程师就有能力派生出一个新的发行版。当然了,一个操作系统要做得好是需要一个庞大的团队支持的。不同的Linux发行版各有特色,有的很轻巧,可以放在一张软盘里;有的专门为服务器设计;有的专门为更好地研究操作系统组成而设计。目前最主流的桌面发行版有Ubuntu、Debian、Fedora、OpenSUSE。国内有麒麟和深度。大家可能听过的RedHat已经专注于服务器方面,其桌面版本则由Fedora继承。国外专门针对盲人的Linux有Vinux,国内盲人则可以使用eGuideDog Linux。下面是一个比较公认的Linux主流发行版列表:
- openSUSE Linux (欧洲人比较喜欢用)
- Ubuntu Linux (这是笔者最喜欢用的桌面及服务器Linux发行版)
- Fedora Linux (Red Hat专注于服务器版本开发之后,桌面版由社区改名Fedora维护)
- Red Hat Enterprise Linux
- Oracle Linux
- Knoppix
- Debian Linux (Ubuntu是基于Debian开发的)
- Mandriva Linux
- Gentoo Linux (这个发行版可以像搭积木一样搭起来,可以深刻理解操作系统的很多细节,很受极客欢迎)
- Slackware Linux
- CentOS(不少服务器都使用CentOS,它是Red Hat的一个开源版本)
- Linux Mint(这是基于Ubuntu的发行版,据说市场占有率很高)
- Scientific Linux
对于使用过Windows XP的用户来说,可能认为操作系统是可以一直用下去的,即使微软说不再维护这个系统也可以继续用。想装什么软件还是可以装的。但对于Linux用户来说就不是那么容易,一般的Linux发行版都有生命周期,最长的Red Hat Enterprise Linux有10年,Ubuntu LTS有5年,Debian有3年,其它很多发行版多数在3年以内。过了官方维护期,意味着软件更新非常困难,各种兼容性问题难以解决。
3. 嵌入式系统
嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”。Linux广泛应用在嵌入式系统中,Android就是一个极为成功的例子。很多通信设备基站、机器人、智能设备也都采用Linux作为硬件的操作系统。这些系统用到的是Linux内核,和我们平时见到的有图形界面的Linux桌面是不同的,通常是底层的软件工程师才会接触。但随着我们对Linux了解的不断深入,就会明白其相关性。
4. 开源软件
“开源软件”也叫“自由软件”。开源软件的名字对于程序员来说更实用一些,就是软件源代码开发,可以拿过来用(怎样用才合法是另外一个问题)。开源软件对应的英文是Open Source,自由软件对应的英文是Free Software。对于英语用户来说,见到Free Software可能更开心一些,因为这表示免费呀。自由软件的领袖们通过都不厌其烦地解释,Free不是免费的意思,是自由的意思。自由软件不一定是免费的,可以收费的。开源软件也不意味着可以随便用,要看许可证,有很多许可证是要求付费购买才能商用的。对于国内用户来说,自由的含义是很难理解的。一方面,我们从普遍使用盗版的路走来,版权法律意识淡薄,从来不觉得有什么不自由的。另一方面,中国几千年政权绝大部分时间是中央集权的,文化里倡导的是“服从”,自由并不是大部分人非常渴望、宁可死也要捍卫的东西(少数的这些人也许真的死了)。
开源软件界有几个重要的组织和名词:
- Free Software Foundation (FSF)
- Open Source Initiative (OSI)
- Free and Open Source Software (FOSS) - 这个是为了平息Free Software和Open Source Software名词之争的名次
- Free Libre and Open Source Software (FLOSS) - 这个类似于FOSS,进一步强调Free是“自由”不是“免费”
- Berkeley Software Distribution(BSD)
- Creative Commons - 对于非代码类的作品,比如图片、音乐、PPT等我们可以使用这种许可,该许可有许多不同权限的分支。
5. LPI考纲描述
Topic 1:The Linux Community and a Career in open source (weight: 7)
1.1 Linux Evolution and Popular Operating Systems
Weight: 2
Description: Knowledge of Linux development and major distributions.
Key Knowledge Areas:
- open source Philosophy
- Distributions
- Embedded Systems
The following is a partial list of the used files, terms and utilities:
- Android
- Debian, Ubuntu (LTS)
- CentOS, openSUSE, Red Hat
- Linux Mint, Scientific Linux
参考:http://www.lpi.org/our-certifications/exam-010-objectives
评论