Linux操作系统的构成

一、Linux操作系统的构成

####### 1、内核
1) 操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网络系统
2) 控制系统和硬件之间的相互通信
3) 决定着系统的性能和稳定性。
####### 2、Shell
####### 3、文件系统
####### 4、应用程序

二、Linux操作系统的基本概念

####### 1、文件和文件系统
1) 文件:数据或设备的一种逻辑组织
2) 文件系统:文件间关系管理的一种逻辑组织
####### 2、程序和进程
1) 程序: 计算机执行的指令集和
2) 进程: 程序的一个运行实例,操作系统资源分配的最小单位
####### 3、线程(轻量级进程)
程序运行的基本单位,一个进程内部可以有一或若干线程同时运行
####### 4、信号
Linux系统中进程 通信的一种技术,异步程序设计的基础

三、Linux操作系统的启动流程
  1. 芯片和部分外围电路的初始化
  2. 加载内核
[root@jin ~]# file /boot/vm*
/boot/vmlinuz-2.6.32-504.el6.x86_64:     Linux kernel x86 boot executable bzImage, version 2.6.32-504.el6.x86_64 (mockbuil, RO-rootFS, swap_dev 0x3, Normal VGA
  1. 加载最小文件系统
  2. 加载硬盘上的根文件系统
  3. 启动1号进程/sbin/init(0号为内核进程swapper进程),处理如下工作:
  4. 执行/etc/init.d目录中的所有脚本文件,启动某些系统的服务
  5. 执行/sbin/getty 初始化0、1和2(标准输入、标准输出和标准错误)
  6. 执行/bin/login启动用户登录程序
  7. 管理孤儿进程
四、BootLoader(uboot)
  • BootLoader就是在操作系统内核运行之前运行的一段小程序
  • 初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
  • 严重依赖于硬件,在嵌入式开发中里建立一个通用的BootLoader几乎是不可能的,在Linux中称为grub。

Linux内存管理

一、Linux内存管理

程序所操作的都是虚拟内存,系统分配的都是虚拟内存空间
####### 1、进程隔离
保护独立的进程,防止互相干涉数据和存储空间
####### 2、自动分配和管理
动态地分配,分配对程序员是透明的
####### 3、支持模块化的程序设计
能够定义程序模块,并且动态地创建、销毁模块,改变模块大小
####### 4、保护和访问控制
允许一部分内存可以由各种用户以各种方式进行访问
####### 5、长期存储
关机后长时间保存信息

二、段页式内存管理

####### 1、进程在虚拟内存中分为代码段、数据段和堆栈段
数据段分为
+ 静态存储区,分为初始化区和为初始化区(bss),存放全局变量和局部变量
+ 常量区,常量
####### 2、进程在段中有许多固定大小的块组成,这些块成为页
####### 3、虚拟地址由段号、页号和页中偏移量构成
####### 4、虚地址和贮存中实地址(物理地址)的动态映射。
####### 5、缺页
1)消除了进程全部载入内存中
2)按需调页

系统调用

一、系统调用

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

二、Linux进程的运行状态

####### 1、内核态
进程运行在内核空间
####### 2、用户态
进程运行在用户空间

三、IEEE POSIX标准
  1. 美国电气和电子工程师协会(IEEE)是一个国际性的电子技术与信息科学工程师的协会
  2. 在Linux中用户编程接口(API)遵循了在UNIX中最流行的应用编程界面标准—POSIX标准。这些系统调用编程接口主要通过C库(libc)实现的。

经常做一些linux下面的工作,想更深入的了解下linux下程序是怎么运行的,通过这个教程了解下

标签: linux, c

添加新评论