构建基本的嵌入式Linux根文件系统
构建基本的嵌入式Linux根文件系统
其实在去年8月份我做系统移植时就构建好了一个可以用的根文件系统,但是那时是跟着别人的《Linux全线移植文档》做的。有些东西我也不清楚,只是跟着做,做出来能用就了事了,没有深究其中的规范,以及文件系统中哪些要,哪些不要。
趁着今年过年的几天假期,我移植重新移植了U-Boot1.3.1和Linux2.6.24到S3C2410及S3C2440后,我想好好的看看有
关文件系统构建方法和规范,整理整理构建根文件系统的文档。之后,我用了近一周的时间,慢慢研究《构建嵌入式Linux系统》这本书有关根文件系统的部
分,以及一些网上的参考资料,不断地实验。构建好了一个精简的根文件系统,下面我只介绍构建的过程和方法,至于原理我给出以下参考资料,自己看吧。
1、 《Linux系统移植》:
一个经典的Linux移植文档,共有95页的PDF文档,内容十分详细,里面有根文件系统的创建,还多地方都有下载(有的网站称之为《Linux系统全线移植文档》等等),很值得参考。在这里感谢文档的作者们。
2、 《构建嵌入式Linux系统》
必看!
里面对文件系统的构建讲的挺细。
3、 《Filesystem Hierarchy Standard》
Linux文件系统的标准规范。我只看到英文的。
其他再遇到不懂的就google,基本上都是Linux的相关知识,都是找得到的。
(1)创建根文件系统的基本目录结构。
我把这个过程做成了shell脚本(文件名为mkroot
) ,很方便!
#
!
/
bin/
sh
echo "creatint rootfs dir......"
mkdir rootfs
cd rootfs
echo "making dir : bin dev etc lib proc sbin sys usr"
mkdir bin dev etc lib proc sbin sys usr #
必备的8个目录
mkdir usr/
bin usr/
lib usr/
sbin lib/
modules
# Don't use mknod ,unless you run this Script as root !
# mknod -m 600 dev/console c 5 1
# mknod -m 666 dev/null c 1 3
echo
"making dir : mnt tmp var"
mkdir mnt tmp var
chmod 1777 tmp
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
mkdir var/lib var/lock var/log var/ru
相关文档:
这个rootkit使用的技术不比前一个,它不是拦截系统调用,而是拦截具体文件系统的回调函数,本身文件系统的回调函数就是动态注册的,很是不确定,那么反黑软件自然就不能简单下结论说这个函数被黑掉了,因此这个rootkit看来比前一个略胜一筹,自然的,既然是内核模块,那么模块隐藏也是一个重要的内容,以下是一个简单的模块 ......
Understanding software Installation (configure, make, make install)
This
tutorial is aimed at those who have just started using Linux.
Generally when users from the Windows background enter the Linux
scene,they are totally stumped by the softwar ......
最近需要配置svn服务器。在网上找了一下,选择Apache,Subversion和Trac。
首先准备系统光盘。因为是Linux操作系统,所以准备好系统能节省一些时间,比如python-devel。但是httpd,subversion和trac还是下载源码编译吧。
下载软件包:
Gen ......
在linux下,估计你经常使用pwd这个命令,这个命令就是打印当前的工作路径,即print working directroy, 今天我们也来c语言实现这个命令。
要实现这个功能,需要用到下面的一个系统调用:
#include <unistd.h>
char *getcwd(char *buf, size_t size);
该系统调用返回当前的工作目录的绝对路径,绝对路径 ......
首先我的操作系统是Debian Linux,我Debian用的是Xfce桌面环境,昨天我用了命令apt-get install gnome,安装了一堆软件之后重启,就进入不了图形界面了,只能进入字符界面,今天可好折腾了。
上午在网上查资料,可能总结了几个吧
1、在字符界面输入命令startx
2、修改init的默认级,所在文件的位置/etc/initt ......