自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux難稱完美的幾大命門:軟件包各自為政

運維 系統(tǒng)運維
從1991年到2008年,Linux已經(jīng)走過了17個春秋,但它依然是一個正在發(fā)展中的作品,依然難稱完美,還有好多方面需要完善,雖然不是致命缺陷,但是要想讓Linux鞏固現(xiàn)在取得的成就,并取得進一步發(fā)展,這些都需要得以解決。

從1991年到2008年,Linux已經(jīng)走過了17個春秋,但它依然是一個正在發(fā)展中的作品,依然難稱完美,還有好多方面需要完善,雖然不是致命缺陷,但是要想讓Linux鞏固現(xiàn)在取得的成就,并取得進一步發(fā)展,這些都需要得以解決。

軟件包管理各自為政

在Linux中,軟件通過“包”形式進行管理,包可以指整個應(yīng)用程序、應(yīng)用程序的支持庫、編程工具等等,舉例來說,在多數(shù)Linux操作系統(tǒng)中,火狐瀏覽器和辦公軟件OpenOffice.org都是以包形式體現(xiàn)在其軟件庫中。

不同Linux廠商的包管理方式也有所不同。紅帽使用它自己的RPM系統(tǒng),Debian有自己的.DEB格式。如果你只使用某一個廠商的Linux,這或許不是一個問題;但是當(dāng)你需要跨廠商的時候,就會發(fā)現(xiàn)這很不方便。

這也是為什么很多商用軟件廠商難于提供其產(chǎn)品Linux版的原因,沒有一種統(tǒng)一的包格式能夠克服跨廠商的問題。

面臨這種情況,潛在應(yīng)用軟件廠商具有三種選擇:一是把時間、精力和金錢用在不同Linux系統(tǒng)上,例如讓自己的應(yīng)用可以在紅帽、SUSE和Ubuntu上安裝和運行;二是只針對某一特定廠商Linux提供其應(yīng)用;三是提供源代碼包,這樣用戶可以在任何目標(biāo)平臺上自己編譯代碼。

第三個辦法肯定不會被任何專有軟件廠商所考慮。第一個辦法則大大加重了應(yīng)用軟件廠商的工作量,基本也不可行。這樣就僅僅剩下了第二個辦法,既可以讓用戶能夠迅速使用其應(yīng)用程序,也降低了用戶安裝應(yīng)用程序的工作量。

目前來看,Linux系統(tǒng)上的商用軟件需求還相對較少,解決這一問題的重要性還不是那么明顯。但是從長遠(yuǎn)來看,當(dāng)商用軟件越來越多的進軍Linux市場的時候,這無疑是Linux的一個很大的缺陷。一個可能的解決辦法是,采用一種元包(meta-package)格式,用戶下載了這種格式的文件后,使用本地軟件將其處理成可以在指定系統(tǒng)上安裝的包。目前BitRock有一個類似的工具,可以將一個開源應(yīng)用打包成一個可在多平臺上安裝的程序,其中也包括對Linux的支持。

另一個解決此問題的主要方法是通過Linux標(biāo)準(zhǔn)庫(Linux Standards Base,LSB)。為了兼容LSB,Linux廠商必須同時使用或支持紅帽的RPM。由于目前最流行的Linux系統(tǒng)是基于Debian的Ubuntu,它對RPM的支持并不好,因此業(yè)界人士批評LSB過于以紅帽為中心。

配置文件語法混亂

任何一個Linux都是多個組件和模塊聚合起來的,這些軟件來自成千上萬個不同的程序員、項目和設(shè)計機構(gòu)。這種情況導(dǎo)致了所有Linux系統(tǒng)都沒有或很少集中配置功能,系統(tǒng)中的每一個模塊都是通過一些雜亂無章的文件來進行設(shè)置,沒有什么規(guī)定來約束和指導(dǎo)配置文件的語法。

