編寫一個新的操作系統,兼容windows(仿寫)合法嗎?
我出於興趣,編寫了一個微型操作系統。有多微型呢?連 DOS 的水平都遠遠不如。未來我想繼續深化這個系統,讓她兼容 Windows 程序。
沒錯,是「她」,她凝聚了我的很多心血,我不期望她被冠以什麼國產操作系統的美名,只是想完成基本功能後,把她開源,讓她繼續成長。而為了達到兼容windows的目的.,以我看來,目前有兩條路可選:1.提供和win32API同名同功能的API,當軟體調用win32API時,系統自動映射到系統級API.(純粹的設想,個人覺得可行)。
2.按windows的設計思路仿寫一個windows,目前有個類似的系統叫reactos(http://www.reactos.org),但看他的說明,因法律問題(不確定)似乎只能實現winNT2.0內核的仿寫。我個人傾向於第一種方式。求教知乎上的各位法律及編程方面的專家兩個問題::1.無論是仿寫還是利用API兼容windows,其做法是否合法?如不合法,微軟的版權保護協議是不是僅針對於WinNT2.0以後的的版本(WinNT2.0及更早版本專利已到期.專利和著作權的區別是啥,專利到期後抄襲其部分源碼和設計思路是否合法)。
2.請教軟體方面的大牛們,我設想的API兼容方式是否可行?國內是否有先烈曾經嘗試,最終發現不行?是因為效率問題還是因為無法徹底做到兼容API?(例如linux的wine不死不活,我知道是因為無法徹底兼容winAPI的緣故,主要原因是unix的底層和winNT差距太大。但我的系統底層不是Unix,而是獨立編寫的.我可以根據需要修改底層實現)
ReactOS Project
仔細的看看這個你就明白了。不過由於微軟持有的專利的原因,你重新實現一個NT,裡面有很多演算法如果不採用低效的實現就會違法。所以這也就是看看。情況在於,即便光寫個內核都是工作量巨大的事情。即便高水平的團隊,要復現都很難,更不用說跟上其發展了。
幾年前MSR的幾個大牛做了一個精簡的Win內核,只有ntoskrnl.exe,其他都(盡量)用原裝的。強調虛擬化 http://research.microsoft.com/en-us/projects/drawbridge/。就這麼個東西,要做到很高的兼容性,都已經非常困難,畢竟原裝的Win內核經過了多少年多少人的努力。由於從0開始實現,經常遇到的問題是,需要增加新功能的時候發現有個系統調用沒實現,要麼寫個stub,要麼寫個模擬的實現。要支持的東西多了就老得改,苦不堪言。
不光是專利的問題,你在開發過程中如果反向了windows的實現進行參考的話都有可能產生法律上的問題。
我們法務經常提醒我們別去網上看代碼,有些項目真的是連看一眼代碼都不行的。針對你的第一個做法,已經有一個叫做wine(https://www.winehq.org)的軟體實現了。
這事我十幾年前念書的時候就干過,已經寫完了一個獨立的內核,包括多進程多線程調度、虛存管理、基本的文件系統和IO、UDP/IP(TCP太複雜了沒弄)、乙太網驅動和vesa顯卡驅動,以及簡單的UI界面,可以在x86機器上跑,大概5w行手寫c和asm代碼。
然並卵。
操作系統根本就是個商業問題,不是個技術問題,個人最多寫個簡單內核玩玩了,想要兼容windows或者商用,基本沒戲。
不過自己寫個內核玩玩,還是很有意思的,至少能學到很多東西,遠比看看《操作系統原理》要理解得深刻。合法與否跟是否收費有很大關係。
專利侵權的一個前提是以生產經營為目的
很難不違法的。
微軟對於很多api實現申請過專利。很多專利甚至是你能想出來的唯一實現。
所以繞過去最簡單方法是改個api名字。。。。google抄了oracle 9行代碼被索賠60億美元。
有個關於oracle拿著Java api去告誰來著的案子很經典。法官也讓人欽佩。你可以了解下。
你就在你自己的電腦上寫,會有什麼問題?
還不是隨便你怎麼搞。問題只會出現在完成之後,傳播或商用的過程。
然而上面的問題都不是問題,問題是前提,能寫出來么?只要代碼不重疊,專利不衝突即視為「合法」
你呀,還沒搞清楚什麼是操作系統內核,談什麼寫操作系統
API也是有版權的,參考Oracle告Google自己實現Java API的案例。
只要代碼不一樣,僅僅是思路一樣的話就完全不違法。比較典型的項目就是Linux下的wine
請正確使用標點符號,注意漢語語法。讀著真累。
推薦閱讀:
※為什麼使用優化軟體會讓 Windows 變得不穩定?
※有沒有可以替代驅動精靈的工具?
※為什麼在Universal App的概念提出後,很多新發布的應用(國內)還是只兼容手機/PC?
※為什麼 Windows 的命令行這麼難用?
※玉兔號的 SPACEos 操作系統,系統架構是怎麼設計的?
TAG:MicrosoftWindows | 知識產權 | 操作系統內核 | 著作權法 |