嵌入式Linux应用程序开发-1Linux快速入门

news2024/11/16 11:34:24

1.1 嵌入式Linux基础

1.1.1 Linux发展概述

Linux是指一套免费使用和自由传播的类UNIX操作系统。

1.1.2 Linux作为嵌入式操作系统的优势

1)低成本开发系统
2)可应用于多种硬件平台
3)可定制的内核
4)性能优异
5)良好的网络支持

1.1.3 发行版本

1)Red Hat
2)Debian

1.2 基础概念

1.2.1 文件系统、分区和挂载

文件系统:操作系统中与管理文件有关的软件和数据。Windows文件系统是以驱动器的盘符为基础,而且每一个目录是与相应的分区对应。Linux恰好相反,文件系统是一个文件树,例如"\usr\local"。对于Windows而言,就是指所有分区都是在一些目录下。在Windows下,目录结构属于分区,Linux下,分区属于目录结构。
在这里插入图片描述
在Linux中把每一个分区和某一个目录对应,以后在对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一。这个把分区和目录对应的过程叫做挂载,而这个挂载在文件树中的位置就是挂载点。这种对应关系可以由随时中断和改变。

1.2.2 主分区、扩展分区 和逻辑分区

硬盘分区是针对一个硬盘进行操作的,它可以分为:主分区、扩展分区、逻辑分区。其中主分区就是包含操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上安装操作系统,则该硬盘必须要有一个主分区,而且其主分区的数量可以是1~3个;扩展分区也就是除主分区外的分区,但它不能直接使用,必须再将它划分为若干个逻辑分区才可使用,其数量可以有0或1个;而逻辑分区则在数量上没有什么限制。
在这里插入图片描述
对于先装了Windows的用户,则Windows的C盘是装在主分区上的,可以把Linux安装在另一个主分区或者扩展分区上。通常为了安装方便安全起见,一般采用把Linux装在多余的逻辑分区上。
在这里插入图片描述
通常在Windows下的盘符和Linux设备文件的对应关系如下:
C盘——/dev/hda1(主分区)
D盘——/dev/hda5(逻辑分区)
E盘——/dev/hda6(逻辑分区)

1.2.3 SWAP交换分区

在硬件条件有限的情况下,为了运行大型的程序,Linux在硬盘上划出一个区域来当作临时的内存,而Windows操作系统把这个区域叫做虚拟内存,Linux把它叫做交换分区swap。在安装Linux建立交换分区时,一般将其设为内存大小的2倍,当然也可以设为更大

1.2.4 分区格式

不同的操作系统选择了不同的格式,同一种操作系统也可能支持多种格式。Windows就选择了FAT32、NTFS两种格式,但是Windows不支持Linux上常见的分区格式。Linux是一个开放的操作系统,它最初使用EXT2格式,后来使用EXT3,但是它同时支持非常多的分区格式,包括很多大型机上UNIX使用XFS格式,也包括FAT以及NTFS格式。

1.2.5 GRUB

GRUB是一种引导装入器,负责装入内核并引导Linux系统,位于硬盘的起始部分。由于GRUB多方面的优越性,如今的Linux一般都默认采用GRUB来引导Linux操作系统。但事实上它还可以引导Windows等多种操作系统。

1.2.6 root权限

Linux也是一个多用户的系统,不同的用户和用户组会有不同的权限,其中把具有超级权限的用户称为root用户。root的默认主目录在"/root"下,而其他普通用户的目录则在"/home"下。root的权限极高,它甚至可以修改Linux的内核。

1.3 Linux文件及文件系统

1.3.1 文件类型及文件属性

1.文件类型
Linux对目录和设备都当作文件来进行处理,这样就简化了对各种不同类型设备的处理,提高了效率。Linux中主要的文件类型分为4种:普通文件,目录文件,链接文件,设备文件
(1)普通文件
普通文件如同Windows中的文件一样,是用户日常使用最多的文件。它包括文本文件、shell脚本、二进制的可执行程序和各种类型的数据。
(2)目录文件
在Linux中,目录也是文件,它们包含文件名和子目录的指针。目录文件是Linux中存储文件名的唯一地方,当把文件和目录相对应时,也就是用指针将其链接起来之后,就构成了目录文件。因此,在对目录文件进行操作时,一般不涉及对文件内容的操作,而只是对目录名和文件名的对应关系进行了操作。

