Linux基础知识

发布时间:2024年01月15日

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文件夹下的文件

? ? ? ? 配置启动之类的。

????????

文章来源:https://blog.csdn.net/qq_39200110/article/details/135597578
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。