QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3801|回复: 2

翻译From Power Up to Bash Prompt

[复制链接]
发表于 2006-2-7 11:25:23 | 显示全部楼层 |阅读模式
在征得作者同意后,我开始编写From Power Up to Bash Prompt(从启动到bash提示符)的中文版本,虽然老了点,但是很多基本原理还是一样的。现在放寒假,所以想完成这么一件事。希望这篇文章对你有点帮助。我翻译水平有限,有不妥之处还请大家指正。大家可以在http://users.rsise.anu.edu.au/~okeefe/p2b/
看到英文原版
这是开始3章,我会陆续贴出后面的部分,请大家多提意见

从按下电源开关到bash提示符
Greg O'Keefe, [email protected]
v0.9a, November 2000


--------------------------------------------------------------------------------
这是一篇描述linux系统从按下电源,到显示bash提示符当中的过程。理解这些细节在你遇到问题或想配置系统时非常有帮助 。

1. 序言
我发现很多在我linux机器上发生的事是我不了解的,这让我十分沮丧。如果你像我一样,想真正了解你的系统而不只是知道如何使用,这篇文章是个好的开始,如果你想成为linux高手的这些背景知识也会很有用。


我假设你有了一台装linux系统的电脑,而且知道一些Unix和PC的基础知识,如果不是这样,Eric S. Raymond的The Unix and Internet Fundamentals HOWTO是很好的文章,它很短,有很好的可读性而且内容全面。


虽然本文章的主线是linux如何启动,但也尝试全面的介绍linux系统,我在每一章节里都加入了练习,如果你进行了实际的操练,你会比阅读学到的更多。


我希望读者们能进行我所知的最好的学习方法,那就是从源代码开始编写系统。意大利哲学家维克 (Giambattista Vico 1668-1744)说过“verum ipsum factum”即“理解来自实践”谢谢Alex(见感谢)提供这则谚语。

如果你想“自力更生”,你应该看看 Gerard Beekmans的Linux From Scratch HOWTO (LFS),LFS在如何编写完整可用的系统方面有详细指导。在LFS官方网站上,你会找到有关的邮件列表。以前曾是文章一部分的内容现在分离出来,成为“Building a Minimal Linux System from Source Code”你可以在从启动到bash提示符主页 上找到。它揭示了如何建立系统,是一个纯粹的学习经验。


描述这些程序是以在启动时的先后顺序来安排的,这意味着如果你以这种顺序来安装文件,你会发现每次系统启动都会离bash提示符近一些。这会从另一方面证明了系统是按照我们所说的顺序启动的。


我推荐你每次都阅读各部分的主要内容,跳过练习和参考书目,然后确定你想了解的深度和想投入的精力。最后回到开始,进行练习和阅读参考文献。

2. 硬件
当你打开电脑,它会自动检测是否一切是否正常。这个过程被称为“启动自检”然后位于ROM中的BIOS引导装入程序会找到引导扇区。一个引导扇区是盘中的第一个段,它带有一个能载入操作系统的程序。引导扇区有神奇的地方被标记为0xAA55 = 43603,就在第0x1FE = 510字节。这是一个段的最后两个字节,硬件就是靠它们来区别这个段是否为引导扇区。



引导程序有一个可用于寻找启动扇区位置的表。我的老机器会先寻找软驱,然后主硬盘。很多现代计算机可以在光盘上寻找启动扇区,如果找到了一个启动扇区,引导程序会把它读入内存然后把控制权交给启动扇区里的程序。在一个标准linux系统中,这个程序就是LILO的第一阶段启动程序,有很多方法来进行启动时的设置,更多细节请参阅LILO的用户手册。


很明显,我们关于PC硬件功能有很多好讲,但这里不适合讨论,你可以参考各种关于PC硬件的书籍。


2.1 配置
机器在CMOS里面储存了很多自身信息。包括硬盘和内存的信息,BIOS里的程序可以让你更改这些设置。看看你机器启动时的屏幕信息就能知道如何进入BIOS程序,在我机器上,在启动操作系统前按下delete


