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


计算机系统是硬件和软件的结合体,软硬件互相依赖,不可分割。 计算机硬件由cpu处理器、内存、硬盘以及各种外围设备等组成,只有硬件计算机是无法正常工作的,还需要软件系统的控制。
操作系统也是一种软件,用来管理计算机的软硬件资源。操作系统是和硬件打交道并为用户应用程序提供有限服务(api)的底层系统软件。
Linux就是一套操作系统!如下图所示, Linux是指内核与系统调用这两层。 严格意义上来讲,linux实际指的是linux内核,应用程序不属于内核部分,内核和其上运行的应用程序共同组成了linux操作系统!
操作系统的角色 linux操作系统由bootloader、kernel内核、init进程(属于守护进程)、daemons守护进程、graphical server(属于守护进程)、桌面环境、应用软件等组成。
按照linux操作系统的启动流程,linux操作系统包括下面的几个部分:
1.bootloader
管理计算机的启动过程,bootloader用于引导加载操作系统,目前在pc领域,linux中最流行的bootloader是grub;在嵌入式领域流行的bootloader为uboot;
2.kernel内核
我们平时所说的linux就是指linux内核,内核作为操作系统的内核,管理cpu、内存以及各种外设;
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. 等等!
硬件是由内核来控制的,每种操作系统都有他自己的内核。内核与硬件的关系非常的强烈,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次阅读