快好知 kuaihz订阅看过栏目

 

Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括了像提供GUI界面的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux发布版,而不是自己选择每一样组件或自行设置。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

系统简介

Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品,并为桌面虚拟化[1]提供更广泛的平台。

Linux的出现,最早开始于一位名叫Linus Torvalds的计算机爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能,因而开始了Linux雏形的设计。

绝大多数基于Linux内核的的操作系统使用了大量的GNU软件,包括了shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。正因为如此,GNU计划的开创者理查德·马修·斯托曼博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做"Linux"。

由于这些系统工具和库主要由GNU计划提供,自由软件基金会提议将该组合系统命名为GNU/Linux。Linux是一个领先的操作系统,可以运行在服务器和其他大型平台之上,如大型机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,最快的前10名超级计算机运行的都是Linux操作系统。 Linux也广泛应用在嵌入式设备上,如手机、平板电脑、路由器、电视和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上。

Linux简史

Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络。

1981 年IBM公司推出微型计算机IBM PC。

1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux用户基础和开发环境。

1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。

1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell 软件了。

1991年7月3日,第一个与Linux有关的消息是在comp.os.minix上发布的(当然此时还不存在Linux这个名称,当时林纳斯·托瓦兹的脑子里想的可能是FREAX,FREAX的英文含义是怪诞的、怪物、异想天开等)。

1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生(Freeminix-like kernel sources for 386-AT)。

1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码大约有十万行,用户大约有10万左右。

1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。

1995年1月,Bob Young创办了RedHat(小红帽),以GNU/Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux"发行版",在市场上出售。这在经营模式上是一种创举。

1996年6月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux 已经进入了实用阶段,全球大约有350万人使用。

1998年2月,以Eric Raymond为首的一批年轻的"老牛羚骨干分子"终于认识到GNU/Linux体系的产业化道路的本质,并非是什么自由哲学,而是市场竞争的驱动,创办了"Open Source Intiative"(开放源代码促进会)"复兴"的大旗,在互联网世界里展开了一场历史性的Linux产业化运动。

2001年1月,Linux 2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能。

2003年12月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。

2004年的第1月,SuSE嫁到了Novell,SCO继续顶着骂名四处强行“化缘”, Asianux, MandrakeSoft也在五年中首次宣布季度赢利。3月,SGI宣布成功实现了Linux操作系统支持256个Itanium 2处理器。

桌面环境

介绍

在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。但严格来说窗口管理器和桌面环境是有区别的。桌面环境就是桌面图形环境,它的主要目标是为Linux/Unix操作系统提供一个更加完备 的界面以及大量各类整合工具和使用 程序,其基本 易用性吸引着大量的新用户。桌面环境名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。

种类

现今主流的桌面环境有KDE,gnome,Xfce,LXDE等,除此之外还有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。

gnome

即GNU网络对象模型环境 (The GNU Network Object Model Environment),GNU计划的一部分,开放源码运动的一个重要组成部分。是一种让使用者容易操作和设定电脑环境的工具。

目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,他是GNU计划的正式桌面。

Xfce

即XForms Common Environment,创建于2007年7月,类似于商业图形环境CDE,是一个运行在各类Unix下的轻量级桌面环境。原作者Olivier Fourdan最先设计XFce是基于XForms三维图形库。Xfce设计目的是用来提高系统的效率,在节省系统资源的同时,能够快速加载和执行应用程序。

Fluxbox

是一个基于GNU/Linux的轻量级图形操作界面,它虽然没有GNOME和KDE那样精致 ,但由于它的运行对系统资源和配置要求极低,所以它被安装到很多较旧的或是对性能要求较高的机器上,其菜单和有关 配置被保存于用户根目录下的.fluxbox目录里,这样使得它的配置极为便利。

Enlightenment

是一个功能强大的窗口管理器,它的目标是运用 户轻而易举地配置所见即所得的桌面图形界面。现在Enlightenment的界面已经相当豪华,它拥有像AfterStep一样的可视化时钟以及其它浮华的界面效果,用户不仅可以任意选择边框和动感的声音效果,最有吸引力的是由于它开放的设计思想,每一个用户可以根据自己的爱好,任意地配置窗口的边框、菜单以及屏幕上其它各个部分,而不须要 接触源代码,也不须要 编译任何程序。

