操作系统
文章平均质量分 69
科氏加速度
岁寒,然后知松柏之后凋也。
展开
-
操作系统接口
概念 操作系统接口就是操作系统对外提供的函数,上层应用调用 这些函数可以达到控制硬件的目的。 如c printf函数其实封装了操作系统的write接口,调用可以输出内容到显示器;再比如fork,控制cpu创建进程。 怎么调用操作系统接口?用c 使用计算机的三种方式 命令行:c文件用gcc编译为sh文件,用sh命令执行。 shell本身也是一段程序,里面就是无限循环等待 输入命令(while(1){scanf),如果有命令,就fork创建进程执行命令 图形界面:鼠标等...原创 2021-08-21 18:02:12 · 166 阅读 · 0 评论 -
linux0.11启动 setup.s head.s
bootsect.s执行后,开始执行setup.s 操作系统要获取内存、显卡、光标等硬件信息,然后用对应数据结构去管理硬件,这就是setup的作用。 int 0x15 中断对应的程序作用:读取扩展内存大小(x86默认内存只有1M,剩下的4G 8G都是扩展内存),把内存大小放到[2] ,即ds:[2],实际上是 0x9000:[2],(在bootsect.s中已经知道ds的值是0x9000)。 参考https://blog.csdn.net/yuanfen5200/article/details原创 2021-08-08 12:16:33 · 283 阅读 · 0 评论 -
linux0.11 bootsect.s
引导扇区代码在ds:si,把引导扇区的代码复制到0x9000:0x0000(为什么往这复制,我也不清楚), rep movw就是在复制512个字节(cx的值 *2)。 jmpi go,INITSEC就是程序跳转到INITSECL:go 执行,这是一个段地址+偏移地址。 INITSECL:go 正好和es相等,那go是多少?紧接着在下面 jmpi go,INITSEC 结果是正好跳到 go处代码执行。 go的代码是把ds es这些改变一下,因为现在的段地址变到了0x9000,所以把栈这些都改...原创 2021-08-05 10:14:13 · 156 阅读 · 0 评论