UnixLinux系统概述

    xiaoxiao2025-04-15  11

    1. Unix系统架构:Unix系统可以分为3层,硬件层、内核层和用户层。最底层是硬件层,作为整个系统的基础,其次是内核层,内核层具有一般操作系统应当具有的设备管理,进程管理,文件管理等功能,并提供了系统调用接口。最高层是应用程序。

    2. Unix系统关键系统组件:

    a) 内存管理系统(包括虚拟内存)

    b) 文件系统,负责存储信息在磁盘上,虚拟文件系统(VFS)隐藏了各种不同硬件的具体细节,为所有设备提供了统一的接口,支持几十种不同的文件系统

    c) 进程间通信

    d) 进程调度系统,控制着进程对CPU的访问

    e) 设备驱动程序,使计算机与设备通信

    3. 以Linux为例说一下系统启动过程

    a) 打开计算机电源之后,Intel CPU在实模式下开始自检,然后加载BIOS信息

    b) 读取主引导记录,硬盘0磁道的第一个扇区被称为MBR,即主引导记录,有512个字节大小,存放了预启动和分区表信息。BIOS在读取到所指定硬盘中的MBR之后就会将其复制到内存中,被复制到内存中的那一部分被称为引导程序

    c) 加载引导程序用来初始化硬件设备,建立内存空间的映射图,为最终调用操作系统内核做准备,引导程序有若干种:

          i.     Lilo,这是一个在系统启动时运行的程序,允许选择用于引导计算机的操作系统,可以引导几个不同的操作系统,还可以定义一个默认的操作系统和引导操作系统的延迟时间

         ii.     Grub,这是一个多操作系统的启动程序,是多启动的规范,运行在用户的计算机内部拥有多个不同的操作系统,并且允许在启动的时候选择使用的操作系统,可以用于选择操作系统分区上的不同内核,也可以像这些内核传递参数,系统通过读取内存中的Grub配置信息来选择启动不同的操作系统

    d) 加载内核,根据Grub设定的内核映像所在路径,系统读取内存映像,并进行解压操作,系统将解压之后的内存放在内存中,然后调用一系列初始化函数来初始化设备,完成核心环境的建立

    e) 执行init进程,init是一个由内核启动的用户级进程,init始终是启动的第一个进程,init进程位于/sbin/init,它会读取/etc/inittab文件来进行初始化操作。Init进程用于设置Linux的运行等级,比如0-关机,1-单用户模式等等等等

    f) 在init进程设定了运行等级之后,Linux系统会通过执行脚本的方式来完成系统的初始化阶段,包括设置PATH,设置网络,启动swap分区等

    g) 然后再启动内核模块,执行不同级别的脚本程序,完成初始化操作和启动服务的操作

    h) 然后启动/bin/login程序来进入登录状态

    4. 系统服务和进程

    a) 守护进程:守护进程是脱离于终端并且在后台运行的进程,这是一个生存期较长的进程,独立于扫至终端并且周期性的执行某种任务或等待处理某些事件的发生。守护进程会在系统启动时启动,在系统关闭时关闭。在Linux系统中大部分服务是通过守护进程实现的。一些进程名以d结尾就是daemon守护进程的意思。在Linux操作系统中,终端指的是系统与用户交流的界面,每一个从终端开始运行的进程都会依附于这个终端,这个终端就被称为是控制终端。终端被关闭时,相应的进程都会自动关闭。如果想让某个进程不因为用户或其他终端的变化而受到影响,就要把这个进程写为一个守护进程

    b) 启动与关闭服务:服务是运行在网络服务器上监听用户请求的进程,通过端口号来进行区分,通过inetd或启动脚本来启动,通过inetd服务来启动的进程可以在/etc/inetd.conf中来启用或关闭

    c) inetd进程,这是一个网络服务进程,是一个用于监视网络请求的守护进程,通过一个集中的配置文件来管理大多数的入网连接,根据网络请求调用相应的服务进程来处理连接请求。使用inetd进程来运行那些负载不重的服务可以有助于减少系统负载,从而避免几十个服务都在内存中处于准备被使用的状态,把这些服务都列在/etc/inetd.conf下,代替他们的是inetd进程来监听进入的连接,这样只需要由一个进程在内存中就可以了。目前为止,最灵活简便的是xinetd,xinetd进程还提供了访问控制,日志和资源管理功能,是目前的Linux/Unix系统标准的Internet超级守护进程

    首发于我的个人网站: 点击打开链接

    转载请注明原文地址: https://ju.6miu.com/read-1298093.html
    最新回复(0)