象征物

(一只企鹅,全称为tuxedo,NCIT 90916P40 Joeing Youthy的网络ID)是Linux的标志。将企鹅作为Linux标志是由林纳斯·托瓦兹提出的。

大多数人相信,“Tux”这个名字来源于Torvalds UniX,而不是因为它看起来像是穿着一件黑色小礼服(tuxedo)。

这个企鹅图案在最佳Linux图标竞赛中被选中,其他一些图案可以在Linux图标大赛网站中找到。Tux的设计者是Larry Ewing,他于1996年,利用GIMP软件设计出这个企鹅,Tux已经成为Linux和开源社区的象征。

名称的来由

Linux 操作系统刚开始时并没有被称作Linux,Linus 给他的操作系统取名为FREAX,其英文含义是怪诞的、怪物、异想天开等意思。在他将新的操作系统上载到ftp.funet.fi 服务器上时,管理员Ari Lemke很不喜欢这个名称。他认为既然是Linus 的操作系统就取其谐音Linux 作为该操作系统的目录吧,于是Linux 这个名称就开始流传下来。

在Linus 的自传《Just for Fun》一书中,Linus 解释说:"坦白地说,我从来没有想到过要用Linux 这个名称发布这个操作系统,因为这个名字有些太自负了。而我为最终发布版准备的是什么名字呢?Freax。实际上,内核代码中某些早期的Makefile - 用于描述如何编译源代码的文件 - 文件中就已经包含有"Freax"这个名字了,大约存在了??要一个名字,因为我还没有向任何人发布过内核代码。而Ari Lemke,他坚持要用自己的方式将内核代码放到ftp 站点上,并且非常不喜欢Freax 这个名字。他坚持要用现在这个名字(Linux),我承认当时我并没有跟他多争论。但这都是他取的名字。所以我可以光明正大地说我并不自负,或者部分坦白地说我并没有本位主义思想。但我想好吧,这也是个好名字,而且以后为这事我总能说服别人,就象我现在做的这样。"-- Linus Torvalds《Just for fun》第84-88 页。

通过上述说明,我们可以对上述Linux 的五大支柱归纳如下:

1、UNIX 操作系统 -- UNIX 于1969 年诞生在Bell 实验室。Linux 就是UNIX 的一种克隆系统。UNIX的重要性就不用多说了。

2、MINIX 操作系统 -- Minix 操作系统也是UNIX 的一种克隆系统,它于1987 年由著名计算机教授Andrew S. Tanenbaum 开发完成。由于MINIX 系统的出现并且提供源代码(只能免费用于大学内)在全世界的大学中刮起了学习UNIX 系统旋风。Linux 刚开始就是参照Minix 系统于1991 年才开始开发。

3、GNU 计划-- 开发Linux 操作系统,以及Linux 上所用大多数软件基本上都出自GNU 计划。Linux只是操作系统的一个内核,没有GNU 软件环境(比如说bash shell),则Linux 将寸步难行。

4、POSIX 标准 -- 该标准在推动Linux 操作系统以后朝着正规路上发展起着重要的作用。是Linux前进的灯塔。

应用

过去,Linux主要被用作服务器的操作系统,但因它的廉价、灵活性及Unix背景使得它很合适作更广泛的应用。传统上有以Linux为基础的“LAMP(Linux, Apache, MySQL, Perl/PHP/Python的组合)”经典技术组合,提供了包括操作系统、数据库、网站服务器、动态网页的一整套网站架设支持。而面向更大规模级别的领域中,如数据库中的Oracle、DB2、PostgreSQL,以及用于Apache的Tomcat JSP等都已经在Linux上有了很好的应用样本。除了已在开发者群体中广泛流行,它亦是现时提供网站务供应商最常使用的平台。

基于其低廉成本与高度可设定性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及行动装置等。在移动电话上,Linux已经成为与Symbian OS、Windows Mobile系统并列的三大智能手机操作系统之一;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。目前流行的TiVo数位摄影机使用了经过客制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能。

采用Linux的超级电脑亦愈来愈多,根据2005年11月号的TOP500超级电脑列表,现时世上最快速的两组超级电脑都是使用Linux作为其操作系统。而在表列的500套系统里,采用Linux为操作系统的,占了371组(即74.2%),其中的前十位者,有7组是使用Linux的。

