03.06 仿头条之问:为什么当年Linus不用c#去写Linux系统?是这样吗?

点灬小点


你好,我是程序员老马。

我很高兴能够回答这个问题,希望能够帮助到你。

为什么当年Linus不用c#去写Linux系统?这个确实一个楞住了,因为有点不合常理。

一、时间上的不对等

我们从下面的截图中可以看到,Linux的作者是1991年发布了0.01版本。最新的版本是2019年11月21日。

然后我们再对比一下C#语言的发布时间。他是2000年发布。最新稳定版本是2019年9月23日

显然,从图片可以看出C#比Linux晚了大约9年的时间才出来。这个时间上是不对等的,所以Linux的作者无法使用C#来开发Linux系统。

二、那么C#出来后,可以用C#来编写Linux系统吗?

答案:理论是可以的。

因为C#也一样可以做底层编译为机器代码,所以,没有C#不能做的操作系统,差别更多的可能是在其它领域的方面。

三、那么既然C#也能开发Linux,为什么不做个C#版的Linux系统呢?

那是因为Linux是一种自由和开放源码的类UNIX操作系统。

该操作系统的内核由1991年10月5日首次发布,在加上用户空间的应用程序之后,成为Linux操作系统。

Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。

而C#是有版权的,属于微软件公司的版权。那么一个以自由开放为宗旨的操作系统,就不太可能再去开发一个需要C#版权的系统了。

三、那么C#后来不是有.net core开源的呢,能不能做呢?

答案:不能做。

如上图,.net core出来的日期是2016年6月27日,如果这时候还来做操作系统,可能有点养鱼的意思了。Linux系统早已经自成体系,完全没有必要再开发一份了。你说是吗?

希望我的回答能帮助到你,祝你好运。

谢谢。


春风扇


要是没记错,Linux比C++早5年左右吧,就算当时有C++,也不会用的,因为Linux内核要的是稳定和高效率,C++虽然兼容C,但是臃肿,编译器版本等问题不能写内核,C++之父都明言,他都不能完全吃透C++。


筱枫姊Z


因为操作系统是需要跟底层硬件打交道的,有些操作c语音都有心无力,还得调用汇编语言才能完成,更何况是更高级的语音,再说c#算个屁啊,为啥要拿他写操作系统?


Frank在努力生活


这个问题问得过于外行,超出预料之外。不用C#的原因,是因为C#是基于.NET框架的语言体系,是微软搞出来的一套开发语言。它是面向应用层的,建立在.NET框架上;而.NET又基于操作系统之上。所以,如果用它来写操作系统,无异于在一个操作系统上安装.NET框架后再写一个操作系统,这个逻辑根本就行不通!能写操作系统的一定是支持交叉编译工具链的语言或者汇编,但凡需要框架支持的高级语言都没戏。所以不要再问这种幼稚的问题了。


罗斯福亚丁


1.Linux发布时间早于c#

Linux发布时间:

c#发布时间

可以看到.Linux都有九年历史之后c#才诞生.

2.Linux上开源社区的.c#是微软开发的.两个范围的东西.

3.Linux采用c语言的原因最主要的是c语言执行效率高.

而c#是微软公司开发的,对效率没有太大追求的语言.


阿东探世界


第一,Linux诞生的时候还没有C#,Java也没有。

第二,操作系统要和硬件打交道,当时只能用汇编和C语言


创业永不晚


机器码之上是汇编,再到C语言。做操作系统,汇编比C更直接,执行效率更高。

所以底层操作系统用汇编更有效率。

安卓,IOS这些图像界面,不能称之为系统,应该称之为系统界面。底层还是LINUX,UNIX这些系统。

图形界面更友好些。应用开发更方便些。


不花钱降温工程


windows vista部分代码是c#写的卡的一批,我觉得你这问题还不够有深度,你应该问问linux,为啥不用微软的画板画个系统出来。。。。干嘛苦哈哈的写那痛苦的c。


堕落中的天使


C#不能用来写操作系统,微软也没有用C#来写windows,操作系统是硬件之上的系统,是原生态的。Linux是模仿unix的,unix是用C语言写的,Linux写的时候还没有C#。


用户5312843382781


LINUS写LINUX的时候还没C#,而且操作系统只能拿C去写,因为太底层了。。。WINDOWS的内核也应该是C写的。。。


分享到:


相關文章: