嵌入式Linux学习!

目录

前言

一、操作系统

二、嵌入式Linux的组成

三、虚拟机Ubuntu

3.1 打开终端

3.2 Ubuntu 和 Windows 的最大差别

3.3 Ubuntu文件系统

3.4 修改屏幕分辨率

总结


前言

        Linux是一种开放源代码的操作系统内核,Linux内核通常与其他软件包一起使用。如GNU工程中的工具和库以及其他开源软件,构成了完整的Linux操作系统,这种组合通常被称为Linux发行版,如Ubuntu、CentOS等。在Linux中,一切皆文件。本文内容就详细介绍Linux嵌入式操作系统。


一、操作系统

        计算机由硬件和软件两个主要部分组成。

        操作系统是软件的一类,主要作用是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁。

        常见的操作系统:

PC端:Windows、Linux、MacOS

移动端:Android、IOS、鸿蒙系统

二、嵌入式Linux的组成

        Linux系统由Linux系统内核系统级应用程序两部分组成。

        内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络系统、调度IO等。这一系列和硬件的交互的功能都是由内核所提供的。

        但是只有内核是不够的,当使用操作系统的时候肯定都会使用一系列的软件。所以一个完整的系统除了有内核外,还会有一些系统级的应用程序。

        系统应用程序可以理解为出厂自带程序,可供用户快速上手操作系统,如文件管理器、任务管理器、图片查看、音乐播放等。        

        对与用户来说,使用系统在本质上来说是使用系统里面的各类程序,不管是系统自带的,还是说后期第三方安装的,我们总归都是使用程序,然后最终由程序去调用我们的内核。然后由内核去调度硬件去工作。一个完整的Linux操作系统就是由内核以及它出厂自带的一系列的系统级的程序组合在一块。

        比如播放音乐,无论用户使用自带音乐播放器或是自行安装的第三方播放器均是由播放器程序,调用内核提供的相关功能,由内核调度CPU解码、音响发声等。


        嵌入式Linux系统就相当于一套完整的PC软件系统。

这里用Linux和Windows类比

        使用Windows肯定是想使用应用程序,一开机Windows一上电的时候就是一个BIOS,BISO的作用就是启动Windows,Windows的目的是去启动应用程序,而应用程序在C盘里。所以说Windows要先识别C盘,在C盘里找到应用程序去运行。

        使用Linux,一上电运行的程序叫做bootloader,它与BISO类似,bootloader的作用是去启动Linux内核,Linux内核的目的是去启动应用程序。当然为了启动应用程序,需要先识别根文件系统,根文件系统就类似于Windows的C盘。从根文件系统里面找到应用程序去运行。


三、虚拟机Ubuntu

        通过虚拟化技术,在电脑内虚拟出计算机硬件,并给虚拟的硬件安装操作系统,即可得到一台虚拟的电脑,称之虚拟机。

        通过虚拟机的形式就可以使用Linux系统环境。

3.1 打开终端

使用右键打开终端:

        在桌面或者在文件浏览器的任何目录下右键鼠标后在弹出的菜单栏中选 择“Open in Terminal”

所谓的终端和Windows里的命令行是类似的。在Windows里可以在Windows工具或者开始菜单栏里找到命令提示符:

3.2 Ubuntu Windows 的最大差别

        Ubuntu 和 Windows 的最大差别:目录

        Windows 中每一个分区都对应一个盘符,盘符下可以存放目录与文件:

注意:目录就是文件夹。

        Windows 下某个文件的绝对路径以盘符开始,比如:C:\abc\def\hello.txt,这是在 C 盘的 abc 目录下, 有 def 子目录;而 def 中有 hello.txt 文件。


        Ubuntu中以树状结构表示文件夹与文件,里面可以看到各种目录,看不到任何盘符。

        比如:/abc/def/hello.txt,这表示在根目录下有 abc 子目录,而 abc 下又有 def 目录;def 中有 hello.txt 文件。从这个路径看不到hello.txt 文件位于哪一个盘,哪一个分区。

