linux系统是怎么回事?可以简单的介绍下吗?

什么是Linux?什么是操作系统?在了解Linux之前,必须先了解什么是操作系统(OperationSystem,OS)。
那么,首先我们先简单介绍一下什么是操作系统!首先想一下,当我们使用电脑时,屏幕上显示的“咚咚”从何而来?嗯!由显卡和屏幕显示;那么你现在可以通过互联网来阅读这篇文章,这是一个由互联网、网卡、网线以及所有相关电子设备和网络设备完成的任务!如果你想看VCD怎么办?那么就需要光驱、CD、声卡等的支持,这样,一切“工作”的都是“硬件”的工作!这是正确的!正是这个计算机硬件在工作。
那么硬件是如何工作的呢?那是通过“操作系统”来实现的!这个操作系统是你、用户和硬件之间的沟通!换句话说,如果没有操作系统,你的计算机硬件就只是一堆废铁,无法完成任何工作!那么操作系统包含哪些内容呢?简单来说,操作系统主要分为两个东西,一个是“核心”,一个是“核心提供的一堆工具”。
我们根据用户经常使用的Windows电脑来做一个简单的说明。
大家应该都用过Windows电脑中的文件资源管理器吧?那么当您打开文件资源管理器时,它会显示硬盘上的数据吗?这个硬盘中数据的显示是由“核心”帮你完成的。
然而,如果你想让核心显示硬盘上哪个目录的数据,“文件管理器”这个“工具”可以帮助你实现这一点!这是可以理解的吗?接下来,如果您曾经使用过Windows2000或WindowsXP,那就更好了!你应该听说过所谓的“FAT32和NTFS文件格式”吧?在Windows98(Windows的早期版本)中,无法读取或找到WindowsXP的NTFS文件格式的硬盘。
为什么?因为他的“核心”根本就不知道NTFS!因此,即使你有文件管理器,由于核心根本不理解NTFS,文件管理器也无法帮助你实现你想要做的事情!这应该更清楚了,对吧?这是正确的!你的整个硬件都是由内核管理的,如果内核不能识别你的硬件,那么你将无法使用该硬件设备,比如上面提到的NTFS文件格式硬盘!核心是“内核”,它是操作系统的最底层。
它控制整个硬件资源的工作状态。
Linux有自己的核心,Windows也有自己的核心。
所以,当你的系统中加入新的硬件时,如果你的“Kernel”不支持的话,哈哈,新的硬件肯定无法工作,因为控制它的Kernel并没有认识他!你明白这一点吗?!我们先有个大概的了解,后面提到“核心编译”的时候再详细说一下!一般来说,Kernel管理的事务包括:系统调用接口:一些服务与内核通信后,进一步利用硬件资源;Processcontrol:系统流程控制中心,所以核心越小越好;内存管理:控制整个系统的内存。
管理;Filesystemmanagement:文件系统管理,如I/O等!还有对不同文件格式的支持等等。
如果你的核心不能识别某种文件系统,那么你将无法使用该文件格式的文件!例如上面提到的Windows98就不能识别NTFS文件格式的硬盘;Devicedrivers:如上所述,硬件管理是内核的主要任务之一。
当然,设备驱动是核心需要做的事情!幸运的是,现在有一个所谓的“可加载模块”功能,它允许您编辑驱动程序变成模块,因此无需重新编译核心!这一点在后续的核心编译中也会提到!所以!所有的硬件资源都由他管理!当我们想要完成一些工作时,除了使用核心本身提供的功能(比如上面提到的文件管理器)之外,我们还可以使用其他功能。
使用应用软件来实现!例如,你想看VCD视频,对吗?除了Windows提供的媒体播放程序外,您还可以自己安装VCD播放程序来播放VCD!这个播放器程序是一个应用软件,这个应用软件可以帮助你控制核心工作(即播放电影)。
因此,可以说内核是控制整个硬件支持的关键,也是一个操作系统最重要的部分。
在底层,想要整个操作系统更加完善,需要有核心提供的相当丰富的工具,以及核心相关的应用软件的支持!好的!说到这里,你知道Linux是什么吗?呵呵!这是正确的!事实上,Linux是一个操作系统。
这个操作系统包含了最重要的内核以及内核提供的工具!它提供了完整操作系统中最底层硬件控制和资源管理的完整架构。
这个架构继承了Unix的优良传统,所以相当稳定,功能强大!另外,由于这种优秀的架构可以运行在现在的个人电脑(X86系统)上,因此很多软件开发人员都将工作转移到了这种架构上,这意味着大量的应用软件!虽然Linux只是它的核心和核心提供的工具,但是核心、核心工具和这些软件开发商提供的软件的整合使得Linux成为一个更加完整和强大的操作系统!我们可以看到Linux系统和用户之间的关联性如下图所示:图1.用户、用户界面、核心工具、核心和硬件之间的关联性。
大致了解了什么是Linux之后,接下来,我们来谈谈,“为什么说Linux是一个非常稳定的操作系统?”他怎么来的?』从Unix到Linux的历史中,为什么人们常说Linux是一个非常稳定的操作系统?这是因为Linux有一个祖先,那就是Unix家族!在这位前辈的支持下,Linux这个小弟,很快就成为了一个稳定优秀的操作系统!那么,我们来谈谈从Unix到Linux的历史吧!早在Linux出现之前的二十年(20世纪70年代左右),就已经有一个相当稳定和成熟的操作系统了!那就是Linux的老大哥“Unix”!为什么这么说?!这两个人是什么关系?我们在这里和他谈谈吧!众所周知,Linux的内核是由LinusTorvalds于1991年开发的,并发布在互联网上供大家下载。
后来大家都觉得这个小东西(LinuxKernel)相当小巧精致,所以慢慢就有不少朋友投入到这个小东西的研究领域了!但这件小事为何如此伟大?!但为什么每个人都可以免费下载这个东西呢?!嗯!等鸟哥慢慢唬xx....哦不!听我慢慢说!未完成的梦想:贝尔、麻省理工学院和通用电气的“Multics”系统。
早期的计算机与今天的个人计算机不同。
它们不是普通人能触碰的东西,除非是用于军事或者高科技用途。
接触一下这种类型的电脑吧!前面说过,计算机硬件也需要操作系统的配合才能发挥计算机的最佳性能。
然而,在当时,电脑被认为是“奢侈品”,或者更确切地说是“贵重物品”,所以也许可以使用一次。
学校只有一台主机。
的当然,那个时代的所谓大型机仍然无法提供中等的计算能力。
但是,由于只有一台主机,但是想要使用的老师和学生却很多,怎么办?为了解决这个问题,20世纪60年代初,麻省理工学院(MIT)开发了所谓的“兼容分时系统(CTSS)”。
从字面意义上来说,它主要是让主机提供多个终端可以在线访问主机,使用主机的资源。
(顺便说一下,当时的终端本身没有软件,也没有可用的资源,想要使用这些终端,必须在线登录主机,然后才能使用主机的资源进行工作!)大约有30个用户使用该主机在线。
为了让这个分时系统更加强大,1965年左右,贝尔研究实验室(Bell)、麻省理工学院(MIT)和通用电气公司(GE)开始联合开发一个名为Multics的大型系统。
目标是让大型机连接300个以上的用户。
然而,奋斗了四年,该项目还是宣告死亡……哎呀!这是一个失败!(注:Multics的意思是复杂、众多。
)小型文件系统的出现:1969年,KenThompson的小型文件服务器系统在复杂的Multics系统项目中失败了。
当然,贝尔实验室退出了该项目。
项目刚刚解散,曾参与Muitics的贝尔实验室成员KenThompson由于自己的工作需要,需要一个小型操作系统来进行文件访问。
1969年,他使用了DEC公司(数字设备公司)的一台计算机。
PDP-7是一个硬件基准,他设计了一个适合他工作环境的小文件系统,其中还包含他自己开发的一些小工具。
那个系统就是最早的Unix的源头!Ken最初设计这个文件系统时,主要是为了自己方便访问而设计了一个简单的OS,所以他大大简化了原来的Multics系统。
然而,当时Unix这个词还不存在!Unix的正式诞生:1973年,Ritchie等人用C语言编写了第一个正式的Unix核心。
由于汤普森编写的操作系统非常易于使用,因此在贝尔研究实验室内广泛流传,并经过多次修订。
1973年,为了优化这个系统的执行性能,贝尔研究实验室的丹尼斯·里奇等人用编译性能更好的C语言对原来的1969年系统的核心进行了大幅重写,并确定了操作系统的名称为Unix,哈哈!那就是最早的Unix操作系统!不过由于这个操作系统是这群工程师开发的,而且大部分用户都是这方面的工程师,所以导致了后来的Unix系统界面比较难被普通用户接受@_@(注:相对于Multics来说,Unix具有单一含义!)重要的Unix分支:1977年BSD的诞生。
在Unix的早期发展过程中,有一件非常重要的事情,那就是BSD的诞生!由于C语言是高级语言,可以适用于不同的硬件架构,而Unix本身就是用C语言编写的!Unix发布后,伯克利大学(Berkeley)的教授们对这个操作系统相当感兴趣。
在获得Unix的源代码并多次修改后,第一代伯克利软件发行版(BSD)终于于1977年发布。
这个BSD是Unix的一个分支,它的发展对Unix有相当大的影响。
比如Sun后来利用BSD开发的核心开发了自己的商业Unix版本!Unix版本的百家流派:由于C语言是一种非常高级的编程语言,它与硬件没有直接关系。
例如,您的Windows可以也执行C语言!而且由于Unix是用C语言编写的,也就是说只要稍微修改一下程序就可以在不同的硬件架构上运行这个操作系统。
后来,由于Unix的便利性,许多商业公司和学术机构都加入了这个操作系统的研发。
然而,由于Unix的方便和易于重写,许多不同版本的Unix被创建,例如ATT的SystemV、加州大学的BSD版本、IBM的AIX等等。
因为“操作系统的核心(Kernel)必须配合硬件来提供和控制硬件的资源才能很好地工作!””,而在早期,每个生产计算机硬件的公司都没有所谓“协议”的概念,所以每个计算机公司生产的硬件自然是不同的!因此,他们必须开发适合的Unix系统因此,他们自己开发的Unix当然只能匹配他们自己的硬件配置!在其他硬件架构下工作(我们都这么称呼!这种系统和设备“超级计算机”)!由于没有工厂……Unix系统是为个人电脑设计的,所以早期并没有支持个人电脑的Unix操作系统(当然这是因为)。
早期的个人电脑还没有现在这么流行!)。
每个公司都生产了自己的Unix,虽然架构相似,但只能支持自己的硬件。
因此,早期的Unix只能等同于服务器(Server)或者大型工作站(Workstation)!另外,因为版本太多,而且大家都来自Unix同一个祖先,所以当然都称自己为Unix。
好吧,这样一来,很多商业公司自然就会发布类似的软件了,喝!那么自然就会出现一些商业纠纷!真是伤脑筋啊~1984年的GNU和自由软件基金会:Unix的商业问题让很多Unix爱好者感到相当担忧,其中之一就是著名的RichardM.Stallman先生。
他认为Unix是一个非常好的操作系统。
如果每个人都能将自己所学到的东西贡献到这个系统上,那么这个系统将会更加完善!Stallman先生认为,最大的幸福就是让大家都用上他开发的好软件!而且,由于每个人的工作环境(指软件和硬件平台)可能不同,所以他也强调应该有OpenSource的概念,让大家可以分享这个经验!他相信通过OpenSource,很多人将能够帮助测试你的程序,这将使Unix社区变得更加强大。
为了自己的理想,斯托曼实际上在1984年创立了GNU和自由软件基金会(FSF),并创建了许多“自由软件”供公众使用。
此外,他的作品以免费的GNU通用公共许可证(GPL)许可模式向公众开放。
本次FSF的核心理念是“版权制度是推动社会进步的手段,版权本身并不是一项自然权利”。
』如果你对FSF感兴趣或者想更深入的了解GNU,请参考朝阳大学洪朝贵教授的网站,里面有更深入的解释!而且,斯托曼的GNUGeneralPublicLicense总是强调Free这个词!他这样说:“‘自由软件’是自由的问题,而不是价格。
要理解这个概念,你应该想到‘自由言论’,而不是‘免费啤酒’。
‘自由软件’是指用户运行、复制、分发、研究、更改和改进软件的自由”,大意是自由软件并不意味着“免费”。
”指的是具有“自由”的软件。
什么是自由?也就是说,您获得本软件后,可以在不同的计算机平台上对其进行修改、进一步发布和复制。
这无疑是一个好消息!正因为如此,你得到的软件原本可能只能在Unix上运行,但是修改源代码后,你将可以在Linux或Windows上运行!Stallman先生更直接地解释了自由度:你可以根据你想要的任何目的来运行这个Free程序;当您了解了这个免费程序的操作后,您可以将其修改为您想要的样式和功能;您可以重新发布修改后的免费程序来帮助您的朋友;您可以改进这个免费程序并公开发布改进后的程序,造福社区!简单来说,GPL授权有几个特点:任何软件经过GPL授权后,都是自由软件,任何人都可以获得。
同时,还可以获得其源代码(SourceCode);软件获得GPL授权后,任何人都可以修改源代码以适应自己的喜好;另外,修改后的SourceCode应该反馈到网上社区,供大家参考!但请特别注意。
这并不意味着链接到GPL后的软件就不能出售。
这是两个不同的事情!例如,RedHat的官方网站提供了RedHat发布的Linux安装光盘供公众下载,但RedHat本身仍然出售Linux软件包,而且卖得非常便宜!』为什么会这样?呵呵!因为RedHat卖的资料中含有相当数量的编辑过的文档。
虽然可以从网上下载,但是整理这些资料要花这么多时间,当然应该得到一定程度的补偿!你说是啊!所以,请大家注意!并不是说GPL不能用于盈利!这个GNU对后来的Linux产生了深远的影响。
Stallman先生自开发GNU项目以来,主要致力于推出各种方便、优秀的工具软件,例如大家所熟知的Emacs文档编辑器、GCC、BASH等。
..但是,在没有工作平台的情况下如何使用这些软件呢?不过,因为他提倡的自由软件,后来的努力可以很快接触到源代码来开发软件。
这是Linux后来的故事....这是后来的故事,拭目以待吧~1988年图形界面X-Free86项目:给出图形用户界面对图形用户界面(GUI)的需求与日俱增。
1984年,MIT等第三方首先发布了XWindowSystem,并于1988年成立了非营利性的XFree86组织。
所谓XFree86其实就是Xwindowsystem、Free与x86系统架构融合的名称!而这个XFree86GUI界面在1994年Linux核心版本1.0发布时就被集成到了Linux操作系统中!1991年芬兰大学生LinusTorvalds的简报:随后几年,由于计算机硬件行业的强劲运行,基于Intel主导的x86系统架构的个人电脑变得非常流行,因此个人电脑被认为是相当受欢迎的。
热门机器!但此时大多数人仍在使用DOS系列或其他陈旧且需要大量系统资源的操作系统。
这时,芬兰赫尔辛基大学的学生LinusTorvalds做了一件不寻常的事!Linus手头有一个Minix系统(也是Unix的一个分支),他对这个操作系统相当感兴趣!另外,由于他当时正好买了一台386电脑,所以他只想说,嘿!这个Unix太棒了!这么稳定,可以移植到个人电脑(X86架构)上使用吗?!幸运的是,因为Stallman倡导的OpenSource潮流,他得以接触到一些源码,并通过这样的想法,哈哈!他仔细阅读了Unix的核心,去掉了比较复杂的核心程序,改写成可以适用于一般个人电脑的x86系统。
1991年,他终于将hobby的0.02版本放在互联网上分发。
大家都下载了,因为爱好得到了大家的认可,所以不少朋友也加入了工作!终于在1994年,第一个完整的核心版本1.0发布了!并且造成了现在的疫情……因为Linux内核的开发是通过“虚拟团队”来实现的,大家通过互联网获取Linux的核心源代码,精心改造,然后传回Linux社区。
,然后一步步开发完成完整的Linux系统。
至于Torvalds先生,他是这个团体的发起人。
由于大家的共同努力,Torvalds先生将Linux设置为GNU许可模式,这也使所有人受益!企鹅的由来:1994年官方发布Linuxcore1.0时,每个人都要求LinusTorvalds想一个吉祥物。
怪异的托沃兹突然想到小时候去动物园,被企鹅追得满地打滚~甚至还被咬了!既然想不出其他的吉祥物了,那我就用这只企鹅作为吉祥物吧!所以,哈哈!我们现在经常看到的企鹅就是这么来的!------------------------------------------------------------------------------什么是分销?从上面的解释,我们知道Linux是一个“操作系统”。
而且,它是GNU许可模式,它的老大哥就是Unix。
然而,毕竟Torvalds先生维护的Linux只是提供了“核心”和“核心工具”的集合。
毕竟对于需要功能更齐全的操作系统来说还不够完善。
比如你想要一个桌面程序,你就得加入X-Window系统,对吧??如果要架设WWW,就得加服务器软件吧?因此,虽然Linux的核心提供了相当多的支持和工具程序,但终究不足以构成一个完整的操作系统。
幸运的是,由于Linux具有良好的稳定性,可以在基于廉价x86架构的计算机平台上运行,因此吸引了很多软件包厂商和自由软件开发团队在这个Linux核心上开发相关软件,比如著名的sendmail、wu-ftp、apache等。
另外,一些商业公司也发现了这个商机。
因此,这些商业公司或非营利工作组组装了Linux核心、核心工具和相关软件,并添加了自己公司或团队创造性的系统管理模块。
和工具,并发布一套可以完全安装的操作系统。
我们把这个完整的Linux操作系统发行版,或者中文称为“安装包”!当然,由于它是基于GNU架构的,所以各个公司发行的光盘包都可以在网上免费下载。
不过,如果你想要更好的服务,购买这家公司发行的CD也是一个不错的主意!然而,由于Linux公司众多,比如大名鼎鼎的RedHat、OpenLinux、Mandrake、Debian、SuSE等,让很多人感到担忧。
每个发行版都会不同吗?无需担心这一点。
由于每个发行版都是在LinuxKernel下构建的,以开发自己公司风格的发行版,因此每个人都遵守LinuxStandardBase(LSB)的规范。
换句话说,每个发行版其实都是一样的!反正用的是LinuxKernel!只是各个发行版使用的包可能不完全一样。
所以,你可以根据自己的喜好来选择Linux发行光盘!下面列出了几个主要Linux发行商的URL:RedHat::