2006年开始发售的SONY PlayStation 3亦使用Linux的操作系统。之前,Sony亦曾为他们的PlayStation 2推出过一套名为PS2 Linux的DIY组件。至于游戏开发商雅达利及id Software,都有为其旗下的游戏推出过Linux桌面版本。此外,Linux Game Publishing亦有专门为Linux平台撰写游戏,并致力于把其他在Windows平台编撰的游戏程序码转携至Linux平台,及为转携游戏提供使用授权。

而一个打算对所有生活在发展中国家孩子提供手提电脑的名为每孩子皆有一部手提电脑(OLPC)的项目,正是使用Linux作为缺省的操作系统。

特点

绝大多数基于Linux内核的操作系统使用了大量的GNU软件,包括了shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。正因为如此,GNU计划的开创者理查德·马修·斯托曼博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做"Linux"。

Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

过去,Linux主要被用作服务器的操作系统,但因它的廉价、灵活性及Unix背景使得它很合适作更广泛的应用。传统上有以Linux为基础的“LAMP(Linux, Apache, MySQL, Perl/PHP/Python的组合)”经典技术组合,提供了包括操作系统、数据库、网站服务器、动态网页的一整套网站架设支持。而面向更大规模级别的领域中,如数据库中的Oracle、DB2、PostgreSQL,以及用于Apache的Tomcat JSP等都已经在Linux上有了很好的应用样本。除了已在开发者群体中广泛流行,它亦是现时提供网站务供应商最常使用的平台。

Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。

运行Linux需要的配置并不高,支持众多的PC周边设备,并且这样一个功能强大的软件完全免费,其源代码是完全公开的,任何人都能拿来使用。说到这里,各位可能怀疑这免费后面是不是隐藏着什么?作者会心甘情愿的把它拿出来而分文不取吗?其实,它代表着软件开发的另一种概念:那就是基于GNU的版权制度。

版权是为了保护作者应有利益而设立的制度,但时至今日它却对科技的发展造成了一定的阻碍。例如现在病毒的肆虐,就是因为微软不肯将Windows的源代码公开。杀毒软件的厂商只好自己去钻研OLE结构。还有,Intel为了保住自己的霸主地位,建立了一个个不许其它厂商使用的硬件规范,造成众多开发者并不是为了提升技术而是为了兼容性而耗费资金和时间,这样就造成了科研发展的混乱和垄断。

为了改变这种状况,Richard M. Stallman在1984年创立了以生产免费软件为目的的组织--Free Software Foundation(自由软件基金会,简称FSF)。他认为:各个软件公司为了自己的利益不公开源代码会阻碍人类文明的发展,一个真正好的软件是为了替人解决问题,应该散发给需要的人。他开发了一个叫做GNU的计划,第一套软件就是GNU Emacs(UNIX平台下强大的编辑器)。任何人都能免费拿到这个软件和它的源代码,于是许多人自发的修改这套软件,为它增加功能。为了明确GNU的规范,Stallman发表了GNU General Public License和GNU Library General Public License授权声明,根据这些声明,所有的GNU软件都可以被任何人下载、出售、复制和修改,但必须提供程序源代码或者让使用者知道从哪里获得源代码!但不论免费或者收费,任何得到这些软件的使用者都有和提供者同样的权利,可以将它们赠送或出售。由于这个授权,GNU软件像滚雪球一样越来越多,功能也越来越强。当然,这样做也有不良的效果,如果开发商的利润减少了那么就没有人愿意真正开发软件了,毕竟人还是要吃饭的呀。不过随着Internet的盛行,大众越来越容易得到各种各样的软件,而且大多只为一时之需,用完之后根本不会再用,一个软件的使用寿命就大大缩短,在这种情况下,传统的电子出版行业应该做出相应的调整。

Linux核心程序的著作权归Linus本人所有,其它应用程序归各自的作者所有,但按照GNU授权,任何人都可以采取收费或免费方式来发行Linux,并在符合该授权的规范下做修改。这样就有了一大批的免费程序移植到了Linux上,包括GNU Emacs、XFree86、Mozilla等经典软件,并且在不断壮大中。由于源代码是公开的,任何一个使用Linux的人在添置了新硬件后都能自己编写驱动程序,所以Linux对新硬件的支持已经超过了许多专业UNIX系统。Linux的成功如果没有Internet是不可能的,因为Linux实际上是世界各地众多程序员共同开发的结果。

