技术开发 频道

点评Linux难称完美的几大命门

原生文件版本管理(Native File Versioning
 
原生文件版本管理是另一个可以加入到Linux的功能,但是至今为止还没有被默认加入到Linux中。其概念非常简单:在一个文件当前版本被覆盖或破坏的情况下,用户可根据需要恢复到早期的任何一个版本。Windows用户现在通过影子复制的形式可以体验这个功能,但是在标准的Linux文件系统中目前还没有该功能的具体体现。当然,它不能取代文件备份,但是可以把一个文件回滚到过去某个时刻的功能还是有它的用武之地的。
 
现在你可以手动的向Linux中增加这个功能。有些不同项目也已经使用略有不同的方式来实现了这个功能,诸如Wayback、ext3cow、copyfs和Tux3等等。尽管有人称这个功能可以通过非内核插件来实现,但是如果能有一个标准的、“内核安全的”方法来实现版本控制,无疑是更好的选择。
 
我认为,未来的Linux文件系统(或许是即将到来的BTRFS)将完全解决这个问题,但是目前还没有直接的解决方案开始解决这个问题。
 
音频应用程序编程接口(API
 
厨师太多可能熬坏一锅好汤,用这个例子来说明Linux音频实现的现状再恰当不过了。多个音频API和子系统意味着,你可以随便选择一个来满足自己的需要,但是它也同时意味着,你将面临兼容性的问题。
 
内核级的音频API,也就是ALSA,是多数情况下应用程序的首选。但是除了它之外,还有很多其它音频API,例如最初的PulseAudio,主要用于混合来自多个应用程序的音频;还有JACK,用于实现低延时的专业音频。在今年9月份的Linux Plumber大会上Don Marti很好的总结了该问题所带来的冲突,他表示,“如果有人来问我,‘我想编写一个音频应用程序,我应该使用哪一个API?’我无法给出一个很好的答案。”
 
简而言之,音频API问题困扰着编程者,也困扰着用户。或者说,任何影响程序员的问题从长期来看也将影响终端用户。PulseAudio或许是最通用的解决方案,其应用范围也最广。但是从长期来看,应用程序开发者需要的是一个内核级的音频访问方式。
 
图形用户界面问题
 
对于内核来说,需要增加什么功能自然是Linus和内核开发者说了算。但是对于Linux桌面来说,却没有什么规定可言。
 
在进一步阐述前,我要首先解释清楚一个概念。“桌面”不仅仅指那些让非技术用户更轻松使用Linux/FOSS的任何图形化用户界面,而是指一个可以让你更轻松使用和管理系统的图形化用户界面,不管你的技术能力处于哪一级别。
 
这不是一个将图形化用户界面完全与系统整合在一起的问题。Linux中的内核和桌面开发是以高度并行的方式进行的,它以一个单向引导的方式进行。没有人保证内核开发者会实现对桌面开发者有用的功能,但是桌面开发却必须根据内核功能来修改自己。
 
这样,就需要一个指导委员会对所有运行在Linux上的图形化用户界面进行指导,无论创建任何图形化用户界面,不管它们是GNOME,还是KDE或其它尚未发明的桌面,它们都必须具有对后端内核功能的一致性实现,使它们能够紧密结合内核的功能。内核应该发布一个图形化用户界面可以使用的功能列表,然后图形化用户界面可以通过不同的方式来将其展现给用户。
 
Linux需要做的另一件重要的事情是,需要有一个清晰的规则来指导如何使默认桌面设置更符合用户习惯,这需要设计者具有用户界面设计经验。这并不是说用户界面要“简单化”:通常需要的不是更简单的控制,而是这些控制更好的默认处理方式,这样用户无需进行麻烦的调整就可以获得最方便的设置。
 
0