自己动手写操作系统——(1)将引导写入U盘

       为什么写博客呢,想了一下,首先是为了给自己留着复习用,因为时间一长,肯定有好多东西会忘记的,在这里留个记录,以后再整理起来就不会太麻烦了;再者是为了分享一下经验,由于在下比较愚笨,说不定在哪个方面就理解错误了,所以还请大家批评指正。^-^

       首先是心理准备。

       我是这样打算的:以写出自己的操作系统作为整条线索。在这条线上,肯定会遇到很多困难,但是,“逢山开路,遇水架桥”,碰到问题解决问题就是了。只要本着这个信念,什么问题解决不了啊,何况一个区区的操作系统,对吧。

       好了,终于可以真正开始自己的操作系统之旅了

       先讲一下我的计算机的配置环境:双操作系统:win7和linux,win7里装了一个虚拟机,虚拟机里装的XP。linux是ubuntu发行版。

       再讲一下我的配置:自学了一点单片机,所以对底层的东西不是特别害怕;自学汇编,因为比较懒,所以耗费了比较长的时间自学了一点C语言,只懂一点皮毛。对于操作系统起步,这些就够了。还是那个原则:遇到困难解决困难。以后要用到的东西以后再学,最重要的是先上路。

        参考书《Orange's 一个操作系统的实现》(自己动手写操作系统(第2版))

        软盘???!!!这次真没有……

       上来就要软盘,在这个年代去哪里能搞到软盘呢?软盘搞不到那就用U盘吧。

       怎么把引导写进U盘呢?

       插入U盘,先把路径转到boot.bin所在的文件夹下,然后在linux命令行中敲入下面的代码:

sudo dd if=boot.bin of=/dev/sdb bs=512 count=1


注意:代码一定要写对,那个字符串的长度一定要数对,千万别忘了里面的空格哦。

       就这么简单的一行代码,也就是把书上的 fd0 替换成 sdb 就行了

       这是后来才找到的解决办法,我一开始也不知道。刚开始用的方法比较笨,就是在XP里用winHex软件把boot.bin的二进制代码复制到U盘的mbr里去,就OK了。如果winHex是在win7里,要以管理员身份运行。

       万事开头难,但好的开始就等于成功的一半。不要怕,始终仅记:“逢山开路,遇水架桥”……


猜你喜欢

转载自blog.csdn.net/HXCHXC2/article/details/8745785