hardbone 发表于 2010-6-13 14:30:54

从u盘启动,输出hello,world

hi,大家好!
    先说一下要实现的功能,“计算机开机,从U盘启动,然后加载用盘中自写的程序,输出'hello,world!'”
    再说一下我的看法
    1)首先计算机启动原理,加电后,转到执行BIOS程序,这个过程就是自检过程,然后根据BIOS中设置的启动方式(硬盘启动,U盘启动,软盘启动,光盘启动),加载MBR引导扇区,默认情况下是硬盘启动,也就是说会将硬盘中第一个物理扇区(也叫MBR引导扇区,包括MBR程序和分区表DPT,共512字节)中的内容加载到0000:07c0h这里,然后开始执行MBR引导程序(MBR程序的作用是查找活动分区,并加载活动分区的逻辑第一分区的内容——该分区也叫DBR分区,包括DOS引导记录DBR和BIOS参数块BPB,然后将控制权交给DOS引导程序),DOS引导程序开始查找操作系统引导文件,如IO.sys等,加载操作系统,控制权交给操作系统。
    2)也是我的疑问,如果U盘启动,首先是否也将是将U盘的第一个物理扇区加载到内存中执行呢?然后如果是,我如何将我字节的程序写到一个格式化好待用的U盘的第一个扇区呢,用什么方法和工具,注意我的意识是将我自己的程序写到U盘里面制定扇区。我的程序功能就是输出"hello,world''.

      至于后来的发展,我可以将这个hello,world的程序变成Loader程序,一步一步往操作系统方面靠。

ghosthd 发表于 2010-6-13 15:06:23

lz可以参考一下《自己动手写OS》这本书。

luan_dahai 发表于 2010-6-24 09:35:36

楼主是搞啥的。这么高深。

huohuansong 发表于 2010-6-24 16:36:41

《自己动手写OS》开篇就是这么讲的,

直接把弄好的MBR放U盘的第一扇区,用的是一个叫磁盘分区读写工具的东西,具体名字忘记了。可以直接操作扇区的。

电脑设置从U盘启动,就OK了,加载到内存那是BIOS干的。

lgh269 发表于 2010-6-24 21:22:10

具体要实现什么呢,需要搞这么复杂?若只是简单的应用,为什么不在成熟的系统上做呢,比如DOS,然后在DOS基础上写个输出小程序,使用自启动运行输出不可以吗?
页: [1]
查看完整版本: 从u盘启动,输出hello,world