首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

uClinux 启动过程详细分析(8)

uClinux 启动过程详细分析(8)

前128K为BootLoader--->0x00000000-0x00020000接着的128K为系统配置信息Config存放的位置--->0x00020000-0x00040000再后面的 16M - 2X128K 为romfs的存放处.--->0x00040000-0x01000000上面的内容,大家可以根据前面的换算公式得到。
A> 编译的bootloader一般大小约50K左右;
B> 在此处就知道了配置信息config是放在第2分区中的;
C> 制作的romfs的大小,一般为8M或10M左右,所以能放得下;
NET4: Linux TCP/IP 1.0 for NET4.0
调用inet_init [ linux-2.4.22\net\ipv4\Af_inet.c ]时的输出信息, 在启动过程中被socket.c调用到。
IP Protocols: ICMP, UDP, TCP, IGMP
列出可以支持的IP协议,此处为kernel源代码inet_add_protocol(p);的输出。在linux启动过程中,都会看到这句的输出。
IP: routing cache hash table of 512 buckets, 4Kbytes
IP路由代码的输出信息。
ip_rt_init [ linux-2.4.22\net\ipv4\Route.c ],设置 IP module,路由缓冲hash表
TCP: Hash tables configured (established 8192 bind 8192)
TCP协议初始化输出信息。tcp_init [ linux-2.4.22\net\ipv4\Tcp.c ],
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
UNIX网络协议信息。
af_unix_init[ linux-2.4.22\net\unix\Af_unix.c ], 多种连接的一种(IPv4, UNIX domain sockets, IPv6和IrDA). SMP 对称多处理器—Symmetrical Multi Processing,这里主要是指UNIX的一些网络协议。
上面的关于网络的输出信息是在linux启动信息中都会出现的。
cramfs: wrong magic
加载各种文件系统。
会出现“cramfs: wrong magic”,别担心这没有什么害处,这个是kernel的书写bug,在2.6中有修改之,它是一个警告信息,用来检查cramfs的superblock超级块的。superblock也是VFS要用到的数据结构。
代码linux-2.4.22\fs\cramfs\Inode.c:
2.4cramfs_read_super(。。。)/* Do sanity checks on the superblock */        if (super.magic != CRAMFS_MAGIC) {                /* check at 512 byte offset */                memcpy(&super, cramfs_read(sb, 512, sizeof(super)), sizeof(super));                if (super.magic != CRAMFS_MAGIC) {                        printk(KERN_ERR "cramfs: wrong magic\n");                        goto out;                }        }
2.6if (super.magic != CRAMFS_MAGIC) {                         if (!silent)                                 printk(KERN_ERR "cramfs: wrong magic\n");                         goto out;                 }
超级块是文件系统的“头部”。它包含文件系统的状态、尺寸和空闲磁盘块等信息。如果损坏了一个文件系统的超级块(例如不小心直接将数据写到了文件系统的超级块分区中),那么系统可能会完全不识别该文件系统,这样也就不能安装它了,即使采用e2fsck 命令也不能处理这个问题。
继承事业,薪火相传
返回列表