- 博客(31)
- 收藏
- 关注
转载 进程的切换和系统的一般执行过程
进程调度的时机 linux进程调度是基于分时和优先级的 中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(); 内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内核线程作为一类的特殊的进程可以主动调度,也可以被动调度; 内核线程是...
2016-04-13 21:58:00
176
转载 Linux内核分析——可执行程序的装载
链接的过程 首先运行C预处理器cpp,将C的源程序(a.c)翻译成ASCII码的中间文件(a.i) 接着C编译器ccl,将a.i翻译成ASCII汇编语言文件a.s 接着运行汇编器as,将a.s翻译成可重定位的目标文件a.o 最终完全链接成可执行文件a.out 目标文件 目标文件有三种形式: 可重定位的目标文件 可执行目标文件 共享目标文件 ELF格式的可重定位目标文件的结构如...
2016-04-06 23:00:00
174
转载 Linux内核分析-创建新进程的过程
分析Linux内核创建一个新进程的过程 task_struct结构体分析 struct task_struct{ volatile long state; //进程的状态 unsigned long flags; //调用fork时候给出的进程号 long nice; //进程的基本时间片 unsigned long policy; //进程的调...
2016-03-30 22:32:00
135
转载 第三章学习笔记
进程管理 进程是处于执行期的程序以及相关的资源的总称,也称作任务。 可以两个或两个以上的进程执行同一个程序 也可以两个或两个以上并存的进程共享许多资源 执行线程,简称线程,是在进程中活动的对象。 内核调度的对象是线程,而不是进程。 进程描述符及任务结构 内核把进程的列表存放在任务列表(task list)的双向循环链表中。 链表中每一项都是类型为task_struct的进程描...
2016-03-28 22:26:00
114
转载 Linux内核分析-系统中断在内核中的实现
分析system_call中断处理过程 在MenuOS中添加上周所运用到的系统调用 即在Linuxkernel/menu/test.c文件中,添加代码如下: int Mkdir() { const char *ch = "test"; //创建的文件夹名称 mode_t mode = 0700; //创建的文件夹的权限 ...
2016-03-27 15:59:00
132
转载 Linux内核分析-两种方式使用同一个系统调用
实验部分 根据系统调用表,选取一个系统调用。我选得是mkdir这个系统调用,其系统调用号为39,即0x27 由于mkdir函数的原型为 int mkdir (const char *filename, mode_t mode) 所以根据其原型编写一下代码: #include <stdio.h> #include <sys/types.h> #incl...
2016-03-20 16:16:00
126
转载 Linux内核设计与实现(chapter1/2)
Linux内核简介 Unix从一个失败的多用户操作系统Multics中衍生来的。 Unix强大的原因: 简洁 几乎所有的东西都被当做文件来对待,可以通过相同的系统调用接口来进行调用。 因为它是由c语言编写,所以具有强大的移植能力 进程创建迅速,且拥有独特的fork()系统调用 具备清晰的层次化 Unix操作系统多样的功能: 抢占式多任务 多线程 虚拟内存 换页 动态链接 TCP/...
2016-03-16 22:51:00
120
转载 Linux内核分析-构造一个简单的Linux系统MenuOS
构造一个简单的Linux系统MenuOS linux内核目录结构 arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。 include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。 init目录包...
2016-03-12 18:38:00
215
转载 linux内核分析--操作系统是如何工作的?
一个简单的时间片轮转多道程序 操作系统的“两把剑”:中断上下文(保存现场和恢复现场)和进程上下文的切换 源代码的分析 *使用的源代码为视频中所使用的精简内核的源代码 首先分析mypcd.h struct Thread { unsigned long ip;//point to cpu run address unsigned long sp;//point to the th...
2016-03-05 20:26:00
173
转载 linux内核分析--计算机是如何工作的
实验部分 使用gcc -S -o main.s main.c -m32命令将源代码编译成汇编代码。 源代码如下: int g(int x) { return x + 9; } int f(int x) { return g(x); } int main(void) { return f(18) + 11; } 编译后的代码如下: g: pushl %ebp ...
2016-02-27 00:13:00
139
转载 2016年寒假读书笔记
《茶花女》的赏析 池彬宁 全文讲述着一个混迹巴黎舞会的娇弱女子为了爱情勇敢放弃自己的财富,为了他人勇敢地奉献自己的幸福的故事。本文女主有着当时社会所没有追求真爱的勇气以及为他人着想的精神。 故事的开始女主身患肺病混迹于巴黎舞会,并在一场家中的舞会中与男主相遇,男主爱上了女主,并且真挚地表达自己的内心。随后,男主受邀唱了饮酒歌助兴,宴会中的饮酒歌本因是醉生梦死的颓废气息,然而男主却唱出了要...
2016-02-24 13:56:00
168
转载 Linux学期总结
#学习笔记链接 第一次 http://www.cnblogs.com/Spr1ngxx/p/4823573.html 第二次 http://www.cnblogs.com/Spr1ngxx/p/4842441.html 第三次 http://www.cnblogs.com/Spr1ngxx/p/4854914.html 第四次 http://www.cnblogs.com/Spr...
2015-12-20 14:44:00
238
转载 Linux第13周学习笔记
网络编程 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型。 一个应用是由一个服务器进程和一个或者多个客户端进程组成。 服务器管理某种资源,并通过操作资源来为客户端提供某种服务。 基本操作是事务。 四个步骤: 当客户端需要服务时,向服务器发送请求,发起一个事务。 服务器收到请求后,解释它,并以适当的方式操作它的资源。 服务器给客户端发送一个响应,并等待下一个请求。 客...
2015-12-06 18:13:00
100
转载 Linux实验报告
第一次链接: http://www.cnblogs.com/L1nke/p/4966820.html 第二次链接: http://www.cnblogs.com/L1nke/p/4992758.html 第三次链接: http://www.cnblogs.com/L1nke/p/5008183.html 第4次链接: [http://www.cnblogs.com/L1nke/p/502...
2015-11-29 22:26:00
149
转载 信息安全系统设计基础第十一周学习总结
第十一周实践代码总结 exec1.c #include <stdio.h> #include <unistd.h> int main() { char *arglist[3]; arglist[0] = "ls"; arglist[1] = "-l"; arglist[2] = 0 ;//NULL printf("* * * About to exec ...
2015-11-29 18:41:00
124
转载 Linux第十一次学习笔记
异常控制流 异常控制流(ECF)发生在计算机系统的各个层次 在硬件层,硬件检测到的事件会触发控制突然转移到异常处理程序。 在操作系统层,内核通过上下文转换将控制从一个用户进程转移到另一个用户进程。 在应用层,一个进程可以发送信号到另一个进程,而接收者会将控制突然转移到它的一个信号处理程序。 ECF是操作系统用来实现I/O、进程和虚拟存储器的基本机制。 应用程序通过使用陷阱(trap...
2015-11-22 21:07:00
139
转载 Linux第八次学习笔记
系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程。 输入操作是从I/O设备拷贝数据到主存。 I/O→主存 输出操作是从主存拷贝数据到I/O设备。 主存→I/O Unix I/O 所有的I/O设备都被模型化为文件。 所有的输入和输出都被当作对相应文件的读和写来执行。 打开文件 应用程序通过要求内核打开相应的文件,来宣告它想要访问一个I/O设备。 内核返...
2015-11-08 20:48:00
195
转载 Linux第七次实验笔记
#期中总结 习题总结与分析 填空:Linux Bash中,Ctrl+a快捷键的作用是(将光标移至输入行头,相当于Home键)。 [ctrl]+u 从游标处向前删除指令串 [ctrl]+k 从游标处向后删除指令串 [ctrl]+a 将光标移至输入行头,相当于Home键 [ctrl]+e 将光标移至输入行尾,相当于End键 判断:Linux Bash中, man printf和man ...
2015-11-01 17:22:00
229
转载 家庭作业3.67
#家庭作业3.67 在做题目之前了解了下联合体的内容,对于本题有用的内容: 联合体的所有成员相对于基地址的偏移量都为0; 此结构空间要大到足够容纳最"宽"的成员 其对其方式要适合其中所有成员(4字节补齐) ###对于2、3两点的解释: 联合体所占的空间不仅取决于最宽成员,还跟所有成员有关系,即其大小必须满足两个条件:1)大小足够容纳最宽的成员;2)大小能被其包含的所有基本数据类型...
2015-10-26 22:40:00
188
转载 Linux第六次学习笔记
存储器层次结构 存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。 CPU寄存器保存着最常用的数据。 主存储器(简称主存)暂时存放存储在容量较大的、慢速磁盘上的数据。 高速缓存存储器作为一部分存储在主存中的数据和指令的缓冲区域。 访问周期由小到大:CPU<高速缓存<主存<磁盘 存储技术 随机访问存储器(RAM) 其分为两类: 静态RAM(SRAM...
2015-10-25 14:53:00
104
转载 Linux第五次学习笔记
处理器体系结构 Y86指令集体系结构 定义一个指令集体系结构 ,包括定义各种状态元素、指令集和它们的编码、一组编程规范和异常事件处理。 程序员可见的状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分。 程序员: 1.用汇编代码写程序的人。 2.产生机器级代码的编译器。 类似IA32,存在8个程序寄存器。 3个一位的条件码:ZF、SF、OF 程序计数器PC存放当前正在执行...
2015-10-18 18:13:00
413
转载 Linux第四次学习笔记
程序的机器级表示 寻址方式的演变 DOS → 8086 → IA32 Inter处理器系列俗称x86,其演变过程(根据其所需要的晶体管数量来说明): 8086 → 80286 → i386 → i486 → Pentium → PentiumPro → Pentium II → Pentium III → Pentium 4 → Pentium 4E → Core 2 → Core i7...
2015-10-11 19:22:00
503
转载 Linux第三次学习笔记
#信息的表示和处理 三种重要的数字表示 1. 无符号数编码: 基于传统的二进制表示法,表示大于或者等于零的数字。 2. 补码编码: 表示有符号数整数的最常见的方式,有符号数就是只可 以为正或者为负的数。 3. 浮点数编码: 表示实数的科学计数法的以二为基数的版本。 进制转换 太过于熟悉,此处就不详细说明,注意当转换的起始值和终止值 均不为二进制时,将...
2015-10-04 20:06:00
198
转载 Linux第二次学习笔记
#Linux第二次实验(第三周) 学习目标 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 熟练使用gdb调试技术 熟悉makefile基本原理及语法规范 掌握静态库和动态库的生成 VI的使用 1.VI的模式 (1)命令行模式 (2)插入模式 (3)底行模式 2.VI的基本流程 (1)进入vi,即在命令行下输入...
2015-09-27 17:14:00
398
转载 java第四次实验报告
课程:Java程序与设计班级:1352 姓 名:池彬宁 小组成员: 20135212池彬宁 20135208贺邦 学号:20135212 成绩:指导教师:娄嘉鹏实验日期:2015.6.9 实验密级: 预习程度:实验时间:15:30-18:00 仪器组次:必修/选...
2015-06-12 00:32:00
101
转载 java第三次实验报告
北京电子科技学院(BESTI) 实验报告 课程: Java程序设计 班级: 1352 姓名: 池彬宁 学号: 20135212 成绩: 指导教师: 娄嘉鹏 实验日期: 2015.6.3 实验密级: ...
2015-06-03 22:13:00
202
转载 java第二次实验报告
课程:Java实验 班级:201352 姓名:池彬宁 学号:20135212 成绩: 指导教师:娄佳鹏 实验日期:15.05.05 实验密级: 预习程度: 实验时间: 仪器组次: 必修/选修:选修 实验序号:2 实验名称: Java面向对象程序设计 ...
2015-05-06 17:17:00
309
转载 Java第一次实验报告
北京电子科技学院(BESTI) 实 验 报 告 课程:Java实验 班级:201352 姓名:池彬宁 学号:20135212 成绩: 指导教师:娄佳鹏 实验日期:15.04.14 实验密级: 预习程度: 实验时间: 仪器组次: 必修/选修:选修 ...
2015-04-15 22:57:00
433
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