如果你在工作僅僅用到少數(shù)幾個配置文件,并熟悉它們的內(nèi)部格式,或許不會明顯的感覺到這個問題,但是這并非一個可以讓人接受的解決方案。造成該問題根源是,多數(shù)應(yīng)用希望保持與老的UNIX應(yīng)用的兼容。

從內(nèi)核到用戶工具和應(yīng)用程序,Linux整個系統(tǒng)內(nèi)需要一個一致的配置系統(tǒng)。除了便于用戶(以及程序員)易于使用外,還可以簡化集中管理的問題。

僅僅通過規(guī)定實現(xiàn)這樣的事情幾乎是不可能的;更好的方法是,普及推廣一個可以讓應(yīng)用程序配置更簡單的工具,從而實現(xiàn)統(tǒng)一的配置方式。GNOME項目的Gconf就是這樣的一個工具;盡管目前該工具的設(shè)置對象只是用戶習(xí)慣設(shè)置,而并非系統(tǒng)范圍內(nèi)的配置選項,它依然為我們解決配置文件問題帶來了很好的啟示。
#p#

內(nèi)核應(yīng)用二進制接口

一直以來,在Linux開發(fā)領(lǐng)域,人們對內(nèi)核應(yīng)用二進制接口(Application Binary Interface,ABI)抱怨甚多。

Linux內(nèi)核設(shè)計的思路是,在內(nèi)核內(nèi)部可以修改很多內(nèi)容,但是用戶應(yīng)用一定不要通過ABI去修改內(nèi)核。這個問題不僅僅是理論性的,在實際開發(fā)中也是切實存在的:內(nèi)核接口范圍的存在意味著,違背其規(guī)定的某些操作完全有可能發(fā)生,有時候即使通過非常嚴(yán)謹(jǐn)?shù)拇a查閱也無法發(fā)現(xiàn)問題所在。

這樣,當(dāng)違背規(guī)定的事情發(fā)生時,它將帶來兩個問題:它可能讓你無法確認(rèn)一個問題的真正導(dǎo)致原因(例如它是一個內(nèi)核的問題還是一個用戶應(yīng)用的問題?);另外你需要花費時間和精力來修復(fù)它。

目前有一些方法來臨時解決這個問題。對于某些項目來說最迅速有效的辦法之一就是用戶空間文件系統(tǒng)(Filesystem in Userspace,F(xiàn)USE),它是Linux系統(tǒng)平臺上可加載的內(nèi)核模塊,允許非特權(quán)用戶創(chuàng)建功能完備的文件系統(tǒng),而不需要重新編譯內(nèi)核。FUSE模塊僅僅提供內(nèi)核模塊的接入口,本身的主要實現(xiàn)代碼位于用戶空間中。但是,從長期來看,Linux需要一個既穩(wěn)定又能滿足長期增長需要的ABI,并且不會成為造成潛在兼容性問題的老鼠窩。

原生文件版本管理(Native File Versioning )

原生文件版本管理是另一個可以加入到Linux的功能,但是至今為止還沒有被默認(rèn)加入到Linux中。其概念非常簡單:在一個文件當(dāng)前版本被覆蓋或破壞的情況下,用戶可根據(jù)需要恢復(fù)到早期的任何一個版本。Windows用戶現(xiàn)在通過影子復(fù)制的形式可以體驗這個功能,但是在標(biāo)準(zhǔn)的Linux文件系統(tǒng)中目前還沒有該功能的具體體現(xiàn)。當(dāng)然,它不能取代文件備份,但是可以把一個文件回滾到過去某個時刻的功能還是有它的用武之地的。

現(xiàn)在你可以手動的向Linux中增加這個功能。有些不同項目也已經(jīng)使用略有不同的方式來實現(xiàn)了這個功能,諸如Wayback、ext3cow、copyfs和Tux3等等。盡管有人稱這個功能可以通過非內(nèi)核插件來實現(xiàn),但是如果能有一個標(biāo)準(zhǔn)的、“內(nèi)核安全的”方法來實現(xiàn)版本控制,無疑是更好的選擇。

