4 ms·
>One requirement is that a language must be compiled and thus cannot rely on a runtime. That excludes Go and Java. Maybe I'm wrong, but I know that there exist
by ArbixMenix 5y ago
>One requirement is that a language must be compiled and thus cannot rely on a runtime. That excludes Go and Java.
Maybe I'm wrong, but I know that there exist CPUs made specifically to natively execute Java bytecode, so in reality if the hardware has a baked-in language interpretation it would be actually possible to write an OS completely in Java
- bluGill 5y agoTrue, you can design a CPU for anything. However a OS that depends on such a CPU is not portable to anything else, and can't easily run most programs that people depend on (emulators are possible, but not easy). Also most CPU advances haven't gone into such a thing and it is tricky to apply those advances while also providing what the language needs. None of this is impossible, but it makes such CPUs in todays world of questionable value. Note that you can port any OS written in C to such a CPU with "just" a new compiler backend and a few drivers. Your OS won't take advantage of the features the CPU provides, but it will work.
- 3836293648 5y agoEh, can you really properly implement a CPU without interrupts? I wouldn't categorise anything in that space as a driver
- bluGill 5y agoGood point. I assumed there was some form of interrupt system, but not all CPUs need to have it, and lacking that your OS choices will be limited.
- gpderetta 5y agorunning java bytecode natively is neither necessary nor sufficient as you can compile java to any other native ISA, but you do still a relatively heavy runtime for GC. Having said that, there have been OSs written in languages with heavy runtimes, even GC.
- pjc50 5y agoARM "Jazelle" was capable of this, but it required a C implementation of a JVM. Any GC-dependant language has this problem.
- pjmlp 5y agoPlease find the C code here, https://people.inf.ethz.ch/wirth/ProjectOberon/Sources/Kernel.Mod.txt https://people.inf.ethz.ch/wirth/ProjectOberon/Sources/Kerne...