- 博客(16)
- 收藏
- 关注
原创 《嵌入式 Linux 控制服务从零搭建(二):从目录结构到 CMakeLists,搭一个像样的 C++ 工程骨架》
本文介绍了如何为MiniDeviceProxy项目搭建清晰的C++工程结构。作者强调工程组织的重要性,指出常见问题如代码混乱、模块边界不清等。项目采用分层目录结构,包括app入口层、common公共能力层、base基础设施层、ipc通信层和service核心服务层。CMakeLists拆分为多个target以明确模块边界,包括mini_common公共库、mini_base基础执行库、mini_ipc_frame通信协议库等。这种结构设计使项目具备良好的扩展性和可维护性,便于后续功能扩展和测试。文章展示了如
2026-05-09 16:18:37
423
1
原创 《嵌入式 Linux 控制服务从零搭建(一):项目立意与架构总览》
这是一个指导Linux入门的同学从零搭建一个嵌入式Linux控制服务平台的专栏,为大家提供一个可参考的Linux实战项目。笔者也是从0学到现在的,体会过“死活找不到合适项目用来仿写”的尴尬期,所以现在想和大家分享的,不仅是从技术角度的死板教程,更是从工程角度总揽全局,教会你如何从0开始搭建一个属于自己的项目。
2026-05-09 10:15:00
643
1
原创 如何编写一个CMakelists文件
CMake是一个项目构建工具,它通过编写CMakeLists.txt文件来管理项目的编译过程。相比手动编写Makefile,CMake能自动生成构建文件,简化复杂项目的管理。文章介绍了CMake的基础配置,包括版本要求、项目设置、编译选项、构建类型等;详细说明了如何编译静态库、动态库和可执行文件,并比较了它们的优缺点;最后讲解了安装和打包的流程,包括文件部署路径设置和生成可分发包的方法。CMake通过自动化构建过程,显著提高了C/C++项目的管理效率。
2026-04-10 17:52:11
501
原创 《UNIX高级环境编程》 第十四章 高级I/O(一文读懂UNIX下高级I/O)
摘要:本文介绍了Unix/Linux系统中的高级I/O技术。主要内容包括:1)非阻塞I/O的实现方式,通过O_NONBLOCK标志避免进程阻塞;2)记录锁机制,使用fcntl函数实现文件区域锁定;3)I/O多路转接技术,详细讲解了select、poll和epoll函数的工作原理及区别;4)readv/writev函数实现分散读写操作;5)readn/writen函数确保完整读写指定字节数;6)存储映射I/O技术,通过mmap将文件映射到内存空间。这些技术提供了高效处理I/O操作的方法,特别适用于网络编程和并
2026-03-24 21:49:15
478
原创 《UNIX高级环境编程》 第十章 信号 读书笔记(一文读懂UNIX信号机制)
Linux信号机制摘要:信号是进程间通信的重要方式,以SIG开头命名,共31种标准信号和扩展信号。信号来源包括用户操作、硬件异常、进程调用kill命令等。进程对信号的处理方式有:忽略(除SIGKILL/SIGSTOP)、捕获(自定义处理函数)或执行默认动作。核心函数包括signal()注册处理函数、kill()发送信号、alarm()设置定时器等。信号集(sigset_t)相关函数可操作多个信号。需注意信号处理中的竞争条件、系统调用中断和可重入函数问题。特殊信号如SIGSEGV(无效内存访问)、SIGTER
2026-03-16 10:48:42
441
1
原创 《UNIX高级环境编程》第十三章 守护进程(一文读懂UNIX下守护进程)
摘要:守护进程是长期运行的后台进程,通常在系统启动时运行、关闭时终止。常见的守护进程包括init、keventd、kapmd等,主要负责系统管理任务。编写守护进程需遵循特定规则:设置文件模式屏蔽字、fork后终止父进程、创建新会话、更改工作目录、关闭不必要文件描述符等。UNIX系统中守护进程的惯例包括:锁文件存放在/var/run目录、配置文件存放在/etc目录、通过系统脚本启动等。守护进程通常需要处理SIGHUP信号以重新读取配置文件。
2026-03-16 10:48:05
422
1
原创 《UNIX高级环境编程》 第十二章 线程控制 读书笔记(一文读懂UNIX线程控制)
摘要:本文详细介绍了POSIX线程编程中的各类属性设置,包括线程属性(分离状态、栈大小、保护区域)、互斥量属性(进程共享、类型)、读写锁属性和条件变量属性。重点阐述了线程私有数据的创建与管理机制,以及多线程环境下fork操作的潜在问题和解决方案。文章提供了完整的函数接口说明,涵盖了线程安全、可重入性等关键概念,为多线程程序开发提供了全面的技术参考。
2026-03-10 22:23:09
375
原创 《UNIX高级环境编程》 第十一章 线程 读书笔记(一文读懂LINUX线程)
摘要:本文介绍了线程的基本概念、创建与终止方法,以及线程同步机制。线程解决了进程间资源共享问题,包含线程ID、寄存器值等执行环境信息。通过pthread_create创建线程,pthread_exit终止线程,并可使用pthread_join等待线程结束。线程同步采用三种机制:1)互斥量确保共享资源原子访问;2)读写锁允许多线程同时读但互斥写;3)条件变量配合互斥锁实现线程间状态通知。文中详细说明了相关API函数的使用方法,包括初始化、加解锁操作等。
2026-03-07 17:51:59
461
原创 《UNIX高级环境编程》 第九章 进程关系 读书笔记 (一文读懂UNIX下进程组及会话)
本文介绍了UNIX系统中的终端登录、网络登录、进程组、会话、控制终端和作业控制等核心概念。终端登录通过init进程调用getty和login程序完成用户认证;网络登录则通过telnetd等守护进程处理远程连接。进程组用于管理相关进程,会话则组织多个进程组与控制终端关联。作业控制允许管理前后台进程组,通过信号机制控制终端访问权限。文章还详细说明了相关系统调用如setsid、tcgetpgrp等的使用场景,阐述了这些机制如何协同工作以支持多任务环境下的进程管理。
2025-12-18 17:18:35
1383
原创 《UNIX高级环境编程》 第八章 进程控制 读书笔记(一文读懂UNIX下多进程编程)
该代码为相应进程关闭所有打开描述符,释放它所用的存储器等等。对于所有的终止状态,我们都希望终止进程能够通知父进程其终止的原因,对于exit、_exit、和_Exit函数,将退出状态作为参数传递给三个函数。在异常终止的情况下,内核产生一个指示其异常终止的原因的终止状态。在任意一种终止情况下,父进程都能使用wait函数或waitpid函数获取子进程的退出状态。刚才讲到父进程可以获取子进程的退出状态,但是如果父进程在子进程终止之前就已经终止呢?对于父进程已经终止的子进程,我们称其为。
2025-12-16 22:58:45
1048
原创 《UNIX高级环境编程》 第七章 进程环境 读书笔记
本文摘要:C程序从main函数开始执行,main函数原型为int main(int argc, char *argv[])。进程终止有8种方式,包括正常终止(如从main返回、调用exit)和异常终止(如调用abort)。exit函数会先执行清理处理再进入内核,而_exit和_Exit直接进入内核。atexit函数可登记最多32个终止处理函数。程序存储空间分为代码段、初始化数据段、未初始化数据段、栈和堆。动态内存分配使用malloc、calloc和realloc函数,需注意内存对齐问题。free函数释放分配
2025-12-12 19:00:05
795
原创 《UNIX高级环境编程》 第五章 标准I/O库 读书笔记
本文摘要:文章详细介绍了标准I/O库的核心概念和操作。主要内容包括:1)流和FILE对象的概念,流定向的设置(fwide函数);2)三种缓冲类型(全缓冲、行缓冲、不带缓冲)及其设置方法(setbuf/setvbuf);3)流的打开(fopen/freopen/fdopen)和关闭(fclose);4)三种I/O操作方式(字符I/O、行I/O、直接I/O)及相关函数;5)流的定位方法(ftell/fseek等);6)格式化I/O函数(printf/scanf系列);7)临时文件处理(tmpnam/tmpfil
2025-12-11 22:52:25
1145
原创 《UNIX高级环境编程》第四章 文件和目录 读书笔记(一文读懂UNIX文件属性)
本文主要介绍了UNIX文件系统相关的核心概念和操作函数。首先详细讲解了stat、fstat和lstat函数,用于获取文件属性信息。接着阐述了UNIX的文件类型分类及属性表示方法,包括普通文件、目录文件、设备文件等。文章重点说明了文件权限机制,包括用户ID、组ID的设置以及9个访问权限位的含义和使用规则。随后介绍了多个文件操作函数,如access、umask、chmod等,用于测试和修改文件权限。最后解析了UNIX文件系统(UFS)的结构,包括i节点、数据块的存储方式,以及硬链接和符号链接的实现原理与区别。全
2025-12-06 16:09:12
1330
原创 《UNIX高级环境编程第二版》 第三章 读书笔记 文件IO(万字长文读懂UNIX下的文件IO和文件系统)
UNIX文件I/O机制解析 摘要:本文系统分析了UNIX文件I/O的工作原理,包括核心概念、系统调用和内核实现。UNIX采用"一切皆文件"的设计哲学,通过文件描述符抽象访问各类资源。文章详细介绍了open/read/write等基础系统调用,对比了文件I/O与标准I/O的缓冲机制差异,解析了O_SYNC等标志位的同步控制功能。深入探讨了UNIX/Linux内核中文件描述符表、文件表项和v-node节点的三级结构,以及Linux特有的struct file实现。同时阐述了原子操作的必要性,
2025-12-03 18:55:12
1265
原创 《UNIX高级环境编程第二版》第一、二章 UNIX基础知识 读书笔记(一文了解UNIX家族)
本文系统介绍了UNIX系统的核心概念和实现细节。主要内容包括:1)UNIX标准体系(ISO C、POSIX、Single UNIX Specification);2)主要UNIX实现(SVR4、BSD、Linux等);3)系统资源限制类型及管理机制;4)UNIX体系结构(内核、系统调用、shell);5)文件系统基础概念;6)进程与线程管理;7)错误处理机制;8)时间值测量;9)系统调用与库函数的区别。文章着重阐述了UNIX系统的标准化特性、资源管理机制和核心组件,为理解UNIX系统架构提供了全面框架。
2025-11-28 23:26:15
1312
2
原创 《unix环境高级编程第二版》第十八章 终端I/O 读书笔记(一文读懂unix终端设备)
本文系统介绍了Linux系统中的终端设备及其工作原理。首先解释了串口设备与终端的关联性,指出串口设备在Linux中被视为终端设备的一种。接着详细阐述了终端I/O的两种工作模式(规范模式和非规范模式),以及终端设备的输入/输出队列机制。文章重点讲解了termios结构体及其操作函数,包括终端属性检测修改、特殊输入字符、波特率设置等内容。此外还介绍了终端标识、行控制函数以及终端窗口大小的管理。最后通过密码输入示例说明了规范模式与非规范模式的区别及应用场景,为理解Linux终端工作机制提供了全面的技术参考。
2025-11-27 16:48:46
981
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