上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 35 下一页

2019年3月6日

摘要: 一、gcc对main之前初始化的支持对于变量的初始化,gcc提供了两个相关功能,一个是#pragma init(xxx),另一个是通过__attribute__((constructor))声明的函数。虽然说#pragma这个属性只在soloris系统中有用,但是对于我们研究其实现原理还是很有帮助的 阅读全文
posted @ 2019-03-06 21:30 tsecer 阅读(1248) 评论(0) 推荐(0) 编辑
摘要: 一、gdb中函数调用在gdb中,可以通过call function(args……)来调用一个函数,当然也可以使用print之类的函数来间接的调用一个函数,但是不管如何,它们最终都要求gdb来调用一个函数,执行该函数,取函数返回值等基本逻辑处理。现在想一下gdb是如何让被调试进程执行特定函数的,这里包 阅读全文
posted @ 2019-03-06 21:29 tsecer 阅读(2512) 评论(0) 推荐(0) 编辑
摘要: 一、虚函数表的多编译单元定义对于C++来说,它是通过虚函数表来实现自己的多态的,在windows下,C++代码的动态类型识别之类的功能也是和这个虚函数表有关,总之是在这个虚函数表附近。具体是什么布局,我记得《Microsoft Journal》中好像有一系列的文章和图片详细的描述了这个结构,这里我们 阅读全文
posted @ 2019-03-06 21:29 tsecer 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 一、局部/全局变量局部变量在C++中的使用要频繁的多,并且功能也强大的多,但是这些强大功能的背后无疑会引入问题的复杂性,不想让马儿吃草只想让马儿跑的事大家表乱想。这些初始化的实现就需要C++的库执行更多的动作来完成,虽然各种编译器都是像如今开展的“学雷锋”活动一样干了很多好事都没有留名,但是作为一个 阅读全文
posted @ 2019-03-06 21:28 tsecer 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 一、堆栈扩展在进程创建的时候,内核并没有为进程分配太多的堆栈,即使是逻辑地址空间也没有,这样做的好处就是如果说用户态的程序堆栈向下溢出(对386来说,就是访问了更低地址的内存空间),这样内核可以比较容易的检测出这种错误,尽管这种错误出现的可能性要比向上溢出的概率小的多。记得在之前使用VS编译器的时候 阅读全文
posted @ 2019-03-06 21:26 tsecer 阅读(910) 评论(0) 推荐(0) 编辑
摘要: 一、多进程select这个是一个不太常见的场景,但是作为探讨性话题,大家可以在这里尽情YY一下,就像YY我们达到共产主义一样,想想会是什么情景,当然,还是这里讨论的问题更靠谱一些。根据select的语义,就是进程来同时等待若干个文件可读/可写/错误状态,直到指定时间结束,这个我想大家都是明白的。现在 阅读全文
posted @ 2019-03-06 21:25 tsecer 阅读(1088) 评论(0) 推荐(0) 编辑
摘要: 一、资源这些是一个系统级的行为特征,并且可能没啥直接关系,只是比较琐碎,所以放在一起做个总结,以后查询也方便一些。二、fd/pid回收问题这两个是系统中一个重要的handle,区别在于fd是进程内相关,而pid是系统级(据说加入namespace之后系统也可以有相同pid的进程),这些大家都知道,所 阅读全文
posted @ 2019-03-06 21:25 tsecer 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 一、两个测试程序[tsecer@Harry ArgLayout]$ cat ArgLayout.c/**简单测试程序,创建命令行参数中指定的进程,但是将execve的第二个参数(也就是子进程的argv数组)修改成随机无意义值*/#include <unistd.h>#include <stdio.h 阅读全文
posted @ 2019-03-06 21:24 tsecer 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 一、内核tty实现这个模块在内核的实现中占有浓重的一笔,我甚至经常觉得,经常搞的是串口还是网口是嵌入式工程师和网络工程师的一重要区别标志。所以作为一个嵌入式工程师,对这个tty设备接触的比较多,所以感情也比较深一些。在2011年11月份(伟大的圣光棍节月份),我在博客里对tty设备做了一个简单的总结 阅读全文
posted @ 2019-03-06 21:22 tsecer 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 一、文件的重要性文件在Unix系统中绝对是一个说之不尽的话题,也是一个非常重要的概念。对于文件,默认是子进程会继承父进程的文件描述符,而内核则负责init进程的三个文件描述符(标准输入、标准输出、标准错误,下同)。我们知道,对于同一个文件描述符,在不同的进程中可能代表不同的内容,但是如果是从init 阅读全文
posted @ 2019-03-06 21:21 tsecer 阅读(182) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 35 下一页

导航