简述计算机启动过程

硬件部分

1. 内部电源打开,初始化,等待一小段时间用来产生稳定的电流。如果主板芯片和 CPU 收到了不符合规定的电流,将自动产生一个RESET信号。在主板没有收到电源的 Power Good 信号之前,重复步骤1

2. 执行 BIOS 中 0FFF0h 处的代码。这里只有一条 JMP 指令,将跳转到真正的 BIOS 启动程序处

3. BIOS 开始加电自检(Power-On Self Test, POST),如果出现错误,启动停止

4. BIOS 开始寻找显卡,找到的话将执行显卡的 BIOS,接着显卡初始化,将显示一段显卡信息,我们开机看到的第一屏就是它

5. BIOS 开始执行所有其他设备的 BIOS,包括软驱,硬盘、光驱等

6. BIOS 显示启动信息

7. BIOS 开始额外的检测。一般有内存检测,如果内存有问题,将显示错误消息

8. BIOS 探测所有的硬件,将显示如硬盘、光驱信息等

9. BIOS 给出一个已知硬件的列表

10. BIOS 更新 ESCD

10. BIOS 按照设置的驱动器顺序找驱动器,如果驱动器存在的话继续找 MBR,如果找不到驱动器,系统显示错误信息并停止

11. MBR 从分区表中找到第一个活动分区(分区描述中第一个字节为 80H),然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责引导系统
Continue Reading…

Leap Motion 和 树莓派 结合,需要了解些什么

写这篇文章的起因呢,是因为我在知乎上看到这样的一个问题:
想要玩树莓派,想要玩极路由,想要玩Leap Motion,并把它们结合起来,应该掌握哪些知识?
正好我对Leap Motion也研究了有一段日子,并且很凑巧的是最近在看关于树莓派的资料,同样思考过这个问题。所以这个问题促成了我在知乎上的第一答。

我把我的答案搬过来,稍微修改一下,变成了《Leap Motion 和 树莓派 结合,需要了解些什么》。讲一下我的一点看法。
Continue Reading…