android 转 linux,【转】android linux 基础知识

上面创建EXT3的文件系统吗?既然这样的话为什么

我们还需要把以ext3挂载到一个目录呢?如果不是 的话,又是创建什么文件系统呢?为什么第六章中挂载了虚拟内核文件系统之后才能

进入chroot环境呢?

参考章节:文件系统概述

4.虚拟文件系统.作用.什么?

虚拟内核文件系统(Virtual Kernel File Systems),是指那些是由内核产生但并不存在于硬盘上(存在于内存中)的文件系统,他们

被用来与内核进行通信。

5.符号链接 和硬链接的区别是什么?什么是符号链接?什么是硬链接?为什么liinux上都使用符号链接,而不是硬链接?linux上很多地方

使用了链接,是为了组织清晰系统的结构和节省空间吗?

硬连接和软连接的区别, 硬连接和复制的区别?

硬连接记录的是目标的 inode;软连接记录的是目标的 path。

hard link 由于 inode 的缘故,只能在本分区中做 link;soft link 可以做跨分区的 link。硬连接因为记录的是 inode,所以不怕改名,

比如ln aaa bbb, mv aaa ccc, 这时 bbb 仍然可以访问;soft-link 就不行:source 的名字改变后,所有链接到这里的 soft-link

全部变为 broken。事实上,即使所有指向该 inode 的 hard-link 的文件名都变了,每一个仍然都可以访问。我想这是它最大的优点吧。

硬连接和复制的区别:

几个硬连接=几个名字的同一个房子,这些名字可以相同或不同但地址(i-node)是一样的, 所以硬连接被删除只是把相应名字抹去,只有最

后一个名字被抹去你才会找不到房子;而复制是建造一个一模一样的房子,当然地址(i-node)就不同的了。

6.工作平台中由Glibc提供的动态连接器与Binutils里面的标准连接器有什么区别?

参考章节: 链接器和加载器

7.$LFS/tools 目录的所有者是仅存在于宿主环境中的 lfs 用户。如果保留 $LFS/tools 目录,那么该目录内文件的所有者的 user ID 就

没有对应的账号 ?为什么没有帐户,难道不是LFS?

查看 /etc/password /etc/group 两个文件 分别记录 用户和组的信息

如果用户名和用户ID 组名和组ID 的对应关系分别存在上面两个文件中,那么ls -ls 的时候就可以查看到用户信息,而不再是ID等数字信息

8.系统的环境变量保存在哪个文件?

保存在tty中

9。配置参数脚本时[alias1] [alias2 ...]什么时候用到?

别名的意思

alias ls='ls --color=auto'

/etc/skel/.bashrc:81: #alias dir='dir --color=auto'

/etc/skel/.bashrc:82: #alias vdir='vdir --color=auto'

/etc/skel/.bashrc:84: #alias grep='grep --color=auto'

/etc/skel/.bashrc:85: #alias fgrep='fgrep --color=auto'

/etc/skel/.bashrc:86: #alias egrep='egrep --color=auto'

/etc/skel/.bashrc:89:# some more ls aliases

/etc/skel/.bashrc:90:#alias ll='ls -l'

/etc/skel/.bashrc:91:#alias la='ls -A'

/etc/skel/.bashrc:92:#alias l='ls -CF'

alias mohuifu='ls -l'

========================

9. linux 内核的初步理解

4. 编译内核

此处内核编译主要针对驱动组之外的同事

1> 设置工具链

内核的 linux-2.6.28-a1/Makefile 中设定了:

CROSS_COMPILE?= arm-linux-

所以设置PATH环境变量,保证能找到正确的工具链

假设工具链位于: /usr/local/marvell-arm-linux-4.1.1/ 设置为:

export PATH:=/usr/local/marvell-arm-linux-4.1.1/bin/:$PATH

2> 更改编译选项(网络启动或者本机启动)

内核顶层目录执行:

make menuconfig

General setup --->

[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

() Initramfs source file(s) (NEW)

如果需要支持网络启动反选 [] Initial RAM filesystem and RAM disk (initramfs/initrd) support

如果需要支持本地启动选中 [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

设置 () Initramfs source file(s) (NEW) 为 root

拷贝 cupcake 编译结果 out/target/product/littleton/root/ 到内核顶层目录

3> 编译

内核顶层目录执行 make zImage

编译好的内核:

arch/arm/boot/zImage

initramfs与initrd

1. initrd是一个单独的文件;initramfs和Linux内核链接在一起(/usr目录下的程序负责生成initramfs文档)。

2. initrd是一个压缩的文件系统映像(可以是ext2等,需要内核的驱动);initramfs是类似tar的cpio压缩文档。

内核中的cpio解压缩代码很小,而且init数据在boot后可以丢弃。

3. initrd运行的程序(initd,不是init)进行部分setup后返回内核;initramfs执行的init程序不返回内核

(如果/init需要向内核传递控制权,可以再次安装在/目录下一个新的root设备并且启动一个新的init程序)。

编译脚本及系统变量

initramfs与initrd的区别

1. initrd是一个单独的文件;initramfs和Linux内核链接在一起(/usr目录下的程序负责生成initramfs文档)。

2. initrd是一个压缩的文件系统映像(可以是ext2等,需要内核的驱动);initramfs是类似tar的cpio压缩文档。

内核中的cpio解压缩代码很小,而且init数据在boot后可以丢弃。

3. initrd运行的程序(initd,不是init)进行部分setup后返回内核;initramfs执行的init程序不返回内核

(如果/init需要向内核传递控制权,可以再次安装在/目录下一个新的root设备并且启动一个新的init程序)。

4. 切换到另一个root设备时,initrd执行pivot_root后,卸载ramdisk;initramfs是rootfs,既不能

pivot_root,也不能卸载。initramfs会删掉rootfs的所有内容(find -xdev / -exec rm '{}' ';'),

再次安装root到rootfs(cd /newmount; mount --move . /; chroot .),把stdin/sdout/stderr挂在

新的/dev/console上,重新执行init。由于这是一个相当困难的实现过程(包括在使用一个命令之前把它删除),所以

klibc工具包引入一个帮助程序/utils/run_init.c来执行上述过程。其他大部分工具包(包括busybox) 把这个命令

称为"switch_root"。

======================= end ===============

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值