b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

[操作系统的基本知识] Linux系统架构

电脑杂谈  发布时间:2020-04-24 23:19:44  来源:网络整理

linux操作系统软件_linux 系统 操作日志_linux操作系统结构

Linux系统通常包含四个主要部分: 内核,shell,文件系统和应用程序. 内核,外壳和文件系统共同构成了基本的操作系统结构,使用户可以运行程序,管理文件和使用系统.

Linux操作系统的体系结构分为用户模式和内核模式(或用户空间和内核模式). 内核本质上是一种软件,它控制计算机的硬件资源,并为上层应用程序运行提供环境. 用户模式是上层应用程序的活动空间. 应用程序的执行必须依赖于内核提供的资源,包括CPU资源,存储资源和I / O资源. 为了使上层应用程序能够访问这些资源,内核为用户调用访问抽象了系统调用接口层.

系统调用是Linux的最小功能单元,无法简化. 其他库函数都是基于系统调用的,其本质也是系统调用. 那么库功能的存在就是实现一些用户常用的业务逻辑功能. 它是比调用更简化的系统调用函数. 它实现了系统调用的封装,并向用户提供了简单的业务逻辑接口,方便用户调用和保存. 消除了复杂的实现细节,这可以为程序员消除很多繁琐的工作,从而使代码不会被删除. 好肿.

总而言之,用户模式应用程序可以通过三种方式访问​​内核模式资源:

1)系统调用

2)库函数

3)Shell脚本

下图是上图的细分. 从这张照片中,您可以进一步了解内核的功能. 主要性能是: 向下控制硬件资源,向内管理操作系统资源: 包括进程调度和管理,内存管理,文件系统管理,设备驱动程序管理和网络资源管理,向上到应用程序系统调用接口. 从整体上看,整个操作系统分为两层: 用户模式和内核模式. 这种分层的体系结构大大提高了资源管理的可伸缩性和灵活性,方便用户调用,集中管理带来了一定的安全性.

在用户模式和内核模式之间切换

由于操作系统的资源有限,如果有太多的操作无法访问资源,则会不可避免地消耗太多的资源,并且如果不区分这些操作,则可能导致资源访问冲突. 因此,为了减少有限资源的访问和使用冲突,Unix / Linux的设计思想之一就是赋予不同的操作不同的执行级别,这就是所谓的特权概念. 简而言之,它意味着您可以执行的功能,并且与系统相关的某些特别关键的操作必须由特权最高的程序完成. 英特尔的X86架构CPU提供从0到3的四个特权级别. 数字越小,特权就越高. Linux操作系统主要使用0和3两个特权级别,分别对应于内核模式和用户模式. 在用户模式下运行的进程可以执行的操作及其访问的资源受到极大限制,而在内核模式下运行的进程可以执行任何操作,并且对资源的使用没有任何限制. 许多程序在开始时就以用户模式运行,但是在执行过程中,某些操作需要在内核权限下执行,这涉及从用户模式切换到内核模式的过程. 例如,C函数库中的内存分配函数malloc()专门使用sbrk()系统调用来分配内存. 当malloc调用sbrk()时,它涉及从用户模式切换到内核模式. 类似的功能也有printf(),它调用wirte()系统调用以输出字符串,等等.

在什么情况下会发生从用户模式到内核模式的转换?通常存在三种情况:

1)当然,这是系统调用: 进行上述分析的原因.

2)异常事件: 当CPU执行在用户模式下运行的程序时,某些意外的意外事件会突然发生. 此时,将触发与从当前用户模式执行到内核模式执行的过程相关的异常. 事件,例如异常的页面错误.

3)设备中断: 当设备完成用户请求的操作时,它将发送一个中断信号,如CPU. 此时,CPU将暂停执行下一条要执行的指令,并转到相应的中断信号. 如果先前执行的指令处于用户状态,则自然会发生从用户状态到内核状态的转换.

注意: 系统调用的本质实际上是一个中断. 与设备的硬中断相比,此中断称为软中断. 这是操作系统特别向用户开放的中断,例如Linux int 80h中断. 因此,从触发方式和效果的角度来看,这三种切换方式是完全相同的,这等效于执行中断响应的过程. 但是从触发对象的角度来看,进程主动请求系统调用进行切换,而异常和硬中断是被动的.

