Linux基础知识-linux系统组成

1.linux系统组成

1)bootloader:用于启动内核。嵌入式平台的 vivi, RedBoot, u-boot 等,其中 u-boot 在使用上最广泛。

2)linux内核:

3)根文件系统:rootfs

2.U-Boot(Universal Boot Loader

 2.1U-Boot 简介  

        linux系统启动必须使用一个bootloader程序,即芯片上电之后必须首先启动bootloader程序。这段程序会初始化DDR等外设,然后将linux内核从flash(MMC、NOR FLASH、SD、MMC)拷贝到DDR中,最后启动linux内核。

2.2U-Boot来源

种类描述
uboot官网代码

1)uboot官网代码,更新快,基本包含所有常用芯片;

2)外设驱动不完全支持。

半导体芯片厂商代码

1)厂家维护uboot,专门针对自家芯片;

2)对自家外设驱动支持,优于uboot官网。

开发板厂商代码

1)在半导体厂商uboot基础上加入自家开发板的支持。

3.linux内核

        使用正点原子官方文档

4.根文件系统

4.1简介

        linux中的根文件系统更像是一个文件夹或者目录,在这个文件夹或者目录中有很多子文件夹或者子目录。在这些子文件夹或者子目录中会存在很多文件,这些文件是linux运行所必须的。比如库、常用的软件和命令、设备文件、配置文件等等。

        根文件系统是linux内核启动以后挂载的第一个文件系统,然后从根文件系统中读取初始化脚本,比如rcS、inittab等等。如果不提供根文件系统,linux内核会报内核崩溃错误。

        根文件系统是其他文件系统的根,没有这个 “根”,其他的文件系统或者软件不能工作。比如,我们常用的ls、mv、ifconfig等等命令本质是一个小软件,只不过没有界面。

4.2系统内容

cd / //进入根目录

 1)/bin目录

        bin文件就是可执行文件。一般是一些命令,比如ls、mv等命令。

2)/dev目录

        dev是device的缩写,所以此目录下的文件都是和设备有关的。此目录下的文件都是设备文件。在linux下一切接文件。比如/dev/ttymxc0(imx6ull根目录中会有这个文件)就表示imx6ull的串口0,操作串口就是操作这个文件。

3)/etc目录

        存放着各种配置文件。

4)/lib目录

        lib是library的简称,也就是库的意思。这些库文件是共享库,命令和用户编写的应用程序要使用这些库文件。

5)/mnt目录

        临时挂载目录,一般是空载目录,可以在此目录中创建空的子目录。比如/mnt/sd、/mnt/usb等,这样就可以将sd卡或者U盘挂载到相应目录中。

6)/proc目录

        一般是空的,当linux启动以后会将此目录作为proc文件系统的挂载点,proc是个虚拟文件系统,没有实际的存储设备。proc里面的文件都是临时存在的,一般用来存储系统运行信息文件。

7)/usr目录

        usr缩写是unix software resource缩写,而不是user。存放着很多软件,一般系统安装完成以后,这个目录占用空间最多。

8)/var目录

        存放着可以改变的数据

9)/sbin目录

        用户存放一些可执行文件,但是此目录下的文件或者命令只能管理员才能使用,主要用户系统管理。

10)/sys目录

        系统启动以后此目录作为sysfs文件系统的挂载点,sysfs是一个类似于proc文件系统的特殊文件系统,sysfs也是基于ram的文件系统,也就是说它也没有实际的存储设备。此目录是系统设备管理的重要目录,此目录会通过一定的组织结构向用户提供详细的内核数据结构信息。

11)/opt

        可选的文件、软件存放区,由用户选择将哪些文件或者软件放到此目录中。        

4.3如何构建

4.3.1 busybox初步生成根文件系统

        通过busybox构建根文件系统,产生bin sbin usr 文件夹,以及 linuxrc这个文件。

1)bin

        可执行文件,一般就是命令

2)sbin

        管理员用的可执行文件。

3)usr

        软件。

4)linuxrc文件

        linux 内核init进程会查找用户空间的init程序,找到以后就运行这个用户空间的intit程序,从而切换到用户态。如果bootargs设置为init = /linuxrc,这么linuxrc就可以作为用户空间的init程序,所以用户空间的init程序是由busybox来生成的。

        

4.3.2添加lib库

 1)添加/lib的库文件

        自行新建lib文件夹。

        从交叉编译器获取lib库文件,前面我们搭建交叉编译环境的时候将交叉编译器存放到了 “/usr/local/arm/”目录中(这个目录是正点原子的,如果是自己弄,得看自己设置)

2)添加/usr/lib的库文件

        创建/usr/lib的目录,将交叉编译器的lib库文件拷贝过去。

4.3.3创建其他文件夹

        在根文件系统中创建其他文件夹,如dev、proc、mnt、sys、tmp、root等。

4.3.4创建etc文件夹下的文件

        配置启动之类的。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙八瓶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值