1.背景认知
可能很多人还没有接触Linux,会有点畏惧,我们可以把Linux类比成Windows,
下面是Windows和Linux的启动对比
Windows:上电后一开始屏幕是黑黑的---bios在启动Windows----Windows之后找到c盘启动各种应用程序
Linux:上电后一开始运行bootloader---之后启动Linux内核----内核到根文件系统运行应用程序
说到根文件系统,我们要明确一个概念,就是——Linux 最核心的思想是“一切皆文件”,所以我们再启动linux的时候会去寻找根文件系统,因为应用程序什么的都以文件形式存在于根文件系统,根文件系统是操作系统中的基本文件系统,包含了操作系统所需的所有核心文件和目录。根文件系统是整个文件系统的起点,所有其他文件和目录都是从根文件系统开始的。
linux终端和Windows命令行操作是很相似的
最大差别在于目录,Windows系统有许多磁盘,每个盘符对应不同分区,linux在computer里是各种目录,我们在
c盘里可以用绝对路径去访问某个文件,可以看出是位于哪个磁盘的,
linux看不出是位于哪个分区,ubuntu以树状关系去表示路径,如果要看是哪个磁盘就用disk这个工具去看
里面会写着Device:/dev/sda1 ——a意思是第一个磁盘, 1意思是第一个分区
还会写着Mounted at/boot ——意思是磁盘a挂载在这个/boot目录下,也就是当我们在/boot目录下创建文件 这些文件都位于磁盘a
假如
先/dev/sda1 : Mounted /home/1.txt
之后/dev/sda4 : Mounted /home
意味着之后访问home目录也就访问的是第四个分区。
一些基本的Linux终端命令我就不再介绍了,网络上都可以找到。
2.说说终端
如刚刚一开始说的那样,Linux终端和Windows命令行操作是很相似的,那么是什么去支持我们运行的呢?这里就要提到Shell程序,它是用来接收解析你在终端的输入的程序,我们在向shell传递信息的时候有一个特定的语法
这里不再举例
3.关于Linux的网络配置
我是看B站韦东山老师的教程,里面提到的是双网卡的网络配置,
双网卡指的是NAT和桥接两个网卡,NAT(是虚拟的网卡)是用于保证ubuntu可以上网(一般是通过Windows的网卡去连接外部网络),桥接(是真实的网卡)可以保证ubuntu可以和开发板互通
关于NAT:NAT(Network Address Translation,网络地址转换)是一种网络技术,通常用于将内部网络中的私有 IP 地址映射到外部网络的公共 IP 地址上,以实现多个设备共享单个公共 IP 地址的功能
Ubuntu一般默认已经支持了NAT网卡,如图
如果没有的话,就重新启动Ubuntu,然后去配置,配好之后去尝试能不能ping百度,如果可以ping通就没有太大问题
终端输入ifconfig出现ens33,ens33就是NAT网卡
网卡上的数据会传给windows上某个网卡
这就是NAT 的转发网卡,这个网卡会和外网通信传输数据
如果没有vmnet8网卡,可以打开windows里的服务,看看这里面这些有没有开
桥接网卡:要有真实的网卡,下面有几个注意点
设置IP,记住Windows也要设置IP,都要设静态的IP,且Ubuntu,Windows,开发板他们的网段要一致
这里一定要选连接到主机
【这部分我推荐去B站看看韦东山老师的视频 讲的真的不错】
4.Linux最小系统
开发板运行一个完整的操作系统需要四个文件“u-boot-iTOP-4412.bin”“zImage”“ramdisk-uboot.img”“system.img”,下面我来解释一下这些文件的含义【围绕引导加载程序和根文件系统展开】
“u-boot-iTOP-4412.bin”:引导加载程序(Bootloader)的二进制文件,负责初始化硬件、加载操作系统映像(如 zImage)、设置内核参数等操作。(操作系统是计算机系统中的核心软件,而操作系统映像是操作系统的一个完整副本或存储形式,用于部署、备份和恢复等目的。)
“zImage”:是Linux内核的压缩映像文件(指 Linux 内核经过编译和压缩后生成的文件,它包含了 Linux 内核的代码和数据,并经过压缩以减小文件大小。),在嵌入式系统中,由于资源有限,需要使用较小的内核映像文件,因此常常选择将 Linux 内核编译为 zImage 格式。
ramdisk-uboot.img:是用于初始化根文件系统的 RAM 镜像文件。根文件系统是操作系统的基础文件系统,包含了操作系统所需的核心文件和目录结构。在引导过程中,ramdisk-uboot.img 会被加载到内存中,并作为初始的根文件系统。【这个初始的根文件系统可能会被进一步完善和扩展。通常情况下,引导过程会将一个简化的根文件系统加载到内存中,以便操作系统可以启动和运行。随后,操作系统可能会从其他位置加载更多的文件和数据,以构建完整的、可用的根文件系统。】
system.img: 这是操作系统的系统镜像文件,通常是一个完整的文件系统映像,包含了操作系统的所有文件和目录结构。在引导过程中,系统镜像会被加载到内存中,并成为根文件系统的一部分。
制作最小文件系统要用到Busybox 工具,
BusyBox 是一个集成了一百多个最常用linux命令和工具的软件,简单的说 BusyBox 就好像是个大工具箱,它集成压缩了Linux的许多工具和命令