【Linux系统】汇总

【Linux基础概念】

【 进程 vs 线程 vs 协程】

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

【IPC】

【线程同步四件套】

【Linux基础命令】

【常用文件操作命令】

【文件权限 rwx】

rwx?775?一个视频讲清Linux权限管理_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1E7raBxEhi/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【常用文本处理命令】

【进程相关命令】

【GCC 编译选项】

从代码到命令 GCC入门指南_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1b2cUzuEMw/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【Makefile 基本语法】

20分钟Makefile光速入门教程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1tyWWeeEpp/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

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

【环境变量】

Linux操作系统入门:环境变量配置_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1eL4y187zB/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【管道和重定向】

【shell脚本】

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

检测内存泄漏Sanitizer_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1D3AoekEUa/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【strace和ltrace的用法】

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

【/proc文件系统在调试中的应用】

【交叉编译】

一次编写 到处编译? 彻底弄懂C/C++构建类型与交叉编译 | 嵌入式 | 机器人 | 软硬件全栈_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1i7ofBNExr/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

什么是交叉编译_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1px4y1s72v/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【GDB远程调试】

【Linux文件IO操作】

【open/read/write/close系统调用】

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

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

【mmap】

【select/poll/epoll】

【并发】IO多路复用select/poll/epoll介绍_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1qJ411w7du/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【文件锁(flock/fcntl锁)】

【inotify文件系统事件监控】

linux懒人运维:inotify监听目录工具(没啥用-了解就行)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1wMe6e8EaG/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

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

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

【aio/bio/nio】

bio/nio/aio是什么?同步非阻塞如何理解?多路复用到底是个啥?帮你全部搞定!_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1gozdYSEkR/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【目录操作(opendir/readdir)】

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

Linux命令精讲之stat(文件属性)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1g1Tb6DEg8/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【tmpfile和mkstemp临时文件】

【Linux进程管理】

【mutex、semaphore 与 condition variable】

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

【wait/waitpid的作用和区别】

Linux快速入门:系统调用之waitpid_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV13JYLzhE1u/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

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

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

僵尸进程 孤儿进程 守护进程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1RH4y1w7o9/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【终端,进程组,会话】

15_终端,进程组,会话_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1ZoC3Y1E7w/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【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线程编程】

【死锁】

百度C++二面:内存泄露如何排查,以 valgrind 为例【码农Mark】_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1GphzzfEKh/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【多线程通讯方式】

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

【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)的原理】

字节C++二面:无锁队列的原理实现,对比其他队列的优劣势?【码农Mark】_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1NVVs6mE9n/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

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

【timerfd定时器的使用】

【signalfd信号处理】

【Linux网络编程】

【socket编程基本流程(TCP)】

【UDP编程与TCP的区别】

【网络字节序转换】

【setsockopt常用选项】

fcntl vs setsockopt:Linux文件描述符与Socket选项操作详解_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1MjwSzkEb4/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【非阻塞IO与epoll结合】

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

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

【多播(Multicast)编程】

【raw socket原始套接字】

【网络调试工具和方法】

【Shell脚本与自动化】

【Shell脚本中的变量和参数】

【SHELL条件判断】

【Shell中的函数和返回值】

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

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

【Makefile自动化构建】

【CMake在嵌入式中的使用】

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

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

【嵌入式日志设计】

【Linux高级编程】

【Linux下串口编程】

20-Linux的串口编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1rm4y1T74g/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【D-Bus进程间通信】

【Linux系统编程】

【Buildroot和Yocto】

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

【chroot  pivot_root】

【exec】

5.exec族函数实操_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1JN411K7y4/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【sendfile】

揭秘Linux内核-如何实现sendfile系统的零拷贝机制?_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1k7TK66EL5/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【timerfd】

【signal sigaction】

Linux信号详解(可靠信号、不可靠信号、阻塞信号、信号处理函数)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV145411a76x/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【进程描述符】

【fork/vfork/clone】

第14天:进程创建系统调用:fork vfork clone 的差异_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1UK5M63ETY/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【LINUX进程】

Linux如何调度进程?大学老师不讲的,看完动画秒懂!_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1juzZYhEG2/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【copy_to_user和copy_from_user】

【进程间通讯IPC】

15分钟把进程间通信讲明白了:共享内存 vs 消息传递 | 进程协作 / 高性能程序_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1VwaGzpEBL/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【System V IPC和POSIX IPC】

揭密_Linux_IPC实现方式对比,谁强谁弱?_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV19hJx61EBp/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【/proc文件系统】

Linux proc文件系统详解_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1vGXMYHEbz/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【POSIX消息队列】

揭密_Linux_POSIX如何实现消息队列?_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1SzJ56rESY/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【monotonic】

【进程组 会话 setsid】

【信号量 共享内存】

【硬链接 软链接】

【gprof】

C++面试高频性能调优全流程:gprof、perf、valgrind、kcachegrind 全解!_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1W9Nzz7EXS/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【netlink】

【pkg-config】

linux系统的pkg-config命令的使用(WSL)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1yP4y1m7xw/?spm_id_from=333.337.search-card.all.click&vd_source=1f3f694d074ce0ac334eb3023001f728

【termios】

【定时任务】

【LINUX中断】

【中断上下文】

进程上下文中断上下文

【RTOS进程线程】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值