摘要: 卸载hello程序现在再来看看我们的Hello World程序:#include <stdio.h>int main (){ printf ("hello world\n"); return 0;}在进程运行结束后,我们会显示的调用exit()或者return退出正在运行的进程,如果调用return的话,编译器会自己加上exit().此时,保存子进程的一部份信息是很有必要的,因为父进程可以读取这些消息而取得子进程的退出状态.如果子进程退出.但父进程没有用wait(),这就成为了我们常说的僵尸进程,exit()系统调用在内核中的相应接口为sys_e 阅读全文
posted @ 2010-03-24 21:12 qiang.xu 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: 应用进程1内核空间用户空间 应用进程2内核空间用户空间 物理RAM有内核空间共享 物理RAM,对应进程1对应进程2 应用进程1内核空间用户空间 应用进程2内核空间用户空间 物理RAM有内核空间共享 物理RAM,对应进程1对应进程2 系统调用实现参考文章:http://docs.huihoo.com/joyfire.net/6-1.html操作系统为在用户态运行的进程与硬件的通信提供了一组接口,然而用户进程是不能直接和硬件交互的,而是通过系统调用来实现和硬件的交互。首先来说明的是“用户态”和“内核态”。http:/ 阅读全文
posted @ 2010-03-24 21:11 qiang.xu 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 开始”映射“之旅,在上面的讲解中经常提及到“”映射“的概念,那到底什么是映射?一个线性区可以和磁盘上的某个文件关联或者是某个文件的一部分来关联,这也就意味着内核把线性区的访问页内某个字节的访问转换成对于文件的中相应页面的访问,这种技术称之为“内存映射”。使用strace hello得到:...open("/usr/lib/locale/en_AU.UTF-8/LC_TIME", O_RDONLY) = -1 ENOENT (No suc 阅读全文
posted @ 2010-03-24 21:09 qiang.xu 阅读(509) 评论(0) 推荐(0) 编辑