请大家推荐一本有关linux的教材

《Linux编程(第4版)》是一本适合初学者了解Linux编程基本概念和技术的经典入门书籍。
本书详细介绍了Linux操作系统的基础知识,包括系统调用、文件系统和网络编程。
《和Amyung一起学Linux》是一本适合对Linux感兴趣的入门读者的畅销新书。
本书通过深入浅出的讲解,帮助读者快速学习Linux的基本操作和命令。
阿明老师凭借自己丰富的经验,为读者提供了许多实用技能。
《深入理解编程:使用Linux汇编语言》是一本新的畅销书,深入探讨了Linux汇编语言的使用。
对于想要深入了解Linux底层实现机制的读者,本书提供了详细的指导。
《深度Linux内核架构》是一本适合想要深入了解Linux内核的结构和机制的读者的经典书籍之一。
本书不仅介绍了内核的体系结构,还详细解释了各个组件的功能和工作原理。
《LinuxShell脚本简介》是一本新书,为读者提供了shell脚本的全面指南。
本书从基本的shell命令开始,逐步探索更复杂的脚本技术,帮助读者熟悉shell编程的本质。
《Linux命令行与Shell脚本编程百科全书(第2版)》是一本全面介绍Linux命令行和Shell脚本编程知识的经典书籍。
无论您是初学者还是经验丰富的开发人员,本书都可以提供宝贵的指导。
《LinuxShell脚本指南(第二版)》是一本详细介绍shell脚本高级技术的新书。
本书不仅涵盖了基本的脚本知识,还介绍了如何编写高效且可维护的shell脚本。
这本畅销新书《Linux就是这样》帮助读者以舒适有趣的方式快速学习Linux的基本操作和常用命令。
书中有丰富的示例,可以帮助读者更好地理解Linux的工作原理。
『ARMLinux内核源代码分析』是一本新的畅销书,对基于ARM架构的Linux内核源代码进行了深入分析。
本书是想要深入了解ARM平台上Linux内核实现机制的读者的必读之作。
《Linux系统架构与应用技术》是一本新书,为读者提供Linux系统架构与应用技术的全面指南。
无论您是系统管理员还是开发人员,本书都可以提供实用的指导。
畅销经典《ForFun:Linux之父Linus自传》,由Linus本人从头到尾揭示了Linux操作系统的发展历程。
对于那些对Linux历史感兴趣的人来说,本书提供了宝贵的视角。