![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 82
isunn
这个作者很懒,什么都没留下…
展开
-
atexit()函数 -- 注册终止函数
atexit()函数 在程序退出时经常需要做一些诸如释放资源的操作,但程序退出的方式有很多种。因此需要一种与程序退出方式无关的方法来进行程序退出时的必要处理。atexit()函数用来注册程序正常终止时要被调用的函数。 atexit()函数的参数是一个函数指针,函数指针指向一个没有参数也没有返回值的函数。其原型如下所示: atexit(void(*转载 2014-11-08 19:56:39 · 885 阅读 · 0 评论 -
C++ Primer读书笔记1--基本语言
aa原创 2014-09-27 14:23:50 · 507 阅读 · 0 评论 -
《程序员的自我修养》读书笔记4 -- Linux共享库组织
一、共享库版本问题来源原创 2014-11-07 12:38:46 · 612 阅读 · 0 评论 -
《程序员的自我修养》读书笔记2 -- ELF目标文件和静态链接和装载
1. 目标文件的类型可重定位原创 2014-10-13 10:52:45 · 1106 阅读 · 0 评论 -
分段机制
出处:先对分段机制中必须用到的一些名词作一个解释:段选择符:又称端选择子,是段的一个16位标识符。它并不直接指向段,而是指向段选择符表中定义段的段描述符。它有三个字段内容:请求特权级RPL(Request Privilege Level)、表指示标志TI(Table Index)、索引值(Index)段描述符:段描述符石GDT和LDT表中的一个数据结构项,用来向转载 2014-11-20 14:39:36 · 716 阅读 · 0 评论 -
浅析linux内核内存管理之PAE
出处:浅析linux内核内存管理之PAE 早期Intel处理器从80386到Pentium使用32位物理地址,理论上,这样可以访问4GB的RAM。然而,大型服务器需要大于4GB的RAM来同时运行数以千计的进程,近几年来这对Intel造成了压力,所以必须扩展32位80x8转载 2014-10-17 14:43:09 · 801 阅读 · 0 评论 -
《程序员的自我修养》读书笔记6 -- 系统调用
系统调用原理原创 2014-11-13 16:13:21 · 563 阅读 · 0 评论 -
《程序员的自我修养》读书笔记1 -- 温故知新和静态链接
内存问题原创 2014-09-30 09:05:22 · 757 阅读 · 0 评论 -
程序机器级表示
一个函数调用包括将数据(包括参数和返回值)和控制从代码一部分传到另一部分。还包括对函数内局部变量分配空间,并在退出时释放空间。 其中,转移控制到过程 和 从过程转移出控制——使用指令;局部变量的分配和释放通过 程序栈 来实现。1.栈帧结构 栈由高地址向低地址方向增长。对单个过程分配的栈称为 栈帧。以两个指针来界定:帧指针%ebp和栈指针%esp.栈指针是不断变化的,所以大多数转载 2014-10-09 14:52:27 · 780 阅读 · 0 评论 -
《程序员的自我修养》读书笔记5 -- 内存
一、进程的内存布局 一般来讲进程有如下默认区域: 栈:用于维护函数调用上下文,通常从用户空间高地址开始向低地址增长; 堆:进程动态分配内存区域,一直存在直到被手动回收或者进程结束; 可执行文件和共享对象镜像: 保留区:内存中受保护而禁止访问区域,访问该处会出现段错误,通常靠近0x0处。比如int *p原创 2014-11-08 15:46:21 · 617 阅读 · 0 评论 -
C/C++中的段错误(Segmentation fault)
Segment fault 之所以能够流行于世,是与Glibc库中基本所有的函数都默认型参指针为非空有着密切关系的。来自:http://oss.lzu.edu.cn/blog/article.php?uid_7/tid_700.html#comment 背景 最近一段时间在linux下用C做一些学习和开发,但是由于经验不足,问题多多。而段错误就是让我非常头痛的转载 2014-11-07 14:54:02 · 685 阅读 · 0 评论 -
《程序员的自我修养》读书笔记3 -- 动态链接
动态链接的基本实现:将chenxu原创 2014-11-06 16:37:46 · 801 阅读 · 0 评论