操作系统
计算机系统是指按照用户的要求,接受和存储信息、自动进行数据处理并输出结果信息的系统,它由硬件子系统和软件子系统组成。
而操作系统(Operating System, OS)是软件子系统的一部分,是硬件基础上的第一层软件,是硬件和其他软件的接口。他控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理系统资源、决定系统资源工序的优先次序等,同时还提供了一些基本的服务程序:
- 文件系统
提供计算机存储信息的结构,信息存储在文件中,文件主要存储在计算的内部硬盘里,在目录的分层结构中组织文件。文件系统为操作系统提供了组织管理数据的方式。 - 设备驱动程序
提供链接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解执行每个硬件的细节。 - 用户接口
操作系统需要为用户提供一种运行程序和访问文件系统的方法。如常用的 Windows 图形界面,可以理解为一种用户与操作系统交互的方式;智能手机的 Android 或 ios 系统,也是一种操作系统的交互方式。 - 系统服务程序
当计算机启动时,会自启动许多系统服务程序,执行安装文件系统、启动网络服务、运行预定任务等操作。
目前流行的服务器和 PC 端操作系统有 Linux 、Windows、UNIX 等。
操作系统也是软件,只不过它是最底层的软件,位于计算机硬件和应用程序软件之间,提供最基本的计算功能。
UNIX
UNIX 诞生于 20 世纪 60 年代 末
Windows 诞生于 20 世纪 80 年代中期
Linux 诞生于 20 世纪 90 年代初
Unix 操作系统由 肯汤普森 和 丹尼斯里奇 发明。他的部分技术来源可追溯与 1965 年开始的 Multics 工程计划,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。
分时操作系统使一台计算机可以同时为多个用户服务,连接计算机的终端用户交互式发出命令,操作系统采用时间片轮转的方式处理用户的服务请求并在终端上显示结果(操作系统将 CPU 的时间划分为若干个片段,称为时间片)。操作系统以时间片为单位,轮流为每个终端用户服务,每次服务一个时间片。
由于 Multics 工程计划 目标庞大而复杂,最终失败收场。
肯汤姆森为首的贝尔实验室研究人员吸收了 Multics 失败的经验教训,于 69 年实现了一种分时操作系统的雏形, 70 年改名为 UNIX。
Multic:大 uni:小
他研究操作系统竟然是因为自己开发的游戏在别的操作系统上运行效果不理想
70年后,UNIX 系统在 贝尔实验室内部的程序员之间逐渐流行起来。
71年 - 72 年,丹尼斯里奇发明了传说中的 C 语言,这是一种适合编写系统软件的高级语言,他的诞生是 UNIX 系统发展过程中的一个重要里程碑,他宣告了在操作系统的开发中,汇编语言不再是主宰。
UNIX 系统的绝大部分源代码都用 C 语言进行了重写,这位提高 UNIX 的可移植性打下了基础,(之前操作系统多采用汇编语言,对硬件依赖性强),也提供了系统软件的开发小路。
74年,传输控制协议(TCP)作为规范草案引入,它描述了如何在网络上建立可靠的、主机对主机的数据传输服务。
81年,Internet 协议(IP)以草案形式引入,他描述了如何在互联的网络之间实现寻址的标准以及如何进行数据包路由。
美国国防部吧 TCP/IP 协议与 UNIX 系统、C 语言捆绑在一起,至此拉开序幕,他们分别在 操作系统、编程语言、网络协议 这三个领域的影响至今。
Linux
Linux 内核由李纳斯托瓦斯 开发的。他公开了 Linux 的源代码,并邀请他人一起完善。
他 还搞出了 全世界最大的程序员交友社区 GitHub (开源代码库及版本控制系统)
UNIX 是 Linux 之父。
Linux 广受欢迎:
- 开源免费
- 拥有 UNIX 的全部功能
Linux 优势
- 支持很多免费软件
比如 Apache、Samba、PHP、Mysql 等。 - 良好的移植性
它几乎支持所有的 CPU 平台,使得它可以裁剪和定制。可以将 Linux 放在 U 盘、光盘等介质中,也可以在嵌入式领域广泛应用。 - 良好的稳定性和安全性
因为开源,所以成就了他的稳定性和安全性,毕竟那么多程序员在看着。 - 支持几乎所有的网络协议及开发语言
Linux 发行版本
从技术上说,李纳斯托瓦兹开发的只是 Linux 的内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,但是一个内核并不是一套完整的操作系统,他只是核心,一些组织或厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。
Linux 发行版本大体恩威两类:一类是商业公司维护的发行版本;另一类是社区组织维护的发行版本。
Red Hat 公司的Red Hat Enterprise Linux(RHEL) 和 CentOS(RHEL的社区版)、Ubuntu Linux、SUSE Linux、Gentoo Linux 等
查看 Linux 内核版本
- cat /proc/version
[hai@myOS-1 ~]$ cat /proc/version
Linux version 3.10.0-1127.13.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Jun 23 15:46:38 UTC 2020
- uname -a
[hai@myOS-1 ~]$ uname -a
Linux myOS-1 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
查看Linux系统版本的命令
- lsb_release -a (适用于所有的Linux发行版)
[hai@myOS-1 ~]$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.8.2003 (Core)
Release: 7.8.2003
Codename: Core
- cat /etc/redhat-release (只适合Redhat系的Linux:)
[hai@myOS-1 ~]$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)