Linux 系统管理课程设计

作者:Mike LeVan 博士

我成为 Linux 倡导者大约有十年了。我安装的第一个 Linux 版本是 Red Hat 3.0.3。我在研究生院使用过基于 UNIX 的系统,并且对如何操作(读作:如何搞砸事情)有点熟悉。我在一所充斥着微软产品的学校工作。在那里工作了一年左右后,我决定自己尝试一下,在我的桌面机器上安装了 Linux。我从未后悔,并且一直使用 Linux 作为我的首选桌面,无论是在家还是在办公室。如果我想玩游戏或阅读偶尔的 PowerPoint 演示文稿,我偶尔会启动进入 Windows,但仅此而已。是的,我知道 WINE 和 CrossOver,但是一些游戏和程序在 Windows 环境中运行时确实运行得更好。然而,通常情况下,Linux 下的选项与 Windows 下的选项同样好,甚至更好。这是我在过去几年中一直向我们的学生、教职员工宣传的主要信息的一部分。

因此,我在校园里以 Linux 倡导者而闻名。如果人们对 Linux 有疑问,他们通常会找到我的办公室,就像他们找到 IT 办公室一样频繁。我也一直在催促我们的学术计算主管,问整个校园何时会切换到 Linux。我们确实有一些 Linux 服务器深藏在角落里运行我们的邮件服务器、Blackboard 和一些其他应用程序,但我们在校园里没有任何可见的 Linux 存在。计算机科学系最近将计算机科学实验室从 SGI 工作站转换为 Linux 工作站,但这几乎是 Linux 在我们校园的全部。Linux 未来有可能在校园内得到更广泛的应用吗?我不确定。这可能是一场漫长而艰苦的战斗,但幸运的是,这是一场可以赢得的战斗。如果您查看 2005 年 5 月号的 LJ,您可以看到一些人在 Mountainland 应用技术学院是如何完成这项工作的。

您可能可以看出来,让 Linux 在我们的校园里得到更广泛的接受是我的使命。来自计算机科学系的同事 Kenny Moorman 博士和我几年前在我们的五月学期开设了一门 Linux 课程。五月学期是一个为期四周的短期学期,恰好在五月期间进行。今年五月我将再次开设这门课程。我的目标是尝试以这样一种方式教授这门课程,使我们的学生可以将他们的 PC 集成到我们现有的框架中。我必须向他们展示如何设置他们的桌面系统,以便他们可以上网、查看电子邮件、刻录 CD,但我也需要教他们一些基本的管理知识。虽然我会教他们如何打开和关闭服务,但我认为让他们将他们的机器用作 DHCP 服务器、邮件服务器或任何类似的东西是不明智的。我认为如果学生开始随意分配 IP 地址,那将是校园管理员的噩梦。在这一点上,最大的问题就变成了我应该如何设置这门课程?

当 Moorman 博士和我上次尝试计划这门课程时,我们意识到在如何使这类课程成功方面,可用的资源很少。几年后,我仍然没有找到很多资源来帮助开发这门课程。所以,我决定现在可能是时候写下我认为可能使这门课程成功的东西了。首先,我已经确定了在构建这门课程时我想解决的四个主要想法。

  1. 为什么 Linux 很重要?开源理念是什么?Linux 的历史是什么?

  2. 市面上是否有好的 Linux 教材?

  3. 课程应该包含哪些信息?

  4. 应该使用哪些类型的评估?

让我们一次解决这些问题。

为什么 Linux 重要?

为什么 Linux 重要?我可以用一个词来总结:自由。如果您一直在关注开源运动,您就会知道我说自由时不是在谈论软件的价格。这仅仅是一个不错的额外福利。不,我所说的自由是指能够以您希望的方式使用您的计算机和软件。它关乎不被任何特定的供应商束缚,他们推出与您当前项目不兼容的“升级”。我谈论的是免受病毒的自由;免受垄断公司使用不正当商业手段打压竞争的自由;导致想象力和创新的自由。这就是开源可以带来的自由类型,也是大学校园应该重视的自由类型。

在大学校园开设一门关于开源的课程似乎是天作之合。如果要改变开源与闭源的讨论,那么我们需要向即将到来的工程师和计算机科学家讲授一个存在多种选择的世界。我们需要告诉他们 Linux 的起源、它为何发展以及它将走向何方。这门课程需要讨论教堂和集市的区别和理念。通过向学生提供支持和反对双方的论据,他们可以做出明智的决定并形成受过教育的观点,而不是简单地坚持现状。如果你能赢得他们的心,就更容易赢得他们的思想。

