主要缺少一个编译器,早期的Go用C和汇编器,还能直接跑在裸CPU硬件上面。
现在Go语言是自举的,用Go编译Go的,那么跑在裸CPU上面的操作系统,没有编译器,很难编译成机器码。
还有垃圾回收,多线程并发这些运行时环境也是基于宿主操作系统(win和linux),在裸机上面其实也无法调度多个CPU的。
综上所述,无法写操作系统,写一个JVM倒是可以的。
Rust语言可以写操作系统。
主要缺少一个编译器,早期的Go用C和汇编器,还能直接跑在裸CPU硬件上面。
现在Go语言是自举的,用Go编译Go的,那么跑在裸CPU上面的操作系统,没有编译器,很难编译成机器码。
还有垃圾回收,多线程并发这些运行时环境也是基于宿主操作系统(win和linux),在裸机上面其实也无法调度多个CPU的。
综上所述,无法写操作系统,写一个JVM倒是可以的。
Rust语言可以写操作系统。