- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux础知识
硬盘的主引导记录(MBR) 硬盘的主引导记录(MBR) 硬盘的主引导记录(MBR) Linux内核的特性 真正的多用户、多任务管理 完善的虚拟内存管理和运行保护机制 虚拟文件系统 支持POSIX标准的系统调用 动态内核模块加载 网络功能 支持SMP 可移植性 Linux2.6内核的新特性 可抢占式内核 完全公平调度算法 统一设备模型 PnP支持 内核模块改变 线程模型 … * Linux的虚拟内存管理 Linux的虚拟内存管理机制为应用程序和驱动 程序提供了两种服务: 使每个进程都拥有自己独立的内存地址空间;对于32位Linux而言,每个任务可寻址的内存地址空间都为0~ 0xFFFFFFFF(232, 4GB) 当物理内存不够4GB时,虚拟内存管理模块会用外存空间模拟内存空间,并且该模拟过程对应用程序是透明的。 * 用户地址空间与内核地址空间 Linux将每个进程的4GB的独立地址空间又划分为用户地址空间(0~ 0xBFFFFFFF)和 内核地址空间(0xC0000000 ~ 0xFFFFFFFF)两部分。 操作系统内核代码和数据存放在内核地址空间;每个进程自己私有的代码和数据存放在用户地址空间 虽然Linux的内核代码和数据被映射到了每个进程的地址空间中(所有进程看到的内容是相同的),但在实际的物理内存中,只有内核代码和数据的一份拷贝。 * 用户地址空间与内核地址空间 虚拟页 物理页 0 3 1 null 2 1 3 null 虚拟页 物理页 0 2 1 null 2 1 3 null 虚拟页 物理页 0 null 1 null 2 1 3 null 物理页 taken 进程id 0 N null 1 Y os 2 Y 2 3 Y 1 进程 1 的页表 进程id 虚拟页 硬盘中的地址 进程 2 的页表 进程 3 的页表 内页表 外页表 CR3寄存器 CPU负责查表(虚拟地址-物理地址),查表失败时触发缺页中断(14号); OS负责填充各个表的内容,并提供缺页中断的中断服务器程序。 用户态与核心态 一般现代CPU都有几种不同的指令执行级别 在高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别就对应着内核态 用户态指相应的低级别执行状态,代码的掌控范围会受到限制,只能执行CPU指令集的一个子集 举例:intel x86 CPU有四种不同的执行级别0-3,Linux只使用了其中的0级和3级分别来表示内核态和用户态 0xc0000000以上的内核地址空间只能在内核态下访问,00xbfffffff的用户地址空间在两种状态下都可以访问 应用程序可以通过Linux系统调用由用户态进入内核态 Linux进程状态 Linux中任务和进程是相同的术语,每个进程由 task_struct 结构来描述,即PCB (进程控制块) Linux 将进程状态主要分为五种: TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE TASK_STOPPED TASK_ZOMBILE 。 进程的状态随着进程的调度发生改变 Linux进程状态转换 Linux进程调度策略 Linux中进程分为普通进程和实时进程,分别采用不同的调度策略。实时进程相对于普通进程具有绝对的优先级 实时进程采用SCHED_FIFO或者SCHED_RR调度策略,普通的进程采用SCHED_OTHER调度策略。 相关参考书 相关参考书 相关参考书 相关参考书 相关参考书 Linux基础知识介绍 操作系统 主要功能: CPU管理 存储管理 设备管理 文件管理 网络与通信管理 用户接口 POSIX表示可移植操作系统接口(Portable Operating System Interface)是为解决应用程序平台移植性提出的一种标准。 Linux是什么? Linux是一个由几百万行源代码组成的庞大、复杂的程序,任何人都能从上下载。 Linux是一套免费的、源代码开放的、符合POSIX标准规范的操作系统 。 严格来说,Linux只包含下图中内核与系统调用接口那两层。 Linux内核的构成 Linux的历史 1973: Thompson、Ritchie等写出第一个正式UNIX内核 1984:Richard Stallman的GNU项目与FSF基金会 1985:Richard Stallman撰写了GNU GPL。 1991:芬兰赫尔辛基大学21岁的Linus发布了第一版的Linux内核。 1992:在GNU GPL下Linux内核被重新授权 1996: Linux2.0版内核发布 1999: Linux2.2版内核发布
文档评论(0)