现在的Linux经过数次改版(包括核心的升级和周边程序的完善),已经发展成了一个遵循POSIX标准的纯32位多工操作系统,64位版本也在开发之中。Linux可以兼容大部分的UNIX系统,很多UNIX的程序不需要改动,或者很少的改变就可以运行于Linux环境;内置TCP/IP协议,可以直接连入Internet,作为服务器或者终端使用;内置JAVA解释器,可直接运行JAVA源代码;具备程序语言开发、文字编辑和排版、数据库处理等能力;提供X Window的图形界面;主要用于x86系列的个人电脑,也有其它不同硬件平台的版本,支持现在流行的所有硬件设备。就性能上来说,它并不弱于Windows甚至UNIX,而且靠仿真程序还可以运行Windows应用程序。它有成千上万的各类应用软件,并不输于Windows的应用软件数量,其中也有商业公司开发的赢利性的软件。最可贵的是:它是一个真正的UNIX系统,可以供专业用户和想学UNIX的人在自己的个人电脑上使用。Linux是一个非常灵活的系统,相对于Windows而言也是一个比较难用的系统,就如同大多数用户用不惯MacOS的单键鼠标一样。想要对Linux轻车熟路,你必须懂得一些相关知识,软、硬件的配置,最好还懂点程序,因为没有人有义务为您提供技术支援,除了和其它用户交流之外 ,您必须要自己解决问题。当然,如果您只是作为日常应用,就不需要那么复杂啦,Linux一样会为您提供完美的操作环境,你所要做的就是改变使用习惯和成见。

早期的操作系统是没有图形界面的,自从Apple于1984年推出System 1.0开始,个人电脑才实现了真正的GUI(Graphics User Interface,图形用户界面),从此电脑变得更加具有亲和力,也更加易于使用。Windows的图形化开始于Windows 3.1/3.2,直到Windows 95的出现才标志着多媒体时间的到来,从此计算机变得能说会唱起来。Linux始于UNIX,却青出于蓝胜于蓝,同样拥有着不俗的图形用户界面,性能更稳定,也更漂亮,可以和世界上曾经出现过的,最美丽的操作系统媲美!不同于现在的XP,Linux的图形界面是基于Console之上的,类似于Windows 95架于DOS之上,Linux下实现图形界面的是X Window系统(区别于MS的Windows)。

X Window是一套用于UNIX的具有极大可携性、对彩色掌握的多样性和网络之间的操作透明性的健在式处理窗口系统。它和微软的Windows的工作原理并不相同,不过两者都使用图形界面和窗口技术,从外表看来有那么一点点相似,但又存在着巨大的不同,实际上X Window的界面更加多样化,也更漂亮,且高效快捷。就Windows对于DOS的地位一样,X Window一改UNIX/Linux单调的文本界面,提供了一个友善的图形用户界面(GUI)。

1984年在麻省理工学院(MIT)电脑科学研究室工作的Bob Scheifler正在发展分布式系统,DEC公司的Jim Gettys也在MIT进行A-thena计划的一部分。两者都需要一套在UNIX系统上使用的图形界面,因此两者开始合作研制X Window。1987年,MIT发布了第11个版本的X Window,并成立了非赢利性组织“X协会”来发展及控制X Window标准。所以现在的X Window并不完全是一个软件,而是一个协定,定义了一个系统所必须具备的功能。任何系统能满足这个协定及符合X协会其它的规范,便可称为X Window,它的源代码公开。因为X Window具有强大的与设备无关结构性,它提供了一组网络通信协议,任何硬件只要提供X协定,便可以执行应用程序显示一群包含图文的窗口,不需要重新编译,这种与设备无关的特性只要是根据X Window标准所开发的应用程序均可在不同的环境下作用,这就大大减少了跨越不同平台之间的编译工作,应用程序更加具有可移植性。