在Linux系统中的每个文件都被赋予了一个唯一的数值,而这个数值被称作索引节点。索引节点存储在一个称作索引节点表中,该表在磁盘格式化时被分配。每个实际的磁盘或分区都有其自己的索引节点表。一个索引点包含文件的所有信息,包含磁盘上数据的地址和文件类型。

Linux文件系统把索引节点号1赋于根目录,这也就是Linux的根目录文件在磁盘上的地址。根目录文件包括文件名、目录名及它们各自的索引节点号的列表,Linux可以通过查找从根目录开始的一个目录链来找到系统中的任何文件。

Linux通过上下链接目录文件系统来实现对整个文件系统的操作。比如把文件从一个磁盘目录移到另一实际磁盘的目录时(实际上是通过读取索引节点表来检测这种行动的),这时,原先文件的磁盘索引号删除,而且在新磁盘上建立相应的索引节点。
在这里插入图片描述
(3)链接文件
链接文件有些类似Windows中的"快捷方式",但是它的功能更为强大。它可以实现对不同的目录、文件系统甚至是不同的机器上的文件直接访问,并且不必重新占用磁盘空间。
(4)设备文件
Linux把设备都当作文件一样来进行操作,这样就大大方便了用户的使用。在Linux下与设备相关的文件一般在/dev目录下,它包括两种,一种是块设备文件,另一种是字符设备文件。

块设备文件:指数据的读写,它们是以块(如由柱面和扇区编址的块)为单位的设备,最简单的如硬盘(/dev/hdal)等。
字符设备主要是指串行端口的接口设备。

2.文件属性
在这里插入图片描述
Linux中文件的拥有者可以把文件的访问属性设成3种不同的访问权限:可读®、可写(w)、可执行(x)。文件又有3个不同的用户级别:文件拥有者(u)、所属的用户组(g)、系统里的其他用户(o)。

第一个字符显示文件的类型:
“-” 表示普通文件
“d” 表示目录文件
“l” 表示链接文件
“c” 表示字符设备
“b” 表示块设备
“p” 表示命名管道比如FIFO文件(先进先出)
“f” 表示堆栈文件比如LIFO文件(后进先出)

第一个字符之后有3个三位字符组:
第一个三位字符组表示对于文件拥有者(u)对该文件的权限
第二个三位字符组表示文件用户组(g)对该文件的权限
第三个三位字符组表示系统其他用户(o)对该文件的权限

1.3.2 文件系统类型介绍

1. ext2和ext3
ext3是现在Linux常见的默认的文件系统,它是ext2的升级版本。从ext2转换到ext3主要有以下4个理由:可用性、数据完整性、速度、易于转化。ext3中采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且由于从ext2转换到ext3无须进行格式化,因此,更加推进了ext3文件系统的大大推广。
2. swap文件系统
该文件系统是Linux中作为交换分区使用的。在安装Linux的时候,交换分区是必须建立的,并且它所采用的文件系统类型必须是swap而没有其他选择。
3. vfat文件系统
Linux中把DOS中采用的FAT文件系统(FAT12, FAT16, FAT32)都称为vfat文件系统
4. NFS文件系统
NFS文件系统是指网络文件系统,这种文件系统也是Linux的独到之处。它可以很方便地在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统。而且NFS文件系统访问速度快、稳定性高,已经得到了广泛的应用,尤其在嵌入式领域,使用NFS文件系统可以很方便地实现文件本地修改,而免去了一次次读写flash的忧虑。
5.ISO9660文件系统
这是光盘所使用的文件系统,在Linux中对光盘已有了很好的支持,它不仅可以提供对光盘的读写,还可以实现对光盘的刻录。

1.3.3 Linux目录结构

