03 2016 档案
第六节 进程的描述和进程的创建——20135203齐岳
摘要:第六节 进程的描述和进程的创建 By 20135203齐岳 本周的主要内容: 1. 如何描述一个进程:进程描述符的数据结构; 2. 如何创建一个进程:内核是如何执行的,以及新创建的进程从哪里开始执行; 3. 使用gdb跟踪新进程的创建过程。 进程的描述 操作系统三大功能: 进程管理(最核心最基础)
阅读全文
《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
摘要:《Linux内核设计与实现》课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一些资深的特殊功能 健壮性 在任何时候内核的任何地方都能调用printk()函数,只有在终端还未初始化的时候不能调
阅读全文
第五节 系统调用的三个层次(下) ——20135203齐岳
摘要:第五节 系统调用的三个层次(下) By 20135203齐岳 本周的课程主要内容有三点: 1. 在MenuOS中通过添加代码增加自定义的系统调用命令 2. 使用gdb跟踪调试内核 3. 简单分析system_call代码了解系统调用在内核代码中的处理过程 由于本周实验是在Kali虚拟机上进行操作的,
阅读全文
《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳
摘要:《Linux内核设计与实现》课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个。 为用户空间提供了硬件的抽象接口。 保证了系统的稳定和安全。 实现多任务和虚拟内存。保证良好的稳定性和安全性。 系统调用是用户空间访问内核的唯一手段;
阅读全文
《Linux内核设计与实现》课本第一章&第二章学习笔记
摘要:《Linux内核设计与实现》课本学习笔记 By20135203齐岳 一、Linux内核简介 Unix内核的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的。 Unix中一切皆文件,对数据和设备的操作都是通过一套相同的系统调用接口进行的。 Unix内核和相关的系统工具都是用C语言编写成的。
阅读全文
第四节 系统调用的三个层次 ——20135203齐岳
摘要:第四节 系统调用的三个层次 By 20135203齐岳 用户态、内核态和中断 内核态 在高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态 用户态 在低级别的指令状态下,代码 只能在级别允许的特定范围内活动。在日常操作下,执行系统调用的方式是通过库函数,库函数封装系统
阅读全文
第三节 构造一个简单的Linux系统MenuOS——20135203齐岳
摘要:第三节 构造一个简单的Linux系统MenuOS By 20135203齐岳 Linux内核源代码 arch/ 支持不同cpu的源代码 Documentations/ 文档存储 init/ 内核启动相关代码 kenerl/ 进程调度相关代码 ipc/ 进程间通信 lib/ 公共库文件 mm/ 内存管
阅读全文
第二节 操作系统是如何工作的——20135203齐岳
摘要:第二节 操作系统是如何工作的 By 20135203齐岳 函数调用堆栈 计算机工作三个法宝 存储程序计算机、中断机制、堆栈 深入理解函数调用堆栈 堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间 堆栈的作用 函数调用框架 传递参数 保存返回地址 提供局部变量空间 堆栈相关的寄存器 esp,堆
阅读全文