Linux 内核启动分析(转)
Linux 内核启动分析
1. 内核启动地址
1.1. 名词解释
ZTEXTADDR
解压代码运行的开始地址。没有物理地址和虚拟地址之分,因为此时MMU处于关闭状态。这个地址不一定时RAM的地址,可以是支持读写寻址的flash等存储中介。
Start address of decompressor. here's no point in talking about virtual or physical addresses here, since the MMU will be off at the time when you call the decompressor code. You normally call the kernel at this address to start it booting. This doesn't have to be located in RAM, it can be in flash or other read-only or read-write addressable medium.
ZRELADDR
内核启动在RAM中的地址。压缩的内核映像被解压到这个地址,然后执行。
This is the address where the decompressed kernel will be written, and eventually executed. The following constraint must be valid:
__virt_to_phys(TEXTADDR) == ZRELADDR
The initial part of the kernel is carefully coded to be position independent.
TEXTADDR
内核启动的虚拟地址,与ZRELADDR相对应。一般内核启动的虚拟地址为RAM的第一个bank地址加上0x8000。
TEXTADDR = PAGE_OFFSET + TEXTOFFST
Virtual start address of kernel, normally PAGE_OFFSET + 0x8000.This is where the kernel image ends up. With the latest kernels, it must be located at 32768 bytes into a 128MB region. Previous kernels placed a restriction of 256MB here.
TEXTOFFSET
内核偏移地址。在arch/arm/makefile中设定。
PHYS_OFFSET
RAM第一个bank的物理起始地址。
Physical start address of the first bank of RAM.
PAGE_OFFSET
RAM第一个bank的虚拟起始地址。
Virtual start address of t
相关文档:
access(判断是否具有存取文件的权限)
相关函数 stat,open,chmod,chown,setuid,setgid
表头文件 #include<unistd.h>
定义函数 int access(const char * pathname,int mode);
函数说明 access()会检查是否可以读/写某一已存在的文件。参数mode有几种情况组合,R_OK ......
单用户模式进入:
进入启动画面之后,敲入“e”,光标移动到kernel ...那一行,再敲入“e”,在kernel 一行的最后加上空格single,回车
敲入“b”,启动系统,即进入单用户模式
查看命令启动路径:
vi .bashrc
查看环境变量:
env
改变目录权限:
chmod -R +777 目录
查看自 ......
关于linux内核中的"__attribute__ ((packed))"
来源:
http://jimmy-lee.blog.hexun.com/8001013_d.html
__attrubte__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。
#define __u8 unsigned char
#define __u16 unsigned short
......
1.检查系统是否有open-jdk
[root@localhost Alex] rpm -qa | grep java
tzdata-java-2010c-1.fc12.noarch
java_cup-0.11a-1.fc12.noarch
java-1.5.0-gcj-1.5.0.0-29.fc12.i686
java-1.6.0-openjdk-1.6.0.0-33.b16.fc12.i686
java-1.6.0-openjdk-plugin-1.6.0.0-33.b16.fc12.i686
2.删除open-jdk
[root@localhost Al ......