一、计算机操作系统简介
操作系统的定义:
操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间。
操作系统的内核的定义:
操作系统的内核是一个管理和控制程序,负责管理计算机的所有物理资源,
其中包括文件系统、内存管理、设备管理和进程管理。
操作系统、硬件、软件的关系
操作系统=所有驱动+对驱动的管理+为应用软件提供可以使用的接口
内核=所有驱动
驱动组成:字符设备(串口)、块设备(u盘)、网络设备
内核是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能。
Linux历史及使用场景
Linux诞生90年代,仿制Unix操作系统。
Linux是免费的,开源的
Unix是收费的,封闭的。
Linux在逐步替代Unix。
Linux使用场景:服务器操作系统,移动设备(安卓底层就是linux,平板电脑),路由器(WIFI),交换机,智能家居,Java程序开发
Linux主要发行版:
CENTOS、RHEL、FEDORA、UBUNTU、SUSE
Linux内核版本:Linux内核运维开发小组,源码在一定程度上不是开源的。
Linux发行版本:由各大互联网/软件公司定制。外围的样式功能的源码完全开源。一个内核版本是有多种多样的发行版本。
Ubuntu:以强大的桌面应用为主,吸收不少Windows用户。 因为桌面应用会在一定程度上大量占用系统资源,开发。服务器部署上,不会优先选择Ubuntu。
CentOS:对服务器性能进行了一定程度的优化,性能比较高,比较稳定。
服务器操作系统的优选CentOS
linux不同发行版本的历史(了解补充知识)
Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。
下面介绍一下各个发行版本的特点:
Redhat,应该称为Redhat系列,包括RHEL(Red Hat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多 的Linux版本,这个版本的特点就是使用人群数量大,资料非 常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管 理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用, 但是Fedora Core的稳定性较差,最好只用于桌面应用。
Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经 过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资 料也很丰富,有很多支持的社区,有问题求教也有地方可去。
Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是 一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
Linux发行版 (列表)
基于Debian
▪ Debian ▪ Ubuntu ▪ Linux Mint
▪ Knoppix ▪ MEPIS ▪ sidux
▪ CrunchBang Linux ▪ Chromium OS ▪ Google Chrome OS
基于Red Hat
▪ Red Hat Enterprise Linux ▪ Fedora ▪ CentOS
▪ Scientific Linux ▪ Oracle Linux
基于Mandriva
▪ Mandriva Linux ▪ PCLinuxOS ▪ Unity Linux
▪ Mageia
基于Gentoo
▪ Gentoo Linux ▪ Sabayon Linux ▪ Calculate Linux
▪ Funtoo Linux
基于Slackware
▪ Slackware ▪ Zenwalk ▪ VectorLinux
其它
▪ SUSE ▪ Arch Linux ▪ Puppy Linux
▪ Damn Small Linux ▪ MeeGo ▪ Slitaz
▪ Tizen ▪ StartOS
二、*软件-GNU和GPL
*软件:根据*软件基金会的定义,*软件是一种可以不受限制地*使用、复制、研究、修改和分发的软件。可以买卖。这方面的不受限制正是*软件最重要的本质。 要将软件以*软件的形式发表,通常是让软件以“*软件授权协议”的方式被分配发布,以及公开的软件原始码。
GUN
GNU:是“GNU is Not Unix”的递归缩写。即GNU计划。
GPL
GPL是是一个广泛被使用的*软件许可协议条款。
GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。
GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
简单来讲执行GPL协议的软件有下面几个特点(基于GPLv2)
1、软件可以*的使用、复制、修改,
2、软件可以*的发行复制件,
3、软件可以被修改,然后再次发行,但必须公开源代码,即能够看到修改的部分代码,
不允许修改后和衍生的代码做为闭源(不公开代码)的商业软件发布和销售,不能对该源代码的使用作出限定。
4、GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用。
著名的GPL*软件包括Linux核心和GCC。
GUN和GPL历史小知识
GNU 是一个计划或者叫运动。在这个旗帜下成立了 FSF基金会,起草了 GPL 协议等。 Unix 系统被发明之后,大家用的很爽。但是后来开始收费和商业闭源了。一个叫Richard Stallman (理查德 · 斯托曼)的大叔觉得很不爽,于是发起 GNU 计划,模仿 Unix 的界面和使用方式,从头做一个开源的版本。然后他自己做了编辑器 Emacs 和编译器 GCC。
接下来大家纷纷在 GNU 计划下做了很多的工作和项目,基本实现了当初的计划。包括核心的 gcc 和 glibc。但是 GNU 系统缺少操作系统内核。原定的内核叫 HURD,一直完不成。同时 BSD(一种 UNIX 发行版)陷入版权纠纷,x86 平台开发暂停。然后一个叫 Linus Torvalds (林纳斯·托瓦兹)的同学为了在 PC 上运行 Unix,在 Minix 的启发下,开发了 Linux。注意,Linux 只是一个系统内核,系统启动之后使用的仍然是 gcc 和 bash 等软件。Linus 在发布 Linux 的时候选择了 GPL,因此符合 GNU 的宗旨。
最后,大家突然发现,这玩意不正好是 GNU 计划缺的么。于是合在一起打包发布叫 GNU / Linux。然后大家念着念着省掉了前面部分,变成了 Linux 系统。实际上 Debian,RedHat 等 Linux 发行版中内核只占了很小一部分容量。
参考资料
[1]https://www.cnblogs.com/qiu-freedom/articles/10799732.html
[2]https://www.zhihu.com/question/319783573/answer/656033035