Linux上最常用的X Window是Xfree86,它是MIT的X11R5的移植版,使用Openlook窗口管理系统,所以Xfree86是免费的。Xfree86支持现行所有的PC显示卡,但不一定支持它们的Windows加速特性,比如DirectX 9。

到目前为止,可以支持中文的Linux己不再是凤毛麟角,而且中文应用软件正不断丰富着。但一些商业软件并未完成移植,其中有诸多原因,在此不详述。

低廉性

基于其低廉成本与高度可设定性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及行动装置等。在移动电话上,Linux已经成为与Symbian OS、Windows Mobile系统并列的三大智能手机操作系统之一;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。目前流行的TiVo数位摄影机使用了经过定制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能。

广泛性

采用Linux的超级电脑亦愈来愈多,根据2005年11月号的TOP500超级电脑列表,显示世上最快速的两组超级电脑都是使用Linux作为其操作系统。而在表列的500套系统里,采用Linux为操作系统的,占了371组(即74.2%),其中的前十位者,有7组是使用Linux的。

除了一部分专家之外,大多数人都不自己选择每一样组件或自行设置,而是直接使用Linux套件。

2006年开始发售的SONY PlayStation 3亦使用Linux的操作系统。之前,Sony亦曾为他们的PlayStation 2推出过一套名为PS2 Linux的DIY组件。至于游戏开发商雅达利及id Software,都有为其旗下的游戏推出过Linux桌面版本。此外,Linux Game Publishing亦有专门为Linux平台撰写游戏,并致力于把其他在Windows平台编撰的游戏程序码转携至Linux平台,及为转携游戏提供使用授权。

而一个打算对所有生活在发展中国家孩子提供手提电脑的名为“每孩子皆有一部手提电脑(OLPC)”的项目,正是使用Linux作为缺省的操作系统。

我们不必探讨Linux源代码的开放给我们带来多大诱惑,我们只研究Linux对我们的生活有何帮助。我们在平时只要掌握Linux最基础的应用,以及安装及使用就可以了。对Linux的操作现在发展到了在命令行下操作以及像Windows的桌面系统般的应用。对Linux不是很了解的用户可以选择桌面型Linux安装。

这里把对Linux的一些疑问解答从网上整理一下,贴出来,希望对那些想要了解Linux的朋友有所帮助。

灵活性

Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Window图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。

常量定义

初始定义

宏phys定义了你的机器上的地址转换__virt_to_phys()。这个宏用于把虚拟地址转换为一个物理地址。通常情况下:

phys = virt - PAGE_OFFSET PHYS_OFFSET

解压缩符号

解压缩器的地址地址。由于当你调用解压缩器代码时,通常关闭MMU,因此这里并不讨论虚拟地址和物理地址的问题。通常你在这个地址处调用内核,开始引导内核。它不需要在RAM中,只需要位于FLASH或其他只读或读/写的可寻址的存储设备中。

l ZBSSADDR

解压缩器的初始化为0的工作区的起始地址。必须位于RAM中,解压缩器会替你把它初始化为0,此外,需要关闭MMU。

l ZRELADDR

解压缩内核将被写入的地址和最终的执行地址。必须满足:

__virt_to_phys(TEXTADDR) == ZRELADDR

内核的开始部分被编码为与位置无关的代码。

l INITRD_PHYS

放置初始RAM盘的物理地址。仅当你使用bootpImage时相关(这是一种非常老的param_struct结构)

l INITRD_ⅥRT

初始RAM盘的虚拟地址。必须满足:

__virt_to_phys(INITRD_ⅥRT) == INITRD_PHYS

l PARAMS_PHYS

param_struct 结构体或tag lis的物理地址,用于给定内核执行环境下的不同参数。

内核符号

RAM第一个BANK的物理地址地址。

l PAGE_OFFSET

RAM第一个BANK的虚拟地址地址。在内核引导阶段,虚拟地址PAGE_OFFSE将被映射为物理地址PHYS_OFFSET,它应该与TASK_SIZE具有相同的值。

l TASK_SIZE

一个用户进程的最大值,单位为byte。用户空间的堆栈从这个地址处向下增长。

任何一个低于TASK_SIZE的虚拟地址对用户进程来说都是不可见的,因此,内核通过进程偏移对每个进行进行动态的管理。我把这叫做用户段。任何高于TASK_SIZE的对所有进程都是相同的,称之为内核段。(换句话说,你不能把IO映射放在低于TASK_SIZE和PAGE_OFFSET的位置处。)

