- 博客(699)
- 资源 (37)
- 收藏
- 关注
原创 79 关于 kthreadd 进程
这个 主要是 最开始的时候了解驱动的时候, 看到的一系列的 case, 这里 来大致剖析一下 相关的道理这些模块 是怎么和内核交互的, 内核的这些业务是怎么实现的这里主要是一个模块创建了一个 kthread 的线程, 然后 执行目标函数然后这里主要是设计了 模块来调用 linux 的相关系统函数, 以及 kthread 的相关知识。
2025-08-15 10:43:48
350
原创 78 关于 ksoftirqd 进程
如果是在 __do_softirq 处理的期间又有新的 软中断 加入队列, 则此处会唤醒 ksoftirqd 进程来处理具体的软中断。这个 主要是 最开始的时候了解驱动的时候, 看到的一系列的 case, 这里 来大致剖析一下 相关的道理。然后这里主要是设计了 模块来调用 timer 的相关系统函数, 以及 kthread 的相关知识。这些模块 是怎么和内核交互的, 内核的这些业务是怎么实现的。ksoftirqd 进程的执行主要是处理 未执行的软中断相关。ksoftirqd 的执行主要是处理 相关软中断。
2025-08-15 10:43:41
235
原创 77 模块编程之注册一个中断处理
这个 主要是 最开始的时候了解驱动的时候, 看到的一系列的 case, 这里 来大致剖析一下 相关的道理这些模块 是怎么和内核交互的, 内核的这些业务是怎么实现的这里主要是一个模块来 注册了一个中断, 以及中断的触发然后 这里主要是来看一下 注册中断的流程, 以及中断流程的处理。
2025-08-08 17:47:01
379
原创 76 模块编程之高精度定时器
这个 主要是 最开始的时候了解驱动的时候, 看到的一系列的 case, 这里 来大致剖析一下 相关的道理这些模块 是怎么和内核交互的, 内核的这些业务是怎么实现的这里主要是一个模块创建了一个 hrtimer, 然后 0.3秒后执行, 然后 在执行的过程中递归加入当前任务到下一次队列然后这里主要是设计了 模块来调用 timer 的相关系统函数, 以及 kthread 的相关知识hrtimer_init 中主要是更新了 timer->base, timer->node。
2025-08-08 17:46:55
297
原创 75 模块编程之定时器
这个 主要是 最开始的时候了解驱动的时候, 看到的一系列的 case, 这里 来大致剖析一下 相关的道理这些模块 是怎么和内核交互的, 内核的这些业务是怎么实现的这里主要是一个模块创建了一个 timer, 然后 0.3秒后执行, 然后 在执行的过程中递归加入当前任务到下一次队列然后这里主要是设计了 模块来调用 timer 的相关系统函数, 以及 kthread 的相关知识setup_timer 的相关宏定义如下。
2025-08-02 05:47:12
888
原创 74 模块编程之workQueue
这个 主要是 最开始的时候了解驱动的时候, 看到的一系列的 case, 这里 来大致剖析一下 相关的道理这些模块 是怎么和内核交互的, 内核的这些业务是怎么实现的这里主要是一个模块创建了一个 work_struct, 然后将其放到了 system_wq 中执行然后这里主要是设计了 模块初始化的系统调用, 和 kthreadd 来执行给定的 work_struct在 module_init 的第一个 printk。
2025-08-02 05:47:06
388
原创 73 模块编程之自定义 mmap 和 fault
map_vclose 地址为 0x0017, 可以看到 这里和上面 vma->vm_ops->close 的地址大概是能够对上的。map_fault 地址为 0x00f3, 可以看到 这里和上面 vma->vm_ops->fault的地址大概是能够对上的。map_vopen 地址为 0x0000, 可以看到 这里和上面 vma->vm_ops->open 的地址大概是能够对上的。然后这里是 map_fault 中的 vmalloc_to_pfn 的调用, 在初始化 pfn_start 的地方。
2025-07-26 08:52:40
272
原创 72 模块编程之新增一个proc文件
这个 主要是 最开始的时候了解驱动的时候, 看到的一系列的 case, 这里 来大致剖析一下 相关的道理这些模块 是怎么和内核交互的, 内核的这些业务是怎么实现的这里主要是一个模块来注册了一个 proc 的文件项然后这个proc文件 可读可写, 基于的是分配的一段空间这个可以先参考。
2025-07-26 08:52:33
416
原创 71 模块编程之新增一个字符设备
这个 主要是 最开始的时候了解驱动的时候, 看到的一系列的 case, 这里 来大致剖析一下 相关的道理这些模块 是怎么和内核交互的, 内核的这些业务是怎么实现的这里主要是一个模块来注册了一个字符设备然后这个字符设备 可读可写, 基于的是分配的一段空间分为创建 dev, 初始化 cdev, 关联 dev, cdev创建设备节点创建 char_device_struct, 将 dev 和 char_device_sturct 关联起来, 通过 major, baseminor 关联。
2025-07-18 23:00:57
900
原创 70 gdb attach $pid, process 2021 is already traced by process 2019
因为此时 insmod 进程卡住了, 因此 我想 gdb attach 上去看一下 堆栈信息。杀掉 stace 进程, 然后 再 attach 一下就可以了。但是 attach 的时候失败了, 提示信息如下。
2025-07-18 23:00:46
258
原创 69 局部变量的空间分配
这是一个 老生常谈的问题这里主要是探索在 函数中分配的局部变量 他使用的空间是哪里的空间, 有什么特征然后 我们来看一下 这里的编译之后的是一个实现。
2025-07-12 21:10:50
263
原创 68 指针的减法操作
这是一个 老生常谈的问题就是 两个结构体Person指针, p1, p2, 指向的是 虚拟内存中相邻的两个结构体对象然后 p2 – p1 的值得到的是 1, 而不是 sizeof(struct Person)然后 我们来看一下 这里的编译之后的是一个实现。
2025-07-12 21:10:41
250
原创 66 让内核 hang 住
此讨论主要是来自于 chinaunix 中的一篇帖子然后 这里 仅仅是写了一个 case 来复现这里的情况以及 在不同的机器上面做了一些测试核心是使用 panic 函数。
2025-07-04 15:05:08
184
原创 65 软链接 和 硬链接
新建文件的时候, 会在父文件夹下面增加当前文件的 dentry 的信息, __d_rehash 会将这个文件的 dentry 相关信息放到 dentry_hashtable 中。比如 部署了服务在一个路径, 但是这个路径所在磁盘空间满了, 需要把数据迁移到其他地方, 但是还需要通过当前服务路径访问数据, 这时可以挂一个软链接。访问文件数据的时候是通过 文件夹下面的元数据 -> inode元数据 -> 数据块数据。文件的本质由几部分组成 文件夹下面的元数据 + inode元数据 + 数据块数据。
2025-06-27 10:08:19
312
原创 64 同局域网机器如何配置路由访问当前机器的NAT网络的虚拟机
场景如下我这边一台机器 启动了虚拟机, 开放了一些 服务, 这里讲 相对特殊的 kafka 的服务kafka 监听虚拟机主机 9092 端口, 暴露给客户端的地址为 192.168.220.130:9092然后 同局域网下其他同事 想要使用我这个 kafka, 会发现 连接不上当然 处理的方式 我们在之前的一篇文章中也有提到, 我们这里 提及另外的一种解决方式如何 解决掉这里的网络问题这里简单介绍一下 网络环境我的机器 ip 是 10.60.50.16。
2025-06-27 10:08:04
819
原创 63 网络交互的过程中目标设备的选择
这里主要是 调研一下 发送网络数据包的过程中 选择网络设备比如 向本机发送信息, 走的是 lo向局域网其他主机发送信息, 走无线网卡 或者 有线网卡。
2025-06-20 12:41:10
390
原创 62 关于 module 的处理
我们 经常认为的 linux 开发, 是指的是 linux 驱动开发驱动通常来说 会以 模块的方式 嵌入到 linux 系统中我们这里 来看一下 linux 中 module 的相关处理模块主要是 携带了 init, exit 两个函数, 然后 linux 会在目标时机 在内核空间执行。
2025-06-20 12:41:01
439
原创 61 mmap 连续映射地址空间有什么关联?
第六个 mmap 调用如下, dl_main - init_tls - dl_allocate_tls_storage - libc_memalign 映射了 4k 的映射区, 映射的区间是 0x7ffff7ff5000 - 0x7ffff7ff6000。第七个 mmap 调用如下, dl_main - init_tls - dl_allocate_tls_storage - allocate_dtv 映射了 4k 的映射区, 映射的区间是 0x7ffff7ff4000 - 0x7ffff7ff5000。
2025-06-13 17:12:34
312
原创 04 dnsmasq 的环境搭建
首先是 clone 代码, git clone git://thekelleys.org.uk/dnsmasq.git。然后 clion 中新建 MakeApplication, 配置 Target, 配置 binary, 配置程序参数。然后调试如下, 这里是 “--version” 输出的地方的具体的代码, 可以看到 断点停下来了。将编译好的整个项目拷贝到 调试机器, 该目录如下, 这里是 dnsmasq 的 binary。然后编译出来的 binary 如下, 其中包含了调试信息。最顶层的目录结构如下。
2025-06-13 17:12:11
210
原创 02 nginx 的环境搭建
这一系列文章主要包含的内容主要是 各种常用软件的调试环境的搭建主要的目的是 搭建一个可打断点的一个调试环境c 系列 主要是基于 clion 调试, java 系列主要是基于 idea 调试, js 系列主要是基于 webstorm 调试需要有一定的 c, c++, java, js 相关基础基于的环境是一个 ubuntu16.04 desktop, 初始的时候 仅仅更新了源, 安装了 clion。
2025-06-06 18:59:22
432
原创 03 mysql 的环境搭建
前言这一系列文章主要包含的内容主要是 各种常用软件的调试环境的搭建主要的目的是 搭建一个可打断点的一个调试环境c 系列 主要是基于 clion 调试, java 系列主要是基于 idea 调试, js 系列主要是基于 webstorm 调试需要有一定的 c, c++, java, js 相关基础基于的环境是一个 ubuntu16.04 desktop, 初始的时候 仅仅更新了源, 安装了 clion。
2025-06-06 18:58:40
525
原创 01 redis 的环境搭建
这一系列文章主要包含的内容主要是 各种常用软件的调试环境的搭建主要的目的是 搭建一个可打断点的一个调试环境c 系列 主要是基于 clion 调试, java 系列主要是基于 idea 调试, js 系列主要是基于 webstorm 调试需要有一定的 c, c++, java, js 相关基础基于的环境是一个 ubuntu16.04 desktop, 初始的时候 仅仅更新了源, 安装了 clion。
2025-05-30 20:57:20
539
原创 03 基于 java udp 做一个dns服务器 和 一个dns代理服务器
这个也是 来自于一个朋友的需求最终的目的是实现一个 dns 代理服务器, 当然 这本质也是一个 dns 服务器并且 dns 代理服务器是依赖于 一个 dns 服务器的, 因此 顺便给一个 dns 服务器的 demo这里 主要是 基于 udp 的一个 dns 请求, 响应数据的交互。
2025-05-23 20:19:57
452
原创 02 dnsmasq 中的 dhcp服务
请求这边主要是包含了 messageType, 硬件地址类型[mac], trxId, flags, clientAddress, serverAddress, macAddress, serverHostName, bootFileName, cookie, messageType, serverIdentIfier, requestedIpAddress, parameterList 等等的相关信息。)” 是在目标客户端正在使用某个ip的配置, 复用该 ip 配置。第五个 “else if(!
2025-05-16 11:35:05
783
原创 01 dnsmasq 中 dns服务
比如 现在我的应用在服务器 192.168.220.133 但是我不想记这个生硬的 ip, 我可能更期望记录一个域名, 比如 app.com, 这时候 就可以在 dns 服务器上面增加一个映射 app.com -> 192.168.220.133。dns 这边主要是包含了一个 txId, flags, questions, answterRRs, AuthorityRRs, AdditionalRRs, 以及具体的查询请求。传入的待写出的指针为 &ansp, 这个的处理在上面, 我们后面来看。
2025-05-09 21:51:01
914
原创 04 基于 STM32 的时钟展示程序
我们经常会看到 各个场合下面有 基于数码管 的时钟程序比如 在车站, 教室, 办公室 等等 各个场合都有然后 这里就是做一个 简单的 时钟程序 展示程序。
2025-05-03 18:24:49
571
1
原创 03 基于 STM32 的温度控制系统
设计内容:使用STM32设计一个空调温度的显示控制系统设计要求:1.温度显示范围为16-30摄氏度2.按键K1实现显示温度加1,按键K2实现显示温度减1,低于16°或高于30°,显示数值不变3.正常按键蜂鸣器响一次,超出阈值蜂鸣器报警两下。
2025-04-27 11:31:19
529
1
原创 15 nginx 中默认的 proxy_buffering 导致基于 http 的流式响应存在 buffer, 以 4kb 一批次返回
这也是最近碰到的一个问题直连 流式 http 服务, 发现 流式响应正常, 0.1 秒接收到一个响应但是 经过 nginx 代理一层之后, 就发现了 类似于缓冲的效果, 1秒接收到 10个响应最终 调试 发现是 nginx 的 proxy_buffering 配置引起的然后 更新 proxy_buffering 为 off 解决了这个问题这里 主要是 来调试一下 这个 proxy_buffering 的影响。
2025-04-18 08:18:41
764
1
原创 14 nginx 的 dns 缓存的流程
ngx_http_upstream.ngx_peer_connection_t 的数据来自于这里的 ngx_http_upstream.ngx_peer_connection_t.data 数据类型是 ngx_http_upstream_rr_peer_data_t。这里会过的比较快, 大体的意思是 nginx 这边解析配置文件的时候 创建了对应的配置数据结构, 初始化的时候就进行了 dns 解析, 然后 后面的业务请求这边使用的是 这套配置。
2025-04-11 20:22:19
1056
原创 13 nginx try_files 的实现
这个是之前 项目中使用到了 nginx 的 try_files 来获取静态资源文件然后 当时的配置 貌似是存在一定的问题吧然后 这里来看一下 try_files 的相关实现。
2025-04-06 06:22:41
472
原创 12 nginx + springboot 上传文件超过大小限制
这是一个 上传文件的相关的问题前端页面通过 nginx 部署上传文件到 nginx, 然后 nginx 转发给相应的后端服务, 然后 后端这边做具体的业务处理这里涉及到 nginx 的最大客户端请求的配置, 后台服务这边 最大上传文件的配置然后 后端这边, 主要是对应于 servlet 的相关的配置这个限制处理是在 ngx_http_core_module 中处理的因为我们这里没有配置 client_max_body_size, 然后这里 使用的默认值 1*1024*1024。
2025-03-29 07:40:36
720
原创 11 关于 nginx: [emerg] host not found in upstream “cdn.optimizely.com“ in nginx.con
呵呵 这是最近帮助同事 搭建 pageplug 的时候碰到的一个问题, 当时 我觉得还蛮奇怪, 为什么启动服务 需要去验证访问 cdn.optimizely.com?然后 需要花点时间 看一下这个问题, 稍微梳理一下然后 也发现了 自己理解的的一些问题, 这里并没有去 验证访问 cdn.optimizely.com, 只是尝试去解析 cdn.optimizely.com 的地址信息, 没有获取到 然后 nginx 报错了而已。
2025-03-21 09:00:05
372
原创 04 1个路由器配置一个子网的dhcp服务
这是最近一个朋友的 ensp 相关的问题, 这里来大致了解一下 ensp, 计算机网络拓扑 相关基础知识这里一系列文章, 主要是参照了这位博主的这里 我只是做了一个记录, 自己实际操作了一遍, 增强了一些 自己的理解当然 这里仅仅是一个 简单的示例, 实际场景中会更加复杂。
2025-03-14 17:19:27
443
原创 03 2个路由器构造三个子网相互访问, 3个路由器构造5个子网相互访问
这是最近一个朋友的 ensp 相关的问题, 这里来大致了解一下 ensp, 计算机网络拓扑 相关基础知识这里一系列文章, 主要是参照了这位博主的这里 我只是做了一个记录, 自己实际操作了一遍, 增强了一些 自己的理解当然 这里仅仅是一个 简单的示例, 实际场景中会更加复杂。
2025-03-07 21:10:52
558
原创 02 2个交换机+vlan构造两个逻辑上的子网
这是最近一个朋友的 ensp 相关的问题, 这里来大致了解一下 ensp, 计算机网络拓扑 相关基础知识这里一系列文章, 主要是参照了这位博主的这里 我只是做了一个记录, 自己实际操作了一遍, 增强了一些 自己的理解当然 这里仅仅是一个 简单的示例, 实际场景中会更加复杂。
2025-03-01 09:50:13
223
原创 01 1个路由器+两个子网
这是最近一个朋友的 ensp 相关的问题, 这里来大致了解一下 ensp, 计算机网络拓扑 相关基础知识这里一系列文章, 主要是参照了这位博主的这里 我只是做了一个记录, 自己实际操作了一遍, 增强了一些 自己的理解。
2025-02-21 17:06:59
397
原创 28 在可以控制 postgres 服务器, 不知道任何用户名的情况下怎 进入 postgres 服务器
7C61624F757B026B686B69 在一定的场景下是表示 "pms_db_role"最终登陆成功完。
2025-02-14 21:43:38
614
原创 03/29 使用 海康SDK 对接时使用的 MysqlUtils
最近朋友的需求, 是需要使用 海康sdk 连接海康设备, 进行数据的获取, 比如 进出车辆, 进出人员这一部分是 资源比较贫瘠时的一个 Mysql 工具类。
2025-02-07 17:42:32
330
原创 04/30 使用 海康SDK 对接时使用的 ConfigUtils
最近朋友的需求, 是需要使用 海康sdk 连接海康设备, 进行数据的获取, 比如 进出车辆, 进出人员这一部分是 资源比较贫瘠时的一个 Config 工具类。
2025-02-07 17:41:52
201
jface.text3.9 - Src & Bin
2015-10-14
mybatis-springMapper太多导致StackOverflow_StackTrace
2018-10-14
1个路由器配置一个子网的dhcp服务+2个路由器配置dhcp服务器+dhcp中继器配置两个子网的dhcp服务
2024-06-10
html + js 实现的贪吃蛇 实现了自动导航
2022-10-22
vue 实现的贪吃蛇 实现了自动导航
2022-10-22
Test24StringInConstantsPool.java.zip
2021-11-21
hsdis-amd64.dll 动态库
2018-11-03
my-carousel
2018-09-02
有偿,云计算解决方案
2024-05-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人