内核是操作系统的核心,具有许多基本功能,例如虚拟内存,多任务,共享库,需求加载,可执行程序和TCP / IP网络功能. Linux内核模块分为以下部分: 存储管理,CPU和进程管理,文件系统,设备管理和驱动程序,网络通信,系统初始化和系统调用等.

对于任何计算机,其内存和其他资源都是有限的. 为了允许有限的物理内存满足应用程序对大内存的需求,Linux采用了一种称为“虚拟内存”的内存管理方法. Linux将内存划分为可管理的“内存页面”(对于大多数体系结构为4KB). Linux包括管理可用内存的方法以及用于物理和虚拟映射的硬件机制. 但是内存管理可以管理4KB以上的缓冲区. Linux提供了4KB缓冲区的抽象,例如slab分配器. 此内存管理模型使用4KB缓冲区作为基础,然后从中分配结构,并跟踪内存页面使用情况,例如哪些内存页面已满,哪些页面未充分使用以及哪些页面为空. 这允许模型根据系统需求动态调整内存使用情况. 为了支持多个用户使用内存,有时会耗尽可用内存. 因此,可以将页面移出内存并放在磁盘上. 此过程称为交换,因为页面是从内存交换到硬盘的. 内存管理的源代码可以在./linux/mm中找到.

该进程实际上是特定应用程序的运行实体. 在Linux系统中,多个进程可以同时运行. Linux通过短时间依次运行这些进程来实现“多任务”. 这个较短的时间间隔称为“时间片”,让流程依次运行的方法称为“流程调度”,而完成调度的过程称为调度过程.

进程调度控制进程对CPU的访问. 当需要选择要运行的下一个进程时,调度程序将选择最值得运行的进程. 可运行的进程实际上是仅等待CPU资源的进程. 如果某个进程正在等待其他资源,则该进程不是可运行的进程. Linux使用相对简单的基于优先级的进程调度算法来选择新进程.

通过多任务机制,每个进程都可以视为拥有自己的专用计算机,从而简化了程序的编写. 每个进程都有其自己单独的地址空间,并且只能由该进程访问. 这样,操作系统避免了进程之间的相互干扰以及“不良”程序对系统可能造​​成的损害. 为了完成特定任务,有时需要集成两个程序的功能,例如,一个程序输出文本,另一个程序对文本进行排序. 为此,操作系统还提供了进程之间的通信机制,以帮助完成此类任务. Linux中常见的进程间通信机制包括信号,管道,共享内存,信号量和套接字.

内核通过SCI提供了一个应用程序编程接口(API),以创建一个新进程(fork,exec或Portable Operating System Interface [POS function]功能),停止该进程(杀死,退出),并在它们之间进行通讯和同步(信号或POSⅨ机制).

与DOS等操作系统不同,Linux操作系统中的单独文件系统不能通过驱动器号或驱动器名称(例如A: 或C: 等)来标识. 相反,与UNIX操作系统一样,Linux操作系统将独立的文件系统组合为分层树结构,并且单个实体表示文件系统. Linux通过称为“ mounting”或“ mounting”的操作将新文件系统安装到目录中,以便将不同的文件系统组合为一个整体. Linux操作系统的一个重要功能是它支持许多不同类型的文件系统. Linux中最常用的文件系统是Ext2,它也是Linux本机文件系统. 但是,Linux还可以支持不同类型的文件系统,例如FAT,VFAT,FAT32和MINIX,因此它可以轻松地与其他操作系统交换数据. Linux支持许多不同的文件系统,并将它们组织成一个统一的虚拟文件系统.

虚拟文件系统(VirtualFileSystem,VFS): 隐藏各种硬件的特定详细信息,将文件系统的操作与不同文件系统的特定实施详细信息区分开,为所有设备提供统一的接口,并且VFS提供多达数十个不同的文件系统. 虚拟文件系统可以分为逻辑文件系统和设备驱动程序. 逻辑文件系统是指Linux支持的文件系统,例如ext2,fat等. 设备驱动程序是指为每个硬件控制器编写的设备驱动程序模块.

linux操作系统结构_linux 系统 操作日志_linux操作系统软件

虚拟文件系统(VFS)是Linux内核的一个非常有用的方面,因为它为文件系统提供了通用的接口抽象. VFS在SCI和内核支持的文件系统之间提供了一个交换层. 也就是说,VFS提供了用户和文件系统之间的交换层.

在VFS上,对于诸如打开,关闭linux操作系统结构,读取和写入之类的功能存在通用的API抽象. VFS下面是文件系统抽象,它定义了上层功能的实现. 它们是给定文件系统(超过50个)的插件. 文件系统的源代码可以在./linux/fs中找到.

