0%

Linux系统结构

Linux系统结构

Linux系统有4个主要部分:内核,shell,文件系统和应用程序。内核,shell和文件系统一起形成了基本的操作系统,它们使用户可以运行程序、管理文件并使用系统。

linux structure


  1. Linux内核

    内核是操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网络系统。

    linux_kernel

    **系统调用接口: **SCI层提供了某些机制执行从用户空间到内核的函数调用。SCI实际上是一个非常有用的函数调用多路复用和多路分解服务。

    • 内存管理

      Linux采用了虚拟内存的内存管理方式。Linux将内存划分为容易处理的“内存页”(对于大部分体系结构来说都是4KB)。Linux包括了管理内存的方式,以及物理和虚拟映射所使用的硬件机制。

      不过内存管理要管理的可不止4KB缓冲区。Linux提供了对4KB缓冲区的抽象。这种内存管理模式使用4KB缓冲区为基数,然后从中分配结构,并跟踪内存页使用情况,比如哪些内存页是满的,哪些页面没有完全使用,哪些页面为空。这样就允许该模式根据系统需要来动态调整内存使用。

      为了支持多个用户使用内存,有时会出现可用内存被消耗光的情况。因此,页面可以一处内存并放入磁盘中。这个过程称为交换,因为页面会从内存交换到硬盘上。

    • 进程管理

      进程实际是某个特定应用程序的一个运行实体。在Linux系统中,能够同时运行多个进程,Linux通过在短时间间隔内轮流运行这些进程而实现“多任务”。这一短时间间隔称为“时间片”,让进程轮流运行的方法称为“进程调度”。

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

      通过多任务机制,每个进程可认为只有自己独占计算机,从而简化程序的编写。每个进程有自己单独的地址空间,并且

    • 文件系统

    • 设备驱动程序

    • 网络接口(NET)


  2. Linux Shell


  3. Linux文件系统


  4. 应用程序

    Linux系统一般都有一套称为应用程序的程序集,包括文本编辑器、编程语言、x window、Internet工具和数据库等。


  5. 内核参数

    Linux内核提供了一种通过/proc文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

    用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc文件时,/proc文件系统是动态从系统内核读出所需信息并提交的。在/proc下有三个很重要的目录:/net,/scsi和/sys。/sys目录是可写的,可一通过它来访问或修改内核的参数,而/net和/scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi目录不存在。

    除了这些,还有一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的PID为目录名,它们是读取进程信息的接口。而/self目录则是读取进程本身的信息接口,是一个link,不同进程访问该目录是获得的信息是不同的,内容等价于/proc/本进程pid/。进程可以通过访问/proc/self来获取自己的系统信息,而不用每次都获取pid。

Reference:

[1] Linux系统结构 详解

[2] Linux下/proc目录简介