linux是什么系统(Linux内核和Linux操作系统)
什么是Linux和内核?
1991年,一个名叫Linus Torvalds的学生在互联网上发布了一个名为Linux的操作系统。之所以叫操作系统,是因为它实现了对计算机核心硬件的管理。但不能称之为真正的或生产性的操作系统,因为它只实现了对计算机资源的简单管理(即一个操作系统内核),而没有集成编译器工具和其他必要的操作系统工具。
图1 Linus Torvalds
在Linux的早期,Linux这个术语实际上是Linux操作系统内核的缩写。Linux内核不是操作系统,而是对计算机硬件的管理。它是操作系统的基础,通常包括以下几个方面:
内存管理
进程管理其实就是对CPU的管理。
设备管理,如鼠标、键盘等。
文件管理,即硬盘等存储设备的管理,抽象为文件系统。
网络设备管理,网络设备可以视为一个特例。
应用开发接口
由于Linux内核是开源和免费的,越来越多的公司和个人参与到Linux内核的开发中。而且很多开源项目也移植到Linux上,让Linux逐渐变得丰满。
慢慢的,很多公司在Linux内核的基础上添加开发工具和应用软件,把LLinux内核和这些用户态软件打包成一个操作系统安装镜像。这个系统被称为Linux操作系统,或Linux发行版。这个Linux操作系统和Windows系统一样,普通用户日常工作都可以使用。
Linux的发行版有很多,比如Ubuntu,Redhat,Suse等等,数量相当多。对于传统的概念来说,操作系统应该是一个功能齐全的系统,不仅包括内核,还包括大量的应用软件。因此,Linux的含义从Linux逐渐变为Linux操作系统,Linux的内核称为“Linux内核”,以方便区分。
Linux操作系统和各种发行版
我们简要介绍了Linux操作系统、内核和发行版。对于Linux操作系统来说,它是一个整体,包括Linux内核、系统库和系统程序。Linux内核是最基础的部分,它实现了对硬件资源的管理,并提供了使用这些硬件资源的通用接口。
自1991年LInux内核发布以来,许多公司都加入进来,并基于内核构建了自己的操作系统版本,如Redhat、Debian、Suse等。图2显示了1991年到2007年Linux发行版的演变(请参考私信高清图,linuxtl)。可以看出,到2007年,发行不下20次。
图2 Linux发行版的时间表
有许多Linux发行版。下面简单介绍一下比较流行的发行版。
红帽分布
红帽Linux是由红帽公司发布的Linux发行版。红帽Linux可以算是一个“中年”的Linux发行包,它的1.0版本发布于1994年11月3日。Red Linux应该是业界应用最广泛的操作系统,其他很多发行版都是基于它的,比如CentOS和Oracle Linux。
图3 redhat分布
百分位分布
CentOS发行版是Red Hat LInux的开源版本。它是由红帽Linux根据开源条例发布的源代码编译而成的。因为红帽Linux本身是一个商业操作系统,很多企业在使用时有很多不便,所以这些企业搬到CentOS。
图4百分位分布
红帽、CentOS等操作系统发行版主要用于企业服务,更多用于服务器服务,如Web服务、云计算等。
Ubuntu发行版
Ubuntu最初是基于边地的桌面发行版。Ubuntu基本可以替代Windows实现日常办公,因为它的发行版包含了日常办公常用的所有软件,比如邮件客户端、开源办公套件等我们能想到的工具。而且这些工具都是免费的。
图5 Ubuntu发行版
以下是Ubuntu桌面版的桌面截图。可以看出它和Windows或者MacOS很像,美观度也很好。
图6 Ubuntu桌面
Ubuntu发展迅速。目前除了桌面版,还有服务版、云计算版等其他版本,几乎覆盖了所有应用领域。
Suse分布
Suse是由德国SuSE Linux AG发行和维护的Linux发行版,是该公司的注册商标。第一个版本出现在1994年初,也是较早的版本之一。2004年,这家公司被Novell公司收购。
图7 Suse分布
我们只介绍了主流发行版。Linux的发行版有很多,很难一一介绍。最后,我们总结了Linux社区中几个关键发行版和几个重要事件的时间表,如图所示。当然,这不仅包括Linux操作系统本身,还包括编译器和Git版本控制工具等等。
图8 Linux的30件大事
Linux操作系统的总体架构
我们前面介绍过,操作系统不仅仅包括内核,内核只是操作系统的基础,实现了对硬件资源的管理。操作系统的组件通常包括以下部分:
操作系统内核
系统数据库
系统工具集
基于上述关键组件,用户可以使用操作系统或基于操作系统开发自己的应用程序。图4是Linux操作系统架构的示意图。从这个图可以看出操作系统、硬件和应用软件之间的关系。下面介绍一下各部分的意义和作用。
图4 Linux的整体架构
Linux内核(内核)
它是内核操作系统最核心、最基础的部分。它实现了对计算机硬件的管理,并提供了与上层的接口。这里的接口包括开发接口、管理接口等等。一般来说,操作系统内核有两种,微内核和宏内核。
微内核,顾名思义,只包含最基本的功能特性。在微内核操作系统中,只提供非常简单的软件,包括内存管理、进程管理和进程通信。
宏内核,它不仅提供了内存管理、进程管理和通信功能,还包含许多驱动程序。此外,这些驱动程序通常可以动态加载和卸载。
系统数据库
操作系统不能沾沾自喜。最重要的是为上层提供一个抽象的接口,让开发者开发应用,利用计算机资源。系统库是操作系统提供的抽象接口,即开发接口或系统API。类似的接口还有很多,比如访问文件系统的API,网络套接字API或者进程管理API等。
系统程序(工具集)
系统工具集实际上是操作系统附带的一些软件。这些软件主要实现管理和监控操作系统的功能。例如检查操作系统网络状态(ifconfig)、磁盘格式化和磁盘负载监控等。类似的工具还有很多,这里就不赘述了。
以上只是对Linux操作系统几个核心组件的简单介绍。事实上,Linux的整体架构要复杂得多。从纯Linux内核来看,它要管理CPU、内存、网卡、硬盘、I/O等设备,所以内核本身分为四个核心子系统:进程调度、内存管理、虚拟文件系统、网络接口。
图5 Linux子系统架构
由于篇幅有限,本文无法对上述子系统进行更详细的介绍。越来越深入的介绍。稍后我们将介绍它。更多精彩内容请关注本号并圈。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。