![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 74
土豆西瓜大芝麻
这个作者很懒,什么都没留下…
展开
-
深度解析linux内核模块编译makefile
linux 模块编译的选项原创 2023-10-22 11:01:31 · 1877 阅读 · 0 评论 -
什么是Zero-copy零拷贝
零拷贝 zero copy的含义以及发展过程。转载 2023-04-23 14:32:00 · 214 阅读 · 0 评论 -
ip rule,ip route,iptables 三者之间的关系
通过简单示例阐述ip rule,ip route,iptables 三者之间的关系转载 2023-03-31 17:28:28 · 638 阅读 · 0 评论 -
netstat命令Local Address解释
Local Address(127.0.0.1:9600) 代表只有第一个网卡(lo,只能处理目标地址是127.0.0.1或者Localhost的网络包),可以接收请求端口9600的数据包。Local Address定义了传入的连接请求(即tcp SYN数据包)将被哪个网卡接收(因为电脑上一般都有eth0和lo至少2个网卡)。Local Address (0.0.0.0:8600)代表任意一个网卡,都可以接收请求端口8600的数据包。即 B到端口8600、8024的网络是通的,到端口9600网络不通。转载 2023-02-28 21:25:55 · 1722 阅读 · 0 评论 -
ubuntu下搜索文件的几种方法
ubuntu下查找文件的几种方法转载 2023-01-03 15:01:03 · 9341 阅读 · 0 评论 -
解决CMake时的Find_Package失败问题
今天在编译组内代码时遇到了Find_package问题,具体来说就是找不到redis的库及相关头文件。针对上述问题,我们查找并安装了class_loader的开发库,上述问题就解决了。也就是继续执行cmake,又出现了问题,找不到hiredis库使用前面的方法,发现安装hiredis的开发库之后,仍然报错。然后使用whereis查找hiredis对应的头文件和库。分别在/usr/include/hiredis下面和/usr/lib/x86_64-linux-gnu下面。然后重新执行cmake,成功。原创 2023-01-03 14:55:58 · 10626 阅读 · 0 评论 -
使用cmake编译内核模块的几种方法
使用cmake编译内核模块的方法原创 2022-12-16 17:37:42 · 2404 阅读 · 1 评论 -
WARNING: modpost: missing MODULE_LICENSE()以及内核模块无法验证
missing MODULE_LICENSE()以及内核模块无法验证的解决方法转载 2022-12-09 20:11:20 · 3824 阅读 · 0 评论 -
Linux内核模块使用浮点float double运算的方法
最近我们有一个需求,需要把用户态的浮点数运算全部放到内核态运行,以提高运行速度,移植的过程中发现问题没有这么简单,然后我们抽丝剥茧,揭开 Linux 对浮点float double处理的原理。转载 2022-12-09 06:21:07 · 3910 阅读 · 0 评论 -
linux 下查看进程内的线程有哪些
获取进程中的线程数量的方式。原创 2022-12-04 22:37:44 · 2709 阅读 · 0 评论 -
进程和线程ID
其实,每个进程内的线程库生成的线程,应该算是用户态的线程,只有这些线程映射到操作系统内核所认识的线程,才能被调度。这个时候,映射到操作系统内核能识别的线程的时候,操作系统的对应线程也会有一个线程ID,这个ID在整个操作系统空间是唯一的。而在一个进程内的线程需要和另一个进程内的线程通信的时候(操作系统级别的进程间通信)才会用到,因为需要标识唯一的一个线程。如果我们使用posix线程库pthread创建线程,那每个线程的ID是谁生成的呢?另外,主线程(main)获取的进程ID==线程ID,而子线程就会不同。转载 2022-12-02 16:58:01 · 225 阅读 · 0 评论 -
ubuntu上配置中文的man助手
配置linux编程的中文帮助手册原创 2022-11-25 17:17:45 · 381 阅读 · 0 评论 -
linux 内核中 memcpy 和 memmove 函数的区别和实现
memcpy 和memmove都是把 src 指向的对象中的 size 个字符拷贝到 dest 所指向的对象中,返回指向结果对象的指针。但这两个函数在处理内存区域重叠的方式不同。转载 2022-11-25 11:07:55 · 1006 阅读 · 0 评论 -
Posix共享内存
1. 概述共享内存是可用IPC机制中最快的,2. mmap、munmap和msync函数mmapmmap函数把一个文件或一个Posix共享内存对象映射到调用进程的地址空间,使用该函数有三个目的:使用普通文件以提供内存映射IO使用特殊文件以提供匿名内存映射使用Posix共享内存对象以提供Posix共享内存区通常设为NULL,让内核自己决定起始地址它从被映射文件fd开头起第offset个字节处开始算,offset通常设为0,MAP_SHARED进程间共享内存需要使用MAP_SHARED。转载 2022-11-25 10:51:57 · 847 阅读 · 1 评论 -
使用互斥锁mutex进行进程间同步的说明和示例
进程间同步可以使用互斥量mutex(互斥锁)、信号量和文件锁。这里面的重要函数是pthread_mutex_init(),它负责进行互斥锁的初始化,只有初始化之后才能使用它进行加锁、解锁。这里需要说明的是,mutex不仅可以用于进程间的同步,还可以用于线程间的同步,默认情况下是线程间同步。如果要用于进程间同步,则需要在pthread_mutex_init初始化之前,修改其属性为进程间共享。pthread_mutexattr_t mattr 类型就是用于定义mutex锁的属性的。转载 2022-11-24 17:32:04 · 1484 阅读 · 1 评论 -
关于inotify监控mmap内存映射或共享内存相关变动的做法
inotify监控mmap内存映射或共享内存相关变动的做法原创 2022-11-22 11:03:43 · 561 阅读 · 0 评论 -
inotify监控时为什么出现了IN_IGNORED事件
inotify只是监视句柄,并非文件路径(实际上监听的是inode),当文件标示符对应的文件被删除时,这个文件标识符也被自动从inotify中移除,在以上的代码中,也就意味着inotify中没有任何watch标识符了,自然也就不会通知IN_MODIFY事件。这里要注意的是:文件被删除,不一定会产生IN_IGNORED事件,也就是说文件被删除时,不一定会把文件对应的标识符自动从inotify中删除。看来,我的程序是有问题的。三、删除a文件,并重启程序,发现inotify_init注册失败,而errno为2。转载 2022-11-22 10:45:47 · 547 阅读 · 0 评论 -
System V的共享内存shm的释放问题
这样,System V中的共享内存的对象如果没有被显示地删除的话,及时所有访问共享内存的进程都已经终止了,该共享内存区域的对象仍然会在内核中出现,也就是System V的共享内存对象的生命周期是和系统内核的生命周期一致的。但是这里面有个麻烦的地方是,写进程每几秒钟就会申请一个新的20M的共享内存(因为有些原因,不能使用同一个共享内存),为了防止共享内存消耗过大,它维护了一个长度20的vector,当超出时就删掉共享缓冲区,调用的shmDel操作。读进程也会从相应的新的共享内存中读取新的数据。原创 2022-11-08 22:09:40 · 382 阅读 · 0 评论 -
不能对空文件进行mmap
不能对空文件进行mmap原创 2022-11-02 15:18:58 · 593 阅读 · 0 评论 -
float类型表示方式及范围深度解析
的尾数部分中小数点前还隐藏着一个固定的整数值整数1,尾数部分的23位只用来表示小数点后的值,这种方式可保证浮点数有唯一的表示形式。采用渐进式下溢出的原因是,如果不采用,0与绝对值最小的浮点数之间距离将大于两个相邻浮点数之间的距离,且前者是后者的。,转换成十进制原码为 -126 ~ 127,也就是整个指数部分(注意:只算指数部分)所能表示的最小的正数值为。最大绝对值就比较简单了,当尾数全为1,指数为127时为最大,也就是。,其中s为符号位-1或1,t为尾数,i为指数。尾数部分部分共23位,表示范围为。转载 2022-11-01 20:41:12 · 13874 阅读 · 2 评论 -
编写一个GStreamer插件
编写gstreamer插件转载 2022-10-11 16:02:51 · 2340 阅读 · 0 评论 -
编写一个GStreamer应用
编写一个GStreamer应用转载 2022-10-11 15:12:33 · 945 阅读 · 0 评论 -
Gstreamer概述
Gstreamer概述转载 2022-10-10 21:32:07 · 3387 阅读 · 1 评论 -
ubuntu安装和使用GStreamer
ubuntu安装使用gstreamer转载 2022-10-10 16:53:05 · 3484 阅读 · 0 评论 -
守护进程为什么需要两次fork
linux守护进程为什么需要两次fork转载 2022-09-29 15:55:47 · 316 阅读 · 0 评论 -
linux守护进程以及如何编写守护进程程序
linux守护进程以及如何编写守护进程程序转载 2022-09-19 00:56:43 · 785 阅读 · 0 评论 -
Linux基础概念--进程、子进程、进程组和会话
Linux基础概念--进程、子进程和进程组、会话原创 2022-09-19 00:43:19 · 2597 阅读 · 0 评论 -
linux设置开机启动脚本的3种方法
linux设置开机启动脚本的3种方法转载 2022-09-15 19:58:29 · 113923 阅读 · 1 评论 -
Linux 进程信息收集与行为分析
Linux 进程信息收集与行为分析转载 2022-09-08 14:25:24 · 862 阅读 · 0 评论 -
linux hook方法整理
linux上使用hook的方法总结转载 2022-09-06 17:32:33 · 1562 阅读 · 0 评论 -
Linux下C++中可使用的3中Hook方法
Linux下C++中可使用的3中Hook方法转载 2022-09-06 17:01:19 · 773 阅读 · 0 评论 -
Linux利用hook技术实现文件监控和网络过滤
linux下利用hook技术实现文件过滤和网络连接过滤(黑名单、白名单)转载 2022-09-06 16:48:08 · 1224 阅读 · 0 评论 -
Hook技术
linux上基于C和C++的hook尝试原创 2022-09-06 16:38:39 · 3492 阅读 · 0 评论 -
多连接服务器实现与简单P2P聊天程序例程与SO_REUSEADDR选项
linux下服务器和多客户端通信示例以及P2P聊天室示例转载 2022-09-05 23:24:32 · 238 阅读 · 0 评论 -
fork出来的父子进程对信号的处理
在terminal中运行的父子进程在收到ctrl+c时如何响应。原创 2022-09-05 23:15:21 · 1701 阅读 · 0 评论 -
多进程间通信IPC:信号操作函数之signal和kill
linux中的信号机制与kill操作原创 2022-09-05 22:13:21 · 1015 阅读 · 0 评论 -
使用Supervisor进行监控进程并实现自动重启
linux上借助supervisor实现守护进程原创 2022-09-05 17:07:12 · 5956 阅读 · 0 评论 -
Socket API 与 简单例程
介绍Socket编程的一些API,并利用这些API实现一个客户端-服务器模型的一个简单TCP通信例程原创 2022-09-05 10:51:14 · 226 阅读 · 0 评论 -
socket基本概念
socket的基本概念原创 2022-09-05 10:10:04 · 649 阅读 · 0 评论 -
CPU空闲时间在干什么
CPU空闲时间在干什么转载 2022-08-31 10:58:27 · 731 阅读 · 0 评论