linux-kernel
文章平均质量分 66
LiWang112358
热爱编程的灵长类
展开
-
uprobe的使用浅析
uprobe是linux内核提供的一种trace用户态函数的机制,可以在不对二进制重新编译的情况下进行trace特定函数,本文描述了uprobe的基本使用方法原创 2022-10-15 00:52:08 · 2049 阅读 · 0 评论 -
trace_noschedule 实现解析
在日常运维过程中,偶尔会碰到内核线程调度不及时的场景,针对“单个任务陷入内核台执行时间过长”这个case,字节跳动的同学开发了trace_noschedule模块,用来定位占用时间过长的任务和栈信息,本文就是要分析trace_noschedule模块的使用方法和实现原理。..................原创 2022-07-27 21:16:06 · 703 阅读 · 0 评论 -
腾讯云创建辅助网卡实现源进源出
腾讯云创建辅助网卡实现源进源出原创 2022-07-06 21:01:07 · 660 阅读 · 0 评论 -
使用tee命令获取不到输出的解决方案
当我们想一边监控一个程序的输出,一边又想将输出记录到一个文件当中的时候,tee命令就是一个非常好的选择./buffer_demo | tee a.txt比如上面的命令,将buffer_demo程序的输出打印到屏幕上,同时写入a.txt文件当buffer_demo持续输出比较多的文本的时候,上面的命令运行的没有什么问题。但是如果buffer_demo使用的是printf这样的标准io库的函数,并且输出文本速度很慢的时候,我们可能半天也看不到屏幕上有输出。这是因为当你使用管道的时候,标准io库原创 2022-04-07 16:16:58 · 2427 阅读 · 0 评论 -
linux seq_file机制学习
linux内核驱动模块经常要将一些信息通过/proc文件树暴露给用户,以方便用户直接能从文件系统中读取到驱动程序或者内核的一些状态信息,当这些信息比较短的时候编程比较容易,一旦过长并且用户有lseek相关的操作,那么在内核中编程就就会变得比较困难,需要维护很多状态。为了解决这个问题,linux内核提供了一种seq_file机制来简化编程的复杂性。本文实验环境:Linux VM-0-13-ubuntu 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:原创 2022-03-19 02:23:34 · 2410 阅读 · 0 评论 -
梳理linux0.12知识点系列 之 8259A的初始化和时钟中断
梳理linux0.12知识点系列之8259A的初始化和时钟中断背景cpu和设备协同工作的高效方式是使用中断机制,本例子基于之前的打开了A20地址线的demo,进一步初始化了8259A终端控制芯片,并且屏蔽了除了时钟中断以外的所有硬件中断。当始终中断发生时,在屏幕上打印'T' 'I' 'M' 'E' 'R'五个字符额外修改除了加入初始化8259A芯片和增加中断处理函数的逻辑之外,...原创 2020-01-21 20:32:42 · 1768 阅读 · 5 评论 -
梳理linux0.12知识点系列 之 A20地址线的打开
梳理linux0.12知识点系列之A20地址线的打开背景关于A20地址线的历史问题维基百科上有详细的描述总体来说就是如果不开启A20地址线我们只能访问1M内存也就是说这时能访问的最大内存地址是0xfffff当我们想要访问0x100000的时候,cpu帮我们环绕到0x0处linux 0.12的打开和检查方案linux 0.12在setup.S中进行了打开A20地址线的操作 ....原创 2020-01-20 21:41:46 · 543 阅读 · 0 评论 -
梳理linux0.12知识点系列 之 让汇编到C不再遥远
梳理linux0.12知识点系列之让汇编到C不再遥远背景在读《Linux内核完全剖析》这本书的时候,你是否有过这样的困境前期的基础知识沉浸在大量的汇编代码中,从16位实模式到32位保护模式,有要经历各种其他知识的冲击,比如8259A编程,A20地址线页表,等等。这些都在干扰我们有一条清晰的路线去观察系统是如何从汇编真正跳转到C代码中,于是让初学者感觉自己离真正的内核代码还好遥远,...原创 2020-01-17 20:38:21 · 439 阅读 · 0 评论 -
X86下的8259A子系统
#X86下的8259A子系统##声明本文会用尽量朴素非术语的语言整体介绍x86架构下中断处理的大概过程,希望能够帮助读者对PC的工作模式有一个简单的形象化的认识。为了帮助理解,示意图经过简化后不能保证完全正确。##背景在描述8259A的工作方式之前,我们先明确几个基础的前提cpu的工作方式是“取址->执行”,每执行一条指令,IP(Instruction Pointer)指令寄...原创 2020-01-07 15:36:28 · 701 阅读 · 0 评论 -
操作系统原理与实践-信号量的实现和应用
include/linux/sys.h 下增加extern int sys_sem_open();extern int sys_sem_close();extern int sys_sem_wait();extern int sys_sem_post();extern int sys_sem_count();fn_ptr sys_call_table[] = { sys_set...原创 2019-11-06 19:36:49 · 393 阅读 · 0 评论