当前位置:  开发笔记 > 运维 > 正文

用什么语言编写Windows,Mac OS X和Linux?

如何解决《用什么语言编写Windows,MacOSX和Linux?》经验,为你挑选了9个好方法。

我只是想知道谁知道Windows,Mac OS X和Linux是由哪些编程语言组成的,以及OS的每个部分使用的语言(即:内核,插件架构,GUI组件等).

我假设每种语言都有多种语言,显然我知道Linux内核是用C语言编写的.

我完全猜测Mac OS X包含很多Objective-C代码,因为它是源自NeXT的Apple语言.

Windows,我听说包含C,C++和Intel Assembly.Linux或Mac OS是否包含任何汇编代码?

此外,操作系统开发人员是否使用Ruby,Python等脚本语言来编写操作系统的部分脚本?操作系统的哪些部分将用每种语言编写?



1> Ana Betts..:

Windows:C++,内核在C中

Mac:目标C,内核在C中(IO PnP子系统是嵌入式C++)

Linux:大多数东西都在C语言中,许多用户态应用程序都在Python中,KDE都是C++

所有内核也将使用一些汇编代码.


Gnome也与C#(Mono)调情.
我应该补充一点,Gnome也是C.
没错,每个内核至少都会有一些汇编程序
我相信linux内核也有汇编程序.
为了使事情变得清晰 - Apple内核的IOKit子系统(用于驱动程序)使用(受限制的子集)C++.在所有3个,即Windows,Mac和Linux上,许多最重要的用户态应用程序都是用C或C++编写的.据称,例如,MS试图在.NET中重做Office,但又回到了C++.Linux内核使用许多C++ - 就像成语,但在C中一起手工编写,例如在驱动程序代码中继承.

2> Pacerier..:

Linux:C.汇编中的一些部分.

[...]它主要在C中,但是大多数人都不会打电话给我写的C.它使用了我能找到的386的所有可想象的特征,因为它也是一个教我386的项目.如前所述,它使用MMU,用于分页(不是磁盘)和分段.它的细分使得它真正依赖于386(每个任务都有64Mb代码和数据段 - 4Gb中最多64个任务.任何需要超过64Mb /任务的人 - 坚韧的cookie).[...]我的一些"C"文件(特别是mm.c)几乎和C一样多.[...]与minix不同,我也碰巧是LIKE中断,所以处理中断而不试图隐藏他们背后的原因.(资源)

Mac OS X:Cocoa主要在Objective-C中.用C编写的内核,汇编中的一些部分.

在内核层,Mac OS X主要是一个较老的免费操作系统,称为BSD(具体来说,它是Darwin,一种BSD,Mach和其他一些东西的混合体)......几乎完全是C,有点像抛出的汇编程序.(来源)

大部分Cocoa都是在Objective-C中实现的,这是一种面向对象的语言,它被编译为以令人难以置信的速度运行,但却采用了真正的动态运行时,使其具有独特的灵活性.因为Objective-C是C的超集,所以很容易将C甚至C++混合到Cocoa应用程序中. (资源)

Windows:C,C++,C#.汇编程序中的某些部分.

我们几乎完全使用C,C++和C#for Windows.一些代码区域是手动调整/手写组装.(资源)

Unix:C.汇编中的一些部分.(资源)


Darwin中的驱动程序子系统(IOKit)在很大程度上依赖于类似COM的对象模型,该模型是用C++的子集编写的.

3> alex strange..:

Mac OS X在某些库中使用了大量的C++,但它没有暴露,因为它们害怕ABI破坏.


什么?无论如何,有一半的程序停止了每个新版本的工作.
你能不能为_"Mac OS X在某些库中使用大量的C++"提供某种引用?_声明?我发现很难接受你的话!我很抱歉对此持怀疑态度.
@AnishRamaswamy查看`IOKit`,`WebKit`和`GLKit`.还可以瞥见`dyld`.那些非常C++很重.

4> 小智..:

我知道这是一篇旧帖子,但Windows绝对不是用C++编写的.其中有很多C++,但我们技术定义为操作系统的不是C++.Windows API,Windows内核(这两者本质上都是操作系统)是用C语言编写的.几年前,我给了Windows 2000和Windows XP一些泄露的代码.代码不够完整,无法编译内核或API,但我们能够编译单独的程序和服务.例如,我们能够成功编译Notepad.exe,mspaint.exe和spoolsv.exe服务(打印后台处理程序).全部用C语言编写.我没有再看过,但我确信泄露的代码仍然存在,因为那里的torrent文件可能仍然可用.



5> ReinstateMon..:

Windows:主要是C和C++,有些是C#


@ 1800Information-C#在运行时从那里将JIT编译为机器代码?我认为你是一个困惑的人。有字节码,有虚拟机:http://en.wikipedia.org/wiki/Common_Intermediate_Language

6> 小智..:

windows:C++

linux:C

mac:目标C.

android:JAVA,C,C++

Solaris:C,C++

iOS 7:Objective-C,Swift,C,C++


Android:Java(UI).资料来源:https://en.wikipedia.org/wiki/Android_(operating_system)
讨论是关于操作系统的.没有系统编程语言就无法构建操作系统.使用Java进行系统编程是不可能的.
@JamRisser Android使用C语言的Linux内核。该系统几乎用Java编写,直到最深层次。Dalvik VM(由Google编写的Java虚拟机)使用C或C ++。

7> OscarRyz..:

你是对的MacOSX的核心是Objective-C.

Windows C++

Linux C

关于脚本语言,不,它们非常高级.


C语言中的Windows:内核,驱动程序,API.我想只有C++中的系统应用程序和工具.所以说C只是更清楚

8> Patrick Cass..:

我已经阅读或听说Mac OS X主要是在Objective-C中编写的,其中包含一些较低级别的部分,例如内核和用C编写的硬件设备驱动程序.我相信Apple"吃掉了自己的狗食" ",也就是说,他们使用自己编写的Mac OS X 的Xcode开发工具.的(GNU编译器集合)GCC编译器-连接基是unix命令行工具xcode的用于大多数其编译和/或可执行程序的链接的.在其他可能的语言中,我知道GCC编译来自C,Objective-C,C++和Objective-C++语言的源代码.



9> adem..:

哇!!!9年的问题,但我刚刚碰到有关Windows命令行历史的一系列内部文章,我认为其中一部分可能与问题的Windows相关:

对于那些关心此类事情的人:许多人问Windows是用C还是C ++编写的。答案是-尽管NT是基于对象的设计-像大多数OS一样,Windows几乎完全是用C编写的。为什么?C ++在内存占用量和代码执行开销方面带来了成本。即使在今天,用C ++编写的代码的隐藏成本也可能令人吃惊,但在1990年代后期,内存成本约为60美元/ MB(是的……每个MEGABYTE 60美元),vtables等的隐藏内存成本非常高。另外,虚拟方法调用间接和对象取消引用的成本可能导致当时C ++代码的性能和规模上的巨大损失。尽管仍然需要谨慎,但是现代C ++在现代计算机上的性能开销却很少受到关注,并且考虑到其安全性,可读性和可维护性的好处,通常是可以接受的折衷……这就是为什么我们稳定地将控制台的代码升级到现代C ++。

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有