新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > uclinux启动过程详细分析

uclinux启动过程详细分析

作者:时间:2018-08-31来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201808/388126.htm

serial_xx: setup_console @ 115

串口设置值为115200,此为波特率输出信息。对串口设置的信息做一个打印的动作,在调试时会非常有用。

Calibrating delay loop…… 82.94 BogoMIPS Calibrate:校准, 进入时延校准循环。检查CPU的MIPS(每秒百万条指令),Bogo是Bogus(伪)的意思。这里是对CPU进行一个实时测试,来得到一个大体的MIPS数值。

上面这个输出,在所有的linux系统启动中都会打印出来。

进入内存初始化:mem_init(void), [arch/i386/mm/init.c]

Memory: 80MB = 80MB totalMemory: 76592KB available (1724K code, 2565K data, 72K init)

当前内存使用情况,将列出总的内存大小, 及分配给内核的内存大小:包括代码部分,数据部分,初始化部分,总共刚好4M。请留意此处的内核的内存大小的各个值。

进入虚拟文件系统VFS初始化:vfs_caches_init()

Dentry cache hash table entries: 16384 (order: 5, 131072 bytes)

Inode cache hash table entries: 8192 (order: 4, 65536 bytes)

Mount cache hash table entries: 512 (order: 0, 4096 bytes)

Buffer cache hash table entries: 4096 (order: 2, 16384 bytes)

Page-cache hash table entries: 32768 (order: 5, 131072 bytes)

在内存中建立各个缓冲hash表,为kernel对文件系统的访问做准备。

VFS(virtual filesystem switch)虚拟文件切换目录树有用到类似这样的结构表。

上面的输出信息,在一般的linux启动过程中都会看到。

POSIX conformance testing by UNIFIX

conformance:顺应, 一致。即POSIX适应性检测。UNIFIX是一家德国的技术公司,Linux 原本要基于 POSIX.1 的, 但是POSIX 不是免费的, 而且 POSIX.1 证书相当昂贵。 这使得 Linux 基于 POSIX 开发相当困难。 Unifix公司(Braunschweig, 德国) 开发了一个获得了 FIPS 151-2 证书的 Linux 系统。 这种技术用于 Unifix 的发行版 Unifix Linux 2.0 和 Lasermoon的 Linux-FT。

在2.6的内核中就将上面的这句输出给拿掉了。

*************************************************************************

第二节:用户模式( user_mode )开始,start_kernel结束

图 3:用户模式初始化

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

对Socket的初始化, socket_init(),Netlink 一种路由器管理协议(linux-2.4.22/net/core/Rtnetlink.c,Routing netlink socket interface: protocol independent part。 其中RT是route路由的意思。这句输出是在create产生rtnetlink的socket套接字时的一个调试输出。)

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

Starting kswapd

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

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

Journalled Block Device driver loaded

加载日志块设备驱动。

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

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

devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)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来实现其功能。



关键词: uClinux cpu 控制器

评论


相关推荐

技术专区

关闭