注意:Windows的绝对路径中,目录使用“\”分隔;

           Linux的绝对路径中,目录使用“/”分隔;

        发现了吗:

  • 在Windows里有C盘、D盘、E盘......是盘与盘是并列的关系;
  • 在Ubuntu里是文件存储是树状结构的关系。

        就好比一棵树,有一个主树干,从主树干可以生出很多树枝,树杈。而主树干就好比根目录,在Ubuntu中用“/”表示。在根目录下有home目录、bin目录、boot目录等。在home目录下又可以有分支,也就是其他目录。

3.3 Ubuntu文件系统

          在Linux中用Disk工具可以查看文件处于哪个分区。

        可以看到Ubuntu里只有一个磁盘。

Device这一行里可以看到:/dev/sda1  

  • dev :设备 。
  • sda1 :sd表示磁盘,a表示第一个磁盘,1表示sda这个磁盘的第一分区。

而sda1是挂载在根目录下面的。下面来理解下“挂载”:

  • 对于windows就可以认为C盘挂载在了所在磁盘的第一个分区;D盘挂载在了所在磁盘的第二个分区。
  • 对于Ubuntu就是对于/dev/sda1这个磁盘里的第一个分区作为根文件系统挂载,就挂载在/根下面,如果去访问/根的时候就是去访问/dev/sda1这个分区。比如说在/根下面创建了hello.c文件,这个hello.c文件就会放在/dev/sda1这个磁盘里的第一个分区里。同样如果想访问/根目录下的/home/book访问的也是/dev/sda1这个磁盘里的第一个分区。

Ubuntu中的文件存放也有规则,遵循文件系统层次标准。

图中是Ubuntu的文件目录,来看一下每个目录都是什么含义:

        执行的各种应用程序放在bin目录和sbin目录下面。bin目录下面存放的程序是所有用户都可以使用的。sbin目录下存放的程序是基本的系统命令,系统管理员才能使用。这两个目录都是用来存放程序或者说就是各种APP,不同的是他俩的权限不一样。

        而对于其他无关紧要的应用程序可以放在usr目录下面的bin目录或者usr目录下面的sbin目录。这里的usr并不是用户的意思,而是(Unix Software Resource) Unix软件资源,里面存放的是一些资源,这些资源并不是系统启动必须的资源,就比如说甚至可以在里面放游戏games和头文件include,这些都不是系统启动必须的。

        应用程序都需要用到库,/根目录下的lib目录就可以存放库,usr目录下的lib目录也可以存放库。

        boot目录下面一般放一些启动文件,比如内核等。

        dev目录下存放各种设备文件,这是Linux特有的,就比如说上文提到的/dev/sda1第一个磁盘的第一个分区,里面存放的文件就叫做设备文件,用来表示某些硬件的。

        etc表示配置文件。

        home是家目录,家目录下面有各种子目录,就比如说home下的book目录。就对应着book用户。这一点和windows里的用户目录是类似的,在windows的用户目录下面有各种用户,每一个文件夹对应一个用户。在Linux中的home目录下的每一个文件夹对应一个用户。

        proc和sys是一些默认的文件夹,在这些文件夹里可以挂载一些虚拟的文件系统,这些虚拟的文件系统并没有真实的存储设备。而访问proc和sys这些目录可以观察到内核的一些信息,比如说proc这个目录存放的是各进程process的信息,这些进程的信息是内核帮你提供的,并不保存在磁盘上。

        usr目录是Unix软件资源,存放的是可分享的不可变动的数据;而可以变动的数据就存放在var。这里可以变动的数据就是,程序运行的过程中生成的各种临时文件。就比如在windows里面会有各种缓存,在用户目录下面会看到各种缓存的数据,在缓存数据的文件夹下会有许多临时文件,这些临时文件都是可以删除的,可删除的这些文件就是可变动的。

        以上简单梳理了一下Ubuntu整个文件系统的目录。

3.4 修改屏幕分辨率

        Ubunut 的桌面显示太小或太大可以通过修改屏幕分辨率来调节。

打开设置工具:

下拉左边选项,选择Devices选项

点击Displays选项,选择合适的分辨率。


总结

        以上就是今天要讲的内容,本文仅仅简单介绍了Linux嵌入式操作系统。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