{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

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

ZackZack 回答0 收藏1
收藏问题

10条回答

Yujiaao

Yujiaao

回答于2022-06-28 11:34

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

评论0 赞同0
  •  加载中...
Zachary

Zachary

回答于2022-06-28 11:34

哈哈,你这仿的有点那个意思了,我也来一个:

据说苹果的系统就是基于Linux开发的,为什么Linus没有做出Linux手机呢?

补充:发现一堆回答的人,只有我一个认真看题了,哈哈。

评论0 赞同0
  •  加载中...
linkin

linkin

回答于2022-06-28 11:34

写内核,不会用任何自动的内存管理机制。连C++都不行,更不用说有GC的语言。

评论0 赞同0
  •  加载中...
Meathill

Meathill

回答于2022-06-28 11:34

linus连c++都看不上,何况c井,linux的可移植性很大程度来自于c,c#这方面差距不是一般的大。另外从性能角度来说c#更是差了十万八千里。用rust写个操作系统也好过c#

评论0 赞同0
  •  加载中...
wthee

wthee

回答于2022-06-28 11:34

因为当时没有c#,c#也不适合,就这么简单。

你这个问题就像在问,“为什么刘邦没有请诸葛亮出山”一样。

评论0 赞同0
  •  加载中...
legendmohe

legendmohe

回答于2022-06-28 11:34

1.Linux发布时间早于c#

Linux发布时间:

c#发布时间

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

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

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

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

评论0 赞同0
  •  加载中...
dreamtecher

dreamtecher

回答于2022-06-28 11:34

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

评论0 赞同0
  •  加载中...
habren

habren

回答于2022-06-28 11:34

用C#开发和java开发在此例子中没啥区别。

用C#开发的成品,必须带.net平台。啥叫.net平台?你可以认为是java虚拟机。

.net平台解析C#编译完的成品:byte-code。你可以理解为软件做的的指令集,.net把它翻译成硬件指令,然后程序才能跑。

在还没有任何操作系统的情况下,也就没有.net,你C#所依赖的运行环境都没有,怎么去开发操作系统?

所以操作系统必须是编译结果为硬件指令级别的程序,例如汇编和C。

评论0 赞同0
  •  加载中...
chinafgj

chinafgj

回答于2022-06-28 11:34

所有有GC的需要都无法胜任编写操作系统的任务。

且不说实时操作系统,就通用操作系统来说都是很吃力的。没有那个内核能接受周期性的停止所有操作,进行内存回收的机制。最简单的,内核需要处理硬件中断,而在硬件中断的处理方法中是不能停止的,更无法接受内存变动。

评论0 赞同0
  •  加载中...
MageekChiu

MageekChiu

回答于2022-06-28 11:34

这个方面,郭德纲是最专业的。他觉得是因为同行微软不允许这么做,担心wibdows被抢了生意,所以,才不用c#的,毕竟c#也是微软的。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<