【Linux基础概念】
【 进程 vs 线程 vs 协程】












【文件描述符与I/O模型】






【IPC】









【线程同步四件套】


【Linux基础命令】
【常用文件操作命令】

【文件权限 rwx】

【常用文本处理命令】
【进程相关命令】

【GCC 编译选项】

【Makefile 基本语法】

【静态库(.a)和动态库(.so)】


【环境变量】

【管道和重定向】

【shell脚本】





【Linux下如何调试段错误(Segmentation Fault)】

【strace和ltrace的用法】

Linux实用工具 之 strace,深入理解系统调用的利器_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1CxcgefEpM/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728Linux实用工具 之 ltrace,深入理解库函数调用的利器_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1TjwUe5EUP/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728
【/proc文件系统在调试中的应用】

【交叉编译】

【GDB远程调试】

【Linux文件IO操作】
【open/read/write/close系统调用】

【标准IO(fopen/fread)和系统IO(open/read)的区别】

【文件描述符的复制(dup/dup2)】


【mmap】

【select/poll/epoll】


【文件锁(flock/fcntl锁)】

【inotify文件系统事件监控】

【Linux下大文件的处理方法】

【/dev/null和/dev/zero的作用】

【aio/bio/nio】

【目录操作(opendir/readdir)】

【文件系统空间查询(statfs)】

【tmpfile和mkstemp临时文件】

【Linux进程管理】
【mutex、semaphore 与 condition variable】

【fork创建子进程的典型用法】

【wait/waitpid的作用和区别】

【对比 孤儿进程 僵尸进程 守护进程】

【如何创建守护进程(daemon)】


【终端,进程组,会话】

【exec族函数(execl/execv/execve)】

【system()和popen()的使用】

【pipe】

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
int main()
{
// 管道文件描述符数组
// pipefd[0]:管道读端;pipefd[1]:管道写端
int pipefd[2];
// 创建匿名管道,成功返回0,失败返回-1
pipe(pipefd);
// 创建子进程,fork后父子进程各自拥有管道文件描述符副本
pid_t pid = fork();
if (pid == 0)
{
// ========== 子进程分支 ==========
// 子进程负责写数据,不需要读端,关闭读描述符
close(pipefd[0]);
const char *msg = "Hello from child";
// 向管道写端写入字符串
write(pipefd[1], msg, strlen(msg));
// 写完数据,关闭写端
close(pipefd[1]);
exit(0);
}
else
{
// ========== 父进程分支 ==========
// 父进程负责读数据,不需要写端,关闭写描述符
close(pipefd[1]);
char buf[256];
// 从管道读端读取数据到缓冲区
read(pipefd[0], buf, sizeof(buf));
printf("父进程收到:%s\n", buf);
// 读完数据,关闭读端
close(pipefd[0]);
}
return 0;
}

【命名管道(FIFO)】

【共享内存(POSIX接口)】



【消息队列(POSIX接口)】

【信号(signal)的处理方法】


【信号量(POSIX有名/无名信号量)】








【进程资源限制(setrlimit)】

【进程优先级设置(nice/setpriority)】

【僵尸进程 避免方法】






【进程间通过Unix Domain Socket通信】


【多进程调试技巧】




【环境变量的操作】

【Linux进程内存查看方法】

【进程调度算法 CFS】


【Linux线程编程】
【死锁】




【多线程通讯方式】





【同步和互斥 阻塞非阻塞】


【pthread线程创建和基本使用】


【线程属性设置(pthread_attr)】

【互斥锁(pthread_mutex)的使用】

【条件变量(pthread_cond)的使用】

【读写锁(pthread_rwlock)】

【线程安全和可重入的区别】

【线程局部存储(TLS/pthread_key)】

【线程池的设计和实现】


#define POOL_SIZE 4
#define QUEUE_SIZE 64
typedef struct { // 结构体定义
void (*func)(void *arg);
void *arg;
} Task;
typedef struct { // 结构体定义
pthread_t threads[POOL_SIZE];
Task queue[QUEUE_SIZE];
int head, tail, count;
pthread_mutex_t lock;
pthread_cond_t not_empty;
pthread_cond_t not_full;
int shutdown;
} ThreadPool;
void *worker(void *arg) {
ThreadPool *pool = arg;
while (1) {
pthread_mutex_lock(&pool->lock); // 加锁(互斥)
while (pool->count == 0 && !pool->shutdown)
pthread_cond_wait(&pool->not_empty, &pool->lock);
if (pool->shutdown) {
pthread_mutex_unlock(&pool->lock); // 解锁
return NULL;
}
Task task = pool->queue[pool->head];
pool->head = (pool->head + 1) % QUEUE_SIZE;
pool->count--;
pthread_cond_signal(&pool->not_full); // 注册信号处理
pthread_mutex_unlock(&pool->lock); // 解锁
task.func(task.arg); // 执行任务
}
}
【线程取消(pthread_cancel)】

【线程屏障(pthread_barrier)】

【自旋锁(pthread_spinlock)】

【原子操作(GCC内建)】

【死锁分析与避免实践】

【线程与信号的交互】

【CPU亲和性(CPU Affinity)】

【线程安全的单例模式实现】


【无锁队列(Lock-free Queue)的原理】

【eventfd用于线程/进程间通知】

【timerfd定时器的使用】

【signalfd信号处理】

【Linux网络编程】
【socket编程基本流程(TCP)】

【UDP编程与TCP的区别】

【网络字节序转换】





【setsockopt常用选项】

【非阻塞IO与epoll结合】







【TCP粘包问题和解决方案】

【多路复用实现简单HTTP服务器】

【多播(Multicast)编程】


【raw socket原始套接字】

【网络调试工具和方法】

【Shell脚本与自动化】
【Shell脚本中的变量和参数】

【SHELL条件判断】

【Shell中的函数和返回值】

【Shell文本处理(grep/sed/awk)】




【Shell脚本实现自动化测试】



【Makefile自动化构建】

【CMake在嵌入式中的使用】




【嵌入式系统启动脚本编写】

【Python在嵌入式测试中的应用】

【嵌入式日志设计】

【Linux高级编程】
【Linux下串口编程】

【D-Bus进程间通信】

【Linux系统编程】
【Buildroot和Yocto】
01_buildroot的配置方法_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1hnEiznEDa?spm_id_from=333.788.videopod.episodes&vd_source=1f3f694d074ce0ac334eb3023001f728&p=3Yocto嵌入式Linux大杀器-合集_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV14bBQYbEMr/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728






【chroot pivot_root】

【exec】

【sendfile】
【timerfd】

【signal sigaction】
【进程描述符】


【fork/vfork/clone】

【LINUX进程】

【copy_to_user和copy_from_user】

【进程间通讯IPC】

【System V IPC和POSIX IPC】

【/proc文件系统】
【POSIX消息队列】
【monotonic】

【进程组 会话 setsid】

【信号量 共享内存】

【硬链接 软链接】

【gprof】

【netlink】




【pkg-config】

【termios】


【定时任务】


【LINUX中断】
【中断上下文】

【进程上下文和中断上下文】

【RTOS进程线程】


















2756

被折叠的 条评论
为什么被折叠?



