(scsi0) <Adaptec AIC-7880 Ultra SCSI host adapter> found at PCI 13/0
(scsi0) Wide Channel, SCSI ID=7, 16/255 SCBs
(scsi0) Downloading sequencer code... 419 instructions downloaded
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.10/3.2.4
<Adaptec AIC-7880 Ultra SCSI host adapter>
scsi : 1 host.
Vendor: SEAGATE Model: ST32155W Rev: 0596
ype: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
Vendor: SEAGATE Model: ST32155W Rev: 0596
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sdb at scsi0, channel 0, id 1, lun 0
scsi : detected 2 SCSI disks total.
(scsi0:0:0:0) Synchronous at 40.0 Mbyte/sec, offset 8.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 4197405 [2049 MB] [2.0 GB ](scsi0:0:1:0) Synchronous at 40.0 Mbyte/sec, offset 8.
SCSI device sdb: hdwr sector= 512 bytes. Sectors= 4197405 [2049 MB] [2.0 GB]Partition check: sda: sda1 |
sdb: sdb1 sdb2 < sdb5 sdb6 > |
安装 文件系统 filesystem_setup()
安装设备驱动程序 mount_root()
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 28k freed
Adding Swap: 66540k swap-space (priority -1)
Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996
SB 3.01 detected OK (220)
<ESS ES1688 AudioDrive (rev 11) (3.01)> at 0x220 irq 5 dma 1
YM3812 and OPL-3 driver Copyright (C) by Hannu Savolainen, Rob Hooft 1993-1
996<Yamaha OPL3> at 0x388
NET4: AppleTalk 0.18 for Linux NET4.0
eth0: Intel EtherExpress Pro 10/100 at 0xf800, 00:A0:C9:49:2F:FF, IRQ 9.
Board assembly 645520-034, Physical connectors present: RJ45
Primary interface chip DP83840 PHY #1.
DP83840 specific setup, setting register 23 to 8462.
General self-test: passed.
Serial sub-system self-test: passed.
Internal registers self-test: passed.
ROM checksum self-test: passed (0x49caa8d6).
Receiver lock-up workaround activated.
NET4: AppleTalk 0.18 for Linux NET4.0
结束 do_basic_setup()
open("/dev/console", O_RDWR, 0)
开始执行 /sbin/init ( execv(...) )
内核就此启动完毕...
这样一来系统在启动时需要的文件一目了然了.要读启动这方面的源码,大概也就可以这样行动即:
Boot/head.S
decompress_kernel(),然后按照个功能块来读取相应的函数.
其实对于整个kernel 来说,还应该解读一下makefile ,说实话在编程来讲我是很爱写 makefile ,然而解读内核,她就是工作十分难以进行.好在有了souce insight 可以让我们轻松的找到,函数和常量的定义, 方便不少.
打开main.c (其实我是将2.2.14解到了windows 下).发现有n 个函数与2n 个常量的定义,只有几个 init 函数在.对于其他的外部函数也定义了不少.这里却没有主函数—我现在怀疑linux 程序是否和vc 一样不知道从哪里开始进行:__).不过马上明白了, 整个内核事变在一块的. 还包括.存储管理, 处理机管理, 内存管理等许多模块, 她该不会启动以后就没有时刻干了吧
好了, 一口吃不成胖子.我还是先从启动读起.不过我开始对是否要加中文祝时产生怀疑, 写那些代码的本身都是高手, 他们应知道怎样是最好的注释. 难道读代码的人连这点e 文也看不了?




