0.11之路(三):system模块
来源:互联网 发布:c语言中函数中参数 编辑:程序博客网 时间:2024/05/25 08:12
现在载入第三批代码——system模块,仍然使用 int 0x13 中断。
这批代码要比之前多很多,所以需要一点时间,于是出现了 “Loading system …”的字样。但是,此时操作系统的main函数还没有执行,所以它是用汇编来实现的。
system模块被加载至内存的 0x10000 往后的120KB空间中。这样整个操作系统的代码都加载至内存,最后要再次确定一下根设备号。
什么是根设备?
根文件系统设备(Root Device):
0.11使用的是Minix操作系统的文件系统管理方式,要求系统必须存在一个根文件系统,其他文件系统挂接在其上,而不是同等地位。一张格式化好的软盘就可以成为一个根文件系统设备。
setup程序做的第一件事就是利用BIOS中断服务程序从设备上提取内核运行所需的机器系统数据。然后将这些数据放在了 0x90000 ~ 0x901FD 的位置,可见已经覆盖了原先的bootsect代码,bootsect只有2B未被覆盖,可见,操作系统对内存的使用是非常严谨的——充分利用了已经没有用的内存,而且几乎正合适,只差2字节。
最后,总结一下整个的加载过程。
开机 —— BIOS —— bootsect(int 0x19)—— setup (int 0x13)—— system(int 0x13)
0 0
- 0.11之路(三):system模块
- 内核模块编程之入门(三)-模块实用程序简介
- Nginx event核心模块之epoll模块详解(三)
- python之模块三
- 【python学习】之三、模块
- python学习之三 模块
- linux内核模块编程之进阶(三)
- jni学习实例(三)-a7105模块驱动之activity
- Android FM模块学习之四源码解析(三)
- ISP Pipeline的关键模块之Demosaic( 三)
- Android4.4.2源码分析之WiFi模块(三)
- (三)os模块
- 图解DotNet框架之三:System.IO
- 内核模块编程之进阶(三)-编写带参数的中断模块
- 内核模块编程之入门(三)—模块儿实用程序简介
- Linux 驱动开发之内核模块开发 (三)—— 模块传参
- Linux 驱动开发之内核模块开发 (三)—— 模块传参
- Magento 模块开发之 System.xml 配置详解
- 第一篇博客
- C/C++相互调用
- 东秦C#课设002-简单的文本编辑器
- (八)正交表实验法
- java实现二叉树的三种遍历方式,并把二叉树转为双向链表,输出二叉树
- 0.11之路(三):system模块
- fatal error C1083: Cannot open include file: '..\XX.h': No such file or directory
- I ,P,B帧概念
- 正房跟小三的抗争谁占优势
- FTP判断发送方式
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- 杂记
- Magento 常用 Extensions key
- [linux-svn] linux下svn常用指令