我正在制作引导装载程序。到现在为止,我什么都不知道。我正在学。什么是16位实模式操作系统?什么是“实模式”是指什么是16位实模式操作系统?
回答
总之,这是痛苦的,今天存在的历史原因。
你为什么要在boot loader上工作?您是否考虑使用GNU GRUB加载您要加载的任何内核软件?至少要研究一些现有的引导加载程序的来源,如Grub或LILO
其学术项目..学习东西.. – zedai
我的感觉是,测试引导装载机是痛苦的。引导装载程序取决于BIOS和硬件,它们有很大的不同。 –
早期x86处理器中的“真实模式”是必要的罪恶。请记住,唯一可用于x86处理器的软件是16位真实模式,除非英特尔/ AMD想要编写和销售他们自己的操作系统和编译器,并且他们必须支持现有的软件。因此,286和386在8086模拟模式下启动,然后切换到“fancier”模式,386被设计为允许8086风格的程序在“发言”的操作系统内的“沙箱”中运行, 386。 –
“16位”表示这是由CPU识别的“字”的大小(尽管内存可能被组织为字节等)。这也意味着存储器地址不会大于16位,但会变成模糊区域。
“实模式”表示内存在不使用任何内存映射硬件的情况下寻址。也就是说,CPU寄存器中的地址1234在用于引用存储器时将在RAM中的物理位置1234处获取该值。通常还意味着,内存“保护”方式很少 - 最多只是一个CPU寄存器,而不是将某个地址的上方或下方的空间保留为“只读”。
旧的原始MS DOS将被认为属于这个类别,就像最初的Apple II操作系统以及其他大多数被遗忘的其他类型一样。即使是一些相当大的早期计算机(即多个6英尺高的设备机架)也以这种模式运行。
我建议看一下James Molloy's Kernel Development Tutorial,它会向您介绍如何使用GRUB并引导您可以学习编写的内核。
- 1. 在实模式下的16位.com C程序操作系统
- 2. 什么数据类型是32位操作系统中的16位和64位操作系统中的32位?
- 3. 什么是操作系统(关于嵌入式系统)?
- 4. 什么是本地操作系统
- 5. 为什么在x86操作系统上运行16位程序会变慢?
- 6. 建设16位操作系统 - 字符数组不工作
- 7. 什么是操作系统和元操作系统之间的差别
- 8. 实际上Android是什么?移动软件或操作系统?
- 9. 帮助建立一个16位的操作系统
- 10. 获取当前操作系统的最佳方式是什么?
- 11. 是什么导致抢先式操作系统挂起?
- 12. 什么是多速率非抢先式操作系统?
- 13. 操作系统中的用户模式和内核模式有什么区别?
- 14. 如果操作系统是64位
- 15. 在32位操作系统和64位操作系统之间,类java.net.InetAddress有什么区别
- 16. 为什么在64位操作系统中,结构变量之间的差异始终是16字节?
- 17. 实时操作系统tick时间是什么意思,这个系统的tick时间有什么用途
- 18. 如何检测操作系统是否支持Python中的16位exes?
- 19. 是否有API知道当前的iOS/Mac是64位操作系统还是32位操作系统?
- 20. Python操作系统模块
- 21. 对一系列值执行操作的C#模式是什么?
- 22. 为什么要使用64位操作系统?
- 23. 移动操作系统与桌面操作系统有什么不同
- 24. 确定从32位操作系统或64位操作系统C/C++应用
- 25. 32位/ 64位操作系统?
- 26. 如何是操作系统
- 27. 什么是融合位置提供商的最低Android操作系统级别
- 28. 什么是实时系统的彗星?
- 29. 模块化计算32位与64位操作系统
- 30. 检查Windows操作系统是否以安全模式运行
http://en.wikipedia.org/wiki/Real_mode – Mat