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系统概述 1.常见操作系统 - 服务端操作系统 : linux.unix.windows server - 单机操作系统 : windows(dos .ucdos.win95.win98 ...

  2. 第2章 Linux操作系统简介

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

  3. linux操作系统1 Linux入门

    知识内容: 1.操作系统简介 2.Linux操作系统简介 3.Linux安装 4.Linux各大发行版本介绍 一.操作系统介绍 1.为什么需要操作系统 现代的计算机系统由处理器,主存,硬盘,键盘,鼠标 ...

  4. Linux从入门到放弃、零基础入门Linux(第一篇):计算机操作系统简介、linux介绍

    一.计算机操作系统简介 操作系统的定义: 操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间. 操作系统的内核的定义: 操作系统的内核是一个管理和控制程序,负责 ...

  5. 第1课:Linux操作系统基础【DevOps基础培训】

    第1课:Linux操作系统基础 --DevOps基础培训 1. 云主机.公网IP 1.1 公网ip和私网ip 只有公网ip是能够连接互联网的,私网IP 一般只用作局域网 我们能够上网靠的是isp组织分 ...

  6. linux 文件系统简介

    linux文件系统简介   文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基 ...

  7. 使用 /proc 文件系统来访问 linux操作系统 内核的内容 && 虚拟文件系统vfs及proc详解

    http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/201304 ...

  8. 利用putty软件连接虚拟机中linux操作系统

    http://jingyan.baidu.com/article/9c69d48fbefe6613c8024e6a.html 大家在使用虚拟的过程中有时候会感觉切换操作系统很不方便,那么有什么方法可以 ...

  9. Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装

    原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底 ...

随机推荐

  1. CSS3秘笈:第十三章

    1.float属性能把网页元素移到网页(或者其他外围快)的某一侧.出现在浮动元素之后的所有HTML都能在网页中上移,环绕在浮动元素的周围. float属性接受以下3种不同的值:left(左).righ ...

  2. siege

    SIEGE 3.0.0Usage: siege [options] siege [options] URL siege -g URLOptions: -V, --version VERSION, pr ...

  3. Linux教程之配置权限受限制的SFTP

    SFTP 在Linux下是一个很方便很安全的文件传输工具,我常常用它在Linux服务器上替代传统的ftp来传输文件.众所周知SFTP账号是基于SSH账号的,默认情况下访问服务器的权限很大,下面的教程就 ...

  4. JavaScript 伪造 Referer 来路方法

    Javascript 是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题, ...

  5. 尚未配置为Web项目.指定的本地IIS URL http://localhsst/..要打开项目,需要配置虚拟目录 。是否立即创建虚拟目录 解决

    1.编辑.csproj文件 2.修改 UseIIS节点改为false,再次打开程序即可

  6. cout、cerr、clog

    其实大家平常常会用的主要有三个:cout.cerr.clog,首先简单介绍下三者. 这三者在C++中都是标准IO库中提供的输出工具(至于有关的重载问题在此不讨论): cout:写到标准输出的ostre ...

  7. java方法:flush()

    flush本意是冲刷,这个方法大概取自它引申义冲马桶的意思,马桶有个池子,你往里面扔东西,会暂时保存在池子里,只有你放水冲下去,东西才会进入下水道. 同理很多流都有一个这样的池子,专业术语叫缓冲区,当 ...

  8. Hadoop RPC机制

    RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.Hadoop底层的交互都是通过 rp ...

  9. cddiv/数组维护

    题目连接 看代码: #include <set> #include <map> #include <cmath> #include <queue> #i ...

  10. UIViewContentMode 图文解说

    在iOS应用开发中我们常常要对视图的contentMode属性进行设置,尤其在使用UIImageView视图时设置这个属性的概率很高.我们知道contentMode的类型是UIViewContentM ...