linux是一个为多用户而设计的安全性极好的操作系统。以下列举的10大条款可应用到任一基于UNIX的*nix系统,比如linux和不同的BSD。本文内容主要针对于linux系统。
文件层次
与其它每一驱动器下都包含一个文件树结构的操作系统不一样,linux文件操作系统是一个庞大的树结构:顶部为/ (Root) 和每一文件夹、文件以及远离根目录的分叉路径。
例如,假设你的机器上有两个硬盘驱动器(a和b),一个软驱,另一个为CD-ROM。假设第一个硬盘驱动器上有两个分区(a1和a2)。在Windows中,其结构如下:
+ hard drive a, partition one (hda1): C Drive
+ hda2: D Drive
+ hdb1: E Drive
+ floppy: A drive
+ CD-ROM: F Drive
在linux中,你只有一个文件系统,并非如以上Windows例子中罗列的5个分区。在linux系统中,每一驱动器都安置于树结构之中并以一个文件夹而使用,如下所示:
+ hda1: / (our Root)
+ hda2: /home
+ hdb1: /home/user/music
+ floppy: /mnt/floppy
+ CD-ROM: /mnt/cdrom
D驱动器和E驱动器都附加在C驱动器之后,无需回到根目录切换驱动器,从一个文件夹转移到另一文件夹就可以实现驱动器之间的切换。同样,软驱和CD-ROM也是同样的道理,它们也附加到/mnt之后并作为一个文件系统。在实际操作过程中,这些驱动器可以附加到linux系统的任何位置,这取决于用户如何安装/etc/fstab 文件,即如何告诉计算机附加驱动器的位置并如何处理它们。见图A所示。
图A. 文件结构
对比Windows XP,Win2k,Win98,Win95以及Apple OS X等操作系统,每一种系统都具有自身的内部组件和不同的图形化外表。如何将XP的Media Player,Win98的File Manager,Win2k的stability 以及OS X外表集成在同一系统中?在linux中,系统的每一部分都是独立,因此你可以随意混合和匹配各个部分,以建构自己的Frankenstein系统。你可以从这些程序选择其中一个作为防火墙,一个作为媒体播放器,另一个作为文件管理器。
微软的操作系统类似于一座城堡,即每一文件或操作都是相互关联,并与系统的每一部分相互联系。而Linxu系统则不一样,它的分布很象一座市场:每一操作都是独立和公平的。如果你不想要Media Player或File Manager,直接删除它们!操作系统还是可以稳健地工作。
linux系统模块化特性是造成出现很多linux发布者(通常称为linux Distros)的原因。任何人或公司都可以合并和匹配他们觉得有用的程序,并对这些程序命名。RedHat,Xandros,SimplyMEPIS以及Suse就是这些linux Distros的典型代表。
有些大型的linux Distros 复制了他人的模块,只是在模块内部更改并包括自己的程序。这就是linux的模式,而且这种混合与配对(mix and match)的方法最终为用户提供了更多的机会。当前,DistroWatch.com罗列出超过350家linux的发布者,很多模块针对服务于一些特定的人群,但这些模块都可以被更改以满足更多的程序。
因为程序是可互换的,图形用户界面(GUI)也不例外。GUI能够让你拥有一个时尚的系统,包括鼠标、程序图标、菜单等等。任何linux系统都可运行很多不同的GUI,包括可以运行很多网络浏览器或者不同的邮件客户程序。
你想将系统做成Windows风格吗?请使用带有XP主题的FVWM即可。想让系统运行更快?请使用IceWM。想让系统拥有更多的特性?可以尝试GNOME或KDE。所有这些GUI都有自身的好处和不足,但它们都给用户展示了采用鼠标就可操作的界面。这些操作一点都不困难。
linux自其出现以来已经发展到一定的阶段。虽然它比微软Windows晚一半的时间出现,但它更为强大和稳定,消耗的资源更少,并且存在更少的错误。
至今,linux还没有解决的一个事情为厂商支持(Vendor Support)问题。举个例子,如果你想使用Intuit推出的QuickBooks,你将无法很顺利地将其安装在linux系统。当前,有很多软件可将Windows程序运行在linux环境中,比如CrossOver Office和Wine。但linux的软件运行是否成功,取决于所使用的Windows程序。在软件供应商决定将程序安装在linux之前,你将无法立即安装这些程序。
然而,当今开源软件已经拥有超过15000个程序可顺利安装在linux中。因为这些程序通常都是免费,所以在质量上有所不同,但绝大多数程序都非常出色,并经常被其它程序员改进。这些程序也可以导入和导出其它非本地文件类型。GNUCash可以读取上面提及的Quickbooks文件,OpenOffice.org 可以读取MSWord *.doc的文件。如果你不喜欢GNUCash,不要沮丧,因为你还可以使用其它很多类似的免费程序。当前越来越多的公司正在发布他们软件的linux版本。
对于硬件,也存在同样的情况。你不能随便选取一款硬件应用到Apple机器上,对linux的硬件选取也是同样道理。很多标准硬件都可以毫无问题地运动在linux环境,比如硬盘、RAM、快速记忆存储器、主板、NIC、以及数码相机等。而一些新式的、边沿的硬件则除外。在硬件供应商提供linux支持之前,这些硬件的驱动程序只能依赖于linux社区成员利用业余时间来编写并担任。
所以,由于硬件公司通常直接使用Windows来测试产品的兼容性,这些产品的linux支持将会延迟一段时间。一般情况下,linux使用者都会自己想办法将这些硬件支持自身的linux系统。笔记本电脑的一个缺点就是它自身的非标准型硬件,如果安装linux系统将是一个挑战。与软件一样,越来越多的硬件公司在未来的开发中将支持linux环境。
在linux机器中,硬件与软件之间的关联就是内核(Kernel)。内核就是将硬件连接到软件的方方面面。每隔几周,可通过因特网下载一个最新的内核,当前最新版本是2.6.14。如果你当前的系统不支持硬件,下载一个新的内核或许得以解决。对于你自己来说,安装一个内核并非容易的事情,这个时候就得使用到程序包管理器。
在linux环境中,安装程序有很多种方法,但最为容易的方法为使用程序包管理器(Package Manager,简称PM)。PM能够确保安装一些丢失的文件以满足程序正确运行。linux版本与PM类型要相对应,但如果找到相应的程序包,任何linux软件都可以通过PM安装在linux环境中。
通常情况下,PM都拥有在线的资源库。通过搜索程序资源库并点击“Install”就可以安装一个程序,这一过程非常简单。如果你不能在PM列表中找到IceWM或者MPlayer,该怎么办?你可以添加一个新的在线资源库。程序包管理器的一些例子包括:Debian 的Synaptic 基于dpkg 和Apt) 及其派生的程序包;RedHat 的Yum及其派生的程序包; SuSE的YaST2及其派生的程序包;以及Gentoo 的Emerge。
linux是针对于多用户而设计,这些用户分成几个组。每一用户具有读取、编写以及执行(R/W/X)自己文件的权限。由于linux为多用户系统,所以每一用户都用自己的密码并可对自己的文件设置权限。这即为用户权限(User Permissions)。
每一用户都从属于一个或多个组,且每一用户可设置他们的文件/文件夹访问权限,所以同组的其它成员可以读但不能写这些文件。这就是组权限(Group Perimssions)。比如,Joe和Susan处于会计组,她们允许组内成员访问彼此的文件,但她们能够限制销售组的人员访问她们的文件。
其它权限也可以允许或拒绝小组外的任何人访问组内的文件。这些权限确保整个系统和每一用户数据的安全性。很多用户在他们的文件中都保留了默认的权限。(如图B所示)
图B
作为系统的超级用户(Root user),管理员具有操作所有文件和更改整个系统设置的权限。超级用户拥有所有用户的密码,以用于系统的维护。这一特点能够防止普通用户在系统中安装用害监视软件或删除重要文件。
Windows系统有My Documents,但如果不是文档,这些文件该放置在哪里?通常你会把它们放在Windows桌面。linux的桌面也很零乱,但每一用户都有自己的主目录(Home Directory),主目录一般位于/home/user下。在这一主目录中,你一般都会存放文档,程序链接,音乐,或者任何你需要的东西。我们可以在这里建立一个文件和文件夹,按照自己的需要组织和打乱这些文件。通过对这些文件的权限设置,我们可以允许或阻止任何人访问这些文件(除了超级用户)。
linux发行版本之间会有一些区别,比如文件保存的位置或者默认程序的命名。对这种文件系统区别上的理解,你拿RedHat和SuSE来比较就可以了。很多用户不需要知道它们的区别之处,但应该懂得内部文件系统是有差别的。当需要帮助的时候,一定要让对方知道你运行的linux发行版本。如果你的系统运行正常,或者你不想使用复杂的后台操作,可以不用关心这些发行上的区别。
从Start-type菜单启动xterm程序(通常称控制台)将让你进入一个终端程序(Terminal),其外表类似于DOS窗口。这就是命令行界面(Command Line Interface,即CLI)。我们不会了解到其中的细节,因为这可以编写一本很厚的书籍。但CLI是功能十分强大的工具,很多时候可用于检修计算机。如果你想在因特网上得到帮助,且别人需要你运行lspci,则他们会让你启动xterm程序,然后你键入lspci,然后回车,即提供屏幕的反应。
当你启动xterm程序,默认情况下你只是一个普通的用户,即权限受到很多限制。为了在xterm中切换到超级用户模式,键入su 和回车,然后输入密码并回车。这时你就拥有很多权限了。超级用户可以更改任一用户的数据,包括运行linux的系统文件。若想离开xterm程序或者su 模式,键入exit 并回车。
组合使用ctrl-alt-escape可将鼠标变成一个X状的骷髅形,或者其它“凶恶”的形状。在这一模式下,点击一个运行不正常或被冻结的程序即可将其结束。这与Windows任务管理器(Windows Task Manager)的结束进程(End Process)类似。如果你不想结束任何程序,使用Esc键可退出结束程序模式。
很多linux发布者都有一个用户论坛,你可以在论坛上质疑,答疑,以及提供使用技巧。LinuxQuestions.org就是一个专用于linux技术和帮助的大型网站。请记住,在任一论坛上提出问题之前,先搜索你的问题(在LQ和Google),以避免你的问题已经被解决。同样,核实你找到答案的日期,因为很多老答案已经不能解决日新月异的开源代码发展所带来的问题。当提出一个问题时,请注意必须尽可能地包括你所使用的系统信息,比如:
保持开放的思维
近几年来,linux和其它开源软件已经取得飞跃性的发展。然而对一个刚从Windows封闭环境的用户来说,linux的内部操作也许显得很陌生。由此,保持一种开放的思维和自动性将可更有效地掌握linux技术。欢迎你到我们的行列中来!
责任编辑:张琎