linux操作系统基本原理和组成架构


linux操作系统由bootloader、kernel内核、init进程(属于守护进程)、daemons守护进程、graphical server(属于守护进程)、桌面环境、应用软件等组成。 简单来说,操作系统也是一种软件,用来管理计算机的所有软硬件资源。操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。
一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。
但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“内核”。
Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。
严格意义上来讲,linux实际指的是linux内核,而linux内核加上基于linux内核运行的应用层生态共同组成了linux操作系统。 但是我们平时在说linux的时候,不会严格区分到底是linux内核还是linux操作系统。
操作系统的角色 按照linux操作系统的启动流程,linux操作系统包括下面的几个部分:
1.bootloader
管理计算机的启动过程,bootloader用于引导加载操作系统,目前在pc领域,linux中最流行的bootloader是grub;在嵌入式领域流行的bootloader为uboot
2.kernel内核
linux内核,事实上,我们平时所说的linux,很多时候就是指linux内核,内核作为操作系统的内核,管理cpu、内存以及各种外设;
3.init系统
用于引导用户空间启动的子系统,在linux中表现为init进程,是系统中启动的第一个用户空间进程,主要用来启动各种守护进程,将linux引导到合适的用户环境。 目前应用最广泛的init系统就是systemd了;
4.daemons守护进程
系统守护进程,也就是linux的各种后台服务,包括打印、声音、调度等,一般在系统引导启动期间,由init进程启动,也可在登录系统后手动启动;
5.graphical server
图形服务,在监视器上显示图形的子系统,属于daemon守护进程,通常是指X服务;
6.桌面环境
用户通过桌面环境和linux打交道,目前有很多种桌面环境可供用户选择,比较流行的有GNOME, Cinnamon, Mate, Pantheon, Enlightenment, KDE,Xfce等。每种桌面环境都包含不同的内置应用软件,包括文件管理器、配置工具、web浏览器和一些游戏。由于桌面环境和应用软件的不同,也就形成了各种不同的linux发行版。
7.应用软件
除了kernel内核,以上这些部分中的不同组成了linux操作系统各种各样发行版。
就像windows和macOS一样,linux桌面环境也不提供所有的应用软件。需要我们下载并安装需要的应用软件。linux为用户提供了成千上万的高质量软件, 这些软件可以很容易找到并安装。大部分现代linux发行版都提供了类似app store的工具,用于集中和简化应用程序的安装。例如在Ubuntu中我们可以通过Ubuntu Software Center 轻松找到需要的应用程序并下载安装。
我们平时所说的linux即是专只第二部分的linux内核,也是基于linux内核而构建的各种linux发行版,统称linux操作系统。 除linux内核外各部分的不同,形成了各种不同的linux发行版。

扩展阅读

操作系统(Operation System)负责管理与驱动硬件,管理内存、管理设备、 进程管理以及系统调用等。
一个操作系统至少要能够完整的控制整个硬件,请问,操作系统应该要控制硬件的哪些单元?
根据硬件的运作,以及数据在主机上面的运算情况与写入/读取情况,我们知道至少要能够控制: (1)input/output control, (2)device control, (3)process management, (4)file management. 等等!
计算机主机是由一堆硬件所组成的,为了有效率的控制这些硬件资源,于是乎就有操作系统的产生了。 操作系统除了有效率的控制这些硬件资源的分配,并提供计算机运作所需要的功能(如网络功能)之外, 为了要提供程序设计师更容易开发软件的环境,所以操作系统也会提供一整组系统调用接口来给软件设计师开发用! Linux就是一套操作系统!如同下图所示, Linux就是内核与系统调用接口那两层。注意应用程序不属于linux内核部分,但是可以和linux内核共同组成linux操作系统! 硬件是由内核来控制的,每种操作系统都有他自己的内核。内核与硬件的关系非常的强烈,Torvalds在1991年写出Linux内核的时候,内核仅支持386硬件, 内核也仅仅只是让386计算机开始运作,并且等待用户指令输入而已,当时能够在Linux上面运行的软件还很少! 很多工程师在安装了Linux内核之后,还需要再安装他们所需要的软件,甚至许多软件都需要自己开发。
Linux提供了一个完整操作系统最底层的硬件控制与资源管理的完整架构, 这个架构继承了Unix稳定而强大的优良传统! 很多的软件开发者渐渐的将他们的工作重心移转到这个架构上面,可运行在linux操作系统上的应用软件也就越来越多!
不同的cpu硬件平台接口都不一样,例如IBM的Power CPU与Intel的x86架构并不一样,同一套linux操作系统无法在不同的硬件平台上运作! 如果想让x86上面运行的操作系统也能够在Power CPU上运行, 就需要根据不同的硬件接口平台,修改linux操作系统内核的程序代码,才能将linux内核移植到相应的硬件平台!
由于Linux操作系统内核的开源特性, 内核代码可以顺利的被修改移植到各种硬件平台上运行!
微软的windows操作系统和苹果的MAC操作系统就没有这种灵活的可移植性! 2006年以前,苹果计算机公司的硬件是由IBM公司开发的Power CPU,所以最早的苹果操作系统MAC也只能支持Power CPU。 Windows操作系统则是针对个人计算机x86架构开发设计的操作系统, 所以理论上Windows是没有办法安装运行到苹果计算机上的。
2006年以后,苹果计算机才将硬件平台转到x86系统,所以理论上在安装windows操作系统的电脑上也可以安装苹果操作系统MAC。

initroot编辑整理,转载请注明www.initroot.com技术交流群:59909790

100次点赞 100次阅读