/binbin就是二进制的缩写。在这里存放前面Linux常用操作命令的执行文件,如mv、ls、mkdir等。这个目录的内容和/usr/bin里面的内容一样,它们都是放置一般用户使用的执行文件
/boost这个目录存放操作系统启动时所要的程序。如启动grub就会用到其下的/boost/grub子目录
/dev该目录中包含了所有Linux系统中使用外部设备。要注意是,这里并不是存放的外部设备的驱动程序,它实际上是一个访问这些外部设备的端口。由于在Linux中,所有的设备都当作文件一样进行操作,比如:/dev/cdrom代表光驱,用户可以非常方便地像访问文件、目录一样对其进行访问
/etc/rc.d该目录主要放Linux启动和关闭时要用到的脚本文件
/etc/rc.d/init该目录存放所有Linux服务默认的启动脚本
/home该目录是Linux系统中默认的用户工作根目录
/lib该目录是用来存放系统动态链接共享库的。几乎所有的应用程序都会用这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作
/lost+found该目录在大多数情况下都是空的,只有当系统产生异常时,会将一些遗失的片段放在此目录下
/media该目录下时光驱和软驱的挂载点,Fedora Core 4已经可以自动挂载光驱和软驱
/misc该目录下存放从DOS下进行安装的实用工具,一般为空
/mnt该目录是软驱、光驱、硬盘的挂载点,也可以临时将别的文件系统挂载此目录下
/proc该目录是用于放置系统核心与执行程序所需的一些信息。而这些信息是在内存中由系统产生的,故不占硬盘空间
/root该目录是超级用户登录的主目录
/sbin该目录是用来存放系统管理员的常用的系统管理程序
/tmp该目录用来存放不同程序执行时产生的临时文件。一般Linux安装软件的默认安装路径就这里
/usr这是一个非常重要的目录,用户的很多应用程序和文件都存放在这个目录下,类似与Windows下的Program Files的目录
/usr/bin系统用户使用的应用程序
/usr/sbin超级用户使用的比较高级的管理程序和系统守护程序
/usr/src内核源代码默认的放置目录
/srv该目录存放一些服务启动之后需要提取的数据
/sys该目录下安装了2.6内核中新出现的一个系统sysfs。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统、针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建
/var这也是一个非常重要的目录,很多服务的日志信息都存放在这里

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2049893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Intel ACRN 安装WIN10 VM

上一篇帖子记录了ACRN运行rt linux,这篇帖子记录一下最近倒腾出来的WIN10。目前架构如下 ACRN可以把它理解为一个基于Linux类似软件的Type1 Hypervisor,基于Linux去做而不是baremetal是为了更方便去配置资源。 首先我们得有两台电脑,一台是开…

小米手机安装reex本地局域网环境使用webdav协议访问并观看alist挂载的网盘视频和音频记录

文章目录 说明第一步:下载reex第二步:安装reex问题解决:关闭小米应用安全验证 第三步:打开wifi,连接alist webdav服务 说明 这里提供一种小米手机安装reex并在本地局域网环境使用webdav协议访问并观看alist挂载的网盘…

K8S - Secret 的简介和使用

Secret 的定义 Kubernetes(k8s)中的 Secret 是一种用于存储敏感信息的 Kubernetes 资源对象,如密码、API 密钥、证书等。Secret 被设计为用于安全地存储和管理敏感数据,并且可以通过 Volume 或环境变量的方式将这些数据提供给 Po…

STM32软件I2C通信详解

目录 18.[江协]I2C通信详解 I2C通信介绍 软件I2C和硬件I2C的区别 I2C硬件电路规定 I2C软件设计(时序基本单元) 起始条件与终止条件 主机发送一个字节 的时序单元 主机接收一个字节 的时序单元 主机/从机 应答 基本单元 I2C完整时序&#xff08…

【Python单元测试】学习笔记1

文章目录 01-单元测试基础什么是单元测试常用的文件结构运行单元测试 02. 断言函数03. Test Fixtures什么是Test Fixtures模块级别的Fixtures类级别的Fixtures方法级别的Fixtures 04.Mock python单元测试学习笔记1:https://blog.csdn.net/qq_42761751/article/detai…

kali实用工具之NC

NC(netcat)被称为网络工具中的瑞士军刀,体积小巧,但功能强大。Nc主要功能是可以在两台设备上面相互交互,即侦听模式/传。 1、传输数据 在kali开启监听6666端口号: 在centos连接kali的6666端口号&#xff1a…

LeetCode --- 410周赛

题目列表 3248. 矩阵中的蛇 3249. 统计好节点的数目 3250. 单调数组对的数目 I 3251. 单调数组对的数目 II 一、矩阵中的蛇 只要按照题目要求模拟即可&#xff0c;代码如下 class Solution { public:int finalPositionOfSnake(int n, vector<string>& commands…

Camera Link 与 NI PCIe-1433 的工作原理及应用

Camera Link 是一种专为工业和科学成像应用设计的串行通信协议标准。它的主要优势在于能够提供高带宽、高可靠性的图像数据传输&#xff0c;并且具备灵活的配置选项&#xff0c;适用于多种不同的摄像机类型。Camera Link 的标准使得它在需要高速度、高分辨率图像传输的应用中得…

Java流程控制08:continue、break、goto

本节内容视频链接&#xff1a;https://www.bilibili.com/video/BV12J41137hu?p43&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p43&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 java中break和continue的作用和区别 在J…

