Rust重寫Gug工具鏈
先說一下GUN的歷史我們經(jīng)常把GUN和Linux放在一起講,以為他們就是天生在一起的,經(jīng)常將他們混為一談,所有就有了Gun/Linux這種叫法。其實,GUN指的是應(yīng)用層的程序體系是GUN體系(遵從GPL標(biāo)準(zhǔn)的那一套),因為當(dāng)年的RMS構(gòu)建了整個GNU體系,卻沒能做出一個完整可用的內(nèi)核,恰好在那個時候,Linus大神利用GNU的工具鏈制作出來了一個內(nèi)核,取名為 Linux,而這個內(nèi)核最終成為了GNU被用得最廣泛的內(nèi)核。
RMS倡導(dǎo)的理念是Free Software自由軟件,認為商業(yè)軟件是不道德的,必須給用戶以自由,所以要使用自由軟件。所以才有今天的gcc 編譯器以及emacs等等神級軟件,創(chuàng)造了除內(nèi)核以外的全部上層軟件,也撰寫了GPL通用發(fā)布協(xié)議,為開源軟件的發(fā)展打下了堅實的法律基礎(chǔ)。
Linux工具鏈
說到這里,平時我們在使用Linux操作系統(tǒng)的時候,其實是離不開GUN工具鏈的,你可以不用GCC,用Clang,不用GNU binutils,用LLVM 下的binutils,但是依然繞不過去gmake, gawk, gzip, tar, coreutils, autotools...等等。
特別是想在Windows平臺上使用GUN工具鏈,更是難上加難,也不是沒有選擇,有人寫了GUN在windows系統(tǒng)下的工具集,比如GnuWin,官網(wǎng)是http://gnuwin32.sourceforge.net/, 還有直接native Win32的unxutils,官網(wǎng)是http://unxutils.sourceforge.net/.
問題
但是這些項目都太老了,而且?guī)缀鯖]有人在取更新維護,看unxutils官網(wǎng)最近的一次發(fā)布是在2010年。
Rust重寫GUN工具鏈
于是有人發(fā)起了用Rust重寫通用的(跨平臺)的cli項目,包括對GNU coreutils重寫等。這個項目叫uutils, github地址:https://github.com/uutils。目前star數(shù)為7.5k。
其中https://github.com/uutils/coreutils是核心工具包的實現(xiàn),目前已經(jīng)實現(xiàn)了90%的工具,包括經(jīng)常使用的cat,chmod,du,head,kill,mkdir等等, 具體實現(xiàn)了哪些可以在官方https://github.com/uutils/coreutilsgithub上看到,還有一些todo和Semi-Done實現(xiàn)了一半工具,也可以參與到其中。
寫在最后目前Rust重寫GUN工具的時機和條件都成熟了,就像當(dāng)年RMS開發(fā)了GUN一樣,當(dāng)有了周邊工具集生態(tài)后,有人又會用這些工具使用Rust去寫內(nèi)核,然后逐步替代GUN那套生態(tài)鏈。
本文轉(zhuǎn)載自微信公眾號「碼小菜」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系碼小菜公眾號。


































