Programming languages 您会在操作系统中使用哪种语言?

Programming languages 您会在操作系统中使用哪种语言?,programming-languages,operating-system,Programming Languages,Operating System,这可能是一个主观的问题,但如果您编写自己的操作系统,您会使用哪种语言(而不是像.NET或JDK这样的API)?哪种语言提供了灵活性、简单性,并且可能是硬件的低级接口?我想的是Java或C…C,当然。对于操作系统,您需要最低级别的速度。因此,汇编、C、C++、Objto-C或java似乎是当前的选择。尽管Java最近发展很快,我很难想象一个带有垃圾收集的操作系统 如果我自己写的话,它将是汇编语言和C语言的混合体。内核必须用低级语言编写,C语言是目前最好的选择,因为它非常节省内存。更高的级别可以通过

这可能是一个主观的问题,但如果您编写自己的操作系统,您会使用哪种语言(而不是像.NET或JDK这样的API)?哪种语言提供了灵活性、简单性,并且可能是硬件的低级接口?我想的是Java或C…

C,当然。

对于操作系统,您需要最低级别的速度。因此,汇编、C、C++、Objto-C或java似乎是当前的选择。尽管Java最近发展很快,我很难想象一个带有垃圾收集的操作系统


如果我自己写的话,它将是汇编语言和C语言的混合体。

内核必须用低级语言编写,C语言是目前最好的选择,因为它非常节省内存。更高的级别可以通过Java或更理想的Objective-C与python、ruby或lua等脚本语言的结合来构建。

当然。。。C

C,ASM,C#

有些人会说Java

请注意,openfirmware部分是用Forth编写的,它的级别非常低

保持开放的心态。

将是一个有趣的选择。根据它自己的描述:

D是一种系统编程语言。它的重点是将C和C++的功率和高性能与露比和Python等现代语言的程序员生产力相结合。特别注意质量保证、文件、管理、可移植性和可靠性的需要

D运行时假设存在垃圾收集器,这不适合内核的最低级别。但是,它适用于许多更高层。

Haskell

一旦你改变了正确的硬件位,C语言对于操作系统的其余部分来说是一种糟糕的语言。调度器、文件系统、驱动程序等都是复杂的高级算法,您不希望用汇编语言(或C;同样的语言)编写这些算法。这太难了。(VM子系统和内存管理器可能需要用低级语言编写,因为您需要以某种方式引导高级langauge的运行时。)

不管怎么说,这不仅仅是一个疯狂的想法,我想这么做。以下是用Haskell编写的操作系统:

Lisp是另一个不错的选择;最初的Lisp机器(在运行时)比“现代”操作系统(如UNIX和Windows)更易于调整


有时候历史会忘记好的想法(通常以“最高性能”的名义),这让我很难过。

老实说,我会使用C语言或我设计的某种语言层次结构,或者完全无缝地结合在一起。我想要的是一种无缝体验,从裸机级别开始,然后随着问题空间的上升,我可以使用越来越高级的语言。我可能会选择这样的方式:

  • C-用于裸金属材料,如驱动程序、内核等
  • Java/C#-用于管理控制台、操作系统应用程序等应用程序级别的东西
  • Python/PowerShell-用于编写脚本活动,如常见的管理任务(创建新用户等)

就我个人而言,我认为C/C#/PowerShell更紧密地集成在一起,是我想要的体验类型。当然,如果我有雄心壮志去写一个操作系统,我会有很多空闲时间,并且可能会非常喜欢先处理语言堆栈。因此,可能是L/L·/Lcript…< /P> < P>一个C或C++微内核,JIT是一个高度动态的语言,比如Ruby或者可能是支持原型模式的语言。甚至是那种语言的设备驱动程序


不是因为它实用,而是因为它真的很酷。NeXTStep在几乎所有事情上都使用Obj-C,这一点很酷。

-Linux源代码中的语言共享。

C,原因有很多。其他候选人,比如D,都很棒。然而,C有这样的优势:有很多可用的开源C代码可以在项目中重用(比适合系统编程的其他语言要多得多)。

使用构建基本组件,如任务调度器和驱动程序等,然后使用构建更高级别的组件,如应用程序和工具


我相信这也是如何构建的(不确定和)。

我会在使用一些现有的低级语言和基于C#编写自己的语言之间左右为难,但有更好的泛型支持。 在第二种情况下,我将使每个方法都是泛型的,但所有的约束都将由编译器解决——允许像Scala中那样的“duck类型”,但语言仍然应该是静态的。静态虚拟方法也会降低代码库

我有这个想法已经很久了,但在现实中似乎永远都不可行,所以谁知道将来可能会是这样呢。:-)

Ada是一种结构化、静态类型、命令式和面向对象的高级计算机编程语言,由Pascal和其他语言扩展而来。它最初由霍尼韦尔公牛CII的Jean Ichbiah领导的团队设计,并于1977年至1983年与美国国防部(DoD)签订合同,以取代当时国防部使用的数百种编程语言。Ada是强类型的,编译器在任务关键型应用程序(如航空电子软件)中的可靠性得到验证

Ada,因为它不仅是专门为此类项目开发的,而且还提供了对一些非常有用的高级特性的支持(例如对强类型、并发和抽象的支持),这些特性在标准C中是不可用的

因此,即使项目在增长,您也不必绕过语言限制(想想C语言中的封装、抽象和名称空间)

别误会,C显然适用于很多项目,但一旦项目达到一定规模(想想Linux内核、gcc、GNOME),您将不可避免地