是噱頭嗎,竟用中文擼了個操作系統!

整理 | 鄭麗媛 、出品 | CSDN(ID:CSDNnews)
對許多不擅長英語的編程萌新來說,乍一看代碼中各類英文關鍵字 、變量名、函數名等,難免十分頭大,甚至還會對自己能否學好編程提出質疑。

如此心境下,他們腦海中往往會冒出一種想法:“要是可以用中文編程就好了。”
你還別說,最近真有人落實了這個想法:一位湖南長沙的軟件工程師 Jason.shao 用中文編寫了一個操作系統,并自信道:“火龍操作系統是全宇宙首個采用中文編寫的操作系統”!

自創(chuàng)了甲、乙、丙語言
既然要開發(fā)操作系統,編程語言必不可少——為了更好地“砍柴”,Jason.shao 自然要先“磨刀”,為此他創(chuàng)建了三種編程語言,取名還透著一分隨性:
甲語言:一門對機器碼助記語言,讓人更容易理解的語言,發(fā)明目的是為了開發(fā)操作系統。 乙語言:一門對甲語言進行結構化過程化的語言,發(fā)明目的是為了提高開發(fā)效率。 丙語言:一門面向對象的高級語言,可以理解為把任何東西看做是一個對象,這個對象應該有什么樣的屬性,面向對象語言更容易用計算機去描繪這個世界。
“刀”磨好了之后,Jason.shao 便開始設計其“全宇宙首個采用中文編寫的操作系統”。
據項目介紹,火龍操作系統使用其自創(chuàng)的甲語言和乙語言開發(fā),支持 64 位多核多任務圖形化、分頁式內存管理,還擁有 Windows 11 界面風格,支持 x86_64、ARMv8(僅 QEMU 測試)架構。
與此同時,火龍操作系統具備一系列基礎功能,甚至還在向區(qū)塊鏈、元宇宙方向進發(fā)(第14、15條):
1.中文顯示。
2.圖片顯示。
3.文本閱讀。
4.支持32位真色彩,最高2560*1080分辨率。
5.實現300個常用win api,支持部分exe程序。
6.全新文件系統。
7.支持USB。
8.支持sb16、ac97、es1370、es1371、hda等聲卡。
9.支持Ne2000、PCnet、intel 82545EM、intel 82574L、intel 82579LM等網卡。
10.支持物理機Tiger Lake核顯,Vmeare svga Ⅱ虛擬顯卡。
11.紅白機游戲。
12.自舉編譯。
13.斯坦福兔子。
14.區(qū)塊鏈元宇宙(正在進行中)。
15.元宇宙之鏡像世界(正在進行中)。
光說無用,Jason.shao 還在項目介紹中特地展示了幾張火龍操作系統的運行截圖:



從運行效果來看,火龍操作系統的整體表現可圈可點,那么接下來需要驗證的就是它是否真的由中文編寫。
隨便點開一個系統中的內存管理源代碼:

有點不信邪?那就再打開一個圖層管理代碼:

由此可以看出,火龍操作系統的源碼“畫風”顯然區(qū)別于往常見到的其他代碼,滿屏中文也印證了其“用中文編寫”的特點。
“抄襲”風波?
然而,就在我們驚嘆于 Jason.shao 真的可以用中文編寫操作系統的時候,項目評論中 @dragon-os 的一條留言卻激起了巨大討論:
這個就是日本人川合秀實《30 天自制操作系統》里的“紙娃娃操作系統”,所謂的“甲語言”其實就是 asm 匯編語言,使用了拙劣的文本替換方式,把諸如 mov 這樣的指令用蹩腳的“移送”來替換,就是換了個名稱罷了。“乙語言”就是 c 語言。那個 z_tools 目錄就是《30 天自制操作系統》源碼光盤里的文件夾,太明顯了。
《30 天自制操作系統》是什么?簡單來說這是一本從計算機構造、匯編語言、C 語言等角度全面解說如何自制操作系統的書籍,旨在幫助開發(fā)者從零編寫所有代碼、30 天即可創(chuàng)建出一個具有窗口系統的 32 位多任務操作系統。
而據 @dragon-os 分析,火龍操作系統其實就是這本書里的“紙娃娃操作系統”,甚至項目中的“z_tools 目錄”也是《30 天自制操作系統》源碼光盤里的文件夾,盜用痕跡“太明顯”。

