上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 35 下一页

2019年3月7日

摘要: 一、用户态地址分配主要路径 用户态所有地址空间的申请主要经过mmap系统调用,也有一些是基于brk系统调用,对于mmap系统调用,它在某些条件下会执行申请空间合理性的判断,而brk则是一定进行合理性判断,下面是mmap相关的一些代码do_mmap_pgoff,它主要就是在于如果新分配的空间是私有可写 阅读全文
posted @ 2019-03-07 09:46 tsecer 阅读(1085) 评论(0) 推荐(0) 编辑
摘要: 一、静态局部变量初始化是否会很耗 之前曾经注意到过,gcc对静态变量的运行时初始化是考虑到多线程安全的,也就是说对于工程中大量使用的单间对象: CSingletone::Instance类型的代码,理论上说都是要经过mutex这种重量级的互斥检测,如此看来,这种单间对象对系统损耗应该是非常大的,因为 阅读全文
posted @ 2019-03-07 09:45 tsecer 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 一、终端显示 大部分使用SecureCRT的用户可能都会经历这种情况,不小心cat了一个二进制文件,导致整个屏幕显示错乱,使用reset,stty -sane都没有办法恢复,只能重新打开一个终端。我之前就知道它是由于终端中SI控制字符导致的问题,但是更深入的原因没有进一步分析。后来我尝试使用另一种开 阅读全文
posted @ 2019-03-07 09:44 tsecer 阅读(1169) 评论(0) 推荐(1) 编辑
摘要: 一、gcc的模版匹配实现 1、主体函数 gcc的代码实现现在看起来依然晦涩,所以下面的分析只是大致的一个意会过程,没有精确详细的描述。以gcc4.1.0版本为例,模版特殊化的具体判断主要在gcc-4.1.0\gcc\cp\pt.c:most_specialized_class函数完成,从代码中可以看 阅读全文
posted @ 2019-03-07 09:43 tsecer 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 一、强度削弱 之前在偶尔看gcc对于除以一个常数的表达式生成的汇编代码中,发现一条除法表达式生成的汇编指令非常多,这些指令中没有乘法操作,比较明显的特征就是进行了一个大整数的乘法,之后是移位啊、减法啊什么的操作,虽然不知道是什么意思,但是感觉很厉害的样子。 后台就觉得这应该是一个优化,搜索了一下,看 阅读全文
posted @ 2019-03-07 09:42 tsecer 阅读(908) 评论(1) 推荐(0) 编辑
摘要: so运行的方法 在我之前的印象中,so文件是不能直接运行的,但是ld.so改变了我的这种偏见。执行一下动态链接库文件,执行结果为 tsecer@harry :/lib/ld-linux.so.2 Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-P 阅读全文
posted @ 2019-03-07 09:41 tsecer 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 一、udp的报文发送 udp在通常的应用中使用的比较少,可靠的协议通常使用TCP传输,对于的关注自然没有TCP多。尽管UDP具有不可靠的传输问题,和TCP相比,它有一个隐性的优点就是对于packet结构本身的完整性保持。严格意义上讲,这个属性并不是UDP协议单独完成的,而是由IP层完成,对于上层应用 阅读全文
posted @ 2019-03-07 09:41 tsecer 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 一、当前进程current 在内核中,current绝对是一个出镜率非常高的变量,在几乎所有的系统调用中都会用到该变量。由于该变量被使用的频率比较高,所以它的实现要尽可能的快速高效。在最早的内核版本中,这个实现在内核的不同版本中一直在变化,从这个变量也可以引申出一些有意思的问题。 二、早期内核实现 阅读全文
posted @ 2019-03-07 09:39 tsecer 阅读(2069) 评论(0) 推荐(0) 编辑
摘要: 一、终端编辑 之前的终端都是为了便于人机交互而设计,交互性比较强。用户输入过程中,通常不是一蹴而就,也不可能没有笔误。所以终端通常是基于行为单位进行处理,在用户输入了回车之后才向用户态返回整个输入内容,也就是shell的一条命令。同样是为了便于用户编辑,在内核态支持简单的编辑命令,例如删除一个单词, 阅读全文
posted @ 2019-03-07 09:39 tsecer 阅读(997) 评论(0) 推荐(0) 编辑
摘要: 一、gdb 硬件watch断点原理 1、直观的例子 硬件断点的watch功能是查找内存被改写的一个必备工具,和其它调试器断点功能一样,它可以快速的理解一个系统的特定方便而不用理解整个系统。对于某些关键变量,我们想知道有哪些地方使用或者初始化这些数据,只需要在该表达式打上数据断点,待命中时查看调用链即 阅读全文
posted @ 2019-03-07 09:38 tsecer 阅读(1455) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 35 下一页

导航