The following takes place between 12:00PM and 01:00PM
都是很基础的东西,先从最基本的概念开始吧,有不正确的地方,请大家帮忙指出来。
由于水平有限,因此以参考网络上的文档为主。
1.计算机的基本概念
计算机的核心是处理器,其次是RAM(内存)。处理器和RAM
存在于主板上,在主板上还有许多其他的外设,例如CD-ROM,硬盘等。处理器无法“看见“这些外设,它通过Bus(总线:包括ISA总线,PCI总
线,PCMCIA等)与这些外设进行通讯。有些外设有专用的控制器,有些没有(比如键盘,因为比较简单,自带控制器)。
下面举一个例子:
原文引用:When your computer reads a program or data off the disk, what
actually happens is that the processor uses the bus to send a disk read
request to your disk controller. Some time later the disk controller
uses the bus to signal the processor that it has read the data and put
it in a certain location in memory. The processor can then use the bus
to look at that data.
译:当计算机从硬盘中读取一段程序时,在计算机内部发生的过程是处理器通过总线向 硬盘控制器
发一个要求读的信号,一段时间以后,硬盘控制器通过总线通知处理器需要的数据已经被装入内存中的某个确定的位置中了。接下来,处理器就可以通过总线取得内
存中的这部分数据了。
2.当你按下电源开关以后,计算机内部发生了什么?
不运行程序的计算机只是一堆废铁。当启动计算机以后,第一件要做的事是:启动一个特殊的程序----操作系统。那么如何启动呢?
这个过程称之为booting,也叫上电自举或引导。计算机内的BIOS芯片内部烧写了booting所需要的代码,BIOS的地址被安排在 芯片开始工作以后自动去取得第一条指令的地址(芯片设计时决定了这个地址)。
BIOS会告诉处理器去一个指定的地方读取一段特殊的程序(从CD-ROM启动?硬盘启动?就是在这个时候决定的)。一般情况下,会从硬盘启动。这个特殊
的程序就是boot loader(不同的boot
loader如LILO,GRUB,NTLDR等等),它的作用是找到操作系统内核(所谓内核,因为一个操作系统通常包含了一系列的工具软件以及一个内
核),并且把它装入内存。
当操作系统内核启动以后,它开始在特定的地址搜寻可用的硬件,在这个过程中,屏幕上会打印出许多相关的信息。在搜寻硬件这方面,Linux具备很出色的能力,相比Windows,MAC OS等。
接下来,内核启动一个名为"init"的进程。init首先极差你的硬盘是不是工作正常,因为硬盘文件系统比较脆弱,因此在全面启动操作系统之前进行检查
是很有必要的,如果有错误则可以进行修复。init接下来启动许多守护进程(daemon),即后台服务程序,比如邮件监听服务等等。
下一步,init启动getty程序,getty运行login程序,作用是登录(验证用户名,密码)。但是init还没有结束,最后一步工作是启动许多支持网络等的守护进程。
3.当你登录的时候发生了什么?
简单的来说就是验证你所键入的用户名(在/etc/passwd中)和密码(在/etc/shadow中)是否正确,并且根据记录文件取得相应的权限等其他和该帐号相关的信息。如果你输入正确的用户名以及密码,login验证成功后便启动了默认的Shell程序。
To be continued........
阅读(1740) | 评论(0) | 转发(0) |