操作系统编程语言
哪些语言可以写操作系统?
汇编,C,rust都可以。c++很少,而且C++写的都不会运行在内核深处。写操作系统的人都追求一种极致的掌控,语言的一些牛❌特性反而增加了掌控难度,就更别说那些需要虚拟机支持的语言了,看都不看一眼的
随着计算机技术和互联网技术的发展,可以说操作系统已经不仅仅是指的用来管理软硬件***的计算机程序,Emacs可以算作是操作系统、阿里云飞天也可以算作是操作系统,微信也可以算做是操作系统,从这个意义上讲用来编写操作系统的编程语言也就变得非常多样。
通常意义上的操作系统:汇编、C/C++
通常意义上的操作系统就是用来管理计算机硬件和软件***的计算程序,管理内存、处理器等硬件***供需的优先次序、控制输入输出设备、管理文件系统、以及管理网络***,当然一个成熟的桌面操作系统也有出色的人机交互界面。
这类操作系统是我们最为熟知的,服务器领域的Unix、Linux,桌面PC操作系统的macOS、Windows,移动端的iPadOS、iOS、Android等等,这些操作系统都是我们熟知的。
Windows使用了一部分汇编语言,大部分是C语言编写,剩下了用了很少一部分C++写图形界面,以及极少一部分的C#用来写部分应用程序,当然office、Visual Studio等对性能要求高的应用程序主要还是用C++编写的。
macOS的Darwin内核组成本质是FreeBSD+Mach,主要用C语言和Objective C/C ++(应用程序主要***用Objective-C、swift、C++),最早苹果还用汇编和Pascal写过操作系统,不过后来Pascal被淘汰了。iOS、iPadOS跟macOS非常类似,都是苹果家族的操作系统,基本技术栈和架构都差不多。
Linux因为林纳斯对C++极其厌恶,因此主要是部分***用汇编,大部分***用C语言开发,不过在应用程序层面,Linux选择就非常多,毕竟是开源的操作系统。Python、C++都有***用,比如大名鼎鼎的Linux桌面环境KDE就是用C++编写的,Gnome图形界面则是主要C和部分C++。
Android系统***用的是Linux内核,因此在底层核心技术栈Android跟Linux差不多,不过Android为了尽快吸引更多开发者、降低开发门槛,在Linux内核基础上多了一层Java虚拟机,因此Android在应用开发层面主要使用J***a语言。
大名鼎鼎的文本编辑器Emacs最开始就是要做一个操作系统,当年RMS想写一个完整的操作系统来着,当然Emacs也确实可以用来做很多事情,本质上也就是个操作系统。不过由于Linux的发展非常出色,RMS逐渐将Emacs变成了一个文本编辑器,毕竟打造一个操作系统很麻烦。
随着互联网技术的发展,我们越来越多的说云计算、大数据、物联网,人工智能技术也越来越成熟,很多应用比如微信、支付宝已经变成了一个非常强大的“平台生态”,阿里云飞天更是针对于人工智能和云计算领域的专门的操作系统,这些都可以算作是“操作系统”,因此未来J***a、JavaScript、Go等众多编程语言都可以用来写操作系统。
其实都可以,只是难易程度,效率这些不一样。编程语言只是为了简化编程,最终执行的还是机器语言。操作系统强调效率,程序优化就离不开机器指令。通常可以随便夹汇编的C用得多。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/12573.html