我認(rèn)為,未來的Linux文件系統(tǒng)(或許是即將到來的BTRFS)將完全解決這個問題,但是目前還沒有直接的解決方案開始解決這個問題。

音頻應(yīng)用程序編程接口(API)

廚師太多可能熬壞一鍋好湯,用這個例子來說明Linux音頻實現(xiàn)的現(xiàn)狀再恰當(dāng)不過了。多個音頻API和子系統(tǒng)意味著,你可以隨便選擇一個來滿足自己的需要,但是它也同時意味著,你將面臨兼容性的問題。

內(nèi)核級的音頻API,也就是ALSA,是多數(shù)情況下應(yīng)用程序的首選。但是除了它之外,還有很多其它音頻API,例如最初的PulseAudio,主要用于混合來自多個應(yīng)用程序的音頻;還有JACK,用于實現(xiàn)低延時的專業(yè)音頻。在今年9月份的Linux Plumber大會上Don Marti很好的總結(jié)了該問題所帶來的沖突,他表示,“如果有人來問我,‘我想編寫一個音頻應(yīng)用程序,我應(yīng)該使用哪一個API?’我無法給出一個很好的答案?!?/P>

簡而言之,音頻API問題困擾著編程者,也困擾著用戶?;蛘哒f,任何影響程序員的問題從長期來看也將影響終端用戶。PulseAudio或許是最通用的解決方案,其應(yīng)用范圍也最廣。但是從長期來看,應(yīng)用程序開發(fā)者需要的是一個內(nèi)核級的音頻訪問方式。

#p#

圖形用戶界面問題

對于內(nèi)核來說,需要增加什么功能自然是Linus和內(nèi)核開發(fā)者說了算。但是對于Linux桌面來說,卻沒有什么規(guī)定可言。

在進一步闡述前,我要首先解釋清楚一個概念?!白烂妗辈粌H僅指那些讓非技術(shù)用戶更輕松使用Linux/FOSS的任何圖形化用戶界面,而是指一個可以讓你更輕松使用和管理系統(tǒng)的圖形化用戶界面,不管你的技術(shù)能力處于哪一級別。

這不是一個將圖形化用戶界面完全與系統(tǒng)整合在一起的問題。Linux中的內(nèi)核和桌面開發(fā)是以高度并行的方式進行的,它以一個單向引導(dǎo)的方式進行。沒有人保證內(nèi)核開發(fā)者會實現(xiàn)對桌面開發(fā)者有用的功能,但是桌面開發(fā)卻必須根據(jù)內(nèi)核功能來修改自己。

這樣,就需要一個指導(dǎo)委員會對所有運行在Linux上的圖形化用戶界面進行指導(dǎo),無論創(chuàng)建任何圖形化用戶界面,不管它們是GNOME,還是KDE或其它尚未發(fā)明的桌面,它們都必須具有對后端內(nèi)核功能的一致性實現(xiàn),使它們能夠緊密結(jié)合內(nèi)核的功能。內(nèi)核應(yīng)該發(fā)布一個圖形化用戶界面可以使用的功能列表,然后圖形化用戶界面可以通過不同的方式來將其展現(xiàn)給用戶。

Linux需要做的另一件重要的事情是,需要有一個清晰的規(guī)則來指導(dǎo)如何使默認(rèn)桌面設(shè)置更符合用戶習(xí)慣,這需要設(shè)計者具有用戶界面設(shè)計經(jīng)驗。這并不是說用戶界面要“簡單化”:通常需要的不是更簡單的控制,而是這些控制更好的默認(rèn)處理方式,這樣用戶無需進行麻煩的調(diào)整就可以獲得最方便的設(shè)置。

X11與應(yīng)用程序的集成

大多數(shù)人用過Linux一段時間后,可能會遇到這樣一個問題:一個X11應(yīng)用,或X11自身,會出現(xiàn)不響應(yīng)的現(xiàn)象,唯一的辦法就是關(guān)閉并重啟X11。盡管這個操作并不復(fù)雜,但是關(guān)閉X11就意味著每一個其它X11應(yīng)用都會受牽連,也會被關(guān)閉。

