1、什么是操作系统
操作系统(Operating System)简称OS,是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在裸机上的最基本的软件系统,任何其他软件都必须在操作系统的支持下才能运行;
为了更好的利用计算机资源,特别是CPU,让各个应用程序有序的使用计算机资源,我们需要一个管理程序,操作系统应运而生,操作系统可以对硬件接口进行封装以供应用程序调用,调度应用程序合理的使用硬件资源;
2、什么是Linux
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统;被广泛的应用于服务器、安卓系统等其他各种设备系统中所使用;
Linux开源免费、兼容UNIX系统、可自由传播,无任何商业化版权制约;
Linux系统的核心是内核,内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件;
POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX),缩写为POSIX,POSIX标准定义了操作系统应该为应用程序提供的接口标准;
POSIX标准意在期望获得源代码级别的软件可移植性。换句话会所,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其他的POSIX操作系统(即使是来自另一个厂商)上编译;
总结:完成同以功能,不同内核提供的系统调用(也就是一个函数)是不同的,例如创建进程,Linux下是fork函数,Windows下是Creatprocess函数,如果在Linux下写一个程序,用到fork函数,那么这个程序该怎么往Windows上移植呢?你需要把源代码里的fork都改成CreatProcess然后重新编译才可以;
POSIX标准的出现就是为了解决这个问题,Linux和Windows都要实现基本的POSIX标准,例如:Linux把fork函数封装成posix_fork,Windows把CreatProcess也封装成posix_fork,都声明在unistd.h里,这样,程序员在编写普通应用的时候,只用包含unistd.h,调用posix_fork函数,这样程序就在源代码级别可移植了;
3、Unix及Linux的历史
Unix系统于1969年在AT&T的贝尔实验室诞生,1973年Ken Thompson与Dennis Ritchie感到用汇编语言移植太过于头痛,他们想用高级语言来完成第三版,于是整合了BCPl语言形成了B语言,后来B语言还是不能满足要求,于是就改良了B语言,这就是今天大名鼎鼎的C语言,于是他们成功的用C语言重写了Unix的第三版内核,至此,Unix操作系统修改、移植相当便利,而Unix和C完美地结合为一个统一体,C与Unix很快称为世界的主导;
1974年Unix第五版以“仅用于教育目的“的协议,提供给各大学作为教学之用,成为当时操作系统课程中的范例教材,各大学公司开始通过Unix源码对Unix进行各种改进和扩展,于是,Unix开始广泛流行;
1978年,对Unix而言是革命性的一年,因为学术界的老大伯克利大学推出了一份以第六版为基础,加上一些改进和新功能而成的Unix,这就是著名的1 BSD,开创了Unix的另一个分支:BSD系列,同时期,AT&T成立USG将Unix变成商业化的产品;
1979年发布的Unix第七版被称为是”最后一个真正的Unix“,这个版本的内核只有40K bites;
1982年,AT&T发布新的商业化版本,并且不再包含源代码,不再将Unix源码授权给学术机构,一份unix卖4W美元;
同期BSD开始流行,各个硬件厂家基于BSD基础开发各自的系统
1984年,Richard stallman创立了GNU,计划开发一套与Unix相互兼容的软件,1985年,Richard Stallman又创立了自由软件基金会(Free Software Foundation)来为GNU计划提供技术、法律以及财政支持,尽管GNU计划大部分时候是由个人自愿无偿贡献,但FSF有时还是会聘请程序员帮助编写;
GNU是一个自由的操作系统,其内容完全以GPL方式发布,GNU是GNU’s Not Unix的递归缩写;
GPL(通用公共许可证)GNU General Public License,保证自由软件对所有用户是自由的,自由不是指价格;
1984年同样是由于Unix版权和源代码限制等问题,大学教授Andrew Tanenbaum,开发了Minix系统用于教学;
1991年 Linus Torvalds基于Minix系统开发了第一版Linux内核,但是必须在有Minix的机器上编译以后才能使用,并公开了源代码,让很多人加入了Linux的内核开发,几乎一两周就有新版或修正版出现;
1993年Linux1.0发布,并转向GPL版权协议,1994年3月发布第一个商业版;
Linux内核并不是GNU计划的一部分,GNU操作系统等于Linux内核、GNU系统软件、其他应用程序;
4、Linux的发行版
image.png
Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表;
Redhat是Linux非常出名的发行版,很多发行版都是基于这个分支的,2002年,Redhat推出面向企业的新的发行版Red Hat Enterprise(简称RHEL)而之前的Redhat不再发行,但是它并没有消失,而是由另一个发行版延续,这就是著名的Fedora,其实就是Redhat的先行版,因为RHEL上的很多新技术都要现在Fedora上测试,如果稳定,再移植到RHEL上,总的来说,Fedora这个发行版也是十分稳定和秀秀的;
RHEL是Redhat公司推出的一款针对企业的发行版Linux,可以免费下载使用,但是要想获得官方授权,就必须要购买授权协议(也就是所谓的服务),而这个服务费并不便宜,RHEL在没有获得授权的情况下不能使用yum工具,而CentOS可以免费使用yum工具;
CentOS是基于RHRL的源代码编译而来的,只是稍微改了一下,因为Redhat是基于GNU的,它遵守GPL协议,所以会发布源代码,CentOS是免费的;
5、Linux系统主要特性
基本思想:第一、一切皆文件;第二、每个软件都有确定的用途;其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件;
完全免费、完全兼容POSIX标准、多用户,多任务、良好的界面、支持多平台;
6、GNU
GNU是一个自由的操作系统,其内容完全以GPL方式发布,GNU是GNU’s Not Unix的递归缩写;
7、GPL
GPL(通用公共许可证)GNU General Public License,保证自由软件对所有用户是自由的,自由不是指价格;