2.2 练习
了解PC硬件的很好的方法是在二手市场里攒台机器。在386配置下就可以跑linux,而且不会花费太多。


下载并且做一张Unios的启动盘,这只是一个可启动的“Hello World!”程序,总共一百多行汇编代码。如果用可以理解GNU汇编的软件打开会更易读。


这里有篇指导文章“自己动手”在Roll Your Own 如果你想寻求真正的挑战。


用16进制编辑器打开unios的映像盘,这个映像有512字节长,正好是一段。找到那个神奇的数字0xAA55,找张可引导的盘,做同样的工作。你可以用dd命令来把引导区拷贝成文件:dd if=/dev/fd0 of=boot.sector 注意!正确的命令格式。

看看LILO引导程序的源代码


2.3 More Information

The Unix and Internet Fundamentals HOWTO by Eric S. Raymond, 特别是第三部分, What happens when you switch on a computer?
The LILO User's Guide 的第一章给出了关于PC硬盘分区和启动方面的描述。请看LILO 的网址.
The NEW Peter Norton Programmer's Guide to the IBM PC & PS/2, by Peter Norton and Richard Wilton, Microsoft Press 1988 这书很好,不过我现在买不起。
许多关于升级电脑的书。

3. Lilo
当系统在Linux系统上读取一个启动扇区,它实际上读取的是lilo的一部分,称之为“第一阶段启动程序”这是个很小的程序,它的所有工作只是读取“第二阶段启动程序”。


第二阶段启动程序会给你一个提示符(如果你安装时这样设置的话)然后启动你所选的操作系统。


当你的电脑已经在运行,你执行lilo实际上在进行“启动布局的安装”,它会读取/etc/lilo.conf然后把引导程序和可用系统清单写入硬盘。


有很多不同的方法来设置启动过程,我刚才解释的只是对于Linux系统最显著和普通的方法,Lilo的用户手册解释了许多“启动概念”的例子。它很值得一读,并且值得一试。


3.1 配置
LILO的配置文件是/etc/lilo.conf. 输入man lilo.conf会有一个帮助。lilo.conf主要存放LILO在启动时要完成的任务。作为Linux的入口,它告诉我们了内核在哪里,那个分区作为根文件系统。对于其他操作系统来说,主要的是他们从哪里启动。


3.2 练习
危险: 小心的进行这个练习。如果出错会把你的主引导区搞砸,并且让你的系统不能运行。确定你有个能用的备份盘并指导如何修复你的系统。阅读下面tomsrtbt的连接,有我推荐的救援盘。最好的预防是用一台不重要的机器。


在你的软盘上建立一个lilo。有没有内核并不重要,当内核准备加载init时你会得到一个“kernel panic”的信息。不过至少你知道lilo在工作。

如果你想继续看看软盘上多少内容被运行了。这可能是第二好的学习手段,看看Bootdisk HOWTO和tomsrtbt(网址在下面)

用lilo来启动unios(参考硬件 练习). 作为一个很大的挑战,看看你能否在软盘上完成这个练习A

做一个启动循环。启动主引导区的lilo,然后启动分区的lilo,再起动主引导区的lilo……或者用主引导分区的lilo和4个主分区的lilo做个好玩的大循环!

3.3 更多信息

lilo帮助手册 (man pages)
The Lilo package ( lilo), 包括 ``LILO User's Guide'' lilo-u-21.ps.gz (或以后的版本)。你可能已经有了 。看看/usr/doc/lilo,postscript得版本要比纯文本好点。因为有图片和表格。
tomsrtbt 最酷的软盘linux,非常好的急救盘。
The Bootdisk HOWTO
 楼主| 发表于 2006-2-7 11:35:18 | 显示全部楼层
呀,忙中出错,把prompt打成prumpt了。不好意思,请斑竹帮着改一下
回复

使用道具 举报

发表于 2006-2-7 13:54:41 | 显示全部楼层
[quote:ce667002b9="leo_chen1985"]呀,忙中出错,把prompt打成prumpt了。不好意思,请斑竹帮着改一下[/quote]可以自己编辑贴子修改
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-25 03:10 , Processed in 0.109819 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表