| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux的发展及介绍 -> 正文阅读 |
|
[系统运维]Linux的发展及介绍 |
?一、Linux的产生与发展 1.1 Linux的产生 一个名叫Linus Torvalds 的芬兰大学生想要了解Intel的新CPU386。他认为比较好的学习方法是自己编写一个操作系统的内核。出于这种目的,加上他对当时Unix 变种版本(即Minix)对于80386类机器的脆弱支持十分不满,他决定要开发出一个全功能的、支持POSIX标准的、类Unix的操作系统内核,该系统吸收了BSD和System V的优点,同时摒弃了它们的缺点。Linus独立把这个内核开发到0.02 版,这个版本已经可以运行gcc、bash 和很少的一些应用程序。这些就是他开始的全部工作了。后来,他又开始在因特网上寻求广泛的帮助。 1.2 Linux的发展 Linux操作系统的诞生、发展和成长过程依赖于以下五个重要支柱:UNIX操作系统、MINIX操作系统、GNU计划、POSIX标准、Internet网络。 (1)UNIX操作系统 Linux 操作系统是UNIX 操作系统的一个克隆版本。UNIX 操作系统是美国贝尔实验室的Ken.Thompson和Dennis Ritchie 于1969 年夏在DEC PDP-7 小型计算机上开发的一个分时操作系统。Ken Thompson 为了能在闲置不用的PDP-7 计算机上运行他非常喜欢的星际旅行(Space travel)游戏,于是在1969 年夏天乘他夫人回家乡加利福尼亚渡假期间,在一个月内开发出了UNIX 操作系统的原型。当时使用的是BCPL 语言(基本组合编程语言),后经Dennis Ritchie 于1972 年用移植性很强的C语言进行了改写,使得UNIX 系统在大专院校得到了推广。 (2)MINIX操作系统 MINIX 系统是由Andrew S. Tanenbaum(AST)开发的。AST 是在荷兰Amsterdam 的Vrije 大学数学与计算机科学系统工作,是ACM 和IEEE 的资深会员(全世界也只有很少人是两会的资深会员)。MINIX 是他1987 年编制的,主要用于学生学习操作系统原理。到1991 年时版本是1.5。目前主要有两个版本在使用:1.5版和2.0 版。当然目前MINIX 系统已经是免费的,可以从许多FTP上下载。 对于Linux 系统,他后来曾表示对其开发者Linus的称赞。但他认为Linux的发展很大原因是由于他为了保持MINIX 的小型化,能让学生在一个学期内就能学完,因而没有接纳全世界许多人对MINIX的扩展要求。因此在这样的前提下激发了Linus 编写Linux 系统。当然Linus 也正好抓住了这个好时机。 作为一个操作系统,MINIX 并不是优秀者,但它同时提供了用C 语言和汇编语言编写的系统源代码。这是第一次使得有抱负的程序员或hacker 能够阅读操作系统的源代码。在当时,这种源代码是软件商们一直小心守护着的秘密。 (3)GNU计划 软件产业在70年代成就了两位针锋相对的领袖人物,来自哈佛大学的比尔·盖茨和Richard M.Stallman。前者宣布了Copyright(版权)时代的到来,并构建了微软帝国的辉煌;后者于1984年创立自由软件体系GNU,拟定普遍公用版权协议(GeneralPublicLicense,简称GPL),今天Linux的成功就得益于GPL协议。 所有GPL协议下的自由软件都遵循着Richard M. Stallman的"Copyleft"(非版权)原则:即自由软件允许用户自由拷贝、修改和销售,但是对其源代码的任何修改都必须向所有用户公开。 GNU计划和自由软件基金会FSF(the Free Software Foundation)是由Richard M. Stallman 于1984 年一手创办的。旨在开发一个类似UNIX 并且是自由软件的完整操作系统:GNU 系统(GNU 是"GNU's Not Unix"的递归缩写,它的发音为"guh-NEW")。 各种使用Linux 作为核心的GNU 操作系统正在被广泛的使用。虽然这些系统通常被称作"Linux",但是Stallman 认为,严格地说,它们应该被称为GNU/Linux系统。 到上世纪90 年代初,GNU 项目已经开发出许多高质量的免费软件,其中包括有名的emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些软件为Linux 操作系统的开发创造了一个合适的环境。这是Linux 能够诞生的基础之一,以至于目前许多人都将Linux 操作系统称为“GNU/Linux”操作系统。 (4)POSIX标准 POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该标准是基于现有的UNIX 实践和经验,描述了操作系统的调用服务接口。用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植和运行。它是在1980 年早期一个UNIX 用户组(usr/group)的早期工作基础上取得的。该UNIX 用户组原来试图将AT&T 的System V 操作系统和BerkeleyCSRG 的BSD 操作系统的调用接口之间的区别重新调和集成。并于1984 年定制出了/usr/group 标准。 在90 年代初,POSIX 标准的制定正处在最后投票敲定的时候,那是1991-1993 年间。此时正是Linux刚刚起步的时候,这个UNIX 标准为Linux 提供了极为重要的信息,使得Linux 能够在标准的指导下进行开发,并能够与绝大多数UNIX 操作系统兼容。在最初的Linux 内核源代码中就已经为Linux 系统与POSIX 标准的兼容做好了准备工作。在Linux 0.01 版内核的/include/unistd.h 文件中就已经定义了几个有关POSXI 标准要求的符号常数,而且Linus 在注释中已写道:“OK,这也许是个玩笑,但我正在着手研究它呢”。 (5)Internet 网络 Internet是linux开发、交流、发展的信息和资源的交流平台。 二、Linux与Mac、Windows的比较 2.1 Linux的特点1.模块化程度高 Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。 2.源码公开 由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。任何人、任何组织只要遵守GPL条 款,就可以自由使用Linux 源代码,为用户提供了最大限度的自由度。这一点也正投嵌入式系统所好,因为嵌入式系统应用千差万别,设计者往往需要针对具体的应用对源码进行修改和优化, 所以是否能获得源代码 对于嵌入式系统的开发是至关重要的。加之Linux的软件资源十分丰富,每种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。这一切就使设 计者在其基础之上进行二次开发变得非常容易。另外,由于Linux源代码公开,也使用户不用担心有“后闸”等安全隐患。 同时,源码开放给各教育机构提供极大的方便,从而也促进了Linux的学习、推广和应用。 3.广泛的硬件支持 Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。 由于世界范围内有众多开发者在为Linux的扩充贡献力量,所以Linux有着异常丰富的驱动程序资源,支持各种主流硬件设各和最新的硬件技术,甚至可在没有存储管理单元MMU 的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。 4.安全性及可靠性好 内核高效稳定。Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。 Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。 5.具有优秀的开发工具 开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状 态,便于监视和调试程序。在线仿真器的价格非常高,而且只适合做非常底层的调试。如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。 6.有很好的网络支持利文件系统支持 Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。目前,Linux几乎支持所有主流的网络硬件、网络协议和文件系统,因此它是NFS的一个很好的平台。另一方面,由于Linux有很好的文件系统支持(例如,它支持Ext2、FAT32、romfs等文件系统),是数据各份、同步和复制的良好平台,这些都为开发嵌入式系统应用打下了坚实的基础。 7.与UNIX完全兼容 目前,在Linux中所包含的工具和实用程序,可以完成UNIX的所有主要功能。但由于Linux不是为实时而设计的,因而这就成了Linux在实时系统中应用的最大遗憾。不过,目前有众多的自由软件爱好者正在为此进行不懈的努力,也取得了诸多成果 2.2 Linux系统的优缺点Linux的优点: 稳定性和高效性:因为 Linux 是由 Unix 发展而来,因此 Linux 与 Unix 有许多相似之处,不只是用户接口和操作方式,Linux 还继承了 Unix 卓越的稳定性和高效性。对于使用 Linux 作为操作系统的服务器,连续运行一年不宕机是相当平常的事情。 低配置要求:Linux 对硬件的要求很低,它可以在数年前的电脑上很流畅的运行。使用 Windows,则需要不断升级机器的硬件。 免费或者少许费用:Linux 基于 GPL,因此任何人可以免费使用或者修改其中的原代码。只有在选择某些厂商制作的 Linux 的发行版时,才会需要一点点费用。强大的支持:大量的 Linux 爱好者会进行交流讨论,并且开发分享一些好的软件,有非常开放的使用氛围。 安全性:Linux 拥有相当庞大的用户和社区支持,因此能很快发现系统漏洞,并迅速发布安全补丁。真正的多用户:Linux实现不同的用户共同登录系统,并且资源分享比较公平。而不是像Windows那样的伪多用户操作系统,如果需要登录更多的用户,要么退出当前用户,要么向微软购买多用户授权。 Linux 还有许多其它优点,如强大的网络支持、方便的控制台操作等等,虽然整体上而言 Linux 做得很好,但它依然还是存在一些不足之处。 Linux 的缺点:没有特定的支持厂商:因为 Linux 上面的软件都是免费发行的,所以自然不会有售后服务之类的支持。 图形界面不够好:这恐怕是影响 Linux 桌面端普及的最重要原因了。但随着时间的流逝,X-window 也变得越来越好用,越来越优秀了。目前各大Linux 发行版,都能很好地做为桌面端计算机使用。 三、Linux未来展望 3.1面临的威胁感谢开源机制,Linux始终能够作为一个开源项目,企业才无法像以前那么独断专行。那除了企业,现在什么才是Linux所面临的最大威胁呢? 没人会真的认为Linux会被版权欺诈或诉讼所威胁,更不会因此从OS版图上消失。类似的最大一起诉讼案,SCO Group公司控告IBM案,被广泛解释为间接对Linux的攻击,也最终以悲惨的失败而告终Coggin也倾向于该观点:“依靠巨大的开发者网络和全球范围内的推广传播,Linux取得了巨大成功,这意味着它具有很强的韧性。尽管专利威胁一直都在增加,正如许多科技公司最近所做的那样,但是看起来专利诉讼并不会对Linux产生任何实质性的威胁。” 除此以外,其他类似开源产品的竞争,甚至更加自由化的协议(例如各式各样的BSD们),目前为止,都没有真正达到能够危及淘汰Linux的程度。 3.2未来展望毫无疑问,无论从哪个层面来看,Linux现在都正处在关键的岔路口,它将去往何方,又将付出怎样的代价,都值得探讨。 Linux最明显的未来之路,首先,它不仅仅是一块基石,或者说不仅仅是一种建立基础设施的途径,其次,它应当减少过多的产品形式。最后,真正的革新,不仅仅是拓展Linux本身,还要拓展其作为发现问题解决问题的创新办法,目前还很少有人如此对待Linux,要想真正做到这一点,除了呼吁更多的人改变对Linux的看法,还必须打破技术壁垒,将眼光放得更长远。 对此,Coggin说道:“Linux正在逐渐成为一个更加成套或灵活的操作系统,进而超越其作为一个基础设施平台的作用。我们看到,开发者和架构师们正在使用Linux建立新一代解决方案,创造出新一代的企业架构。”这些工作中的大部分已经开始付诸实施,他说道,包括“云计算、大数据、移动领域以及社交网络等多个方面”。 Gillen也同意上述观点,Linux“即将成为公共云基础设施中非常关键的一个部分,由此,Linux确保了它在现代工业中能够长期发挥作用。”Baker说道,“Linux已经在运行着云业务,这是毫无疑问的,它需要巩固自己作为基础设施平台的位置 —— 这意味着它需要时刻保持最新的技术领先优势,例如ARM服务芯片、超大规模集成电路、网络设计,以及所有的软件设计数据中心。”上述这些工作应当可以作为开源系统硬件设计(例如开源计算机项目)的有效补充。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:59:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |