Linux系统构成

一个完整的linux系统,通常包括Uboot,kernel,设备树以及跟文件系统。

1.Uboot

U-boot是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构,Uboot全称Universal  boot Loader,是遵循GPL条款的开源项目,U-boot的主要作用是用来启动操作系统内核,分为两个阶段,即boot+loader ,boot阶段启动系统,初始化硬件设备,建立内存空间映射图,将系统的软硬件带到一个合适的状态,loader阶段将操作系统内核文件加载至内存,之后跳转到内核所在地址运行

2.Linux内核

Linux内核是一种开源电脑操作系统内核,用C语言写出,符合POXI标准的类Unix操作系统,Linux内核是一个用来和硬件打交道并为用户提供一个有限的服务集的低级支撑软件,一个计算机系统是一个硬件和软件的共生体,他们互相依赖,不可分割,计算机的硬件,含有外围设备,处理器,内存,硬盘,和其他电子设备组成的计算机的发动机,但是没有软件来操作的控制它,自身是不能工作的,,完成这个控制的工作的软件就称为操作系统,在linxu的术语中被称为内核,也可以称为黑“核心”Linux内核的主要模块(或组件)分为以下几个部分,进程管理子系统,内存管理子系统,文件子系统,网络子系统,设备子系统等。

 3.设备树

设备树是一种描述硬件的数据结构,它用来描述这些硬件设备的信息,这个文件就是Device Tree(设备树),设备树包括设备树源码(Device Tree Source,DTS)文件,设备树编译工具(Device Tree Complier,DTC)与二进制格式设备树(Device Tree Blob,DTB),DTS包含得头文件格式为DTSI。

设备树描述

&spi1 {
    status = "okay";  // 表示SPI控制器启用正常工作
 
    // assigned-clock-rates = <200000000>; // 默认不用配置,SPI 设备工作时钟
 
    max-freq = <48000000>; /* spi internal clk, don't modify */
    // 设置SPI内部时钟频率上限为48 MHz,不建议修改
 
    // dma-names = "tx","rx"; // 使能DMA模式
    // 配置DMA通道名称,启用传输和接收DMA模式
 
    // rx-sample-delay-ns = <10>; // 默认不用配置,读采样延时
    // 配置读取数据时的采样延时,单位为纳秒
 
    spi_dev@0 {
        compatible = "rockchip,spidev";  // 指定设备兼容性字符串
 
        reg = <0>;  // SPI设备的注册地址
 
        spi-max-frequency = <12000000>;  // 设置SPI设备的最大传输频率为12 MHz
 
        spi-lsb-first;  // 设置IO传输顺序为LSB先传输
        // 若注释不允许使用GPIO

 Uboot和Linux不能直接识别到DTS文件,而DTB可以被内核与BootLoader是识别解析,通常在制作NAND Flash,SD Card启动镜像时,通常会为DTB文件留下一部分存储区域以存储DTB、在bootLoader启动内核时,会先读取DTB到内存,再提供给内核使用。

 

 

 4.根文件系统

根文件系统(rootfs)是linux在初始化时加载的第一个文件系统,根文件系统包括根目录和真实文件系统,它包含系统引导的和使用其他的系统得以挂载(mount)所必要的文件,根文件系统包含linux启动时所必要的目录和关键性文件,例如Linux启动时必要的初始化文件,他在init目录下,此根文件系统还包括了许多的应用程序bin目录等,任何包括这些Linux系统启动时所必须的文件都可以成为根文件系统。

在Linux内核启动的初始阶段,首先内核会初始化一个基于内存的文件系 统,如initramfs,initrd等,然后以只读的方式去加载根文件系统(load rootfs), 读取并且运行/sbin/init初始化文件,根据/etc/inittab配置文件完成系统的初始化工作 (提示:/sbin/init是一个二进制可执行文件,为系统的初始化程序,而/etc/inittab是它的配置文件), 在初始化的过程中,还会以读写的方式重新挂载根文件系统,在系统启动后, 根文件系统就可用于存储数据了,存在根文件系统是Linux启动时的必要条件。
我们常见的根文件系统制作工具有 buildroot、Ubuntu、Debian、yocto、busybox,这些工具的优缺点列出如下

 

 

 

 

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux系统由内核、系统调用接口、shell、应用程序等多个组件组成。 内核是操作系统的核心部分,负责管理硬件资源、调度任务等功能。 系统调用接口提供了应用程序与内核通信的方式,以实现对硬件资源的请求和控制。 Shell是命令行界面,提供了一个交互式环境,用户可以在其中输入命令并执行相应的操作。 应用程序是完成特定功能的程序,例如文本编辑器、浏览器等。 这些组件协同工作,构成了一个完整的Linux系统。 ### 回答2: Linux系统构成主要包括内核、用户空间和工具等组成部分。 首先,Linux的核心是内核。内核是操作系统的核心部分,负责管理硬件、驱动设备、分配资源、调度任务等操作。它是Linux系统的核心指挥官,负责协调各个组件的工作。 其次,Linux系统的用户空间包括各种用户可见的应用程序和库。用户空间提供了用户与系统之间的交互界面,包括命令行终端、图形用户界面等。用户可以通过这些界面来执行各种操作,如文件管理、编程开发、网络通信等。 另外,Linux系统还包括一系列的工具和服务。这些工具和服务用于系统管理、网络通信、安全等方面。例如,有用于系统配置的命令如systemctl、用于网络设置的ifconfig命令、用于软件包管理的apt-get命令等。 此外,Linux系统还包括一些必要的服务,如系统日志服务、进程管理服务、网络服务等。这些服务确保系统的正常运行,同时提供了丰富的功能和选择。 总之,Linux系统构成主要包括内核、用户空间和工具等。内核是核心组件,用户空间提供了用户与系统的交互界面,工具和服务则为系统的管理和运行提供了必要的工具和功能。这些组成部分共同构成了一个功能强大、灵活可定制的Linux系统。 ### 回答3: Linux系统是由多个组件构成的。其中最核心的组件是Linux内核,它是Linux系统的核心部分,负责管理系统资源和提供各种硬件和软件的接口。Linux内核具有很好的可扩展性和稳定性,能够运行在各种不同的硬件平台上。 除了内核之外,Linux系统还包括了各种系统工具和服务。例如,命令行界面(Shell)是Linux系统中常用的用户界面,可以通过Shell执行各种系统命令和程序。同时,Linux系统还提供了图形用户界面(GUI),允许用户通过可视化的方式操作系统。 还有一些重要的组件是用于管理和部署应用程序的工具。比如,软件包管理器可以用来方便地安装、更新和卸载软件包。还有编译器和调试器等开发工具,使开发人员可以在Linux系统上进行软件开发和调试。 此外,Linux系统还包括了网络协议栈和网络应用程序,使得用户可以通过网络进行通信和访问远程资源。还有各种系统服务,如网络服务、文件服务、打印服务等,提供了各种网络和系统功能。 总的来说,Linux系统构成包括了内核、系统工具和服务、应用开发工具等多个组件,它们共同构成了一个完整的操作系统,为用户提供了丰富的功能和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

羊羽快去写代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值