2009-10-22 40 views
1

我是一名計算機科學工程專業的學生,​​我一直在.NET Framework上編程2-3年,但我沒有使用Linux。我認爲,對於我最後一年的項目,Linux發行版會很好。建立在.NET Framework上的Linux發行版

我在想實現它的一些方法,當這個瘋狂的想法突然想到:

我們能不能首先實現Linux內核的.NET Framework和使用它搭建的休息嗎?

這可能是最奇怪的問題,但請給我一個辦法,如果我在這個問題是對的,如果我錯了指正。

回答

6

的.NET Framework的功能過於豐富有道理打造這一切沒有開始實質性的libc用戶空間助手裸Linux內核之上。這不是不可能,但是對於一個學生的博士論文來說,這樣做太過雄心勃勃,恕我直言,(如果你的目標程度低於博士學位,那麼更是如此)。

查看mono獲取.NET獨立於Windows的實現,它依賴於 - 並考慮如何在自己的論文的跨度內減少(而不是消除;-)用戶空間依賴關係你自己的Mono分支(當然,假設任何論文顧問都會註冊支持你)。

+0

Mono適用於更多操作系統而不僅僅是Windows(以防萬一從答案中不清楚)。 – 2009-10-22 05:56:54

-1

是什麼讓Linux內核運行的是C運行時庫,所以在單庫和其他依賴增加,我想使它有可能得到它的工作(至少在C#)。

3

對於您可能希望簽出mono project這是.NET的C#中實現你的問題的第一部分。

至於第二部分,我不知道爲什麼你要執行的Linux籽粒中.NET。這似乎是一種接近事物的倒退方式。

如果你有興趣在實現C#操作系統退房Singularity這是用C#開發的研究操作系統

+0

我同意。正確的答案(IMO)是可以在.NET中實現* a *內核,而不是依賴C的Linux內核。它不值得。 – 2009-10-22 05:33:53

0

你可以嘗試修改內核,他使用的單框架,只運行用戶空間中的託管代碼。

1

CLR(又名.NET框架)已經在Mono的Linux上至少實現了一次。

誠然,你可以做一個Linux發行版,其船舶單聲道,或者使用.NET的一些啓動腳本/守護進程。那很好。有人可能已經這樣做了。

我看不出究竟有哪些優勢試圖在內核中運行託管代碼將賦予,大概沒有。在內核中運行託管代碼將非常困難,因爲內核內存分配的許多部分都需要小心完成 - 您可能沒有足夠的控制權。而且,內核棧默認情況下可能太小了。在內核中有一些內存中根本不需要進行堆內存分配。

0

.NET框架包含許多類似字符串或集合的實用程序類。

由於從用戶空間過渡到內核空間需要付出代價,除非您設法在內核空間中運行整個應用程序,否則性能實際上會變得更糟。

每次我向列表添加內容或檢查字符串的長度時,都不想做系統調用。