目录
一、Unix操作系统
1、为什么要讲Unix?
在20世纪70年代初问世一个叫做Unix的操作系统,早于linux20年诞生。因为Linux内核的设计借鉴了Unix操作系统的思想,所以Linux在很多方面与Unix非常相似,比如说命令行操作、文件系统层次结构、程序的安装和管理等。由于Linux与Unix之间有着密切的联系可以说Linux是Unix的一种衍生系统,因此在深入学习linux的同时也将简单了解一下Unix发展史。
2、Unix发展史
2.1、早期计算机存在的问题
早期的计算机体积庞大,制造和维护成本极高,只有政府和大型研究机构才能负担得起。当时输入设备只有卡片阅读机,输出设备只有打印机,也没有批处理操作系统导致编写程序异常困难,程序员需要将程序相关信息在读卡器上打洞,再插入卡片阅读机中将信息读入主机进行运算,一旦读卡器打错洞就要重新在新打卡器上打洞,再加上主机少,用户多等问题导致等待消耗时间长。
2.2、CTSS系统诞生
随着硬件与操作系统的不断改良,键盘诞生了输入不用再靠打洞器,但仍然存在主机少,用户多等排队问题。在20世纪60年代初期麻省理工学院开发了分时操作系统(Compatible Time-Sharing System,CTSS),它可以实现一台主机多个终端机连接进入主机,此时的终端机只有输入和输出功能无法进行任何的运算,较为先进的主机也最多只能提供30台左右的终端机进行连接。
2.3、Multics计划
为了更加强化大型主机功能,使主机资源可以提供更多使用者来利用,所以在 1965 年前后, 由 贝尔实验室(Bell)、麻省理工学院(MIT)及奇异公司(GE)共同发起了 Multics 的计划, Multics 计划目的是想要让大型主机可以达成提供 300 个以上终端机联机使用。 到了1969 年前后,计划进度落后,资金也短缺,所以计划虽然继续在研究,但贝尔实验室还是退出了该计划的研究工作。Kenneth Thompson和Dennis Ritchie都曾参加过交互方式分时系统Multics的设计,而开发该系统所使用的工具是CTSS。这两个系统在操作系统的发展过程中都产生过重大影响。
2.4、Unics诞生
Kenneth Thompson由于个人需要希望开发一个小的操作系统,恰巧公司内有一部 DEC(Digital Equipment Corporation)公司推出的PDP-7 刚好没人使用,于是他就利用妻女去美西探亲的一个月时间,对这台主机操作系统核心程序进行编写。他以汇编语言(Assembler)写出了一组核心程序,同时包括一些核心工具程序,以及一个小小的文件系统,将该系统命名为Unics2.。
2.5、Unix系统诞生
由于Kenneth Thompson写的Unics实在太好用了,所以在贝尔实验室内部广为流传,并且多次经过改版。但是因为Unics是以汇编语言写的,高度依赖硬件,所以每次安装到不同的机器上都需要重新编写汇编语言。后来Thompson和Ritchie 合作想将Unics改用更高级的程序语言来编写,从而提高可移植性。他们先选择了BCPL(简称B语言),然后又尝试PASCAL,发现编译出来的内核性能都不是很好,因为这些语言都不太贴近硬件操作。于是,两人(主要是Dennis Ritchie)决定自己开发一套新的语言:这就是大名鼎鼎的 C 语言。
1973年,Dennis Ritchie 用C 语言重写与编译Unics的内核,最后发行出Unix的正式版本。“重写”说起来简单,实际上并不是简单的汇编到C语言的翻译,这里边包含了很多的发明和创造。重写过的Unix很快就流行起来,此后便一直应用于生产领域。一款与世界上第一块半导体存储器诞生于同一时代的产物,完成的计算量比所有其他分时系统加起来的总和还要多的经典操作系统——1973年,Unix正式诞生。
2.6、Unix版权宣告
由于Unix的强大性能和高度可移植性且没有版权的纠纷,很多商业公司都开始了Unix操作系统的发展,UNIX版本种类的剧增以及它们之间差别的扩大,导致很多大用户呼吁对其进行标准化。于是各大供应商为建立Unix标准而展开了斗争,后来被称为“Unix之战”。
拥有贝尔实验室的美国电话电报公司(AT&T)创造了Unix,当他们开始认识到Unix的价值时,源代码早已外散。尽管他们试图用System V建立新的Unix标准,并且还与领先的BSD Unix供应商SunMicrosystems于1987年开始开发统一系统。遗憾的是,AT&T与Sun联合开发的BSD – System V,在Unix各“开放”版本之间的商业竞争中败下阵来。1993年,AT&T将Unix版权卖给Novell。
2.7、Minix系统诞生
20世纪80年代,由于AT&T所有的UNIX版权的限制,没有核心原始码的大学教授无法教导学生认识Unix,因此荷兰的Andrew S. Tanenbaum教授决定写一个不包含任何AT&T源代码的UNIX系统,名为MINIX(即小型的UNIX),并开放全部源代码给大学教学和研究工作,Minix于2000年重新改为BSD授权,成为自由和开放源码软件,为全球注册商标。
Minix作为Unix的变种,彼时的Minix正凭借低廉的价格和简易的操作在大学大行其道。 Minix由于过于短小精悍,只能运行这一种机器,其他机器没有驱动。Andrew的学生就写了好多好用驱动来扩展Minix。可是,教授Andrew却觉得自己的操作系统要保持纯洁,不能有其他的代码来源,所以minix系统没有广为流传,由于该系统只有Tanenbaum教授独自维护因此后来就不了来之。
二、Linux操作系统
1、Linux系统起源
MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个。
拥有自己的PC的Linus却不能将Minix运行在自己的电脑上。Linus也不得不走上了他无数前辈的道路,不让用,不给用,那就自己写一个操作系统来用。仅仅两个月后,一个“千疮百孔但却碰巧可以使用”的磁盘驱动程序和一个小到不能再小的文件系统就诞生了,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0。
2、GNU计划
理查德·斯托曼(Richard Stallman)认为所有软件都是人类智慧和思想的结晶。软件应该自由的让人们使用。1983年,Stallman发起了“GNU(GNU’s Not Unix的递归缩写)”计划,目的是创建一套完全自由的操作系统,以“重现软件界合作互助的团结精神”。
斯托曼一开始就参考Unix上面运行的程序,依据这些软件的作用开发出相同功能的软件。后来随着GNU软件被越来越多人熟知,使用者发现GNU软件与原有UNIX软件相差无几,转而使用GNU软件逐渐让该项目打开了知名度。
GNU编写了很多自由免费的软件,可是这些免费软件却运行在不自由的Unix上,这真是一个巨大的讽刺。Stallman苦于没有操作系统,芬兰的那边,Linus只有一个操作系统内核而没有应用软件。于是,他们在各自的领域奋斗多年之后,命运终于安排他们走到了一起,Linus率领Linux加盟Stallman的GNU计划,于是Linux与GUN堪称是软件界的天作之合。
3、Linux版本的衍生版本
3.1、为什么Linux有那么多版本
由于Linux是完全免费开源且源码公开可自定义,因此开发者会根据不同使用场景和需求会对linux进行一个二次开发,Linux更像是一个蛋糕胚,用户根据自己的喜欢做成不同口味的蛋糕。Linux就是一个内核,他无法独自使用和工作,需要搭配shell和应用软件等进行组合最终形成操作系统。
3.2、Centos
CentOS是(Community Enterprise Operating System)的缩写,也叫做社区企业操作系统。是企业Linux发行版Red Hat Enterprise Linux(以下称之为RHEL)的再编译版本(是一个再发行版本),而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。
- Linux版每两年发行一次,每个版本的系统会提供10年的安全维护支持。
- Stream版为滚动更新版,意味着没有固定版本号,是动态更新具体的内容。
- CentOS在2014初,宣布加入RED HAT,目前centos已经逐渐停服。
3.3、Redhat
Red hat企业发行的linux最早于2000年发布,Red Hat Enterprise Linux(简称RHEL)是针对商业市场的Linux发行版。Centos就是RHEL的克隆版。不同于Centos,Red Hat是付费才可以使用,并能得到付过费用的服务和技术支持和版本升级。
Redhat有两大Linux产品系列:免费的Fedora Core系列、收费的Enterprise系列
3.4、Ubuntu
Ubuntu 是由南非人创办的基于Linux的操作系统,于2004年10月公布Ubuntu的第一个版本。Ubuntu适用于笔记本电脑、桌面电脑和服务器,特别是为桌面用户提供尽善尽美的使用体验。Ubuntu几乎包含了所有常用的应用软件。用户可以下载、使用、分享未修改的原版Ubuntu系统,并获得社区的技术支持,无需支付任何许可费用。
Ubuntu提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适合商用。Ubuntu社区承诺每6个月发布一个新版本,以提供最新最强大的软件。
4、Linux系统优点
4.1、硬件兼容性极好
Linux的内核大部分是用C语言编写的,并采用了可移植的Unix标准应用程序接口,所以它支持如i386、Alpha、AMD和Sparc等系统平台,以及从个人电脑到大型主机,甚至包括嵌入式系统在内的各种硬件设备。我们可以把 Linux 放在 U 盘、光盘等存储介质中,也可以在嵌入式领域广泛应用。
4.2、完善的网络协议
Linux内置了很丰富的免费网络服务器软件、数据库和网页的开发工具,如Apache、Sendmail、VSFtp、SSH、MySQL、PHP和JSP等。近年来,越来越多的企业看到了Linux的这些强大的功能,利用Linux担任全方位的网络服务器。支持几乎所有的网络协议及开发语言
4.3、稳定且安全
由于linxu采用模块化的设计,即使一个进程崩溃,它通常不会影响整个系统,而是被系统隔离,所以 Linux在崩溃处理和资源管理方面表现出色。其次Linux对资源的管理更为高效,能够更好地分配系统资源,防止某个应用程序占用过多的内存或处理器资源导致系统崩溃。
由于Linux 开放系统源代码并将所有代码放在网上,再加上linux存在众多的个人、团体参与其中包括社区有很多爱好者一同维护,有什么缺陷和漏洞很快就会被发现,从而成就了它的稳定性和安全性。
4.4、可定制化
Linux是一个开源平台,用户可以完全控制系统并自定义其外观、桌面环境、脚本等。Linux系统还支持许多编程语言和开发工具。
5、Linux系统缺点
5.1、图形化界面生态不完善
目前Linux操作系统仍然通过指令来对终端进行管理和操控,可以使用的图形化软件较少且功能不完善,存在部分功能可以通过图形化界面完成但另外一部分同年只能通过指令实现,导致Linux操作难度相对window更大,学习成本更高,不适合所有人使用。
5.2、缺乏技术支持
由于Linux开源免费的特性所以没有特定的支持厂商,如果在日常使用中遇到问题无法由特定厂商进行帮助或解决,所以你遇到的问题基本只能通过网络上的案例或者通过求助相关技术人员进行解决。
6、Linux的应用领域
6.1、服务器
- Web服务器:Linux是部署网站和在线应用程序最受欢迎的操作系统,例如Apache和NGINX。
- 数据库服务器:MySQL、PostgreSQL和Oracle等数据库管理器经常在Linux服务器上运行。
- 邮件服务器:Postfix、Dovecot和Exim等邮件服务器在Linux系统上非常普遍。
6.2、嵌入式
- 路由器和交换机:许多家庭和企业网络设备在Linux上运行,因为它轻便且稳定。
- 智能设备:智能电视、冰箱和其他智能家居设备中经常使用Linux。
- 手机:我们熟知的安卓和iphone分别是基于linux和unix系统。
6.3、云计算
- 虚拟专用服务器 (VPS):Linux是托管云应用程序和服务的VPS的主要操作系统。
- 容器:Docker等容器化平台允许在Linux上隔离和管理应用程序。
- 分布式系统:Hadoop和Kubernetes等分布式计算框架在Linux系统上运行。
三、声明
本片文章主要是自我学习过程所做记录,如果内容存在问题欢迎随时指出,后期将进行修改。