
Linux零碎笔记
文章平均质量分 66
编写内容仅适合作者本人使用
DAOkonglong
这个作者很懒,什么都没留下…
展开
-
26-ARM常用汇编指令
汇编格式:label:instruction @ comment常用段名:.section .vector常见伪操作:寄存器间数据传输:内存与寄存器数据传输:压栈和出栈跳转算术运算指令逻辑运算原创 2024-07-06 20:02:13 · 372 阅读 · 0 评论 -
25-ARM-V7架构
cp15协处理器:内存、缓存、中断。原创 2024-06-05 19:01:47 · 332 阅读 · 0 评论 -
24-system-V 共享内存
高效率传输大量数据。原创 2024-06-02 10:27:11 · 344 阅读 · 0 评论 -
23-system-V 信号量
本质上是计数器保护共享资源。原创 2024-06-01 10:20:32 · 341 阅读 · 0 评论 -
22-system-V消息队列
左边发送,右边接收,先启动发送的程序,后启动接收的程序。功能:设置或获取消息队列的相关属性。功能:发送消息到消息队列。功能:从消息队列读取消息。功能:获取消息队列ID。成功:该消息队列的ID。功能:获取一个key。原创 2024-05-28 15:03:22 · 423 阅读 · 0 评论 -
21-信号集处理函数
信号如果被屏蔽,则记录在未处理信号集中。原创 2024-05-25 09:36:20 · 288 阅读 · 0 评论 -
20-singnal_kill_raise函数
如何在自己的程序中处理信号。原创 2024-05-23 08:44:32 · 208 阅读 · 0 评论 -
19-信号
软件模拟中断,进程接受信号后做出相应响应。原创 2024-05-21 14:03:36 · 184 阅读 · 0 评论 -
18-有名管道
(在虚拟机中新建两个终端然后分别执行,先执行fifo_read程序,然后在执行fifo_write程序,并且执行fifo_write程序增加一段字符串参数)使用函数:mkfifo。原创 2024-05-19 07:42:26 · 255 阅读 · 0 评论 -
17-进程间通信
【代码】17-进程间通信。原创 2024-05-17 08:46:58 · 309 阅读 · 0 评论 -
16-僵尸进程和托孤进程
父进程比子进程先退出,子进程变为孤儿进程,Linux系统会把子进程托孤给pid为1号的进程(init)进程。子进程退出后,父进程没有调用wait()函数处理身后事,子进程变成僵尸进程。若进程没有按正常退出步骤,则有可能变为僵尸进程或者托孤进程。查看进程状态,发现状态为“Z”的僵尸进程。编写程序实现僵尸进程。原创 2024-05-15 12:17:08 · 202 阅读 · 0 评论 -
15-ps命令
是只显示一部分内容,通过回车继续查看下列内容。原创 2024-05-14 22:05:12 · 570 阅读 · 0 评论 -
14-串口通讯
串口通信,设备间常用的串行通讯方式,简单便捷,大部分设备都支持。本人使用的开发板默认使用串口终端。windows上使用串口通讯工具来来接开发板,如putty,xShell,MobaXterm等等。使用工具时通常需要配置端口号、波特率、校验位、数据位、以及停止位的参数。端口号:用于区分同一台电脑上的不通串口设备,在Windows上通常以COM1,COM2等方式命名。波特率:指每秒传输的比特位数。由于没有时钟信号同步数据,所以通讯双方需要约定好数据的传输速率。串口最常用的是异步通讯。原创 2024-05-08 14:35:52 · 282 阅读 · 0 评论 -
13-Makefile_04
第一个函数调用中,由于“hello_main.c”符合“%.c”的匹配规则(%在Makefile中的类似于*通配符),而且“%”从“hello_main.c”中提取出了“hello_main”字符,把这部分内容放到替换规则“build_dir/%.o”的“%”号中,所以最终的输出为”build_dir/hello_main.o”第二个函数调用中,由于由于“hello_main.xxx”不符合“%.c”的匹配规则,“.xxx”与“.c”对不上,所以不会进行替换,函数直接返回空的内容。注意工程结构如上图。原创 2024-04-26 15:15:55 · 357 阅读 · 0 评论 -
12-Makefile_03(续)
特殊的变量”$@”,”$<”,可理解为Makefile文件保留的关键字,是系统保留的自动化变量,”$@”代表了目标文件,”$<”代表了第一个依赖文件。即”$@”表示”%.o”,”$<”表示”%.c”。”,即等价于o文件依赖于c文件的默认规则。分支会比较括号内的参数“arg1”和“arg2”的值是否相同,如果相同,则为真,执行分支 1 的内容,否则的话,执行分支 2 的内容,参数 arg1 和 arg2 可以是变量或者是常量。“%”是一个通配符,功能类似“*”,如”%.o”表示所有以”.o”结尾的文件。原创 2024-04-23 19:20:50 · 542 阅读 · 0 评论 -
11-Makefile_02(续)
接10-Makefile新增的"-I ."是告诉编译器头文件路径在该文件夹。原创 2024-04-20 15:47:08 · 630 阅读 · 0 评论 -
10-Makefile_01
回顾之前的hello.c程序的编译,过程很简单,但是在项目工程中,势必会有相当多的C文件和H头文件。哪怕只是修改一个文件,也需要重新编译所有的文件,白白浪费了很多开发时间。要解决这个问题,最好的方式就是把工程的编译规则写下来,让编译器自动加载该规则进行编译。解决方法就是使用和Makefile中的语法复杂、晦涩难懂,但是都是为了更好的解决文件依赖问题而存在的。原创 2024-04-17 15:11:29 · 796 阅读 · 0 评论 -
09-ARM开发板的HelloWorld
如图所示,程序无法正常运行,终端提示ARM开发板在执行x86架构(Intel或AMD)的hello程序时提示格式错误,原因是x86_64和ARM架构的程序不兼容,本质是由于这些CPU使用的指令集不同。前面在Ubuntu系统编译生成了X86_64平台的HelloWorld程序,通过NFS服务器,尝试在开发板上直接运行。交叉编译出来的程序在开发板上提示gblic版本不对应,程序运行不了,除了想到能静态编译想不到其他方法,后面换了。,编译复杂的程序时,可能需要巨大的存储空间以及强大的CPU运算能力加快编译速度。原创 2024-04-13 10:33:26 · 505 阅读 · 0 评论 -
08-GCC和编译流程
调用库文件*.so中的内容,不同的程序可以共用代码库。所以动态链接生成的程序比较小,占用较少的内存。优点就是占用小,缺点就是如果在一台机器上编译的程序到另一台机器上因为没有对应的库可能执行不了,也就是兼容性问题。静态链接,链接时使用选项“–static”,它在编译阶段就会把所有用到的库打包到自己的可执行程序中。,例如printf 函数的C标准代码库*.so文件存储在Linux系统的某个位置,hello程序执行时。GCC编译工具链是指以GCC编译器为核心的一整套工具,用于把源代码转化成可执行的应用程序。原创 2024-04-12 16:19:59 · 580 阅读 · 0 评论 -
07-挂载NFS网络文件系统
应用场景中开发主机和开发板需要通过网络互相访问,另外由于NFS文件系统暴露到公网需要处理很多安全问题,为简化操作,只把开发主机和开发板连接到局域网,即都使用网线把它们连接到同一个网段(还没学网络,不知道这个说法对不对,有错希望指出)。至于为什么这样应用,服务器端的硬件相比开发板更加好,有时候开发板的硬件条件不能够编译软件是可以用服务器端来编译,一方面提高开发效率,还有一方面节省开发板的空间。开发主机开启NFS服务后,还需要在开发板安装NFS客户端,让开发板使用NFS服务。原创 2024-04-09 20:37:14 · 741 阅读 · 0 评论 -
06-编辑器
虽然Ubuntu的图形界面也能通过gedit打开文件,但是用终端打开gedit可以动用更高的权限,在图形界面下默认使用的是用户身份,要修改某些需要管理员权限的文件是无法操作的,只能读不能写。图形界面虽好,但网上教程一般都是用vi或者vim来修改配置文件,因为系统一般自带vi,而且不需要区分系统是否需要使用图形界面。在一般命令模式下,按下键盘的冒号键“ :”,就可以进入命令行模式,继续输入要执行的命令按回车即可执行。以上一般是较常用的命令或快捷键,还有很多操作就不列出来了,以上的命令对日常的编辑足够使用了。原创 2024-04-03 15:46:35 · 3038 阅读 · 0 评论 -
05-apt及yum包管理工具
用户需要安装软件时,通过包的形式进行分发,包提供了操作系统的基本组件,以及共享的库、应用程序、服务和文档,当用户需要时,可以运行特定的指令来安装。目前大多数类Unix操作系统都提供了异种中心化的机制用来搜索和安装软件,软件开发者先行在固定的硬件平台上将软件编译好然后将软件的所有相关文件打包存放在公开的服务器中。命令中的dpkg(DebianPackager)是Debian专门开发的包管理工具,它可以用来安装、更新和移除软件,安装时它需要使用deb类型的软件包。dpkg只能对已经下载到本地的软件包进行管理。原创 2024-04-02 20:11:16 · 1075 阅读 · 0 评论 -
04-Linux命令行-续
注::IMX6ULL 开发板在使用poweroff命令关机后,需要长按ON/OFF键1~2秒才能正常开机。从上图知,除了能查看Shell命令,还能看到man手册支持9种类型的内容。需要注意的是,如果我们需要查命令等等,需要在对应的章节进行查找。除了–help选项来查看命令,Linux还提供了man命令,可以用来查看Linux系统自带的参考手册。打开说明后,按键盘方向键的“↑”“↓”键可以实现上下切页,按“q”来退出手册。左上角的“PRINTF(1)”中的数字1表示它在man手册中的章节号。原创 2024-04-01 21:09:37 · 385 阅读 · 0 评论 -
03-Linux命令行-续
有时我们希望把命令执行的结果保存到文件进行分析,这时我们可以使用输出重定向到文件的控制符“>”或“»”,其中“>”会直接用输出覆盖原文件,而“»”则把输出追加到原文件的末尾。ls 命令是list 的简写,在前面就已经频繁使用,它是Linux下最常用的指令,功能为显示指定目录下的内容(文件及子目录),还可以查看文件大小,修改日期等等信息。其中“目录名”就是要创建的目录路径,“-p”选项可以不输入,如果使用了“-p”选项,则当创建的目录名包含的上级目录不存在时,它会自动创建所有不存在的目录。原创 2024-03-31 10:37:10 · 1012 阅读 · 0 评论 -
02-Linux命令行-初
Shell、终端(Terminal)或控制台(Console),严格来说它们不是同样的东西。原创 2024-03-28 16:42:06 · 377 阅读 · 0 评论 -
01-Linux简介、目录
我们说的Linux系统时,其含义往往指采用Linux内核的操作系统。Linux内核负责控制硬件、管理文件系统、进程管理、网络通讯等等,但是其本身并没有给用户提供必要的工具和应用软件。原创 2024-03-26 09:12:27 · 280 阅读 · 0 评论