wordpress添加专题功能seo网站优化培训多少价格
Linux体系结构
- 一、引入
- 概念
- 二、内核
- 三、管理
- 1、内存管理
- 2、进程管理
- 3、进程调度控制进程对CPU的访问
- 4、设备驱动程序和网络接口
- 四、Linux Shell
- 五、磁盘分区
- 硬盘内的分区
- Linux下磁盘分区和目录的关系
一、引入
操作系统的本质是什么?
是一种管理(协调)资源机制,管理(协调)的对象是计算机硬件主要构成设(运算器/存储器/输入输出/控制器),并赋予这些硬件设备在受限资源条件下产生超出硬件本身形态与作用的价值。
操作系统能够把计算机底层硬件在工作时伴随的通讯调用、时序切换、冲突等待、存储分配、进程、线程等复杂概念,统一抽象为我们客观世界可以被认知的实物 ---------- 文件
概念
-
设备驱动程序
提供连接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解执行每个硬件的细节。简单来说,就是让你能吃到鸡蛋,但不用养一只鸡; -
用户接口
操作系统需要为用户提供一种运行程序和访问文件系统的方法。如常用的 Windows 图形界面,可以理解为一种用户与操作系统交互的方式;智能手机的 Android 或 iOS 系统,也是一种操作系统的交互方式; -
系统服务
当计算机启动时,会自启动许多系统服务程序,执行安装文件系统、启动网络服务、运行
具体到Linux操作系统,它的体系主要由4部分构成,即内核、shell、文件系统和应用程序。其中内核、shell、文件系统构成了操作系统最基本的结构。
二、内核
负责组织协调金属设备工作协调,管理系统进程、内存、设备驱动程序、文件和网络系统,决定系统的性能和稳定性;
内核:Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。SCI 层提供了某些机制执行从用户空间到内核的函数调用。这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。SCI实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。紧随SCI接口层之下,就是一组处理用户操作的文件系统、内存管理、进程管理、设备驱动和网络管理。根据用户的操作要求,各组件之间依据共同POSIX、FHS、LBS等标准接口各自负责处理不同的作业内容。
早期Linux的开发才众多,系统的代码集成也比较庞杂,系统兼容性受到一定的影响。所以Linux社区逐步引用了各项标准来规范操作系统运行时的规范与边界:
-
POSIX:标准定义了操作系统应该为应用程序提供的接口标准,Linux正是遵从这个标准才得以从GNU获得大量的应用软件;
-
FHS: 标准定义了文件系统目录的规范,分两层: 第一层定义 / (根目录) 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等;第二层针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。
-
LSB:标准制定了应用程序与运行环境之间的二进制接口,确保应用程序可以跨系统移植运行。
-
用户空间:这是Linux操作系统在多用户情况下针对内核程序与用户程序在内存运行过程中管理的概念。用户空间可以有多个,内核空间有且仅有一个,且两个空间之间是隔离访问的。
三、管理
1、内存管理
对任何一台计算机而言,其内存以及其它资源都是有限的。为了让有限的物理内存满足应用程序对内存的大需求量,Linux 采用了称为“虚拟内存”的内存管理方式。Linux 将内存划分为容易处理的“内存页”(对于大部分体系结构来说都是 4KB)。Linux 包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。
2、进程管理
在 Linux 系统中,能够同时运行多个进程,Linux 通过在短的时间间隔内轮流运行这些进程而实现“多任务”。这一短的时间间隔称为“时间片”,让进程轮流运行的方法称为“进程调度” ,完成调度的程序称为调度程序。进程实际是某特定应用程序的一个运行实体。
3、进程调度控制进程对CPU的访问
当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。
通过多任务机制,每个进程可认为只有自己独占计算机,从而简化程序的编写。每个进程有自己单独的地址空间,并且只能由这一进程访问,这样,操作系统避免了进程之间的互相干扰以及“坏”程序对系统可能造成的危害。 为了完成某特定任务,有时需要综合两个程序的功能,例如一个程序输出文本,而另一个程序对文本进行排序。为此,操作系统还提供进程间的通讯机制来帮助完成这样的任务。Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等。
内核通过 SCI 提供了一个应用程序编程接口(API)来创建一个新进程(fork、exec 或 [POSⅨ] 函数),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。
4、设备驱动程序和网络接口
- 设备驱动程序:
设备驱动程序是 Linux 内核的主要部分。和操作系统的其它部分类似,设备驱动程序运行在高特权级的处理器环境中,从而可以直接对硬件进行操作,但正因为如此,任何一个设备驱动程序的错误都可能导致操作系统的崩溃。设备驱动程序实际控制操作系统和硬件设备之间的交互。
设备驱动程序提供一组操作系统可理解的抽象接口完成和操作系统之间的交互,而与硬件相关的具体操作细节由设备驱动程序完成。一般而言,设备驱动程序和设备的控制芯片有关,例如,如果计算机硬盘是 SCSI 硬盘,则需要使用 SCSI 驱动程序,而不是 IDE 驱动程序。
- 网络接口:
提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。众所周知,TCP/IP 协议是 Internet 的标准协议,同时也是事实上的工业标准。
Linux 的网络实现支持 BSD 套接字,支持全部的TCP/IP协议。Linux内核的网络部分由BSD套接字、网络协议层和网络设备驱动程序组成。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序
四、Linux Shell
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
目前主要有下列版本的shell
- Bourne Shell
- BASH
- Korn Shell
- C Shell
五、磁盘分区
磁盘分区:linux分区不同于windows,硬盘和硬盘分区在Linux都表示为设备。硬盘分区类型主要有三种:主分区,扩展分区和逻辑分区。硬盘支持的分区主要分为主分区(Primary Partion)和扩展分区(Extension Partion)两种,主分区和扩展分区数目之和不能大于四个。
-
主分区(Primary Partion):可以马上被使用但不能再分区。
-
扩展分区(Extension Partion):必须再进行分区后才能使用,也就是说它必须还要进行二次分区。
-
逻辑分区((Logical Partion)):由扩展分区建立起来的分区,逻辑分区没有数量上限制。扩展分区只不过是逻辑分区的“容器”,实际上只有主分区和逻辑分区进行数据存储。
-
Linux下硬盘分区的标识 硬盘分区的标识一般使用/dev/hd[a-z]X或者/dev/sd[a-z]X来标识,其中[a-z]代表硬盘号,X代表硬盘内的分区号。
整块硬盘分区的块号标识 Linux下用hda、hdb、sda、sdb 等来标识不同的硬盘。其中:IDE接口硬盘:表示为/dev/hda1、/dev/hdb …;SCSI 接口的硬盘、SATA接口的硬盘表示为/dev/sda、/dev/sdb … … ;
硬盘内的分区
如果X的值是1到4,表示硬盘的主分区(包含扩展分区);逻辑分区从是从5开始的,比如/dev/hda5肯定是逻辑分区了;例如:用hda1、hda2、 hda5、hda6 来标识不同的分区。其中,字母a代表第一块硬盘,b代表第二块硬盘,依次类推。而数字1 代表一块硬盘的第一个分区、2 代表第二个分区,依次类推。1 到4 对应的是主分区(Primary Partition)或扩展分区(Extension Partition)。从5开始,对应的都是硬盘的逻辑分区(Logical Partition)。一块硬盘即使只有一个主分区,逻辑分区也是从5开始编号的,这点应特别注意。
总结:一个硬盘分区首先要确认在哪个硬盘,然后再确认它所在硬盘内的哪个分区。
Linux下磁盘分区和目录的关系
-
任何一个分区都必须挂载到某个目录上。
-
目录是逻辑上的区分。分区是物理上的区分。
-
磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。
-
根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。