Linux和開源軟件在今年有成功也有失敗,不過總的來說,今年對Linux和開源軟件是好的一年,而在未來一年,Linux和開源可能沒有什么“大”事,因為它會繼續(xù)在計算的各領域滲透。
失敗之處
1. Heartbleed
Heartbleed漏洞是由安全公司Codenomicon和谷歌安全工程師發(fā)現的,漏洞讓特定版本的OpenSSL成為無需鑰匙即可開啟的“廢鎖”,這項嚴重缺陷(CVE-2014-0160)的產生是由于未能在memcpy調用受害用戶輸入內容作為長度參數之前正確進行邊界檢查。攻擊者可以追蹤OpenSSL所分配的64KB緩存、將超出必要范圍的字節(jié)信息復制到緩存當中再返回緩存內容,這樣一來受害者的內存內容就會以每次64KB的速度進行泄露。
2. Systemd爭議
如果你不深入了解Linux,那么你不會聽過Systemd。Systemd實現系統初始化時服務的并行啟動。雖然Systemd兼容SysV和LSB init腳本,但是它旨在取代老舊的SysV init。
多數的抱怨源于人們認為Systemd項目太大以至于超出了它的工作范圍,并且它從Linux系統接管的部分太多了:
"systemd文件是一大堆復雜的高度耦合的二進制組成,這違反了UNIX哲學:‘做一件事情,并把它做好’。它超出了一個init程序的職責范圍,因為它還有電源管理、設備管理、掛載管理、cron(定時執(zhí)行工具)、磁盤加密、socket接口/inetd、syslog、網絡配置、登陸/會話管理、文件預讀、GPT分區(qū)發(fā)現、容器注冊、hostname/locale/time管理、mDNS/DNS-SD等功能、它將Linux控制臺以及其他的一些功能都包裝在一個程序里面。
3. 開源許可沒有被使用
或許你不會介意開源許可中沒有GPL這樣的協議,但是你一定會介意這么多的開源程序不帶有任何的開源許可。到底有多少呢?在2013年,GitHub程序中有77%的程序沒有許可。
4. Ubuntu Touch和Steam Machines
為了使得游戲體驗更好,Valve正致力于開發(fā)新一代的游戲機Steam Machines,將刷新用戶在游戲機上玩游戲的體驗,尤其是第一人稱射擊和策略游戲。不幸的是,這是個艱巨的任務,2014年發(fā)布的目標已經無法達成了。同樣在這一年我們也無法看到搭載Ubuntu Touch的手機和平板,或許我們可以寄希望于2015年。
成功之處
1. 終端用戶操作系統第一的名額可能屬于Linux
Windows還占據著桌面,終端用戶操作系統第一的名額可能屬于Linux?這怎么可能?然而,在任何情況下,很多人不需要使用太復雜的計算機。很多用戶繞過電腦,完全支持智能手機和平板電腦。有誰發(fā)現超過70%的全球市場份額都是智能手機?Android運行在Linux內核上。Android也支持平板電腦、集頂級設備、照相機、電視機、游戲機等等,以后也會支持更多的設備。
2. 開源成為高級編程方法
現在五個程序員當中會有四個使用開源開發(fā)工具。在2014年,微軟CEO Satya Nadella說:“微軟喜歡Linux。”微軟在。NET上開放了很多,而OpenStack現在也對Windows Server開放了。
Linux Foundation的Jim Zemlin最近一篇博文“2014年是一個轉折點,太多的公司運用開源編寫程序。”也佐證了這一觀點。
3. 開源支配云
OpenStack看上去似乎得到了世界上每一個主要科技公司的支持,甚至是微軟和VMware這樣的競爭對手也支持它。
IT行業(yè)中許多人都知道云是未來的一大趨勢,而OpenStack會成為云的主要成分之一。
4. Red Hat和Canonical為云作戰(zhàn)
Canonical可能還沒有推出其Ubuntu Touch手機,但是Ubuntu是OpenStack上最主要的Linux系統。同時,Red Hat是全球最大的開源技術廠家,其產品Red Hat Linux也是全世界應用最廣泛的Linux。
無論基礎架構即服務(LaaS)或平臺即服務(PaaS),這兩家公司都希望自家的Linux最終主導云。
這將是一個非常有趣的斗爭,或許到2015年底也不會分出勝負。兩家公司都有各自的優(yōu)點和缺點,去觀察這場斗爭產生什么樣的結果會是一件有趣的事。
5. Docker重新定義數據中心和云計算
一年前,我們甚至都沒聽過Docker。Docker是什么?Docker是一個開源的應用容器引擎,現在Docker把容器技術幾乎帶到了所有的數據中心和云計算公司。
這是為什么呢?因為Docker讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 App)。幾乎沒有性能開銷,可以很容易地在機器和數據中心中運行。最重要的是,他們不依賴于任何語言、框架或包括系統。