我只是想知道谁知道 Windows、Mac OS X 和 Linux 是由什么编程语言组成的,以及操作系统的每个部分使用什么语言(即:内核、插件架构、GUI 组件等)。
我假设每种语言都有多种语言,显然我知道 Linux 内核是用 C 编写的。
我在这里完全猜测 Mac OS X 包含很多 Objective-C 代码,因为它是 Apple 的源自 NeXT 的语言。
Windows,我听说包含 C、C++ 和 Intel 程序集。 Linux 或 Mac OS 是否包含任何汇编代码?
此外,操作系统开发人员是否使用 Ruby、Python 等脚本语言来编写操作系统的部分脚本?操作系统的哪些部分将用每种语言编写?
Windows:C++,内核在 C 中
Mac:Objective C,内核在 C 中(IO PnP 子系统是 Embedded C++)
Linux:大多数东西都是用 C 语言编写的,许多用户级应用程序是用 Python 编写的,KDE 都是 C++
所有内核也将使用一些汇编代码。
Linux:C. 组装中的一些部件。
[...] 它主要是用 C 语言编写的,但大多数人不会把我写的东西称为 C。它使用了我能找到的 386 的所有可以想象的特性,因为它也是一个教我 386 的项目。如前所述,它使用 MMU 进行分页(尚未到磁盘)和分段。正是分段使其真正依赖于 386(每个任务都有一个 64Mb 的代码和数据段——4Gb 中最多 64 个任务。任何需要超过 64Mb/任务的人——艰难的 cookie)。 [...]我的一些“C”文件(特别是 mm.c)几乎与 C 一样多的汇编程序。[...] 与 minix 不同,我也碰巧喜欢中断,因此处理中断时不会试图隐藏他们背后的原因。 (资源)
Mac OS X:Cocoa 主要在 Objective-C 中。用 C 语言编写的内核,组装中的某些部分。
Mac OS X,在内核层,主要是一个旧的、免费的操作系统,称为 BSD(具体来说,它是 Darwin,一种 BSD、Mach 和其他一些东西的混合体)......几乎完全是 C,有点(来源) Cocoa 的大部分内容是用 Objective-C 实现的,Objective-C 是一种面向对象的语言,经过编译后可以以令人难以置信的速度运行,但采用真正动态的运行时,使其具有独特的灵活性。因为 Objective-C 是 C 的超集,所以很容易将 C 甚至 C++ 混合到您的 Cocoa 应用程序中。 (资源)
Windows:C、C++、C#。汇编器中的一些部件。
对于 Windows,我们几乎完全使用 C、C++ 和 C#。某些代码区域是手动调整/手写的汇编。 (资源)
Unix: C. 组装中的一些零件。 (Source)
Mac OS X 在一些库中使用了大量的 C++,但由于害怕 ABI 破坏而没有公开。
IOKit
、WebKit
和 GLKit
。还可以一瞥 dyld
。这些都是非常重的 C++。
哇!!! 9 年的问题,但我刚刚在 Windows 命令行历史上遇到了一系列内部 article,我认为其中的某些部分可能与问题的 Windows 相关:
对于那些关心这些事情的人:许多人询问 Windows 是用 C 还是 C++ 编写的。答案是——尽管 NT 采用基于对象的设计——就像大多数操作系统一样,Windows 几乎完全是用“C”编写的。为什么? C++ 在内存占用和代码执行开销方面引入了成本。即使在今天,用 C++ 编写的代码的隐藏成本也令人惊讶,但在 1990 年代后期,当内存成本约为 60 美元/MB(是的……每兆字节 60 美元!)时,vtables 等的隐藏内存成本非常可观。此外,虚拟方法调用间接和对象取消引用的成本可能会在当时对 C++ 代码造成非常显着的性能和规模损失。虽然仍然需要小心,但现代计算机上的现代 C++ 的性能开销已经不是什么大问题了,考虑到它的安全性、可读性和可维护性的好处,这通常是一个可以接受的权衡……这就是为什么我们将控制台的代码稳步升级到现代 C++。
我知道这是一篇旧文章,但 Windows 绝对不是用 C++ 编写的。其中有很多 C++,但我们技术上定义为操作系统的东西不在 C++ 中。 Windows API、Windows 内核(这两者本质上都是操作系统)是用 C 语言编写的。几年前,我收到了一些 Windows 2000 和 Windows XP 的泄露代码。代码还不够完整,无法编译内核或 API,但我们能够编译单个程序和服务。例如,我们能够成功编译 Notepad.exe、mspaint.exe 和 spoolsv.exe 服务(打印后台处理程序)。全部用 C 编写。我没有再看,但我确信泄漏的代码仍然存在,因为那里可能仍然可用的 torrent 文件。
Windows:主要是 C 和 C++,一些 C#
窗户:C++
linux:C
mac:目标C
安卓:JAVA、C、C++
索拉里斯:C、C++
iOS 7:Objective-C、Swift、C、C++
没错,MacOSX 的核心是 Objective-C。
视窗 C++
Linux C
关于脚本语言,不,它们非常高级。
Linux 内核主要是用 C 语言编写的(我想还有一点汇编语言),但一些重要的用户空间实用程序(程序)是用 Bash 脚本语言编写的 shell 脚本。除此之外,很难定义“Linux”,因为您基本上是通过挑选所需的零碎并将它们组合在一起来构建 Linux 系统,并且根据单个 Linux 用户的需求,您几乎可以使用任何涉及的语言。 (正如 Paul 所说,Python 和 C++ 发挥着重要作用)
我读过或听说过 Mac OS X 主要是用 Objective-C 编写的,其中一些较低级别的部分,例如内核,以及用 C 编写的硬件设备驱动程序。我相信苹果“吃自己的狗粮” ",这意味着他们使用自己的 Xcode Developer Tools 编写 Mac OS X。 GCC(GNU Compiler Collection) 编译器链接器是 xCode 用于大多数可执行文件编译和/或链接的 unix 命令行工具。在其他可能的语言中,我知道 GCC 编译来自 C、Objective-C、C++ 和 Objective-C++ 语言的源代码。
作为 Mac OS X 核心的补充,在 Snow Leopard 之前,Finder 并没有用 Objective-C 编写。在 Snow Leopard 中,它是用 Cocoa、Objective-C 编写的
请参阅标题 One Operating System Running On Multiple Platforms 下的说明:
Most of the source code for Windows NT is written in C or C++.
不定期副业成功案例分享