作者: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

【转载】DOS 系统和 Windows 系统有什么关系?为什么windows系统下可以执行dos命令?的更多相关文章

  1. 使用拷贝的方式(adb push) 绕过Android系统和adb install直接安装APK

    某些情况下定制的Android系统为了限制用户安装应用,例如电视盒子,车载中控等,通过修改代码屏蔽了正常安装应用的方式 本文探讨如何在 adb shell 具有读写data分区目录的权限前提下,通过a ...

  2. 【原创】Linux环境下的图形系统和AMD R600显卡编程(10)——R600显卡的3D引擎编程

    3D图形处理流水线需要流经多个硬件单元才能得到最后的渲染结果,流水线上的所有的硬件单元必须被正确编程,才能得到正确的结果. 总体上看,从图形处理流水线的源头开始,需要准备好vertex和index,在 ...

  3. 使用Xshell在Windows系统和Linux系统之间进行文件传输

    版权声明:本文为转载内容. 原博客内容https://blog.csdn.net/love666666shen/article/details/75742077 Windows系统在安装虚拟机cent ...

  4. 安装JDK+Eclipse+Maven+Git/Gitee(windows系统和linux系统)

    1. 安装JDK 官网下载 下载java SE 下载 Java SE 7 1.1 windows配置jdk windows配置jdk 1.2 Ubuntu配置jdk Ubuntu 安装 JDK 7 / ...

  5. android系统和ios系统是如何实现推送的,ios为什么没有后台推送

    ios系统为什么没有后台推送? iOS 为了真正地为用户体验负责,不允许应用在后台活动.有了这个限制,但是对于终端设备,应用又是有必要“通知”到达用户的,随时与用户主动沟通起来的(典型的如聊天应用). ...

  6. 扫盲--CRM系统和ERP系统的区别

    企业规模在逐步扩大的时候,为了提高生产和管理的效率,经常需要用到相关管理软件.很多企业管理者在选择管理软件的时候犯了难,面对CRM系统和ERP系统不知如何选择无法下手.那么,CRM和ERP的区别是什么 ...

  7. vsftpd安装和使用 Linux系统和window系统

    vsftpd 安装(Linux)一.安装系统环境 centos 6.9 64位二.vsftpd版本 vsftpd-2.2.2-24.el6.x86_64三.安装步骤1.安装 执行 yum -y ins ...

  8. Java系统和PHP系统相互调用

    一.HTTP JSON方式的缺点 JSON序列化效率低 多语言服务治理功能低 二.关于RPC框架 RPC 框架大致分为两类,一种是偏重服务治理,另一种侧重跨语言调用 2.1 服务治理型 特点 功能丰富 ...

  9. ERP系统和MES系统的区别

    公司说最近要上一套erp系统,说让我比较一下,erp系统哪个好,还有mes系统,我们适合上哪个系统,其实我还真的不太懂,刚接触erp跟mes的时候,对于两者的概念总是傻傻分不清楚,总是觉得既然都是为企 ...

随机推荐

  1. Swift: 比较Swift中闭包传值、OC中的Block传值

    一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包 ...

  2. Docker入门简介

    Docker的概念 什么是Docker? Docker是一个开源平台,包含:容器引擎和Docker Hub注册服务器 Docker容器引擎:可以将开发者打包他们的应用和依赖包到一个可一直的容器中,然后 ...

  3. PHP小总结

    <?php //1.php基础语法 //输出语句 echo print print_r var_dump() //2.php是弱类型语言 //强制转换类型:(类型)变量 settype(变量,类 ...

  4. spring4 离线doc和api(自制)

    spring mvc api 文档(英文版) 链接: https://pan.baidu.com/s/1c25Ml4 密码: ufb9 spring MVC 学习文档(英文版) 链接: https:/ ...

  5. UVALive 7147 World Cup(数学+贪心)(2014 Asia Shanghai Regional Contest)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...

  6. (ExtJs 3.4)Ext.Ajax.request的同步请求实现

    ext3.0之前都是这样来提交:var responsea = Ext.lib.Ajax.getConnectionObject().conn;responsea.open("POST&qu ...

  7. C#树状图 初始默认选中节点

    效果图: <script type="text/javascript"> $(document).ready(function () { GetTree(); GetG ...

  8. eclipse for java developer和eclipse for java ee developer的区别

    eclipse是基于插件机制的软件,插件本身是不能启动和操作的,它们需要一个环境,eclipse使用osgi r4规范实现了这个环境. osgi是java动态模块化的规范,该规范不光要让java程序模 ...

  9. CocoaPods和git

    CocoaPods是第三方框架的管理工具 CocoaPods 安装使用步骤: 1. 利用 gem 安装 CocoaPods! 1> gem 服务器在国外,提供了非常丰富的终端应用程序! gem ...

  10. HttpEntity转换Inputstream(红色)加XmlPull解析

    package com.bawei.xml; import java.io.IOException; import java.io.InputStream; import java.util.Arra ...