l TEXTADDR

内核的虚拟起始地址,通常为PAGE_OFFSET 0x8000。内核映射必须在此结束。

l DATAADDR

内核数据段的虚拟地址,不能在使用解压缩器的情况下定义。

l VMALLOC_START

l VMALLOC_END

用于限制vmalloc()区域的虚拟地址。此地址必须位于内核段。通常,vmalloc()区域在最后的虚拟RAM地址以上开始VMALLOC_OFFSET字节。

l VMALLOC_OFFSET

Offset normally incorporated into VMALLOC_START to provide a hole between virtual RAM and the vmalloc area. We do this to allow out of bounds memory accesses (eg,something writing off the end of the mapped memory map) to be caught. Normally set to 8MB.

构架相关的宏

pram——指定了RAM起始的物理地址,必须始终存在,并应等于PHYS_OFFSET。

pio——是供arch/arm/kernel/debug-armv.S中的调试宏使用的,包含IO的8 MB区域的物理地址。

vio——是8MB调试区域的虚拟地址。

这个调试区域将被位于代码中(通过MAPIO函数)的随后的构架相关代码再次进行初始化。

l BOOT_PARAMS

参见 PARAMS_PHYS.

l FⅨUP(func)

机器相关的修正,在存储子系统被初始化前运行。

l MAPIO(func)

机器相关的函数,用于IO区域的映射(包括上面的调试区)。

l INITIRQ(func)

用于初始化中断的机器相关的函数。

发行版

Linux 主要作为Linux 发行版(通常被称为"distro")的一部分而使用。这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写。它们通常包括了其他的系统软件和应用软件,以及一个用来简化系统初始安装的安装工具,和让软件安装升级的集成管理器。发行版为许多不同的目的而制作, 包括对不同计算机结构的支持, 对一个具体区域或语言的本地化,实时应用,和嵌入式系统,甚至许多版本故意地只加入免费软件。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。

一个典型的Linux发行版包括:Linux内核,一些GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。

目前最著名的发行版有Debian,红帽(redhat)、ubuntu、Suse、Mandriva(原Mandrake)、CentOS、fedora等。

与其他系统的区别

Linux可以与MS-DOS、OS/2、Windows等其他操作系统共存于同一台机器上。它们均为操作系统,具有一些共性,但是互相之间各有特色,有所区别。

目前运行在PC机上的操作系统主要有Microsoft的MS-DOS、Windows、Windows NT、IBM的OS/2等。早期的PC机用户普遍使用MS-DOS,因为这种操作系统对机器的硬件配置要求不高,而随着计算机硬件技术的飞速发展,硬件设备价格越来越低,人们可以相对容易地提高计算机的硬件配置,于是开始使用Windows、Windows NT等具有图形界面的操作系统。Linux是新近被人们所关注的操作系统,它正在逐渐为PC机的用户所接受。那么,Linux与其他操作系统的主要区别是什么呢?下面从两个方面加以论述。

Linux与MS-DOS之间的区别

在同一系统上运行Linux和MS-DOS已很普遍,就发挥处理器功能来说,MS-DOS没有完全实现x86处理器的功能,而Linux完全在处理器保护模式下运行,并且开发了处理器的所有特性。Linux可以直接访问计算机内的所有可用内存,提供完整的Unix接口。而MS-DOS只支持部分Unix的接口。

就操作系统的功能来说,MS-DOS是单任务的操作系统,一旦用户运行了一个MS-DOS的应用程序,它就独占了系统的资源,用户不可能再同时运行其他应用程序。而Linux是多任务的操作系统,用户可以同时运行多个应用程序。

Linux与OS/2WindowsWindows NT之间的区别

从发展的背景看,Linux与其他操作系统的区别是,Linux是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows NT等,都是自成体系,无对应的相依托的操作系统。这一区别使得Linux的用户能大大地从Unix团体贡献中获利。因为Unix是世界上使用最普遍、发展最成熟的操作系统之一,它是七十年代中期发展起来的微机和巨型机的多任务系统,虽然有时接口比较混乱,并缺少相对集中的标准,但还是发展壮大成为了最广泛使用的操作系统之一。无论是Unix的作者还是Unix的用户,都认为只有Unix才是一个真正的操作系统,许多计算机系统(从个人计算机到超级计算机)都存在Unix版本,Unix的用户可以从很多方面得到支持和帮助。因此,Linux做为Unix的一个克隆,同样会得到相应的支持和帮助,直接拥有Unix在用户中建立的牢固的地位。