面對負面質疑,項目作者 Jason.shao 直接在評論區(qū)回復道:
“請你仔細閱讀 30 天自制操作系統的開源協議再來吐槽,作者明確說明了代碼可以隨意修改,修改后的代碼也不必開源,拿來商用都是可以的,關于本項目之后的代碼都不在開源!”
不僅如此,Jason.shao 也早在“參考文獻”中,明確指出項目有引用這本書籍:

盡管 Jason.shao 已將事件起因解釋清楚,但仍有部分開發(fā)者認為這種行為須注明來源:
@akemimadoka:“請注明基于《30天自制操作系統》的源碼開發(fā)?!?/p>
@longware:“這種非 100% 自研,建議作者加個標注?!?/p>
不過也有很多人肯定 Jason.shao 勇于嘗試的精神:
@安靜書生:“不可否認,短期內沒有任何意義,但是如果作者堅持下去了,有更多人參與進來,可能會引起革命性的變化,支持作者。”
@pcd:“思路還是挺好。甲語言直接用編譯器批量替換成機器碼,乙語言用編譯器轉換成 C 語言然后用編譯,丙語言直接使用 C# 批量替換編譯。最妙的是這玩意兒竟然真的跑起來了!”
@久永:“無論成敗如何,為行動者點贊,為開拓者喝彩!”
中文編程是否必要?
在眾多評論中,還有一種中立的聲音:“首先點贊, 但還是不明白用中文的意義何在”。
如文章開頭所說,很多會產生“想用中文編程”這一想法的人中,最大的原因就是:英語不好。
那么不擅長英語是否真的會影響編程學習,中文編程必要嗎?對于這個問題,答案可能因人而異。
支持中文編程
這一觀點可結合“@qwas982 曾請求 C# 團隊開發(fā)特制的中文版”這一事件,當時其對于中文編程的呼吁引起了諸多人關注。
針對“編程中沒有多少英文相關的語法更費力的是背景知識學習”這一觀點,身為多年程序員的@吳烜曾反對道:“編程仍然有英文語法相關性,需要學習背景知識不意味著不需要進一步降低學習編程語言的門檻?!?/p>
美籍華裔程序員 Brian 也曾發(fā)出感慨:“對我來說,英文的資源簡直就是理所應當,以至于我根本難以想象如果代碼或文檔用別的語言寫會是什么模樣。如果不會英文的話,人們就會很容易埋沒在那些起步更早、作出更大貢獻的程序員的陰影之中。”
中文編程不必要
同時,也有部分開發(fā)者認為,想要中文編程的人大多是“編程門外漢”:以為自己之所以學不好編程,是因為不適應英語。
但實際上,換成“漢語”他們也還是不適應。因為他們不適應的不是英語,而是結構化思考和表達。中文編程看似會降低入門門檻,但不論中文還是英文,復雜的編程思維并不會變。
那么,對于以上觀點,你有什么看法呢?
參考鏈接:
https://www.zhihu.com/question/21203610/answer/17615559 https://so.csdn.net/so/search?q=%E8%8B%B1%E8%AF%AD%E4%B8%8D%E5%A5%BD%E8%83%BD%E5%AD%A6%E7%BC%96%E7%A8%8B&t=&u=
你好,我是公子龍,畢業(yè)于中科院,前大型計算機競賽冠軍,現大廠工程師,拿過九家大廠的 offer 。
北漂七年,從小白到計算機競賽冠軍,讀研時通過實習和比賽收入 50 萬,點擊藍字查看我的編程之路。

