linux初始化:Linux内核初始化及启动之用户模式开始


       PCI: bus0: Fast back to back transfers disabled
       PCI: Configured XX as a PCI slave with 128MB PCI memory
       PCI: Each Region size is 16384KB
       PCI: Reserved memory from 0x10080000 to 0x15080000 for DMA and mapped to 0x12000000

  设备化 init--->do_basic_init--->pci_init化PCI检测系统PCI设备

  Linux NET4.0 for Linux 2.4Based upon Swansea University Computer Society NET3.039

  英国威尔士斯旺西大学NET3.039, TCP/IP 协议栈

  此信息在linux启动过程中都会出现

  Initializing RT netlink
  
  对Socket_initNetlink 种路由器管理协议(linux-2.4.22\net\core\Rtnetlink.cRouting netlink erface: protocol independent part 其中RT是route路由意思这句输出是在create产生rtnetlink套接字时个调试输出)

  此信息在linux启动过程中都会出现

  Starting kswapd
  
  启动交换守护进程kswapd进程IO操作例程kpiod

  kswapd可以配合kpiod运行进程有时候无事可做当它运行时也不定需要把其所有代码和数据都放在内存中这就意味着我们可以通过把运行中不用内容切换到交换分区来更好是利用内存大约每隔1秒kswapd醒来并检查内存情况如果在硬盘东西要读入内存或者内存可用空间不足kpiod就会被来做移入/移出操作kswapd负责检查kpiod负责移动

  Journalled Block Device driver loaded

  加载日志块设备驱动

  日志块设备是用来对文件系统进行日志记录个块设备日志文件系统是在传统文件系统基础上加入文件系统更改日志记录

  它设计思想是:跟踪记录文件系统变化并将变化内容记录入日志日志文件系统在磁盘分区中保存有日志记录写操作首先是对记录文件进行操作若整个写操作由于某种原因(如系统掉电)而中断系统重启时会根据日志记录来恢复中断前写操作在日志文件系统中所有文件系统变化都被记录到日志每隔定时间文件系统会将更新后元数据及文件内容写入磁盘在对元数据做任何改变以前文件系统驱动会向日志中写入个条目这个条目描述了它将要做些什么然后它修改元数据

  devfs: v1.12c (20020818) Richard Gooch ([email protected])devfs: boot_options: 0x1
  
  Devfs模块输出信息

  设备文件系统devfs版本1.12c
  
  pty: 256 Unix98 ptys configured
 
  Pty模块输出信息与控制台操作有关设置

  将通过 devpts 文件系统使用 Unix98 PTYs(Pseudo-ttys (telnet etc) device是伪ttys设备缩写

  ① TTY(/dev/tty)是TeleTYpe个老缩写为用户输入提供不同控制台设备驱动名字来源于实际挂接到 UNIX系统、被称为电传打字机(teletype)终端在Linux下这些文件提供对虚拟控制台支持可以通过按到键来访问这些虚拟控制台这些虚拟控制台提供独立、同时进行本地登录对话过程

  ② ttys(/dev/ttys)是计算机终端串行接口/dev/ttyS0对应MS-DOS下 COM1

  使用 make dev脚本MAKEDEV来建立pty文件这样系统内核就支持Unix98风格pty了在进行Telnet登录时将要用到/dev/pty设备 pty是伪终端设备在远程登录等需要以终端方式进行连接但又并非真实终端应用中必须使用这种设备如telnet或xterm等Linux 2.2以后增添了UNIX98风格Pty设备它使用个新文件系统(devpts针对伪终端文件系统)和个克隆设备cloning device来实现其功能

  linux-2.4.22\drivers\char\Pty.c, 在devfs_mk_dir (NULL, "pts", NULL);时会输出上面信息

  loop: loaded (max 8 devices)

  加载返还块设备驱动最多支持8个设备

  8139too Fast Ethernet driver 0.9.27eth0: RealTek RTL8139 at 0x60112000, 00:10:0d:42:a0:03, IRQ 14eth0: Identied 8139 chip type 'RTL-8100B/8139D'

  网卡驱动基地址为:0x60112000 MAC地址:00:10:0d:42:a0:03, 中断号:14

  RTL8139 接收路径设计成个环形缓冲区(段线性内存映射成个环形内存)当设备接收到数据时数据内容就保存在这个环形缓冲区内并更新下个存储数据地址(第个数据包开始地址+第个数据包长度)设备会直保留缓冲区内数据直到整个缓冲区耗尽这样设备会再次重写缓冲区内起始位置内容就像个环那样

  从 2.2 版内核升级到 2.4 版时, RTL-8139 支持模块已不再叫 rtl8139而叫它 8139too现在你再看到8139too就不会不明白它来由了吧

  SCSI subsystem driver Revision: 1.00

  USB设备信息USB会被当做SCSI来处理

mumk_register_tasklet: (1) tasklet 0x905bf9c0 status @0x9025e974

  软中断信息输出Tasklet是在2.4中才出现它是为了更好地利用多CPU

  Probing XX Flash Memory

  探测 XX闪存(Flash Memory),"NOR NAND Flash Memory Technology"

  Amd/Fujitsu Extended Query Table v1.3 at 0x0040number of CFI chips: 1
 
  AMD与富士通合资设立Flash供货商SpansionAMD因获利不佳,已经退出Flash市场后续由Spansion合资公司经营.主要生产NOR类型flash,特点是容量小速度快Spansion商标flash在我们开发中会经常看到以后大家看到Spansion芯片就能了解到它和AMD还有富士通来龙去脉了

  Common flash Interface (CFI)是指个统flash访问接口表示这种flash是这种接口类型

  Using buffer write method

  使用flash写缓冲方式

  flash提供了写BUFFER命令来加快对flash上块操作对Flash擦除和写数据是很慢如果用写BUFFER命令会快据手册上说会快20倍Buffer Size :5 sbuffer缓冲不是每个块都有是整个flash只有个5 sbuffer用写BUFFER命令对所有块进行写操作都要用同个buffer,写Buffer是主要检查buffer是否available其实buffer起缓冲作用来提高工作效率

  比如某flash有128个128K字节块允许用户对任意块进行字节编程和写缓冲器字节编程操作每字节编程时间为210μs;若采用写缓冲器字节编程方式32字节编程共需218μs每字节编程时间仅为6.8μs芯片块擦除时间为1s允许在编程或块擦除操作同时进行悬挂中断去进行读操作待读操作完成后写入悬挂恢复命令再继续编程或块擦除 Creating 3 MTD partitions _disibledevent='0F1fbaiducukc7L'>
Tags:  linux内核编译 深入理解linux内核 linux内核 linux初始化

延伸阅读

最新评论

发表评论