简介
本文内容为学习Linux/UNIX系统编程手册时的学习笔记与总结
什么是操作系统、内核
内核的职责
- 进程调度(CPU切换,资源调度等)
- 内存管理
- 提供文件系统(文件的创建删除等)
- 创建和终止进程
- 对设备的访问(鼠标、键盘等输入输出设备)
- 联网
- 提供系统调用接口(API)
内核态与用户态
进程
- 程序: 包含了一系列信息的文件。
- 进程:一个可执行程序的实体。由内核定义的一个是抽象的实体,内核同时为该抽象实体分配用以执行程序的各项系统资源(内存,CPU等)
- 进程的组成:从内核角度看,进程由
用户内存空间
和一系列内核数据结构
组成。其中用户内存空间包含了程序代码及代码锁使用的变量。而内核数据结构则是用于维护进程状态信息(进程相关标识号,虚拟内存表,打开文件描述符,信号传递及处理相关信息,进程资源使用及限制,当前工作目录等信息)
Init进程
所有进程之父~
守护进程
常驻的进程,级别仅次于Init进程
环境列表(环境变量列表)
进程中的公共变量,入HOME,PATH等
系统调用
内存
典型的内存进程内存结构
虚拟内存
虚拟内存是相对于物理内存RAM的一个概念,用来提高物理内存的使用效率的一个设计。
虚拟内存将所有的内存分页
(一般为4096字节一页),在进程中维护一个页表。
每张页表对应一个物理页或者是磁盘的一个空间。
设计起因
虚拟内存的优点
维基百科解释
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上