如果可以選擇保留運行在X下的應(yīng)用,那么當(dāng)X需要被關(guān)掉和重啟時,你就不會丟失你的整個用戶會話了。如果不能實現(xiàn)這一點,也可以通過一個窗口管理API來允許輕松存儲和恢復(fù)崩潰事件中的會話,這也是非常有用的一個功能。

商業(yè)化備份恢復(fù)解決方案支持

如果Linux希望繼續(xù)吸引普通的PC用戶從Windows轉(zhuǎn)向自己,它需要具有Windows中的許多類似功能。其中包括支持Linux客戶端的付費網(wǎng)絡(luò)服務(wù),諸如遠(yuǎn)程備份等。

Windows和Mac用戶具有眾多選擇:這兩個系統(tǒng)中的本地文件和系統(tǒng)級別的備份和恢復(fù)都可以通過眾多商業(yè)化備份解決方案所實現(xiàn)。諸如Mozy和Carbonite之類的服務(wù)可以進行安靜、加密的差異化備份到遠(yuǎn)程主機,因此用戶的數(shù)據(jù)可以被連續(xù)保護并離線保存。但是這些服務(wù)都不支持Linux客戶端。

Linux用戶如果希望執(zhí)行離線備份,通常要借助于本地Linux應(yīng)用程序,諸如Ubuntu中的簡單備份工具,來備份到一個并非專門用于數(shù)據(jù)保護的遠(yuǎn)程服務(wù)器。實際上并不缺少可以與遠(yuǎn)端服務(wù)器進行會話的Linux備份客戶端,例如在Ubuntu中就有簡單備份套件,但是對普通用戶來說,卻缺少一個與商業(yè)化備份提供商整合的應(yīng)用。

一種可能發(fā)生的事情是,隨著一切變得與平臺無關(guān),所有數(shù)據(jù)的備份都將可以通過特定Web瀏覽器來實現(xiàn)。另一種更可能發(fā)生的事情是,專門支持Linux客戶端的完整狀態(tài)備份服務(wù)將會出現(xiàn)。

結(jié)論

本文中所提到的所有Linux缺陷都不是致命的,否則Linux就不會取得今天的成績。但是毫無疑問,這些問題都需要被改進,這可能需要改變某些傳統(tǒng)的Linux功能設(shè)計思路,只有保持不斷革新、去偽存真,才能讓Linux真正成為一件完美的產(chǎn)品。

【編輯推薦】

  1. Linux管理員新手易犯的十種錯誤
  2. Linux系統(tǒng)密碼攻擊與防范黑客們?nèi)肭?/A>
責(zé)任編輯:xikder 來源: 中國IT實驗室
相關(guān)推薦

2012-08-01 09:42:33

ASP.NET

2018-06-22 10:05:04

Arch LinuxDEB軟件包

2010-09-15 08:57:05

運維難題

2010-03-01 17:43:55

Linux Xsupp

2021-10-03 14:30:17

Arch LinuxPKGBUILD 文件軟件包

2010-03-03 09:43:34

Linux軟件包

2010-03-03 16:39:01

Linux軟件包依賴

2010-01-07 14:44:14

Linux安裝KDE

2023-01-02 11:34:04

LinuxFlatpak軟件包

2011-09-15 11:14:12

2023-01-03 15:53:00

LinuxFlatpak軟件包

2020-11-11 08:00:00

Linux系統(tǒng)修復(fù)

2018-06-11 08:50:46

LinuxArch Linux降級軟件包

2018-10-29 14:10:19

Linux軟件包命令

2009-12-15 10:47:29

linux操作系統(tǒng)

2012-10-10 13:09:19

企業(yè)耗材

2013-10-15 17:37:16

XToolscrm

2014-09-16 13:44:07

數(shù)據(jù)中心華為

2020-01-06 10:41:52

分布式架構(gòu)治理

2021-04-01 13:09:11

ITOT黑客
點贊
收藏

51CTO技術(shù)棧公眾號