如果我没有记错,根据几年前微软在美国公布的内容,WINDOWS本身属于微内核系统,WINDOWS98总共大概不到10万行代码(具体是2万还是5万记不清了),而WINDOWS2000则已经有20余万行代码,其中80%是用C++编写,其余部分有C和汇编,底层接口用汇编编写。
微内核系统从概念上是指“只包括 *** 作系统的基本功能,例如内存管理和进程管理等等”,就连对各个文件系统的支持也不算在内,不过具体WINDOWS是不是这样设计我就不清楚了。
所以一个微内核系统的 *** 作系统能够有20万行代码已经很多了。
之所以微软选择了C++而不想LINUX一样选择C,其根本原因就是WINDOWS *** 作系统本身是微内核系统,所以扩展性及以后的维护要求非常重要,所以C++的类的概念就能在这里很好的利用,但是毕竟C++的效率不如标准C及汇编,所以在一些明显以效率为重的地方用的还是标准C及汇编。
编写完毕后,WINDOWS上的其他用户态程序(包括所有驱动程序、计算器、游戏等等所有你现在拿鼠标能够 *** 作的东西)另行开发,例如:扫雷游戏就是用VB写的。
上层(或者是表层)、中间层和底层没有严格意义上的定义,在不同的项目中需要结合具体需求来具体分析。
一般来说,表层就是指展现给用户看的部分;而底层就是系统的最核心的部分。一般我们认为,越接接硬件的编程就越底层。
比如,一个在线通讯软件(QQ这种),表层就是窗口啊、菜单啊、按钮啊这些玩意儿;中间层是业务逻辑部分,就是你点击这些按钮会产生相应的什么事件,进行了什么 *** 作;底层就是Socket网络通信了。当然,我这里这三层是大致划分的,实际开发中比这个要更具体详细。
再比如,拿题主说的游戏举例子,表层就是各种游戏的界面了;底层就是游戏引擎了。底层干嘛?接收你的鼠标键盘响应信号、 *** 作显卡在显示器指定位置生成各种二维的三维的图像、控制声卡输出音频等等等等。
至于编程语言问题,这就牵扯到低级语言和高级语言的问题了。一般来讲低级语言和高级语言区别在于:
高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好。
低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差。
越低级的语言,形式上越接近机器指令(汇编语言就是与机器指令一一对应的)。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层 *** 作进行了抽象和封装,使编写程序的过程更符合人类的思维习惯,并且极大了简化了人力劳动。也就是说你用高级语言写一句,会被转换成许多底层 *** 作,大部分的工作交给了负责转换的机器(即编译器),从而人力得到了解放。因为机器就是用来为人类提供便利的,所以说高级语言的出现是计算机发展的必然结果。(参考:>
所以说用 C/C++ 这类语言更适合写游戏引擎。游戏嘛,必定是要求响应速度极高的,总不能按完键盘了等100毫秒才响应,生成个三维地图电脑卡半天。但一般不会游戏的所有部分都用 C/C++ 来完成,为什么?上面说了,可维护性差、可移植性差。这时候就需要用面向对象这种“高级语言”出马了。
至于题主提到的“不同语言之间的互通”,建议题主理解一下“接口”(不是面向对象里的“接口类型”)的概念。
泛泛而谈,希望对题主有所帮助。
ARM底层驱动架构和驱动器是两个不同的概念。
ARM底层驱动架构(Low-level Driver Architecture)是指处理器芯片中的底层接口和硬件抽象层,它与 *** 作系统和应用程序紧密配合,确保正确地控制计算机硬件以执行任务。ARM底层驱动程序可以实现对处理器、存储器、输入输出和其他硬件元件的控制。在软件程序和硬件组件之间建立了桥梁,完成了CPU和外设之间的数据交换和通信。
而驱动器(Driver)则是一种计算机程序或模块,可通过特定的接口与 *** 作系统或其他应用程序交互,将硬件访问(如输入/输出 *** 作)转换为具有 *** 作系统或应用程序能够理解的语言和指令,从而使计算机与硬件设备之间能够进行有效的数据交换和通信。
简单来说,ARM底层驱动架构是芯片中的硬件抽象层,负责管理和控制计算机硬件,而驱动器则是 *** 作系统和应用程序中的软件程序或模块,负责与硬件设备之间进行交互和通信。
以上就是关于windows是用什么程序编写的全部的内容,包括:windows是用什么程序编写的、请问编程中的 上层 和 底层 是什么意思 比如有人说 "游戏用JAVA或c#做上层,用汇编或c/、arm底层驱动架构和驱动器的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)