![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
关于linux系统的使用、编程等
Songsci
Reading the fucking source code
展开
-
[操作系统真象还原7]了解中断的实现——逐步深入底层
文章目录中断1:中断概述2:中断类型2.1:处理器的特权级检查:2.2:IF位3:可编程中断控制器(PIC)8259A3.1:引入原因3.2:主要作用3.3:级联3.4: 8259A内部一些信号和寄存器:4:实现打印功能的中断4.1:kernel.S(主要部分)4.2:interrupt.c4.3:PIC初始化端口读写的内嵌函数4.4:中断初始化5:完成调用及调试运行6:改进6.1:kernel.S6.2:interrupt.C7:时钟 定时器82537.1:编写8253控制字中断1:中断概述并发和并原创 2020-12-06 19:41:25 · 937 阅读 · 0 评论 -
[操作系统真象还原6]完善内核(内联汇编、c混编)
完善内核1:函数调用约定参数传递方式---------存放在栈中在函数未执行前发生进程切换,参数还是需要转移阵地,寄存器又太少,干脆直接放在内存中为了避免多进程的参数覆盖问题,将参数放在进程自己的栈中。参数压栈顺序---------从右向左,栈空间的清理员----------调用者(仅限在当前cdecl调用约定下)由于编写函数的程序员或者调用函数的人都知道需要调用的参数,所以这些工作其实有谁做都可以,只需要双方做好约定即可。调用约定例如有cdecl,syscall,optlink,thisc原创 2020-12-05 15:26:21 · 322 阅读 · 0 评论 -
[操作系统真象还原5]加载C语言内核(从汇编世界进入C语言世界)
1:生成C语言程序的过程:说明:.o文件是可重定位文件,重定位指的是文件里面所用的符号还没有安排地址,这些符号的地址需要将来与其他目标文件“组成”一个可执行文件时再重新定位(编排地址)符号是调用的函数或者变量可执行文件可由几个目标文件组成,如kernel内核多个代码文件,生成kernel.bin文件组成即链接操作编排地址就是对程序中的代码安排对应的地址具体链接调试过程:int ...原创 2020-12-03 17:42:12 · 727 阅读 · 0 评论 -
文件I/O的内存缓冲技术
前言应用缓冲技术对提高系统的效率是很明显的,它的主要思想是一次读入大量的数据然后放入缓冲区,进程需要的时候从缓冲区取得数据。管理员模式和用户模式之间的切换需要消耗时间,相比之下,磁盘的I/O操作消耗的时间更多,为了提高效率,内核也使用缓冲技术来提高对磁盘的访问速度。内存缓冲技术原理内核将磁盘上的数据块复制到内核缓冲中,当一个用户空间中的进程要从磁盘上读数据时,内核一般不直接读磁盘,而是将...转载 2019-07-18 21:19:16 · 1015 阅读 · 0 评论 -
(简易版)c语言人机对战五子棋
概要琐碎的地方就不提了,人机对战五子棋的核心在于如何分析棋局,使程序落子最优化。当然我只是简易版本,没有棋盘界面化,没有禁手,策略也不能算是精良,只能勉强当作一个参考供大家学习。Ps:AI有时候会犯傻,可能是分值设置的原因,请谅解原创 2019-07-31 21:10:31 · 2206 阅读 · 0 评论