【问题标题】:How to incorporate Multiple languages in a single os?如何在一个操作系统中合并多种语言?
【发布时间】:2015-12-20 16:20:42
【问题描述】:

我对将多种语言整合到一个操作系统中存有疑问。例如:Windows 10 的核心是 C 和汇编,可以是独立程序或内联程序。操作系统中使用的 XML、C#、VB 语言呢? XML 几乎用于所有地铁应用程序。内核如何成为所有这些不同语言的基础?一个操作系统会有多个编译器吗?

【问题讨论】:

  • 当您说“内核如何成为所有此类语言的基础”时,您只是指操作系统支持的所有编译器吗?这个问题意义不大。或许你应该查看 OSDev 以获得更深入的描述:wiki.osdev.org/Main_Page
  • 不,我的意思是操作系统支持多种语言,无需使用任何第三方编译器。它是如何支持的?例如:在 Windows 中,当您将文件另存为 (.vbs) 时,它的 VBScript 文件就会执行。类似地,批处理文件可以在 Windows 上运行,再次是 powershell 命令等等......
  • 它没有。 VBScript 由 cscript.exe 等解释。或者,如果您认为解释器是操作系统的一部分,它可能确实如此。无论哪种方式,内核都与它无关。
  • 这些与“第三方”编译器相同。它们只是写在操作系统核心上,以 Windows 为例。编译器是用 C(可能)编写的,以便编译 powershell/vbscript/whatever。并且是操作系统的一部分
  • 正如@Harold 所说。它只是一个与操作系统编码并捆绑在一起的编译器

标签: c# vb.net assembly operating-system kernel


【解决方案1】:

您的困惑在于操作系统支持的二进制文件缺少链接。它不是关于操作系统是否支持的语言,而是关于操作系统支持的二进制文件或可执行文件。您可以在 Windows 和 Linux 上使用 C。生成与底层操作系统兼容的二进制(可执行文件)是编译器的职责。 内核可以运行一些特定的二进制文件或编译器生成的单个二进制文件。

一个操作系统会有多个编译器吗?

没有什么意义,相反,您可以说 A OS 支持多个编译器。编译器只是另一个具有相同困境唯一性的软件:蛋/鸡是否在鸡/蛋之前存在。为了了解同一操作系统上如何支持不同的二进制文件,您需要了解解释器。但是,如果不详细介绍 ABI 和二进制格式,您可以说,操作系统支持生成可在操作系统中运行的可执行文件的编译器

提醒一下:内核只是控制系统资源的一组功能/服务

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    相关资源
    最近更新 更多