有一种豁达叫开源
????當(dāng)人們在討論開源的時候,第一時間想到的是索取,開源對很多開發(fā)者來說是好的事情,但是閉源對很多科技企業(yè)是有技術(shù)保護(hù)作用的。
=====
人們對軟件的態(tài)度是經(jīng)歷過很多次變化的。
在現(xiàn)代計(jì)算機(jī)研發(fā)初期,核心問題是硬件,尋找實(shí)現(xiàn)記憶的方式,建造龐大的機(jī)器。那時的大牛們都不太重視軟件,把編程的事情交給女生去做,因?yàn)榇?#xff0c;早期大型機(jī)上的程序員都是以女生為主,比如ENIAC上的六朵玫瑰。
在ENIAC上編程的女程序員(六朵玫瑰中的兩位) (美國陸軍檔案照片)
在現(xiàn)代計(jì)算機(jī)商業(yè)化之后,越來越多的人意識到了軟件的重要性。但是大多數(shù)計(jì)算機(jī)公司仍是以銷售硬件為主的,當(dāng)然上面一般都是要包含軟件的,因?yàn)闆]有任何軟件,那么計(jì)算機(jī)就是廢物,不如磚頭。
據(jù)說,比爾?蓋茨的名言中有一句是:軟件創(chuàng)造價值。不要小看這句話,在微軟成立的70年代里,很多人還是認(rèn)識不到這句話的重要性和偉大的。即使是當(dāng)時做軟件的人,對這句話的認(rèn)識也不夠深刻。比如和比爾蓋茨一起創(chuàng)業(yè)的保羅?艾倫據(jù)說就堅(jiān)持要做硬件。微軟早期也確實(shí)做了一些硬件,包括給蘋果電腦使用所謂軟卡,名字叫Z-80 SoftCard。
微軟的成功,讓更多人意識到了軟件的價值。
當(dāng)很多人都認(rèn)可軟件的價值后,軟件便可以獨(dú)立銷售而且賣很高的價格了。在PC鼎盛的90年代里,一些普通的個人用戶也愿意掏錢來買軟件。當(dāng)時銷量很高的一種軟件便是殺毒軟件,一張3寸的可啟動軟盤,售價在100元到幾百元之間,今天想想都覺得有點(diǎn)神奇。
正當(dāng)人們慢慢習(xí)慣要為軟件付錢的時候,軟件團(tuán)隊(duì)內(nèi)部殺出了一路新的人馬,他們打著自由的大旗,高聲說:我的軟件免費(fèi)。
免費(fèi)的力量太強(qiáng)大了,在免費(fèi)面前,任何收費(fèi)的店鋪都將面臨破產(chǎn)。
今天,軟件開源已經(jīng)成為一種不可阻擋的潮流,一股不可撼動的力量。
軟件太復(fù)雜了,軟件太龐大了,必須要全社會一起來做。對于根本無法完全用文檔描述的軟件來說,開放源代碼是最高效的全社會協(xié)作方式。
但是開放源代碼也意味著把最核心的資產(chǎn)公之于眾,“啥都說出去了”,不僅自己的用戶會用,自己的競爭對手也會用。
于是,對于很多商業(yè)公司來說,便有一種糾結(jié),是否要開源,是開,還是不開。
很長一段時間里,Intel的軟件部門主管就是Linux基金會的主席,因?yàn)榇?#xff0c;Intel做為開源軟件的旗手,是要做好模范帶頭作用的。事實(shí)上,Intel也確實(shí)開放了大量的源代碼,甚至文檔,包括內(nèi)部都曾比較敏感的GPU設(shè)計(jì)文檔(在01.org上)。
但也有一些公司,是不愿意開源的。比如Nvidia便一直不肯把GPU的內(nèi)核驅(qū)動源代碼開放出來。為此,Linus大神曾經(jīng)公開叫板,說Nvidia是“The single worst company”,并動粗口痛罵。
其實(shí)不愿意開源的不僅僅是Nvidia。在有開源旗手稱號的Intel公司內(nèi)部也有一些部門和人是不愿意開源的。愿意開源的主要是軟件部門,而芯片設(shè)計(jì)部門對開源是有顧慮的,所以為了防止軟件部門把東西都開放出去,有時硬件團(tuán)隊(duì)就不愿意把資料給到軟件部門去。
在中國,不愿意開源的公司就更多了。明明是屬于開源范圍內(nèi)的Linux內(nèi)核驅(qū)動,有些公司就是不愿意開放。有時是這樣的理由,有時是那樣的理由。有的是要先談商務(wù),有的可能是要上門自取。
于是便有了科技網(wǎng)紅上門自取源代碼的故事。
關(guān)于GDK8的內(nèi)容,可以查看這個鏈接
https://www.nanocode.cn/wiki/docs/gdk8_primer
在昨天完成了GDK8的新版本鏡像后,格蠹的小伙伴們便都放假了。今天一早,我一個人到辦公室,要做的第一件事就是要開放源代碼。
在開源這件事上,大多數(shù)人都是要求別人開源時說的震天響,輪到自己開源時慢慢騰騰,但是格蠹不要這樣做。11月份發(fā)布GDK8的初始版本后,我就想把源代碼上傳到github開源出去,但是因?yàn)榇a量很大,當(dāng)時又在外面出差,讓小伙伴打包發(fā)給我后,我上傳幾次都失敗了。
有了上次的積累,這一次進(jìn)展的順暢很多。但在嘗試以老的git信息基礎(chǔ)上操作時失敗了。
git branch -M main
error: refname refs/heads/master not found
fatal: Branch rename failed
于是我把.git目錄移動到其它地方,準(zhǔn)備以全新的方式提交。
先git ?init,再提交一個簡單的readme。
git? ?add README.md
git??commit -m "initial commit for WUCHENG release of YANZI series for GDK8"
因?yàn)間ithub不再接受密碼方式登錄:
remote: Support for password authentication was removed on August 13, 2021. Please use a per? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sonal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?operations/ for more information.
fatal: Authentication failed for 'https://github.com/gdk8/kernel.git/'
所以花了一些時間在產(chǎn)生RSA token和注冊上。關(guān)鍵的步驟是:
先用sshgen產(chǎn)生好RSA的密鑰對,再啟動ssh agent。
?eval "$(ssh-agent -s)"
然后把密鑰加給ssh agent:
ssh-add id_yanzi
可以使用ssh-add -l來觀察是否加成功。
而后很關(guān)鍵的另一個動作是把git的遠(yuǎn)程方式從https改為ssh,即:
git remote set-url origin git@github.com:gdk8/kernel.git
接下來增加所有文件:
git add -A
下達(dá)提交命令:
git commit -m “”
最后發(fā)布push,推上互聯(lián)網(wǎng):
git push
可能是因?yàn)楹芏喙径挤偶倭?#xff0c;所以今天的網(wǎng)絡(luò)很給力,我轉(zhuǎn)身倒茶回來就上傳完畢了。
7萬7千多個文件,247MB的壓縮包,里面包含了Linux內(nèi)核、硬件設(shè)備的驅(qū)動程序,還有固件源代碼(DTS),腳本文件等。
其中也有格蠹修改過的代碼,以及新增的模塊,比如用來輔助內(nèi)核調(diào)試的NDB模塊。
軟件龐大而且復(fù)雜,必須要全社會一起來做。有一種糾結(jié),叫要不要開源,也有一種豁達(dá),叫我要開源。^_^
總結(jié)
- 上一篇: boost库在ubuntu下的安装
- 下一篇: 程序员入门之路