书?我们不需要那些该死的书!!

这是一个棘手的问题。市面上有很多关于 Linux 的书籍,但我还没有找到一本我认为可以单独在课堂上使用的好书。当然,我首先想到的书是 Running Linux (Welsh 等,O'Reilly 出版社),因为它告诉你如何在 Linux 中做几乎所有事情。然而,它在开源和 Linux 历史与哲学方面的内容不多。上次我开设这门课程时,我们结合使用了 Running LinuxThe Cathedral and the Bazaar (Raymond,O'Reilly 出版社)。同样,这本书本身就很棒,但对于刚开始接触 Linux 和开源的学生来说,它可能有点超出了他们的理解范围。这本书也可以在网上找到(见资源),所以您可以挑选并选择哪些部分可能在当时适用,而不是订购整本书。

去年夏天,我为高中生举办了一个 Linux 夏令营。我们使用了 Linux for Non-Geeks (Grant,No Starch Press 出版社) 这本书。如果您要在桌面上使用 Linux,这本书很不错——这对夏令营来说很好——但它没有包含太多关于系统管理的内容。《特兰西瓦尼亚》是一所文理学院,所以我们倾向于问“为什么?”很多。我想向学生展示从启动过程到关机以及介于两者之间的大部分过程正在发生什么。当学生第一次启动 Linux 时,屏幕上会滚动显示大量信息。我想确保学生知道这一切意味着什么,或者至少大部分意味着什么。了解事物的工作原理和原因,可以更容易地在它们不工作时进行故障排除。

