zoukankan      html  css  js  c++  java
  • 第2章 Linux操作系统简介

    1. Linux操作系统的构成

     

    (1)内核(kernel)

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

      ②控制系统和硬件之间的相互通信。

      ③决定着系统的性能和稳定性。

    (2)Shell

    (3)文件系统

      ①文件:数据或设备的一种逻辑组织

      ②文件系统:文件间关系管理的一种逻辑组织

    (4)应用程序

      ①程序和进程

        程序:计算机执行的指令集合

        进程:程序的一个运行实例,操作系统资源分配的最小单位。

      ②线程(轻量级进程)程序运行的基本单位,一个进程内部可以有一个或若干线程同时运行。

      ③信号:Linux系统中进程通信的一种技术,异步程序设计的基础

      ④客户端和服务器。

    2. 启动流程简介

    (1)启动流程

     

      ①芯片和部分外围电路的初始化;②加载内核;

      ③加载最小文件系统;④加载硬盘上的根文件系统;⑤启动1号进程/sbin/init

    (2)BootLoader(uboot)

      ①BootLoader就是在操作系统内核运行之前运行的一段小程序。

      ②初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

      ③严重依赖于硬件,在嵌入式开发中建立一个通用的BootLoader几乎是不可能的。

      ④在Linux中称为grub

    (3)init进程

      ①Linux启动的第1个进程(1号进程)0号为内核进程(swapper进程)

      ②执行/etc/init.d目录中所有的脚本文件,启动本某系统的服务。

      ③执行/sbin/getty初始化0、1和2(标准输入、标准输出和标准错误)

      ④执行/bin/login启动用户登录程序;

      ⑤管理孤儿进程

    3. Linux内存管理

    3.1 内存管理

     

    (1)进程隔离:保护独立的进程,防止互相干涉数据和存储空间

    (2)自动分配和管理:动态地分配,分配对程序员是透明的。

    (3)支持模块化的程序设计:能够定义程序模式,并且动态地创建、销毁模块,改变模块大小

    (4)保护和访问控制:允许一部分内存可以由各种用户以各种方式进行访问

    (5)长期存储:关机后长时间保存信息。

    3.2 段页式内存管理

    (1)进程在虚拟内存中分为代码段、数据段和堆栈段

    (2)进程在段中有许多固定大小的块组成,这些块称为页

    (3)虚拟地址由段号、页号和页中偏移量构成

    (4)虚地址和贮存中实地址(物理地址)的动态映射。

    (2)缺页:将进程全部载入内存;按需调页

    4. 系统调用和POSIX标准

    (1)系统调用:指操作系统提供给用户程序的一组“特殊”接口,用户程序可以通过这组接口来获得操作系统内核提供的特殊服务。

    (2)POSIX标准

      ①ISO C:1989年,C程序设计语言的ANSI标准得到批准,此标准被采纳为国际标准ISO/IEC 9899:1990。ISO C标准的意图是提供C程序的可移植性,使其能够适合于大量不同的操作系统,而不是只适合UNIX系统。

      ②IEEE POSIX:在Linux中用户编程接口(API)遵循了在UNIX中最流行的应用编程界面标准——POSIX标准。这些系统调用接口主要通过C库(libc)实现的。该标准的目的是提升应用程序在各种UNIX系统环境之间的可移植性,它包含了ISO C标准函数库

    5. Linux进程运行态

    (1)内核态:进程运行在内核空间

    (2)用户态(运行态):进程运行在用户空间

    (3)说明:

      ①当程序运行在用户态时,它不能直接访问内核数据结构或内核的程序。但是当应用程序运行在内核下时,这些限制不再有效。

      ②每种CPU模型都为从用户态到内核态的转换提供了特殊的指令,反之亦然。

      ③内核本身并不是一个进程,而是进程的管理者进程/内核模式假定:请求内核服务的进程使用所谓的系统调用的特殊编程机制。每个系统调用都设置了一组识别进程请求的参数,然后执行与硬件相关的CPU指令完成从用户态到内核态的转换。

  • 相关阅读:
    mysql常用技能分享
    php生成器使用总结
    MySQL索引使用方法和性能优化
    servlet相关
    UML图
    How Tomcat Works
    字符串编码
    高效工作
    php 设计模式总结
    python之装饰器
  • 原文地址:https://www.cnblogs.com/5iedu/p/6286701.html
Copyright © 2011-2022 走看看