所以我想嘗試一個涉及Linux內核深度修改的新概念,並且我想知道是否值得去嘗試或者它是否太複雜?嘗試和修改Linux內核是否合理?
回答
轉到LKLM並檢查檔案是否有其他人正在處理類似的事情。如果不是,那麼在那裏宣佈你打算做什麼,並詢問最簡單的方法來完成它(內核模塊等)。創建您自己的git存儲庫以進行更改,並允許其他有興趣從您的倉庫中提取的倉庫。如果你的工作取得了成功,請維護人員進行修改並將其添加到主線。
這當然不是不合理的做法,但只有你會知道是否值得你花時間在這些深層修改上工作。
是的,它很複雜,但是如果你有一個新的概念,並且你認爲在內核之上構建它是個好主意,那麼這可能是值得的。
如果你還在Linux內核推遲然後總是有Minix內核...
大部分你能做到什麼應該是可行與內核模塊。如果你真的有很大的計劃,那麼你可以試着去分岔它。嘿,它的開源,沒有人會告訴你不要:)只要確保你經常備份。
在沒有進一步的信息的情況下,這聽起來像你所建議的更好地描述爲修改內核,而不是分叉。
你的野心的哪個方面需要分叉?分叉是一種其本質主要由政治術語定義的事物 - 即重命名項目,設定不同的戰略方向等等。
就像任何一款真正開放的軟件一樣,分叉內核就像從版本控制庫分支一樣簡單,並開始在自己的版本上工作。就像任何一款真正開放的軟件一樣,如果你打算分叉它,最好有一個固定的原因。如果你最終打算合併回去,那麼你真的不會分手,相反,你正在分支,然後要求合併。只記得在這種情況下定期更換。
不過,主要的一點是,Linux內核是一個非常龐大而複雜的軟件。除非您刪除所有無法獲得更新到GPLv3的權限的GPLv2代碼,否則您將被禁止使用GPLv2,因此許可必須保持不變。但是如果你想對Linux內核進行重大修改,因爲你認爲你可以做得更好,那麼絕對沒有人會阻止你。添加新的驅動程序,修改圖形的工作方式,刪除舊的API,做任何你想要的。一旦你有需要證明的東西,人們就會開始關注,特別是如果你做得比現在好。您可能會收到最終的好結果:您的工作最終會被合併回主線。
分叉開源軟件應該被視爲最後的手段。你應該先嚐試做的是製作內核的一個分支並提交它進行合併。這會讓每個人都變得更加輕鬆。
IIRC維護修改後的Linux內核的正確方法是補丁集,類似於Andrew Morton的mm。
我想堅持一下關於困難的問題。如果你只是想添加一個系統調用來提供有限的額外功能,如調整文件描述符,那麼這是任何經過培訓的程序員都可以做的事情。如果你想玩實時,性能和流程處理,那麼請注意,由於你進入內核有多深,這些可能會非常困難。
很多本科OS課程都需要添加系統調用或爲構造添加一些簡單的字段/參數。大約20小時的小事,60小事容易但有用。
「深度修改」會給您帶來一個兩難的困境:您是否跟蹤新的Linux內核併合並您的更改,還是堅持最初定位的內核並支持修補程序關鍵修復?
除非您的更改可以合併到主線內核中,否則您將面臨上述問題。你能保持這種努力嗎?它值得嗎?
您應該考慮您的想法是否真的需要在內核空間中完成,或者是否可以在用戶空間中有效完成。這是一個合理的問題(當然要詳細說明)。
我經常看到有人發佈內核相關的想法給LKML,實際上完全可以在用戶空間完成,有時更容易和更高效。
- 1. Linux內核TCP套接字修改
- 2. 慢編譯與修改Linux內核
- 3. Linux內核如何檢測內存地址是否被修改以實現COW?
- 4. Linux內核調試
- 5. 如何修補Linux內核?
- 6. Linux內核修補問題
- 7. Android內核修改
- 8. Linux內核源代碼修改和重新編譯
- 9. Linux內核splice()是否零拷貝?
- 10. Gnu調試器和Linux內核
- 11. glib和linux內核
- 12. Linux內核代碼段內存頁面修改
- 13. Linux是否放入所有內核的內核?
- 14. 快速測試Linux內核
- 15. Linux內核模塊調試
- 16. 從Linux調試Windows內核
- 17. Linux內核進程管理
- 18. 改變的Linux內核
- 19. Linux 4.4內核更改
- 20. Linux內核和我的內核模塊
- 21. 嘗試修改使用PowerShell
- 22. 修改Android內核交換
- 23. 修改Linux文件內容
- 24. Linux:修改/ proc的內容
- 25. RT修補的Linux內核的循環測試
- 26. 在移動設備上修改並引導Linux內核
- 27. 修改linux內核中的現有模塊
- 28. Linux內核:爲什麼add_timer()正在修改我的「expires」值?
- 29. 獲取Linux內核make過程重建修改後的文件
- 30. 修改Linux內核中Sysfs的/ sys/devices/system/memory /目錄