Linux 版 (精华区)

发信人: tcpip (俺的昵称改了), 信区: Linux
标  题: Linux核心启动一览(转载)(转寄)
发信站: 哈工大紫丁香 (Thu Aug 19 19:19:52 1999), 转信

/*

 用dmesg命令可以看到linux启动打出的消息.

 从这可以看到linux启动的过程.

 源文件可以到 http://gem.ncic.ac.cn/lance/lxr/source/init/main.c

*/

/**

    内核的启动最后是到 start_kernel ( in /init/main.c )

    head.S --> main.c(start_kernel) ..

        建议每个人都读一下 main.c ( init/ )

        有空可以读 head.S ( arch/i386/boot/ )    

**/

/**

  第一部分  : 内核初始化以及启动.

**/

Loading ....[ bootsect.S ]

uncompress .....[ decompress_kernel() ]

/* 

 *  main.c ---> start_kernel() 开始.

 *     

 *  开始 printk(banner);

 */

  

Linux version 2.2.6 (root@lance) (gcc version 2.7.2.3) 

    #40 Sun Apr 18 17:44:20 CST 1999

/* 以下是 /arch/i386/time.c 中 init_time() 打出的信息 */

Detected 199908264 Hz processor.

/* console_init() --> drivers/char/tty_io.c */

Console: colour VGA+ 80x25

/*运行一个循环,测量一下 MIPS -- 为什么要干这件傻事??*/

/* 我知道了 ... 这是因为内核需要知道一个确定的机器指令周期来实现实时的延迟.

   为什么要打印出来 ?? 这有两个原因 :

            1 . 用于 DEBUG .

            2 . 搞笑用途 , Linus Torvalds 每每看见用户对此疑惑不解时,总是

                大笑....:-((

*/

Calibrating delay loop... 199.48 BogoMIPS

/* init_mem */

Memory: 63396k/65536k available (848k kernel code, 408k reserved, 856k data

, 28k 

/** dquote_init()  **/

VFS: Diskquotas version dquot_6.4.0 initialized

/* ?????????? **/

CPU: Intel Pentium Pro stepping 09

Checking 386/387 coupling... OK, FPU using exception 16 error reporting.

Checking 'hlt' instruction... OK.

POSIX conformance testing by UNIFIX

/**

此后调用 linux_thread(init ,..,..,)(arch/i386/kernel/process.c) 

创建一个运行 init 的进程.

从此...开始了一个新的阶段 :

              进入了用户模式 ( user_mode) ,跳到以下第二部分.----+

                                                                |

                                                                |

 End of start_kernel                                            |

                                                                |

 最后进入cpu_idle ( arch/i386/kernel/process.c )                |

                                                                |

**/                                                             |

                                                                |

/**                                                             |

   第二部分               <-------------------------------------+

   以下是对设备的初始化 . init()--->do_basic_init()--+

**/                                                  |

/*                                                   |

 *   pci_init() <------------------------------------+ 

 *              |               

 */             +------------------------------------+

PCI: PCI BIOS revision 2.10 entry at 0xfd8d1         |

PCI: Using configuration type 1                      |

PCI: Probing PCI hardware                            |

                                                     |

/**                                                  |

  对Socket的初始化,socket_init()  <------------------+

**/                                |  

                                   +--------------------------+

Linux NET4.0 for Linux 2.2                                    |

Based upon Swansea University Computer Society NET3.039       |

NET4: Unix domain sockets 1.0 for Linux NET4.0.               |

NET4: Linux TCP/IP 1.0 for NET4.0                             |

IP Protocols: ICMP, UDP, TCP                                  |

/** **/                                                       |

Starting kswapd v 1.5   kswapd_setup()    <-------------------+     

/** Mouse **/                              |

Detected PS/2 Mouse Port.                  |

                                    device_setup()

/** 声卡 **/                               |

                                           | 

Sound initialization started               |

Sound initialization complete              |

                                           |

/** 软驱 **/                               |

                                           |

Floppy drive(s): fd0 is 1.44M              |

FDC 0 is a National Semiconductor PC87306  |

                                           |

/** SCSI 设备的初始化 **/                  +----------------------------+

                                                                        |

(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                  |

  Type:   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(...) )

 *              内核就此启动完毕...

 *          以后就他的作用就是接受消息和信号来工作.

 *             ( 通过 fork 来产生新的进程 )..

 */

                       

--

※ 来源:.BBS 曙光站 bbs.ncic.ac.cn.[IP: 159.226.41.99]

--

※ 修改:.tcpip 于 Aug 19 19:20:43 修改本文.[FROM: mtmail.hit.edu.c]
※ 转寄:.紫 丁 香 bbs.hit.edu.cn.[FROM: mtmail.hit.edu.c]


--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:210.796毫秒