Linux简介
Linux是一种自由和开放源码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布,在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供GUI的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux 发行版,而不是自己选择每一样组件或自行设置。
Linux严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将其组合系统命名为GNU/Linux,但Linux不属于GNU计划,这个名称并没有得到社群的一致认同。
Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。目前Linux已经被移植到更多的计算机硬件平台,远远超出其他任何操作系统。Linux可以运行在服务器和其他大型平台之上,如大型计算机和超级计算机。世界上500个最快的超级计算机已100%运行Linux发行版或变种。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上。
通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其派生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个符合自己需求的Linux发行版。
历史
UNIX渊源
UNIX操作系统(英语:UNIX),是美国AT&T公司贝尔实验室于1969年完成的操作系统。最早由肯·汤普逊(Ken Thompson),丹尼斯·里奇(Dennis Ritchie),道格拉斯·麦克罗伊(Douglas McIlroy),和乔伊·欧桑纳于1969年在AT&T贝尔实验室开发。于1971年首次发布,最初是完全用汇编语言编写。后来,在1973年用一个重要的开拓性的方法,Unix被丹尼斯·里奇用编程语言C(内核和I/O例外)重新编写。高级语言编写的操作系统具有更佳的兼容性,能更容易地移植到不同的计算机平台。
1983年,理查德·马修·斯托曼创立GNU计划。这个计划有一个目标,是为了发展一个完全自由的类Unix操作系统。自1984年发起这个计划以来,在1985年,理查德·马修·斯托曼发起自由软件基金会并且在1989年撰写GPL。1990年代早期,GNU开始大量地产生或收集各种系统所必备的组件,像是——库、编译器、调试工具、文本编辑器,以及一个Unix的用户界面(Unix shell)——但是像一些底层环境,如硬件驱动、守护进程、系统内核(kernel)仍然不完整和陷于停顿,GNU计划中是在Mach微内核的架构之上开发系统内核,也就是所谓的GNU Hurd,但是这个基于Mach的设计异常复杂,发展进度则相对缓慢。林纳斯·托瓦兹曾说过如果GNU内核在1991年时可以用,他不会自己去写一个。
386BSD涉及的法律问题直到1992年还没有解决,NetBSD和FreeBSD是386BSD的后裔,早于Linux。林纳斯·托瓦兹曾说,当时如果有可用的386BSD,他就可能不会编写Linux。
MINIX是一个轻量小型并采用微内核(Micro-Kernel)架构的类Unix操作系统,是安德鲁·斯图尔特·塔能鲍姆为在计算机科学用作教学而设计的。
创立
1991年,林纳斯·托瓦兹在赫尔辛基大学上学时,对操作系统很好奇。他对MINIX只允许在教育上使用很不满(在当时MINIX不允许被用作任何商业使用),于是他便开始写他自己的操作系统,这就是后来的Linux内核。
林纳斯·托瓦兹开始在MINIX上开发Linux内核,为MINIX写的软件也可以在Linux内核上使用。后来使用GNU软件代替MINIX的软件,因为使用从GNU系统来的源代码可以自由使用,这对Linux的发展有益。使用GNU GPL协议的源代码可以被其他项目所使用,只要这些项目使用同样的协议发布。为了让Linux可以在商业上使用,林纳斯·托瓦兹决定更改他原来的协议(这个协议会限制商业使用),以GNU GPL协议来代替。之后许多开发者致力融合GNU元素到Linux中,做出一个有完整功能的、自由的操作系统。
命名
Linux的第一个版本在1991年9月被大学FTP server管理员Ari Lemmke发布在互联网上,最初Torvalds称这个内核的名称为"Freax",意思是自由("free")和奇异("freak")的结合字,并且附上"X"这个常用的字母,以配合所谓的类Unix的系统。但是FTP服务器管理员嫌原来的命名“Freax”的名称不好听,把内核的称呼改成“Linux”,当时仅有10000行代码,仍必须执行于Minix操作系统之上,并且必须使用硬盘引导;随后在10月份第二个版本(0.02版)发布,同时这位芬兰赫尔辛基的大学生在comp.os.minix上发布一则消息
Hello everybody out there using minix- I'm doing a (free) operation system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.
Linux的标志和吉祥物是一只名字叫做Tux的企鹅,标志的由来有一说是因为Linus在澳洲时曾被一只动物园里的企鹅咬了一口,便选择企鹅作为Linux的标志,但更容易被接受的说法是:企鹅代表南极,而南极又是全世界所共有的一块陆地。这也就代表Linux是所有人的Linux。
发展现状
1994年3月,Linux1.0版正式发布,Marc Ewing成立Red Hat软件公司,成为最著名的Linux经销商之一。早期Linux的引导管理程序(boot loader)使用LILO(Linux Loader),早期的LILO存在着一些难以容忍的缺陷,例如无法识别1024柱面以后的硬盘空间,后来的GRUB(GRand Unified Bootloader)克服这些缺点,具有‘动态搜索内核文件’的功能,可以让用户在引导的时候,自行编辑引导设置系统文件,透过ext2或ext3文件系统中加载Linux Kernel(GRUB通过不同的文件系统驱动可以识别几乎所有Linux支持的文件系统,因此可以使用很多文件系统来格式化内核文件所在的扇区,并不局限于ext文件系统)。
今天由Linus Torvalds带领下,众多开发人员共同参与开发和维护Linux内核。理查德·斯托曼领导的自由软件基金会,继续提供大量支持Linux内核的GNU组件。一些个人和企业开发的第三方的非GNU组件也提供对Linux内核的支持,这些第三方组件包括大量的作品,有内核模块和用户应用程序和库等内容。Linux社区或企业都推出一些重要的Linux发行版,包括Linux内核、GNU组件、非GNU组件,以及其他形式的软件包管理系统软件。
系统架构
基于Linux的系统是一个模块化的类Unix操作系统。Linux操作系统的大部分设计思想来源于20世纪70年代到80年代的Unix操作系统所创建的基本设计思想。Linux系统使用宏内核,由Linux内核负责处理进程控制、网络,以及外围设备和文件系统的访问。在系统运行的时候,设备驱动程序要么与内核直接集成,要么以加载模块形式添加。
Linux具有设备独立性,它内核具有高度适应能力,从而给系统提供了更高级的功能。GNU用户界面组件是大多数Linux操作系统的重要组成部分,提供常用的C函数库,Shell,还有许多常见的Unix实用工具,可以完成许多基本的操作系统任务。大多数Linux系统使用的图形用户界面创建在X窗口系统之上,由X窗口(XWindow)系统通过软件工具及架构协议来创建操作系统所用的图形用户界面。
已安装Linux操作系统包含的一些组件:
- 启动程序:例如GRUB或LILO。该程序在计算机开机启动的时候运行,并将Linux内核加载到内存中。
- init程序:init是由Linux内核创建的第一个进程,称为根进程,所有的系统进程都是它的子进程,即所有的进程都是通过init启动。init启动的进程如系统服务和登录提示(图形或终端模式的选择)。
- 软件库包含代码:可以通过运行的进程在Linux系统上使用ELF格式来执行文件,负责管理库使用的动态链接器是“ld-linux.so”。Linux系统上最常用的软件库是GNU C库。
- 用户界面程序:如命令行Shell或窗口环境。
linux发行版
Linux发行版指的就是通常所说的“Linux操作系统”,它一般是由一些组织、团体、公司或者个人制作并发行的。Linux内核主要作为Linux发行版的一部分而使用。通常来讲,一个Linux发行版包括Linux内核,以及将整个软件安装到电脑上的一套安装工具,还有各种GNU软件,和其他的一些自由软件,在一些Linux发行版中可能会包含一些专有软件。发行版为许多不同的目的而制作,包括对不同电脑硬件结构的支持,对普通用户或开发者使用方式的调整,针对实时应用或嵌入式系统的开发等等。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十多个。较为知名的有Debian、Ubuntu、Fedora、CentOS、Arch Linux和openSUSE等。
一个典型的发行版包括:Linux内核,GNU库和各种系统工具,命令行Shell,图形界面底层的X窗口系统和上层的桌面环境等。桌面环境有如KDE或GNOME等,并包含数千种从办公包,编译器,文本编辑器,小游戏,儿童教育软件,到科学工具的应用软件。
很多发行版含有LiveCD的方式,就是不需要安装,放入系统光盘或其它介质进行启动,就能够在不改变现有系统的情况下使用。比较著名的有MX Linux、PCLinuxOS等。LiveCD的相关技术进步至此,很多的发行版本身的安装光盘也有LiveCD的功能。
linux的应用
今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级电脑(Super Computer),并且在服务器领域确定了地位,通常服务器使用LAMP组合。基于其低廉成本与高度可设置性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及移动设备等。在移动电话上,基于Linux的Android已经成为IOS的主要竞争者;而在移动设备上,则成为Windows CE与Palm OS之外另一个选择。目前流行的TiVo数字摄影机使用了经过定制后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部分LinkSys的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能。
桌面系统
大多数广泛使用的自由软件都有Windows平台版本和相应的Linux版本,例如LibreOffice、Mozilla Firefox、Apache OpenOffice、Pidgin、VLC、GIMP;部分流行的专有软件也有相应的Linux版本,如Adobe Flash Player、Adobe Reader、Google Earth、Nero Burning ROM、Opera、Maple、MATLAB、Skype、Maya、SPSS、Google Chrome。
目前仍有较多能在Windows或Mac OS上执行的应用软件没有Linux的版本,不过在Linux平台上通常可以找到类似功能的应用软件。Linux使用的增多也使得Windows开源软件(Open Source)向Linux移植,比如Filezilla。Linux下也有相当多不能在Windows平台下执行的软件,主要是依靠X窗口系统和其他Windows无法利用的资源,或者是因为稳定性等其他方面的考虑并不准备支持Windows。
另外,相当多的Windows应用程序可以通过Wine和一些基于Wine的项目如CrossOver正常运行和工作。如Microsoft Office、Adobe Photoshop、暴雪娱乐的游戏、Picasa其中对于Photoshop的Crossover(Wine)兼容性工作有Disney、DreamWorks、Pixar投资支持,等。Google大力参与Wine项目改进,Picasa的GNU/Linux版本也是经Wine测试的Windows平台编译版本。
服务器、主机和超级计算器
Linux发行版一直被用来作为服务器的操作系统,并且已经在该领域中占据重要地位。根据2006年9月Netcraft的报告显示,十个最大型的网络托管公司有八个公司在其Web服务器运行Linux发行版。
Linux发行版是构成LAMP(Linux操作系统,Apache,MySQL,Perl / PHP / Python)的重要部分,LAMP是一个常见的网站托管平台,在开发者中已经得到普及。
Linux发行版也经常使用作为超级计算机的操作系统,2010年11月公布的超级计算机前500强,有459个(91.8%)运行Linux发行版。曾经是世界上最强大的超级计算机——IBM的红杉(IBM Sequoia),已于2011年交付劳伦斯利福摩尔国家实验室,并于2012年6月开始运作,也是选择Linux作为操作系统。
智能移动设备
在智能手机、平板电脑等移动设备方面,Linux也得到重要发展,基于Linux内核的Android操作系统已经超越Apple的iOS操作系统,成为当今全球最流行的智能手机操作系统。在2010年第三季度,销售全球的全部智能手机中使用Android的占据25.5%(所有的基于Linux的手机操作系统在这段时间为27.6%)。
从2007年起,手机和掌上电脑上运行基于Linux的操作系统变得更加普遍,例如:诺基亚 N810、OpenMoko的Neo1973、摩托罗拉的ROKR E8。Palm(后来被HP公司收购)推出了一个新的基于Linux的webOS操作系统,并使用在新生产的Palm Pre智能手机上。
MeeGo是诺基亚和英特尔于2010年2月联合推出的基于Linux的操作系统,诺基亚也推出了使用MeeGo操作系统的N9手机。2011年9月28日,继诺基亚宣布放弃开发MeeGo之后,英特尔也正式宣布将MeeGo与LiMo合并成为新的系统Tizen。Jolla Mobile公司成立并推出了由MeeGo发展而来的Sailfish操作系统。2012年,Mozilla推出基于Linux内核的Firefox OS操作系统。
嵌入式设备
Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用。流行的TiVo数字视频录像机还采用了定制的Linux,思科在网络防火墙和路由器也使用了定制的Linux。Korg OASYS、Korg的KRONOS、雅马哈的YAMAHA MOTIF XS/Motif XF音乐工作站、雅马哈的S90XS/S70XS、雅马哈MOX6/MOX8次合成器、雅马哈MOTIF-RACK XS音源模块,以及Roland RD-700GX数码钢琴均运行Linux。Linux也用于舞台灯光控制系统,如WholeHogIII控制台。