DOS 程序开发深入解析
1. DOS 与 Unix 用户程序环境差异
DOS 程序运行的环境与 Unix 用户程序的环境有很大不同,同一处理器能支持这两种环境,主要差异体现在以下三个方面:
- 内存引用 :
- Unix :使用虚拟内存系统控制内存访问,Linux 的虚拟内存基于分页机制,应用程序员无法直接访问物理内存。
- DOS :没有分页机制,程序员知道内存位置的物理地址后,就能直接写入该位置,这需要对分段过程进行操作。
- 特权级别 :
- Unix :只有系统程序具有系统级特权,用户程序没有。
- DOS :严格来说没有特权级别,但实际上运行时所有程序都具有系统级特权。Linux 用户程序没有系统级特权,因此不能直接进行 I/O 访问,即不允许使用 IN 或 OUT 指令。
- 编码默认值 :
- x86 Linux 程序 :默认采用 32 位编码。
- DOS 程序 :默认采用 16 位编码。
当 x86 处理器(从 80286 开始)创建 DOS 环境时,被称为处于实模式;不处于实模式时,则处于保护模式。在 Linux 中,用户程序和大多数内核程序运行在保护模式,Linux 仅在启动时使用实模式,因为 x86 处理器只能在实模式下启动。
超级会员免费看
订阅专栏 解锁全文
2432

被折叠的 条评论
为什么被折叠?



