繁体   English   中英

Windows、Mac OS X 和 Linux 是用什么语言编写的?

[英]What languages are Windows, Mac OS X and Linux written in?

我只是想知道谁知道 Windows、Mac OS X 和 Linux 是由什么编程语言组成的,以及操作系统的每个部分使用什么语言(即:Z6FF9F4444AC481652F4412B5E162388 等)46Z,组件

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

我在这里完全猜测 Mac OS X 包含很多 Objective-C 代码,因为它是从 NeXT 派生的 Apple 语言。

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

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

  • Windows: C++, kernel 在 Z0D61F8370CAD1D412F80B84D143E125Z7
  • Mac: Objective C, kernel is in C (IO PnP子系统是嵌入式C++)
  • Linux:大多数东西都在 C 中,许多用户级应用程序都在 Python 中,KDE 都是 ZF23F97C9FDCFEE873

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

Linux:C。 组装中的一些零件。

[...] 它主要在 C 中,但大多数人不会将我写的称为 C。 它使用了我能找到的 386 的所有可以想象的特性,因为它也是一个向我介绍 386 的项目。如前所述,它使用 MMU,用于分页(尚未到磁盘)和分段。 正是分段使其真正依赖于 386(每个任务都有一个 64Mb 的代码和数据段——4Gb 中最多 64 个任务。任何需要超过 64Mb/任务的人——艰难的 cookie)。 [...] 我的一些“C”文件(特别是 mm.c)几乎和 C 一样多。 [...] 与 minix 不同,我也碰巧喜欢中断,因此处理中断时不会试图隐藏其背后的原因。 (资源)

Mac OS X:Cocoa 主要在 Objective-C。 Kernel 写在 C 中,一些零件在组装中。

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

Cocoa 的大部分内容是在 Objective-C 中实现的,Objective-C 是一种面向对象的语言,经过编译可以以惊人的速度运行,但采用真正动态的运行时,使其具有独特的灵活性。 Because Objective-C is a superset of C, it is easy to mix C and even C++ into your Cocoa applications. (资源)

Windows:C,C++,C#。 汇编器中的一些部件。

对于 ZAEA23489CE3AA9B630ZEBB28E0CDA4,我们几乎完全使用 C、C++ 和 C#。 某些代码区域是手动调整/手写的汇编。 (资源)

Unix:C。 组装中的一些零件。 (资源)

Mac OS X 在一些库中使用了大量的 C++,但由于害怕 ABI 破坏,所以没有公开。

我知道这是一个旧帖子,但 Windows 绝对不是用 C++ 写的。 里面有很多 C++ 但我们技术上定义为操作系统的东西不在 C++ 中。 The Windows API, the Windows kernel (both of these are in essence what an operating system is) are written in C. 几年前,我收到了一些 Windows 2000 和 Windows XP 的泄露代码。 代码还不够完整,无法编译 kernel 或 API,但我们能够编译单个程序和服务。 例如,我们能够成功编译 Notepad.exe、mspaint.exe 和 spoolsv.exe 服务(打印后台处理程序)。 全部用 C 编写。 我没有再看,但我确信泄露的代码仍然存在,因为那里可能仍然可用的 torrent 文件。

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

对于那些关心这些事情的人:许多人问Windows是用C还是C++写的。 答案是——尽管 NT 采用基于对象的设计——就像大多数操作系统一样,Windows 几乎完全是用“C”编写的。 为什么? C++ 引入了 memory 占用空间和代码执行开销方面的成本。 Even today, the hidden costs of code written in C++ can be surprising, but back in the late 1990's, when memory cost ~$60/MB (yes … $60 per MEGABYTE! ), the hidden memory cost of vtables etc. was significant. 此外,虚拟方法调用间接和对象解引用的成本可能会导致当时 C++ 代码的性能和规模损失非常大。 虽然仍然需要小心,但现代计算机上现代 C++ 的性能开销已不再是一个问题,考虑到它的安全性、可读性和可维护性优势,通常是可以接受的权衡……这就是为什么我们将控制台的代码稳步升级到现代 C++。

Windows:主要是 C 和 C++,一些 ZD7EFA19FBE7D3972FD5ADB6024223D74

  • windows:C++
  • linux:C
  • mac: 目标 C
  • android:JAVA,C,ZF6F87C9FDCF8B3C3F07F93F1EE8712CZ9
  • 索拉里斯:C、C++
  • iOS 7: Objective-C,Swift,C, C++

没错,MacOSX 的核心是 Objective-C。

Windows C++

Linux C

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

我读过或听说过 Mac OS X 主要是用 Objective-C 编写的,还有一些较低级别的部分,例如 kernel,以及用 C 编写的硬件设备驱动程序。 我相信苹果“吃自己的狗粮”,这意味着他们使用自己的Xcode 开发工具编写 Mac OS X。 GCC(GNU Compiler Collection)编译器-链接器是 unix 命令行工具,xCode 用于大多数可执行文件的编译和/或链接。 Among other possible languages, I know GCC compiles source code from the C, Objective-C, C++ and Objective-C++ languages.

The Linux kernel is mostly written in C (and a bit of assembly language, I'd imagine), but some of the important userspace utilities (programs) are shell scripts written in the Bash scripting language. 除此之外,很难定义“Linux”,因为您基本上通过挑选您想要的零碎并将它们组合在一起来构建 Linux 系统,并且取决于单个 Linux 用户想要什么,您几乎可以获得任何涉及的语言。 (正如保罗所说,Python 和 C++ 起重要作用)

请参阅在多个平台上运行的一个操作系统标题下,其中指出:

Most of the source code for Windows NT is written in C or C++.

作为 Mac OS X 核心的补充,在 Snow Leopard 之前,Finder 并没有写在 Objective-C 中。 在雪豹中,它是用 Cocoa、Objective-C 编写的

Windows 显然没有写在 C# (!)

只需查看 Windows 的源代码,您就会看到...

Windows c c++ 10% C# Perl Linux C MAC Obective c Android Java c++ Solaris c c++

我希望你能得到答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM