Windows 到 Linux 之旅: 第 1 部分. Linux 思想

不同之处与相似之处
developerWorks
文档选项
将打印机的版面设置成横向打印模式
将此页作为电子邮件发送

级别: 初级
Chris Walden (cmwalden@us.ibm.com), 电子商务架构师, IBM Developer Relations
2003 年 11 月 01 日
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。我们首先来认识 Linux 和 Windows 之间的不同之处与相似之处,并学会不要总是通过重新引导系统来解决问题。
您已经开始从 Windows 转向 Linux,这可能是您自己的决定,也可能是“不得已而为之”。无论出于何种原因,您原来非常熟悉的工作方式和工具可能都将变得完全不同。不但如此,您可能还需要培训别人如何去轻松地管理 Linux。管理绝不是循规蹈矩,成功地管理计算环境是一项创造性的工作。实现这一转变就如同一个熟练的油画家转而去从事雕塑一样。
开放的标准使得 Linux 也要遵循 Windows 管理的基本模式,这对用户来说的确是好消息。虽然两者的一些术语并不相同,工具也有一些区别,但是根本的原理是一样的。更好的消息是,当您习惯 Linux 的工作方式后,您将具有更大的工具集来控制和维护您的环境。Linux 的强大之处在于它的稳定性和灵活性。一旦您领悟了 Linux 的思想,您将可以完成更多的任务,使更多的任务自动化,更多地以远程方式完成任务。
在讨论 Linux 与 Windows 有多大不同之前,让我们先来看看这两者有哪些相似之处。
Linux 和 Windows 都是多用户操作系统。都可以由许多不同的用户来使用,为每个用户提供单独的环境和资源。基于用户身份来控制安全性。都可以以组成员的方式来控制资源的访问权限,这样在用户数目较大时可以不必为每一个帐号设置权限。
用户和组可以集中管理,让多个服务器共享相同的用户和身份验证数据。
Linux 和 Windows 都支持多种文件系统。文件资源可以通过 NetBIOS、FTP 或者其他协议与其他客户机共享。可以很灵活地对各个独立的文件系统进行组织,由管理员来决定它们在何处可以以何种方式被访问。
两种操作系统都支持各种物理设备端口,比如并口、串口和 USB 接口。支持各种控制器,比如 IDE 和 SCSI 控制器。Linux 还支持很多“刚刚上市”的标准硬件。
Linux 和 Windows 都支持多种网络协议,比如 TCP/IP、NetBIOS 和 IPX。都支持多种类型的网络适配器。都具备通过网络共享资源的能力,比如共享文件和打印。都可以提供网络服务能力,比如 DHCP 和 DNS。
Linux 和 Windows 都提供服务。所谓服务,指的是那些在后台运行的应用程序,可以为系统和远程调用该服务的计算机提供一些功能。在系统引导的时候可以单独控制并自动启动这些程序。(注意:Linux 中沿用了 Unix 的习惯,称这种应用程序为 daemon,)




回页首


虽然有一些类似之处 ,但 Windows 和 Linux 的工作方式还是存在一些根本的区别。这些区别只有在您对两者都很熟悉以后才能体会到,但它们却是 Linux 思想的核心。
Windows 最初出现的时候,这个世界还是一个纸张的世界。Windows 的伟大成就之一在于您的工作成果可以方便地看到并打印出来。这样一个开端影响了 Windows 的后期发展。
同样,Linux 也受到了其起源的影响。Linux 的设计定位于网络操作系统。它的设计灵感来自于 Unix 操作系统,因此它的命令的设计比较简单,或者说是比较简洁。由于纯文本可以非常好地跨网络工作,所以 Linux 配置文件和数据都以文本为基础。
对那些熟悉图形环境的人来说,Linux 服务器初看可能比较原始。但是 Linux 开发更多关注的是它的内在功能而不是表面上的东西。即使是在纯文本的环境中,Linux 同样拥有非常先进的网络、脚本和安全能力。执行一些任务所需的某些表面上看起来比较奇怪的步骤是令人费解的,除非您认识到 Linux 是期望在网络上与其他 Linux 系统协同执行这些任务。Linux 的自动执行能力也很强,只需要设计批处理文件就可以让系统自动完成非常详细的任务。Linux 的这种能力来自于其基于文本的本质。
Linux 有图形组件。Linux 支持高端的图形适配器和显示器,完全胜任图形相关的工作。现在,许多数字效果艺术家在 Linux 工作站上来进行他们的设计工作,而以前这些工作需要使用 IRIX 系统来完成。但是,图形环境并没有集成到 Linux 中,而是运行于系统之上的单独一层。这意味着您可以只运行 GUI,或者在需要时才运行 GUI。如果您的系统主要任务是提供 Web 应用,那么您可以停掉图形界面,而将其所用的内存和 CPU 资源用于您的服务。如果您需要在 GUI 环境下做一些工作,可以再打开它,工作完成后再将其关闭。
Linux 有图形化的管理工具,以及日常办公的工具,比如电子邮件、网络浏览器和文档处理工具等。不过,在 Linux 中,图形化的管理工具通常是控制台 (命令行) 工具的扩展。也就是说,用图形化工具能完成的所有工作,用控制台命令同样可以完成。同样,使用图形化工具并不妨碍您对配置文件进行手工修改。其实际意义可能并不是特别显而易见,但是,如果在图形化管理工具中所做的任何工作都可以以命令行的方式完成,这就表示那些工作也可以由一个脚本来实现。脚本化的命令可以成为自动执行的任务。Linux 同时支持这两种方式,并不要求您只用文本或者只用 GUI。您可以根据您的需要选择最好的方法。
Linux 中的配置文件是人类可读的文本文件,这与过去的 Windows 中的 INI 文件类似,但与 Windows 的注册表机制在思路上有本质的区别。每一个应用程序都有其自己的配置文件,而且通常不与其他的配置文件放在一起。不过,大部分的配置文件都存放于一个目录树 (/etc) 下的单个地方,所以看起来它们在逻辑上是在一起。文本文件的配置方式使得不通过特殊的系统工具就可以完成配置文件的备份、检查和编辑工作。
Linux 不使用文件名扩展来识别文件的类型。相反,Linux 根据文件的头内容来识别其类型。为了提高人类可读性您仍可以使用文件名扩展,但这对 Linux 系统来说没有任何作用。不过,有一些应用程序,比如 Web 服务器,可能使用命名约定来识别文件类型,但这只是特定的应用程序的要求而不是 Linux 系统本身的要求。
Linux 通过文件访问权限来判断文件是否为可执行文件。任何一个文件都可以赋予可执行权限,这样程序和脚本的创建者或管理员可以将它们识别为可执行文件。这样做有利于安全。保存到系统上的可执行的文件不能自动执行,这样就可以防止许多脚本病毒。
什么是内核?
Linux 实际上只是内核;它实现了多任务和多用户功能,管理硬件,分配内存,激活应用程序的运行。
对初学者来说,最重要的是要明白奇数的内核版本(比如 2.3、2.5、2.7)是实验用的、正在开发的内核。 稳定的、正式发行的内核版本号是偶数的(比如 2.4、2.6、2.8)。
如果您使用 Windows 已经很长时间了,您可能已经习惯出于各种原因(从软件安装到纠正服务故障)而重新引导系统。在 Linux 思想中您的这一习惯需要改变。Linux 在本质上更遵循“牛顿运动定律”。一旦开始运行,它将保持运行状态,直到受到外来因素的影响,比如硬件的故障。实际上,Linux 系统的设计使得应用程序不会导致内核的崩溃,因此不必经常重新引导(与 Windows 系统的设计相对而言)。所以除了 Linux 内核之外,其他软件的安装、启动、停止和重新配置都不用重新引导系统。
如果您确实重新引导了 Linux 系统,问题很可能得不到解决,而且还会使问题更加恶化。学习并掌握 Linux 服务和运行级别是成功解决问题的关键。学习 Linux 最困难的就是克服重新引导系统的习惯。
另外,您可以远程地完成 Linux 中的很多工作。只要有一些基本的网络服务在运行,您就可以进入到那个系统。而且,如果系统中一个特定的服务出现了问题,您可以在进行故障诊断的同时让其他服务继续运行。当您在一个系统上同时运行多个服务的时候,这种管理方式非常重要。
所有的 Linux 命令和选项都区分大小写。例如, -R-r不同,会去做不同的事情。控制台命令几乎都是小写的。我们将在“ 第 2 部分. 控制台速成班”中对命令进行更详细的介绍。




回页首


从管理 Windows 到管理 Linux 的转变是很麻烦的。不过,作为一个 Windows 管理员,您有自己的优势。您对计算的工作方式的理解依然可用。能否成为一个成功的 Linux 管理员将取决于您对两者区别的认识以及操作习惯的调整。
Linux 相对于 Windows 的许多变化都是有益的。空闲的 GUI 的开销被归还给服务。任务可以脚本化并可以自动执行。配置文件基于文本并且人类可读。在大多数情况下不必重新引导系统。实际上,您应该抑制重新引导系统的冲动。