这些界限让我选择了两本书。第一本是 How Linux Works (Ward,No Starch Press 出版社),第二本是 Learning Red Hat Enterprise Linux and Fedora (McCarty,O'Reilly 出版社)。这两本书都详细介绍了启动过程,从引导加载程序到 init,再到登录提示符。这些都是我想让我的学生理解的想法。大多数书籍都跳过或模糊了这些概念,但这​​两本书都花了一些时间和深度来解释正在发生的事情。我最终选择了 How Linux Works

这种选择显然因听众而异。作为一个有点文科的人,我想要一本不太技术化但又有很多基本信息的书。我觉得 How Linux Works 做到了这一点,但我并没有贬低任何其他书籍。我拥有所有这些书,并且我认为它们都很有用。但是,当您为您的课程选择一本书时,您不应该仅仅选择您最喜欢的书。确保您选择的书籍能够满足您要教授的材料以及课程的水平。如果您有一个满是高年级计算机科学专业的教室,那么更技术性的书籍可能是更好的选择。不过,这次我开的是入门课程,所以我想找到一本易于阅读,但又涵盖了我认为重要的材料的书。我计划使用 Learning Red Hat Enterprise Linux and Fedora 以及其他一些书籍作为参考。以下是我考虑过的其他一些书籍:Linux Cookbook (Sturtz,No Starch Press 出版社),Linux Cookbook (Schroder,O'Reilly 出版社),Red Hat Linux Fedora Linux 3 Bible (Negus,Wiley Press 出版社),Official Red Hat Linux Administrator's Guide (Red Hat Press 出版社) 和 RHCE Red Hat Certified Linux Study Guide (Jang,McGraw-Hill 出版社)。

顺便说一句,有一本名为 Linux: The Textbook 的书。光看这个名字,你可能会认为这是显而易见的选择。不幸的是,它不符合我在这门课程中想要做的事情。它谈了很多关于应用程序和编程的内容,但我不会过多地涉及这些主题。它也有点过时了;自 2001 年以来就没有更新过。

主题,什么主题!

好的,我们的课程有四周,每周五次课,每次课两小时。总共,我们这门课程有 40 个小时,时间不多。以下是我希望涵盖的主题,大致按介绍顺序排列

  • Linux 起源的简史。

  • 开源与闭源

  • 超级用户与普通用户

  • 目录结构

  • 基本命令,包括 cd、ls、mkdir 和 cp

  • 启动过程

  • 安装

  • 命令行与 GUI

  • 用户管理

  • 中级命令

  • 安全,包括 SSH、数据包嗅探器、rootkit 和日志

  • 服务

  • NFS

  • cron

  • 软件管理,包括源代码、RPM 和 apt-get

  • 打印

  • 应用程序,包括 XMMS、The GIMP 和 OpenOffice.org

  • 视觉效果,包括 X Window 系统和 Flash

  • 编译内核

  • 备份/添加硬件

我能在短短 40 个小时内完成所有这些吗?显然,这些主题不是一成不变的。很大程度上取决于课堂的进度。如果他们能在合理的时间内吸收知识,我们应该能够涵盖大部分这些主题。但是,如果进度有点慢,我将不得不削减一些主题。

评估的痛苦

这是任何课程中学生都喜欢的部分——考试!在学术机构中,您通常必须在学期结束时给学生评分。有哪些合理的方法可以用来衡量学生的熟练程度。考试?是的。小测验?当然。故障排除?当然。学期论文?也许。

如何进行评估,使其不仅仅是学生为了获得成绩而必须跳过的另一个障碍?评估本身应该是另一种学习体验。因此,不要采用传统的填空式考试,要有创意!有一天课后,进去“破坏”学生的机器。这样,当他们第二天都来上课时,他们将无法登录。给他们 30 分钟来解决问题,在时间结束时,给他们一些提示或解释问题。故障排除可能很有趣,除非当然,它是您自己的机器。当 Moorman 博士和我上次开课时,仅仅几天后,一名学生的机器就从外部被破解了。幸运的是,我们计划在那天进行安全演示,所以效果非常好。

我还使用了前面提到的 RHCE 书籍来提出学生可以在线访问的选择题。这让他们可以自我测验,看看他们是否理解了材料。虽然您可能不想将此用于正式测验和/或考试成绩,但这对于学生来说是一个有趣的练习,他们可以按照自己的节奏和时间进行。

考试本身可能以两种形式进行,笔试和动手操作。对于笔试部分,我可以要求学生写出他们可能用来完成某项任务的某些命令。过去,我们允许学生使用他们的工作站来测试命令,然后再给出最终答案。然后,我们要求学生凭记忆回答问题。换句话说,我们不允许使用 man 手册、互联网、他们的笔记或他们的邻居。虽然这与现实世界不同,但我认为这会培养出更好的系统管理员。毕竟,您是希望拥有一位能够立即解决问题的系统管理员,还是希望拥有一位必须花时间在互联网上查看是否有人遇到类似问题的系统管理员。

第二部分测试将是实验室实践的动手方法。学生将必须将他们的机器设置为特定状态。状态可以是设置新用户、权限、服务或许多其他类型的问题。我应该能够登录到他们的机器并检查他们是否成功设置了他们的系统。我认为学生会比笔试部分更喜欢这部分测试,因为知道您已解决问题会有一种成就感。我知道当我成为 RHCT 时,我非常享受这方面。对于学生来说,可怕的部分将是在测试的这部分无法访问任何资源。同样,他们将不得不完全依靠自己来查看他们是否可以理解和解决损坏的系统。虽然这看起来可能很苛刻,但我希望这样做会激励学生更深入地研究材料。此外,如果他们想获得认证,这就是他们必须经历的过程。

我可以对家庭作业部分更宽松一些。我会在下节课之前给学生布置一些作业和问题让他们完成。在这里,他们将被允许使用他们的书籍、笔记或任何他们想要的东西来帮助他们解决问题。这些练习有望巩固通过考试所需的基本知识,即使没有别的。

最后的评估方法可能是最不受欢迎的——学期论文。这项作业可能不是您的菜,因此有些人可能会省略这方面。但是,我认为学生能够写作和解决问题都很重要。如果您在技术学院,您可能不认为这很重要,但能够用书面文字很好地表达自己是我们作为文理学院的使命的一部分。对于论文,您可以要求学生撰写许多不同的主题。例如,您可以要求他们制定一项计划,让一所小型文理学院将其计算结构从闭源更改为开源。您可以讨论 Linux 和开源的历史和重要性。学生有很多有趣的主题可以选择。上次我们开设这门课程时,我们要求我们的学生谈论 Netscape 决定开源其浏览器源代码的决定。

下课

好的,同学们,下课时间到了。我希望您喜欢我们今天的讨论。如果您想关注这门课程,请随时查看 我们的网站。您可以使用用户名 guest1,访客密码是 guest42。课程将于 4 月 27 日开始,请确保您在上午 9:00 铃响之前到达那里。如果您有任何问题或意见,请随时在课堂上举手或发送电子邮件至 mlevan@transy.edu

Mike LeVan 博士是特兰西瓦尼亚大学的教授。可以通过 mlevan@transy.edu 联系到他。

加载 Disqus 评论