随笔分类 -  kernel 编程

该文被密码保护。
posted @ 2022-11-26 21:19 codestacklinuxer 阅读(62) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2022-11-25 22:20 codestacklinuxer 阅读(119) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2022-06-25 23:33 codestacklinuxer 阅读(47) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2022-06-25 17:41 codestacklinuxer 阅读(51) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2022-06-24 22:58 codestacklinuxer 阅读(54) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2022-06-15 15:04 codestacklinuxer 阅读(54) 评论(0) 推荐(0) 编辑
摘要:问题:某次共享内存计算key值时,发现文件的inode在变化, 到底是什么原因导致的呢?最后发现是echo 3 > /proc/sys/vm/drop_caches导致的!! https://time.geekbang.org/column/article/278222?utm_source=rel 阅读全文
posted @ 2022-04-07 15:00 codestacklinuxer 阅读(194) 评论(0) 推荐(0) 编辑
摘要:SLUB分配一个object的流程分析 上篇文章已经说了性能瓶颈显示为slub,所以这篇文章来看看 转载: 在上一节 我们清晰的知道了当调用kmem_cache_create之后系统会为我们分配一个名为slub_test的一个slab。这时候只是分配了kmem_cache,kmem_cache_cp 阅读全文
posted @ 2022-04-06 17:19 codestacklinuxer 阅读(52) 评论(0) 推荐(0) 编辑
摘要:目前可以看出: 核心问题为:多线程fd close/open 以及 skb的slab_cache以及 slab_free fd close /open 所引发的的问题已经有相关解决办法;主要是slab_free这个? 内核的slab来自一种很简单的思想,即事先准备好一些会频繁分配,释放的数据结构。然 阅读全文
posted @ 2022-03-31 18:13 codestacklinuxer 阅读(18) 评论(0) 推荐(0) 编辑
摘要:在内核中,顺序锁和读写锁比较相似,都是针对多读少写且快速处理的临界区的锁机制。 对于 rwlock 而言,rwlock的全称是"reader-writer spin lock",和普通的spinlock不同,它对"read"和"write"的操作进行了区分。如果当前没有writer,那么多个read 阅读全文
posted @ 2022-03-09 10:59 codestacklinuxer 阅读(18) 评论(0) 推荐(0) 编辑
摘要:回顾历史 在计算机诞生之前,人们发明了 Teleprinter(电传打字机),通过长长的电线点对点连接,发送和接收打印的信息,用于远距离传输电报信息。 Teleprinter 也可以写成 teletypewriter 或 teletype。 后来人们将 Teleprinter 连接到早期的大型计算机 阅读全文
posted @ 2022-02-22 11:18 codestacklinuxer 阅读(61) 评论(0) 推荐(0) 编辑
摘要:TTY 是 Teletype 或 Teletypewriter 的缩写,原来是指电传打字机,后来这种设备逐渐键盘和显示器取代。不管是电传打字机还是键盘显示器,都是作为计算机的终端设备存在的,所以 TTY 也泛指计算机的终端(terminal)设备。为了支持这些 TTY 设备,Linux 实现了一个叫 阅读全文
posted @ 2022-02-22 10:23 codestacklinuxer 阅读(36) 评论(0) 推荐(0) 编辑
摘要:5. printk的格式字符 常见的数据类型对应的printk的格式字符如下: int %d or %x unsigned int %u, %x long %ld, %lx unsigned long %lu, %lx long long %lld, %llx unsigned long long 阅读全文
posted @ 2022-01-27 20:48 codestacklinuxer 阅读(188) 评论(0) 推荐(0) 编辑
摘要:看以前的驱动hook代码,发现分配20Bytes的内存竟然使用vmalooc;这些人当时写代码太随意了,再次记录一下vmalloc kmalloc kmem_cache_alloc alloc_page 等的区别 Kmalloc: kmalloc是基于kmem_cache_alloc、 slab实现 阅读全文
posted @ 2022-01-27 13:17 codestacklinuxer 阅读(53) 评论(0) 推荐(0) 编辑
摘要:查看代码可知,查找路由后校验src dst ip 不过! 同时通过ip route查看ip 命中的路由 可知 会发往lo接口 查看路由也能看到结果: ip rule add fwmark 1 lookup 100 ip route add local default dev lo table 100 阅读全文
posted @ 2022-01-26 17:30 codestacklinuxer 阅读(185) 评论(0) 推荐(0) 编辑
摘要:转载来自:魅族内核组 Workqueue 是内核里面很重要的一个机制,特别是内核驱动,一般的小型任务 (work) 都不会自己起一个线程来处理,而是扔到 Workqueue 中处理。Workqueue 的主要工作就是用进程上下文来处理内核中大量的小任务。 所以 Workqueue 的主要设计思想:一 阅读全文
posted @ 2021-12-06 12:16 codestacklinuxer 阅读(60) 评论(0) 推荐(0) 编辑
摘要:printk简介 printk是在内核中运行的向控制台输出显示的函数,Linux内核先分配一个静态的临时缓冲区log_buf,然后调用vscnprintf格式化显示字符串,并返回格式化之后字符串的长度,最后调用tty驱动初始化注册绑定好的console.write()实现向串口输出。 目前新版内核解 阅读全文
posted @ 2021-09-05 10:38 codestacklinuxer 阅读(460) 评论(0) 推荐(0) 编辑
摘要:以前看互斥锁自旋锁实现的时候,看过RET_IP,只是了解到其为当前函数的返回地址;今天系统的看下这几个宏 __builtin_return_address(0)的含义是,得到当前函数返回地址,即此函数被别的函数调用返回时的地址。 __builtin_return_address(1)的含义是,得到当 阅读全文
posted @ 2021-08-04 10:37 codestacklinuxer 阅读(419) 评论(0) 推荐(0) 编辑
摘要:执行 ./install/bin/staprun ./sigkill.ko 结果发现脚本执行命令刷屏了!! debug_bin]$ ./install/bin/staprun ./sigkill.ko sig[17] SIGCHLD was sent to sh (pid:15237) by exe 阅读全文
posted @ 2021-08-03 19:53 codestacklinuxer 阅读(113) 评论(0) 推荐(0) 编辑
摘要:首先需要弄清楚 进程被干掉的过程是怎样的? 一般使用kill -9 pid 来杀死进程 , 那么进程是怎样收到signal以及处理signal呢? 那目前有哪些现成的工具可以使用探测signal呢? 参考tapset文档 #! /usr/bin/env stap # sigkill.stp # Co 阅读全文
posted @ 2021-08-02 10:03 codestacklinuxer 阅读(378) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示