- 博客(87)
- 收藏
- 关注

原创 《从零开始学习Linux》——开篇
近日笔者新开专栏,《从零开始学习Linux》,Linux水深而且大,学了一圈之后,有懂得有不懂的,一直没有机会整体的全部重新捋一遍,本专栏的目的是,带着大家包括我自己重新学习Linux一遍这些知识,温故旧的知识,同时进阶新的自己,研究认知外的实物,我将尽我所能,写好这一个专栏,让大家和自己有所收获。希望我博客的分享,能让大家有所收获。大家可以叫我 《家驹(Strange_Head),或者顺哥》——家驹(Strange_Head)
2024-07-13 22:19:04
1119
1
原创 《Linux系统编程篇》Linux目录动态检测应用 (inotify递归子目录)——工具篇
inotify(inode notify)是 Linux 内核自 2.6.13 版本开始提供的一种文件系统事件监控机制。它允许用户空间程序注册监控文件或目录,当发生特定事件时,内核会通知用户程序。与之前的dnotify相比,inotify提供了更丰富的事件类型和更高效的监控方式。
2025-03-20 18:23:11
960
原创 《Linux系统编程篇》Linux Socket 网络编程01 API介绍(Linux 进程间通信(IPC))——基础篇
道可道,非常道;名可名,非常名。无名,天地之始;有名,万物之母。故常无欲,以观其象;常有欲,以观其体。两者同出而异名,同为之玄。玄之又玄,众妙之门。——老子《道德经》
2025-03-20 18:22:33
1107
原创 《Linux系统编程篇》Linux内存检测框架 ——工具篇
我们在查看Linux内存时候,可能会使用`free`命令,尤其是查找内存占用情况的时候,会在命令行不断的敲击`free`命令(真令人头疼)或者(`cat /proc/meminfo`),有没有方法直接在C语言中也就是我们的程序代码中添加一段程序,可以直接,实时的打印查看我们的程序,这样我们就可以在我们想要的地方直接查看内存的空余使用情况,当然有,那就是本节笔者分享下面这段程序的方法。
2025-03-10 20:40:31
644
原创 《Linux系统编程篇》共享内存(Linux 进程间通信(IPC))——基础篇
他总体的作用就是,在Linux当中开辟一段内存空间,使得两个进程可以同时访问,是的就是这么简单具体操作可以具象为操作一个文件(毕竟Linux中一切皆是文件呢)open一个文件(没有就创建他)我可以使用read读取他,也可以使用write去修改他。当然这个文件,也可以让所有进程看到,并操作。
2025-02-26 20:26:24
911
原创 《Linux系统编程篇》System V信号量实现生产者与消费者问题(Linux 进程间通信(IPC))——基础篇(拓展思维)
接上节,我们来详细展开一下 生产者-消费者问题,并用 System V 信号量 来解决它。这个经典问题帮助我们理解如何在多个进程间同步和互斥地共享资源。生产者-消费者问题是多进程同步问题中的经典例子。问题的背景是:有两个进程,一个生产者(Producer)不断生产产品,另一个消费者(Consumer)不断消费产品。两者都需要共享一个有限的缓冲区。生产者往缓冲区写入数据,消费者从缓冲区读取数据。为了避免并发问题,我们需要同步生产者和消费者的访问。
2025-02-25 20:42:20
590
原创 《Linux系统编程篇》System V信号量(Linux 进程间通信(IPC))——基础篇
System V 信号量(sem_t)是 Unix/Linux 系统中一种进程间同步和互斥的机制。
2025-02-21 16:36:46
1080
原创 自述谈心 日记篇20250221
笔者最近陷入了瓶颈,已经许久没有更新过了,在如今2025年,面对AI可以代替着人类做任何事情,我最近无数次的问自己,我还有没有意义要去学习,明明AI可以做到一切,知道世界的所有知识,我们的学习是否还有必要。
2025-02-21 14:53:32
249
原创 《Linux系统编程篇》POSIX信号量(Linux 进程间通信(IPC))——基础篇
在 Linux 系统编程中,信号量(Semaphore)是一种重要的同步机制,主要用于解决并发访问的互斥和同步问题。
2025-01-13 20:58:03
718
原创 《Linux系统编程篇》管道(Linux 进程间通信(IPC))——基础篇
在 Linux 中,进程是相互独立的,每个进程都有独立的内存空间。为了在不同进程之间交换数据,操作系统提供了各种 IPC 机制。这些机制可帮助进程完成数据共享、同步、通知和事件处理等任务。管道(Pipe)命名管道(FIFO)消息队列(Message Queue)共享内存(Shared Memory)信号(Signal)套接字(Socket)管道是最简单的 IPC 方式之一,适合在具有亲缘关系的进程(如父子进程)之间传递数据。管道是单向的,数据只能从一端流向另一端。
2024-11-01 18:12:14
1062
原创 《Linux系统编程篇》exec族函数——基础篇
当我们介绍完fork之后,你会发现虽然我可以同时跑俩个程序,但是还是太过于局限了,而且细心的学员们发现,进程直接是完全不互通的,好像fork之后什么也做不了,是的,只学完`fork`就是这样的,所以我们再来介绍新的知识。`exec`族函数。
2024-10-30 19:00:46
1006
原创 《Linux系统编程篇》fork/wait/waitpid/exit函数——基础篇
在 Linux 中,所有的进程都是通过 fork() 派生而来。当一个进程调用 fork() 时,操作系统会复制当前进程的上下文,为它创建一个几乎完全相同的副本,这个副本被称为子进程,而原始进程被称为父进程。这也是人们口中的父子进程的概念。
2024-10-28 19:40:42
1331
原创 《Linux系统编程篇》Linux进程的了解——基础篇
概念:进程(Process)是指计算机系统中正在运行的程序的实例。每个进程都有自己的内存空间、代码、数据、堆栈等资源,它们相互独立地运行,并且能够与其他进程并发地执行。进程是操作系统进行任务调度和资源分配的基本单位。操作系统通过创建、管理和调度进程来实现多任务处理,使多个程序能够同时运行,并且彼此之间不会干扰。举个栗子理解一下💡:把我们的地球想象成一个Linux系统,那么地球上的生物,画,鸟,鱼,虫,甚至人类,都是单独的个体,他们互不干扰,自己有自己的事干,共同的努力下才形成了当前稳定的地球。
2024-08-11 20:26:54
992
原创 《Linux系统编程篇》文件基础编程 ——基础篇
在Linux系统编程中,我们先来看基本的API,理解基本的文件操作函数是非常重要的。这节我们带着大家一起进入文件编程。文件我们想到无非就三个操作,1、打开文件,2、操作文件内容,3、关闭文件把大象装进冰箱?是的,就是这么简单。于是乎,我们如何装进这个大象是我们学习的关键,用什么工具去打开冰箱(文件),如何把大象放进去(操作文件内容),放进去关冰箱(释放文件)我们在Linux系统上,当然用的是Linux系统的API,来操作系统的文件了,Linux系统给我们提供哪些工具呢?下面我列举了一些。
2024-07-16 23:16:51
767
原创 《Linux系统编程篇》认识在linux上的文件 ——基础篇
每一次努力都是一种投资,哪怕结果未必如愿,但你所获得的成长和经验都是无价的。坚持下去,你会看到那些投资最终会为你带来丰厚的回报。 ——家驹(Strange_Head)
2024-07-13 22:35:18
930
原创 《Linux系统编程篇》Visual Studio Code配置下载,中文配置,连接远程ssh ——基础篇
vscode绝对值得推荐,非常好用,如果你能体会其中的奥妙的话
2024-07-13 22:30:54
808
原创 解锁 AI 潜力:香橙派 AIpro 评测与实操指南
在智能科技飞速发展的今天,AI 技术正逐渐改变我们的生活方式。作为开发者,找到一款高性能、易用且经济实惠的开发板至关重要。香橙派 AIpro(OrangePi AIpro)凭借其卓越的硬件配置和强大的 AI 计算能力,相信未来会迅速成为市场上的一匹黑马。本文将带你全面了解这款开发板,通过实际操作和详细评测,揭示其在 AI 开发中的巨大潜力。无论你是初学者还是资深开发者,香橙派 AIpro 都能助你迈向 AI 开发的新高度。准备好了吗?让我们一同探索这款令人兴奋的 AI 开发工具!
2024-05-28 10:21:16
1541
原创 ubuntu20.04.6安装sshd服务,并连接到远程服务器
它负责提供远程登录和安全的 shell 服务。通过启动 sshd 服务,可以允许远程用户通过 SSH(Secure Shell)协议连接到您的计算机,并在远程执行命令或进行文件传输。物理主机使用mobaxterm(或putty)连接虚拟机ssh登录。
2024-04-06 16:14:15
1823
原创 Android 完整SDK项目中添加对应的JNI与底层通信
近日需要写一个安卓app和底层发消息,这就涉及到java如何到c层的一个逻辑,app已经写好,就差发个消息了。至于如何对接底层,得和写底层的人进一步沟通,本文笔者只写从java层通信到cpp,并且打印出一个值,至于通信底层,到了c层了,open,read一个驱动,也就轻轻松松了。
2024-03-07 15:25:09
661
原创 Android音量调节修改
今日公司,安卓设备的音量显示不正常,让我来修复这个bug,现在已修复,做个博客,记录一下,以后碰到类似一下子就好解决。
2024-01-27 17:29:26
931
原创 Makefile文件里的赋值方法(第三节)
(实例1.1)int main()int a,b;//定义一个变量a和ba = 10;//将变量a赋值为10b = 20;//将变量b赋值20a = b;//再将b的值赋值a//打印变量areturn 0;结果是20。这是c语言中简单的赋值,但是在Makefile中如何实现赋值呢,他赋值还是使用的“=”号吗,还是有其他的更多的符号提供使用。一起进入这“该死”的Makefile中学习吧。
2023-10-19 00:04:15
438
原创 Makefile输出调试信息print(第二节)
低端的乃头乐发出人性的呼喊,高端的享受来自精神,享受自己进步的每一瞬间,欢迎来到我第二节课,加油。——张顺。
2023-10-04 17:59:24
1262
原创 Makefile核心(第一节)
makefile是相当重要的,只要你要写大工程,就必须学习makefile,我在网络找了半天没有找到合适且适合学习的资料,于是乎我想写一个关于Makefile系列的文章,将自己所学,并且总结起来,发布出来,和大家一起讨论进步学习。
2023-10-04 11:46:59
261
原创 全志orangepi-zero2驱动编写
这个框架需要和用户态的open等函数进行配合,需要知道linux内核框图可明白。这里作为一个拓展吧,每个内核编译都可能不同,具体找商家手册来看。编译成功后,看到源码树目录多了vmlinux,失败则无此文件。编译成功后,看到源码树目录多了vmlinux,失败则无此文件。成功后,目标zImage镜像arch/arm/boot底下。将.ko文件放到(没有ko就是内核编译有问题,重新编译去)打包zImage成树莓派可用的xxx.img。回到内核源码这里的路径进行编译。如有问题欢迎提出,共同进步。
2023-08-21 20:35:02
310
原创 Linux自动挂载U盘
这条规则的意思是:如果有一个设备的内核名称为sda,则该条件生效,执行后面的赋值:在 /dev 下产生一个名为my_disk 的设备文件,并把设备文件的权限设为 0660。:设备的 devpath 路径下,设备的属性文件 “filename” 里的内容;:设备在 devpath 的设备驱动名称,例如:ide-cdrom;:设备的子系统名称,例如:sda 的系统为 block;:设备在 devpath 里的总线名称,例如:usb;:内核设备名称,例如:sda,cdrom;:设备的 devpath 路径;
2023-08-20 17:15:20
552
原创 Linux的热拔插UDEV机制
udev是一个设备管理工具,udev以守护进程的形式运行,通过侦听内核发出来的uevent来管理/dev目录下的设备文件。udev在用户空间运行,而不在内核空间 运行。它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。
2023-08-20 16:59:15
379
原创 【ARM-Linux】项目,语音刷抖音项目
当然也是用source insight分析源码cv编写,没写注释,将就看吧,这俩个文件,比较难啃,都是和linux内核打交道。插入开发板,跳出什么就点允许就行(否则可能没有权限开发板无权访问手机系统)这个模块其实进入网站点点点就可以完成,非常方便,但是没有什么技术含量。测试没问题将语音模块RX和TX接入开发板的RX,TX端口。安卓手机开启,开发者模式,并开启USB调试功能。到这里就是简单的处理语音模块发来的命令了。如有问题,欢迎提出,共同进步。su-03T语音识别模块。配置SU-03T模块。
2023-08-20 16:25:28
848
原创 【Linux系统编程项目】实现部分FTP功能
1.获取服务器文件,get xxx2.展示服务器有哪些文件 ,ls3.进入服务器文件夹 cd4.上传文件到服务器。
2023-08-20 15:26:03
129
原创 交叉编译之wiringPi库,【全志H616,orangepi-zero2】
windows快捷方式见过吧,没错,linux软连接就是类似快捷方式,建立之后在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,这个文件包含了正真文件的位置信息等等。这俩个库分别在,开发板的wiringPi安装目录,的wiringPi目录和devLib目录下面,使用scp命令考出来。按道理安装25,或者26都可以,我输入的是26(眼瞎看错了,但是居然可行,有大佬可以说一下26是什么鬼)成功之后,要创建链接,方便库的调用,总不会你想调用库需要加上一堆版本信息把~完美,ARM,并不是x86。
2023-08-16 22:48:31
556
原创 全志H616交叉编译,orangepi-zero2
换位到Linux上,我们在虚拟机上gcc好一个文件会产生一个.a.out文件,我们将.a.out文件放到ARM-Linux平台上去执行,就是Linux的交叉编译,为什么不直接在ARM-Linux平台直接编译?1、成本问题,正真去公司开发并不像是学习一样那样高的ARM-Linux配置,都不足以安装gcc编译工具,或者安装好了没法编译运行,交叉编译是需要工具的,如51单片机需要keil软件编写一样,注意工具的意义是将宿主机的代码编译成可以运行在目标及代码的工具。(全志、树莓派,等等)下好,搞到自己的虚拟机上。
2023-08-15 23:07:20
534
原创 ubuntu设置共享文件夹成功后却不显示找不到(已解决)
1.首先输下面命令查看是否真的设置成功共享文件夹如果确实已经设置过共享文件夹将输出window下共享文件夹名字2.确认自己已设置共享文件夹后输入下面的命令发现问题,提示no such file,解决方法。
2023-08-15 22:21:04
6113
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人