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指令完成从用户态到内核态的转换。

第2章 Linux操作系统简介的更多相关文章

  1. Linux内核分析——第一章 Linux内核简介

    第一章   Linux内核简介 一.Unix的历史 1.Unix系统成为一个强大.健壮和稳定的操作系统的根本原因: (1)简洁 (2)在Unix中,很多东西都被当做文件对待.这种抽象使对数据和对设备的 ...

  2. 《Linux内核设计与实现》读书笔记 第一章 Linux内核简介

    一.相关历史 1. Unix内核的特点 简洁:仅提供系统调用并有一个非常明确的设计目的 抽象:几乎所有东西都被当做文件 可移植性:使用C语言编写,使得其在各种硬件体系架构面前都具备令人惊异的移植能力 ...

  3. Linux操作系统简介

    一:Linux系统概述 1.常见操作系统 - 服务端操作系统 : linux.unix.windows server - 单机操作系统 : windows(dos .ucdos.win95.win98 ...

  4. 第一章 Linux操作系统及其历史介绍

    一.什么是操作系统 1.基本含义: 简称OS 是计算机系统中必不可少的基础系统软件,是应用程序运行和用户操作必备的基础环境 操作系统就是一个人与计算机之间的中介 2.组成方式: 操作系统的组成: 计算 ...

  5. 第1章 Linux系统简介

    第1节 UNIX发展历史和发行版本 1. UNIX与Linux发展史 1.1 UNIX发展历史 (1)1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发 ...

  6. 第2课 Linux操作系统简介

    1. Linux操作系统的构成 (1)内核(kernel) ①操作系统的核心,负责管理系统的进程.内存.设备驱动程序.文件和网络系统. ②控制系统和硬件之间的相互通信. ③决定着系统的性能和稳定性. ...

  7. 第1章 Linux内核简介

    1.1 Unix的历史 unix的优点 简介,没有繁冗的系统调用 所有东西都被当成了文件对待,对文件和对设备的操作是通过同样的系统调用的接口实现的 内核和相关工具使用C编写,具有很高的可移至性 创建新 ...

  8. Linux学习笔记 一 第一章 Linux 系统简介

    Linux简介 一.UNIX与Linux发展史

  9. 第一章 Linux内核简介

    1. 操作系统和内核 操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分.包括内核.设备驱动程序.启动引导程序.命令行shell或者其他种类的用户界面.基本的文件管理工具和系统工具. 用户 ...

随机推荐

  1. python爬虫scrapy学习之篇二

    继上篇<python之urllib2简单解析HTML页面>之后学习使用Python比较有名的爬虫scrapy.网上搜到两篇相应的文档,一篇是较早版本的中文文档Scrapy 0.24 文档, ...

  2. poj 2828 Buy Tickets 树状数组

    Buy Tickets Description Railway tickets were difficult to buy around the Lunar New Year in China, so ...

  3. 从零开始,使用Docker Swarm部署集群教程

    本文首先从Dockerfile创建了一个简单web镜像 然后将web镜像推送到了远程仓库,以备后面集群中不同机器自动下载 之后使用docker-compose.yml配置了一个应用 而后新建了2台虚拟 ...

  4. shell 判断字符串长度是否为0

    test.sh #!/bin/bash echo "enter the string:" read filename if test -z $filename ; then ech ...

  5. shell 输入不显示在监视器上

    #!/bin/bash read -s -p "Enter your password:" pass echo "your password is $pass" ...

  6. 2-15-MySQL进阶

    select select 字段列表 from 数据表 [[as] 别名] [where 条件] 别名: 数据表 [[as] 别名] select AA.money,BB.name from prod ...

  7. Loops with PL/SQL

    1. Basic loop loop /* statements */ end loop; 2. While loop while a > b loop /* statements */ end ...

  8. node 使用范围 和 node的优势 (为什么 创业公司 选择的不是 java php ruby 等)

    链接 一些国外大公司 范围: 第一: 希望合并后台多个接口 成为一个接口,  或者频繁改动接口 相关, 比如数据 和数据格式之类,  后台难以配合, 这里可以使用node作为后台的应用层调用其他接口 ...

  9. SUSE Linux Enterprise Server设置IP地址、网关、DNS(转载)

      说明: ip:192.168.21.172 子网掩码:255.255.255.0 网关:192.168.21.2 dns:8.8.8.8 8.8.4.4 1.设置ip地址vi /etc/sysco ...

  10. Github使用.gitignore文件忽略不必要上传的文件 (转)

    原文地址: https://blog.csdn.net/gjy211/article/details/51607347 常用编程语言及各种框架平台下的通用   .gitignore   文件 http ...