文件系统层下面是缓冲区高速缓存,它为文件系统层提供了一组通用功能(与特定文件系统无关). 该缓存层通过保留一段时间(或提前读取数据,以便在需要时可用)来优化对物理设备的访问. 缓冲区缓存下面是设备驱动程序,该驱动程序实现特定物理设备的接口.

因此,用户和进程不需要知道文件所在的文件系统类型,而只需像在Ext2文件系统中一样使用它们即可.

设备驱动程序是Linux内核的主要部分. 与操作系统的其他部分类似,设备驱动程序在特权较高的处理器环境中运行,因此它可以直接操作硬件,但是由于这个原因,任何设备驱动程序错误都可能导致操作系统崩溃. 设备驱动程序实际上控制操作系统和硬件设备之间的交互. 设备驱动程序提供了一组操作系统可以理解的抽象接口,以完成与操作系统的交互,并且与硬件有关的特定操作详细信息由设备驱动程序完成. 一般来说,设备驱动程序与设备的控制芯片有关. 例如,如果计算机硬盘是SCSI硬盘,则需要使用SCSI驱动程序而不是IDE驱动程序.

提供对各种网络标准的访问以及对各种网络硬件的支持. 网络接口可以分为网络协议和网络驱动程序. 网络协议部分负责实现每种可能的网络传输协议. 众所周知,TCP / IP协议是Internet的标准协议,也是事实上的行业标准. Linux的网络实现支持BSD套接字和所有TCP / IP协议. Linux内核的网络部分由BSD套接字,网络协议层和网络设备驱动程序组成. 网络设备驱动程序负责与硬件设备进行通信,每个可能的硬件设备都有一个对应的设备驱动程序.

shell是系统的用户界面,它为用户提供了与内核进行交互的界面. 它接收用户输入的命令,并将其发送到内核以执行. 它是一个命令解释器. 此外,shell编程语言具有普通编程语言的许,用这种编程语言编写的shell程序与其他应用程序具有相同的作用.

当前有以下几种Shell版本.

1. Bourne Shell: 它是由Bell Labs开发的.

2. BASH: 这是GNU的Bourne Again Shell,它是GNU操作系统上的默认Shell. 大多数Linux发行版都使用此shell.

3. Korn Shell: 这是Bourne SHell的开发,并且在大多数内容上都与Bourne Shell兼容.

4. C Shell: 它是SUN Shell的BSD版本

Linux上的以下文件类型为:

普通文件: C语言元代码,SHELL脚本,二进制可执行文件等. 分为纯文本和二进制.

目录文件: 目录,唯一存储文件的地方.

链接文件: 指向相同文件或目录的文件.

设备文件: 与系统设备有关,通常在/ dev下. 分为块设备和字符设备.

5)管道(FIFO)文件: 为进程建立通信提供了一种方法

6)套接字(套接字)文件: 此文件类型与网络通信有关

您可以使用ls –l,file,stat命令来查看文件类型和其他相关信息.

文件系统是指文件所在的物理空间. Linux系统中的每个分区都是一个文件系统,并且具有自己的目录层次结构. Linux以某种方式将属于不同分区的这些独立文件系统划分为系统的整体目录层次结构. 操作系统的运行与文件的运行密不可分,因此必须拥有并维护自己的文件系统.

4.1文件系统类型:

ext2 : 早期linux中常用的文件系统
ext3 : ext2的升级版,带日志功能
RAMFS : 内存文件系统,速度很快
NFS : 网络文件系统,由SUN发明,主要用于远程文件共享
MS-DOS : MS-DOS文件系统
VFAT : Windows 95/98 操作系统采用的文件系统
FAT : Windows XP 操作系统采用的文件系统
NTFS: Windows NT/XP 操作系统采用的文件系统
HPFS : OS/2 操作系统采用的文件系统
PROC : 虚拟的进程文件系统
ISO9660 : 大部分光盘所采用的文件系统
ufsSun : OS 所采用的文件系统
NCPFS : Novell 服务器所采用的文件系统
SMBFS : Samba 的共享文件系统
XFS : 由SGI开发的先进的日志文件系统,支持超大容量文件
JFS :IBM的AIX使用的日志文件系统
ReiserFS : 基于平衡树结构的文件系统
udf: 可擦写的数据光盘文件系统


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-187694-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...