向硬盘进发
基于软盘Floppy的操作系统的研究已经基本告一段落。
后面要做的是把整个系统移植到从硬盘直接启动。
软盘的标称容量是1.44M,而硬盘动辄几十上百G,可以使用的空间远远超过软盘,而且远超过32位操作系统的4G内存,从而可以从实用意义上实现内存的换页。
另外,从接口驱动的角度。当把硬盘研究清楚后,以键盘为代表的的流设备和以硬盘为代表的块设备均得到了实践,为广阔的接口设计打下了模式基础。相比而言,鼠标并不典型。
命令行对硬盘的操
平时从硬盘复制粘贴删除的操作均是基于GUI的界面操作,当可以通过命令行直接进行操作后,打开了新世界的又一扇大门。
基本框架如下:
buildimg :
dd if=boot/boot.bin of=$(IMG) bs=512 count=1 conv=notrunc
sudo mount -o loop $(IMG) /mnt/hd/
sudo cp -fv boot/loader.bin /mnt/hd/
sudo cp -fv kernel.bin /mnt/hd
sudo umount /mnt/hd
首先是第一扇区的直写dd引导数据;
其次是通过命令行向硬盘复制cp文件。
软盘已用空间
那么话又说回来,软盘中目前的操作系统占据了1.44M的多少空间?
从图中可见,目前的操作系统1440K只用了不到16K,只占1.1%,不到2%。因此,哪怕只是研究这个1.44M的软盘,也可以在相当长的时间内开发出规模较复杂的操作系统。