从使用费用上看,Linux与其他操作系统的区别在于Linux是一种开放、免费的操作系统,而其他操作系统都是封闭的系统,需要有偿使用。这一区别使得我们能够不用花钱就能得到很多Linux的版本以及为其开发的应用软件。当我们访问Internet时,会发现几乎所有可用的自由软件都能够运行在Linux系统上。有来自很多软件商的多种Unix实现,Unix的开发、发展商以开放系统的方式推动其标准化,但却没有一个公司来控制这种设计。因此,任何一个软件商(或开拓者)都能在某种Unix实现中实现这些标准。OS/2和Windows NT等操作系统是具有版权的产品,其接口和设计均由某一公司控制,而且只有这些公司才有权实现其设计,它们是在封闭的环境下发展的。

展望

一个打算对所有生活在发展中国家孩子提供手提电脑的名为每孩子皆有一部手提电脑(OLPC)的项目,正是使用Linux作为缺省的操作系统。

什么是Linux简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

Linux的出现,最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有 Unix操作系统的全部功能,因而开始了Linux雏形的设计。

Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。

Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习 Unix操作系统的人都可以从Linux中获益。

常见问题解答

1、在windows下的软件可不可以正常的运行?

不可以,不过有一个软件叫 wine ,可以模拟运行一部分程序。他的衍生版本可以运行特定方面的软件。比如 cedega ,可以运行很多游戏,CS、WARCRAFT3 、wow 都能,但还是不够完美。比如 wow 里部分插件导致运行缓慢(CS 用 OpenGL 基本完美。当然前提是你的显卡正确安装了驱动,打开了 3D 支持)。

2、哪个杀毒软件支持linux?

Avast!,Mcafee,Kaspersky和ClamAV(自由软件,开源、免费)等。

暂时 linux 还不需要杀毒软件,病毒很少,主要是黑客攻击,注意设置就行了。 比如选择针对桌面设计的版本,来减少过多服务程序导致安全隐患。

3、在Linux是不是可以实现多媒体播放功能(比如听歌看电影)啊?

可以,绝对可以,而且Linux下的软件很早就可以和Windows的媒体播放软件媲美了。

ffmpeg解码器库就是linux下的,Mplayer 也是linux 里的。(注意不是windows 里的那个韩国的KMPlayer ,Linux 里的KMPlayer是一个Mplayer的KDE界面程序)在硬件条件足够的情况下Mplayer对720P、1080P高清的支持也很完美!

ppstream也发布了Linux版本,现在可以在Linux下看网络电视了!

4、QQ可不可以在Linux运行啊?

腾讯官方已发布QQ for Linux (于2009年1月19日发布),但功能尚且比较简单,可以支持屏幕截图。目前不支持群管理,群空间等高级属性。已经可以支持红旗linux桌面版6.0,对最新的suse linux 11.1的支持也非常好。其他的可以选择的开源解决方案还有eva,lumaQQ和pidgin。目前eva的功能较强大。

俄政府将开发系统

媒体报道

北京时间2010年10月28日消息,据国外媒体报道,俄罗斯联邦议会议员伊利亚·庞诺马里夫(ILIA Ponomarev)当地时间周三(27日)表示,俄罗斯政府计划开发自主操作系统,减少对微软的依赖,更好地监管计算机系统安全。

亲自证实

庞诺马里夫在接受媒体采访时说,俄罗斯政府将投资1.5亿卢布(约合490万美元),开发基于Linux的操作系统。《俄罗斯商业日报》之前曾报道称俄罗斯政府将开发自主操作系统。

投稿
非常不爽,删了吧! 相关词条:科学 科技产品 软件 用户 Unix 内核 GNU 路由器 文本编辑器 窗口 MMU 嵌入式 系统 MS-DOS 2 Windows Windows NT cedega WARCRAFT3 ClamAV 多媒体