1. 汇编代码编程入门与栈帧管理

    汇编代码编程与栈帧管理示例 在22 讲中,我们侧重讲解了汇编语言的基础知识,包括构成元素、汇编指令和汇编语言中常用的寄存器。学习完基础知识之后,你要做的就是多加练习,和汇编语言“混熟”。小窍门是查看编译器所生成的汇编代码,跟着学习体会。

    2023/01/15 编译原理

  2. 记录Linux下mmap和munmap调用次数不匹配导致的问题解决

    问题描述 在共享内存使用过程中,程序在运行一段时间后会报错,伪代码如下: for(int i = 0; i < batch; i++) { for(int j = 0; j < inputs_num; j++) { auto address = mmap(nullptr, bytes_size, PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0); //业务逻辑代码... } //业务逻辑代码... auto ret = munmap(item->address, item->bytes_size); } 由于最初测试的场景batch=1, 所以没有发现问题。当进行大规模数据量测试时,会报错,具体报错及现象为:

    2023/01/11 Linux内核架构与系统编程

  3. Linux多线程信号总结

    Linux多线程信号总结 Linux多线程信号总结(一)

    2022/12/26 Linux内核架构与系统编程

  4. Linux共享库的组织

    共享库系统路径 ​目前大多数包括Linux在内的开源操作系统都遵守一个叫做FHS(File Hierarchy Standard)的标准,这个标准规定了一个系统中系统文件应该如何存放,包括各个目录的结构、组织和作用。一个系统中主要有两个存放共享库的位置,如下:

    2022/12/15 Linux内核架构与系统编程

  5. Git--常用命令及问题解决

    常用命令行教程

    2022/12/11 Git命令行

  6. Linux等待信号--sigsuspend

    Linux 等待信号(sigsuspend) ```c++ /* sigsuspend()函数说明 */

    2022/12/09 Linux内核架构与系统编程

  7. Linux进程间通信--共享内存

    背景 项目采用基于GRPC框架后,客户端和服务端单次交互过程中存在large size消息(超过20M)。因为客户端和服务端同在同一服务器中部署,所以期望通过GRPC + IPC的方式提高硬件利用率,降低时延。 关于此过程中共享内存的使用方式,记录如下。

    2022/12/03 Linux内核架构与系统编程

  8. Interface Libraries

    Interface Libraries add_library(<name> INTERFACE)

    2022/11/25 cmake