04 2023 档案
摘要:进程 进程,描述的是程序的执行过程,是运行着程序的代表,在操作系统中,每个进程的内存空间都是独立的,使用多进程并发有两个缺点:一是内核的管理成本高,而是无法简单地通过内存同步数据(进程运行的虚拟内存空间),很不方便,于是多线程模式就出现了。 线程 线程是操作系统能够运行运算调度的最小单位。它被包含在
阅读全文
摘要:mmap简介 mmap是零拷贝技术的一种实现 使用系统调用读写文件 修改一个文件的内容需要三个步骤: 1.把文件内容(File)读入内存中(page cache) 2.修改内存中的内容(在用户空间) 3.把修改后用户空间的数据写入page cache,再同步到File中 使用如下代码实现上面过程:
阅读全文
摘要:框架分析 框架可以分为两部分看:控制流+数据流,之前已经大概的描述了控制流,数据流部分就是video buffer,V4l2 buffer的管理是通过videobuf2来完成的,它充当于用户空间和驱动空间之间的中间层,并提供模块化的内存管理功能。 上图大体包含了videobuf2的框架 1.vb2_
阅读全文
摘要:valgrind工具安装 Valgrind是一套Linux下的仿真调试工具工具的集合。由内核core以及基于内核的其他调试工具组成。内核类似与一个框架(framework),它模拟了一个CPU环境并提供服务给其他工具,而其他公户类似于插件(plug-in),利用内核提供各种特定的内存调试任务。val
阅读全文
摘要:Linux进程管理包括进程调度,中断处理,信号,进程优先级,进程切换,进程状态,进程内存等等。 什么是进程 进程是在处理器上执行的一个实例,进程可使用任意资源以便Linux内核可以处理完成它的任务。在Linux上运行的所有进程都是通过task_struct结构来管理的,被称为进程描述符。一个进程描述
阅读全文
摘要:简介 V4L2是Video for linux2的简称,是Linux中关于视频设备的内核驱动框架。 常用结构体: 定义在include/linux/videodev2.h struct v4l2_requestbuffers // 申请帧缓冲,对应命令VIDIOC_REQBUFS struct v4
阅读全文