上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 37 下一页

2019年3月7日

摘要: 一、当前进程current 在内核中,current绝对是一个出镜率非常高的变量,在几乎所有的系统调用中都会用到该变量。由于该变量被使用的频率比较高,所以它的实现要尽可能的快速高效。在最早的内核版本中,这个实现在内核的不同版本中一直在变化,从这个变量也可以引申出一些有意思的问题。 二、早期内核实现 阅读全文
posted @ 2019-03-07 09:39 tsecer 阅读(2203) 评论(0) 推荐(0)
摘要: 一、终端编辑 之前的终端都是为了便于人机交互而设计,交互性比较强。用户输入过程中,通常不是一蹴而就,也不可能没有笔误。所以终端通常是基于行为单位进行处理,在用户输入了回车之后才向用户态返回整个输入内容,也就是shell的一条命令。同样是为了便于用户编辑,在内核态支持简单的编辑命令,例如删除一个单词, 阅读全文
posted @ 2019-03-07 09:39 tsecer 阅读(1065) 评论(0) 推荐(0)
摘要: 一、gdb 硬件watch断点原理 1、直观的例子 硬件断点的watch功能是查找内存被改写的一个必备工具,和其它调试器断点功能一样,它可以快速的理解一个系统的特定方便而不用理解整个系统。对于某些关键变量,我们想知道有哪些地方使用或者初始化这些数据,只需要在该表达式打上数据断点,待命中时查看调用链即 阅读全文
posted @ 2019-03-07 09:38 tsecer 阅读(1718) 评论(0) 推荐(0)
摘要: 一、文件写入的原子性 管道在整个unix系统中有重要的基础设施意义,它使unix工具设计的“职能简单”原则得以实现的基础,不同的工具使用管道协调完成自己的功能,并把一个功能做好。一个想法的提出通常具有明确的场景和简洁的原理,后来需求的不断发展导致问题看起来极为复杂,就像我们现在社会的进化,可能原始社 阅读全文
posted @ 2019-03-07 09:37 tsecer 阅读(2463) 评论(0) 推荐(0)
摘要: 一、文件映射和匿名页面相比,文件映射算是比较幸福的一种映射方式了,它可以依靠每个文件都有的address_space结构来引伸出自己需要的信息,例如,所有映射了这个页面的page可以指向文件对应的inode的address_space结构。在vma侧,它们可以在address_space中建立一个自 阅读全文
posted @ 2019-03-07 09:36 tsecer 阅读(321) 评论(0) 推荐(0)
摘要: 一、基础数据结构及面临的问题页面结构struct page对于反向映射的实现使用了两个成员:一个是表示映射挂靠位置的内核级唯一结构。对于匿名映射来说,这个结构为一个全局的anon_vma结构;对于文件映射结构来说,这个指针指向的是一个表示地址空间的address_space结构,这个结构也就是我们通 阅读全文
posted @ 2019-03-07 09:35 tsecer 阅读(468) 评论(0) 推荐(0)
摘要: 一、现象so文件被不同的进程共享,映射入各个进程的地址空间中,这也是SO文件存在的重要原因。作为文件,它的只读部分可以供系统中任意多的进程使用,从而节省系统物理内存使用以及磁盘空间的使用。对于系统级的so文件,我们一般不会修改这些文件的内容,即使修改可能也是无意修改。但是对于一些自己编写的so文件, 阅读全文
posted @ 2019-03-07 09:34 tsecer 阅读(813) 评论(0) 推荐(0)
摘要: 一、直接修改内核代码段在386内核的kprobe实现过程中,其中有一个是对于代码段断点的安装,那个地方对于代码段的修改是轻松加惬意,就好象生活在新闻联播里一样,这让我们这些看惯了用户态进程各种保护的程序员来说还是比较震撼的,套用一句三俗的话来说:我和我的小伙伴们都惊呆了。386中对于kprobe调试 阅读全文
posted @ 2019-03-07 09:32 tsecer 阅读(571) 评论(0) 推荐(0)
摘要: 一、内核实现基础和之前的select相比,epoll是一个目标性更强的实现。在epoll等待的时候,它会把每个poll的唤醒函数注册为自己特有的函数,在该回调函数中,它将自己(被唤醒的fd)添加到readylist中,然后在poll到底是什么事件的时候只检测在readylist中的描述符即可,而不是 阅读全文
posted @ 2019-03-07 09:31 tsecer 阅读(367) 评论(0) 推荐(0)
摘要: 一、C库的printf函数簇这些函数其实大家最为熟悉,因为每个人都会写的hello world就是使用了printf这个C库函数。但是printf的实现并不见,如果有兴趣的同学可以看一下glibc中关于这个函数的哦实现,先不说各种格式化的处理以及文件的锁,其中的缓冲区管理及动态资源管理就有相当多的代 阅读全文
posted @ 2019-03-07 09:30 tsecer 阅读(480) 评论(0) 推荐(0)
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 37 下一页

导航