4 ms·
By that criteria neither Go nor Python can be considered systems languages. Maybe you could implement some basic code to bootstrap CPython in Cython or RPython,
by adrusi 10y ago
By that criteria neither Go nor Python can be considered systems languages. Maybe you could implement some basic code to bootstrap CPython in Cython or RPython, I'm not entirely sure, but neither of those are really Python. The only garbage collected languages that I'm aware of that can implement a full OS stack are LISP, Red and maybe Smalltalk.
- pjmlp 10y agoI wonder why you are disqualifying Go, given that it is fully boostraped as of version 1.6, yes even the GC is written in Go. It is also a descendant of Oberon, which was used very much successfully at ETHZ during the 90's. Every time I have this argument I wish some PhD student bothers to rewrite Native Oberon in Go. Also you should educate yourself, a small list of GC enabled systems programming language is: Lisp, Algol-68RS, Mesa/Cedar, Modula-2+, Modula-3, Oberon, Oberon-2, Active Oberon, Component Pascal, Sing#, SystemC#, D. There are plenty of ACM, SIGPLAN, digital archive papers from the OS written in those languages.
- nickpsecurity 10y agoAs pjmlp says, Oberon systems were implemented in a GC language. The latest, A2 Bluebottle, runs fast and light despite being written in a safe, GC, system language. Easily more responsive than my Linux box. There's also GC's that can support latencies good enough for soft, resl-time applications. Far as Go, it's designed to recreate the Oberon-2 experience of Pike. It's basically a modified Oberon. If Oberon can do OS's, then Go can do OS's with some modifications to runtime or something.
- pjmlp 10y agoI guess we should start forwarding Go as system language disbelievers to https://github.com/jjyr/bootgo https://github.com/jjyr/bootgo http://wiki.osdev.org/Go_Bare_Bones http://wiki.osdev.org/Go_Bare_Bones Although the Wiki author doesn't seem to understand how to use the unsafe.Pointer type, and makes use of external Assembly instead, but the bootgo does it properly.
- nickpsecurity 10y agoGreat find! It's not quite an OS. It does demonstrate a system booting into kernel-mode, Go code. That's a start. Re-writing... even auto-translating... the Oberon system to Go still seems like best proof. I just sent the Github author an email suggesting it as his next project. Plus a little praise for giving us the needed ammo. :)