通过kuboard界面配置ingress

安装 Ingress Controller&#xff0c;Kuboard 为您提供了一种快速安装 ingress-nginx 的方法&#xff0c;步骤如下所示。 1&#xff09;导航到集群的 集群管理 --> 网络 --> IngressClass 列表页&#xff0c;如下图所示&#xff1a; 2&#xff09;点击图中的 安装 Ingre…

WordPress美化节日灯笼插件,适合春节的时候使用

源码介绍&#xff1a; WordPress美化节日灯笼插件&#xff0c;适合每年过年的时候安在网站上使用&#xff0c;这款插件可以备用着&#xff0c;一款WordPress节日灯笼美化插件&#xff0c;可以给网页自动加一个灯笼效果使用说明&#xff1a;到网站WP后台 - 插件 - 安装插件 - 上…

可复制拖拽流程图

功能&#xff1a;如上图所示&#xff0c;从左侧拖拽源拖拽出模块后&#xff0c;在右侧显示。 源码&#xff1a;

【OpenCV 】插值的方法原理,图片缩放,矫正,边界填充

图像旋转 缩放 计算机中的图像是以数组的方式储存&#xff0c;每个位置储存了像素点的像素值。对图像进行旋转缩放&#xff0c;就是对数组进行操作&#xff0c;乘以对应的矩阵&#xff0c;进行空间变换&#xff0c;而矩阵的行列式的值&#xff0c;就是缩放的倍数。 进行缩放旋…

stm32智能颜色送餐小车(ESP8266WIFI模块、APP制作、物联网模型建立、MQTTFX)

大家好啊&#xff0c;我是情谊&#xff0c;今天我们来介绍一下我最近设计的stm32产品&#xff0c;我们在今年七月份的时候参加了光电设计大赛&#xff0c;我们小队使用的就是stm32的智能送餐小车&#xff0c;虽然止步于省赛&#xff0c;但是还是一次成长的经验吧&#xff0c;那…

在IntelliJ IDEA中使用Git推送项目

去gitee网站注册用户 gitee网站地址:https://gitee.com/ github网站地址:https://github.com/ 一、创建仓库 以下以gitee为例进行介绍&#xff0c;github操作雷同。 1、创建仓库 点击页面右上方的"“并选择"创建仓库” 2、设置仓库相关信息 首先输入仓库名&…

时序预测|基于PO-TCN-BiGRU的数据单变量和多变量时序预测Matlab程序 含基础模型对比TCN-BiGRU

时序预测|基于PO-TCN-BiGRU的数据单变量和多变量时序预测Matlab程序 含基础模型对比TCN-BiGRU 文章目录 前言时序预测|基于PO-TCN-BiGRU的数据单变量和多变量时序预测Matlab程序 含基础模型对比TCN-BiGRU 一、PO-TCN-BiGRU模型1. 时间卷积网络 (TCN)2. 双向门控循环单元 (BiGRU…

Modbus-RTU使用过程中的问题

此程序是在visual studio 2005的MFC程序中执行的&#xff0c;通过引入ModbusRTU.dll进行程序的编程&#xff0c;通过Dependency Walker工具查看ModbusRTU.dll中的静态函数如下&#xff1a; 在ModbusRTU.h文件中 MOD_API WORD RTUReadDiscreteInputs(BYTE nSlaveAddress, WORD …

接口自动化测试,介入时间以及整个流程规范是怎样的?

最近&#xff0c;小编身边有人提出一个问题&#xff1a; 背景 公司的接口自动化是从开发提测的时候开始用例设计开发的&#xff08;因为我们公司没有接口文档&#xff0c;只能等开发完成后自己抓包&#xff09;&#xff0c;也就是接口自动化开发和功能测试是同时进行的&#…

Ubuntu 基础使用

一、下载Vmware workstation 和ubuntu映像文件 二、安装虚拟机 三、安装完成之后打开程序&#xff0c;选择创建新的虚拟机 选择映射文件 编辑信息 这里尽量选择一个特定的位置 根据自己的要求设定 设置完成后等待自己安装不需要进行操作 出现登录页面表示安装成功 四、基本指令…

K8S系列——(一)、Ubuntu上安装Helm

在使用K8S搭建集群服务时&#xff0c;有时候需要用到Helm&#xff08;一个用于Kubernetes应用管理的工具&#xff09;&#xff0c;下面是在Ubuntu上安装Helm的过程。 1.更新系统软件包列表 sudo apt-get update2.安装必要的依赖项 sudo apt-get install apt-transport-https…