作者:bombless

因为不同的系统都叫 Windows ,这些系统在界面上也有一定连续性并且因此可能造成误解,所以有必要稍微梳理一下几个不同的 Windows 系统。
首先是 DOS 上的一个图形界面 Windows 1.0 ,它带了画图、记事本等程序。 DOS 上的这些图形界面程序当然也是16位的,并一直发展到 Windows 3.1 (不过Windows 3.1对应的中文版的版本号是3.2)。 在这个时候因为 DOS 总是作为 Windows 的基础运行的,在运行Windows 的时候当然可以回到 DOS 下运行 DOS 命令。 接下来就是划时代的 Windows 95,这个系统下它不是直接运行在 DOS 上,而是在 DOS 启动的时候直接跳到一个 Windows 图形界面。 Windows 95 上的程序是32位的,不过操作系统的核心还是 DOS 下的那一套,虽然图形方面当然是32位的。 这个时候的 Windows 还是可以运行16位下的 DOS 程序。 Windows 95、 Windows 98 再接下来是 Windows ME ,这就是32位的仍然没有摆脱 DOS 的三个Windows 版本。
接下来就是 Windows NT 3.5,Windows NT 4.0,Windows 2000,Windows XP/Windows 2003 开始的这一代了,也包括 Windows 7 ,Windows 8 等,我们叫做 NT 内核的 Windows ,它的核心就完全是32位的,跟从前汇编编写的代码库完全告别了。这个时候操作系统只是在最初的时候从16位模式跳到32位的保护模式,除此之外不再真正有16位的代码,所以这个时候就没有运行 DOS 程序的条件了。
所以总结下来就是,早期的 Windows 中就是 DOS 上的一个外壳,中期的 Windows 和 DOS 共享了一些代码,在 Windows XP 中已经完全告别了 DOS ,只能靠模拟来运行这些DOS程序。 不过,旧的DOS程序在 Windows XP 上还是可以照常运行,虽然有些比较依赖硬件的程序会运行不正常(不过这些程序反正换了一套硬件就很有可能运行不正常了), Windows 8 在第一次运行 DOS 程序的时候会提示安装 NTVDM 。 这个 NTVDM 就是 NT 内核 Windows 运行 DOS 程序的关键,它用来模拟 DOS 程序运行时所依赖的环境。 不过以上这些都是说的32位 Windows ,在64位 Windows 中本身也没有 NTVDM 功能,所有也就运行不了 DOS 程序了。
不过最后还剩一个问题,在 Windows NT 中执行 DOS 命令到底是什么意思? DOS 上带有一系列的命令,早期和中期的 Windows 都可以执行这些 DOS 命令。到了 Windows NT ,这些命令的使用方式没有变,于是就沿用了执行 DOS 命令这个说法。而实际上在 Windows NT 中使用这些命令时都只是在使用一个叫 cmd.exe 的命令行辅助工具,跟 DOS 不再有什么关系了。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

现在windows下的命令提示符只是一个软件,操作方式和界面模拟dos操作系统

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

转自http://www.zhihu.com/question/24744565

最新文章

  1. java 中多线程之间的通讯之生产者和消费者 (多个线程之间的通讯)
  2. ACM题目————Subsequence
  3. div在固定高的文字垂直居中
  4. "渴了么"用户场景分析
  5. codeforces 624B Making a String
  6. 为ListView添加头和脚
  7. javascript-智能社-JS基础A笔记
  8. Jenkins + robot framework + git持续集成
  9. hdu5893 List wants to travel
  10. 目录导航「深入浅出ASP.NET Core系列」
  11. 2018-2019-2 20165237《网络对抗技术》Exp2 后门原理与实践
  12. java poi excel操作 把第一列放到最后去
  13. 深入浅出TCP/IP协议
  14. MySQL--6运算符和函数小结
  15. WebSocket 处理事件
  16. rpcbind.service启动失败
  17. testng使用DataProvider+Excel实现DDT
  18. 编写自己的代码库(javascript常用实例的实现与封装)[转]
  19. git提交忽略不必要的文件或文件夹
  20. 多个jsp页面共享Java bean

热门文章

  1. vim - copy/paste a word
  2. lucence.net+盘古分词
  3. [Python] 删除指定目录下后缀为 xxx 的过期文件
  4. C正则库做DNS域名验证时的性能对比
  5. 新上市Lighthouse专用芯片TS3633规格介绍
  6. 浅析angular,react,vue.js jQuery使用区别
  7. js 控制浏览器窗口大小
  8. gulp 外挂 rename 的使用
  9. Java多线程开发系列之三:线程这一辈子(线程的生命周期)
  10. The constructor BASE64Encoder() is not accessible due to restriction on required library