易截截图软件、单文件、免安装、纯绿色、仅160KB

linux内核启动过程——基于S3C2410

(1)zImage自解压
本文以流行的Samsung公司的S3C2410,mini2440平台和linux-2.6.29为例,介绍如何在ZIX嵌入式开发环境下探索linux内核启动过程。
Linux内核启动一般由外部的bootloader引导,也可以在内核头部嵌入一个loader,实际的应用中这两种方式都会经常遇到。所以要了解内核启动最开始的过程,必须对bootloader如何引导内核有所熟悉。下面我们从u-boot加载linux内核的代码开始分析(关于u-boot 自身的启动流程,请参考
u-boot 启动过程 —— 基于S3C2410
)。
1.处理器内核加载代码
在u-boot的
do_bootm_linux函数
里,实现了处理器架构相关的linux内核加载代码,特别是tags传递。
该函数中,在(u-boot-1.6)lib_arm/armlinux.c的
90行
调用了getenv将bootargs环境变量保存在commandline
    char *commandline = 
getenv
("bootargs");
然后解析uImage文件头,并且按照头中的定义分解和加载uImage。所以这部分代码的运行取决于uImage文件是如何生成的,本文不做过多叙述,可参考另文了解u-boot使用。接下来进行tags设置工作,分别调用了
setup_start_tag() 
setup_memory_tag() 
setup_commandline_tag() 
setup_initrd_tag() 
setup_end_tag() 
然后对TLB、cache等进行invalid操作,这是通过在lib_arm/armlinux.c的
268行
调用
cleanup_before_linux()
(cpu/arm920t/108)实现,然后即可跳入从uImage中分解出来的内核Image或zImage入口
    cleanup_before_linux ();
    theKernel (0, machid, bd->bi_boot_params);
    /* does not return */
    return;
在s3c2410平台上,该入口theKernel一般是物理地址0x30008000。如果我们使用zImage自解压内核映像,对应的代码正是自解压头,位置在内核源码linux-2.6.29的arch/arm/boot/compressed/head.S第 114行的start符号
     start:
                .type   start,#function
                .rept   8
                mov     r0, r0
                .endr
&


相关文档:

Linux学习笔记


Linux的目录结构    etc: 配置文件,如inittab
    proc: proc文件系统,系统运行过程映射,进程映射
    设备驱动的两种方式: 直接编译进内核;以module插入
PC的Linux启动:BIOS->GRUB->KERNEL
SHELL编程
   相当于DOS的批处理,可 ......

打造Linux命令行下的“回收站”

Linux下也有回收站功能,但只在Gnome等桌面环境下面。在终端下面是用rm命令来删除文件,就是直接从硬盘上删除了。要是你一不小心删错了文件,
只能采用一些极其复杂的数据恢复工具来补救,而且还不一定有效。我就有过这样的经历,一不小心删错了文件,以致几天的工作成果立马灰飞烟灭。这样的事情发
生一次都太多了。我们 ......

Linux Cookbook 3

Files And Dirs
1. touch ---create a new, empty file
            vi filename is also ok
2. mkdir ---make directory
            mkdir -p ---to make all directories in the path
3. space in ......

Linux下ps命令详解


linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号