2012年11月7日

共享库之动态连接

摘要: 静态链接浪费内存和磁盘空间、模块更新困难等问题,因此寻找一种更好的办法来组织程序模块。 静态链接对程序的更新、部署和发布也会带来很多麻烦。动态链接:就是不对那些组成程序的目标文件进行链接,等到程序要运行时才进行链接。动态链接的方式使得开发过程中各个模块更加独立、耦合度更小,便于不同的开发者和开发组织之间进行独立的开发和测试。动态链接还有一个特点就是程序在运行时可以动态的选择加载各种程序模块,使得插件成为可能。Linux系统中,ELF动态链接文件被称为动态共享对象(DSO,Dynamic Shared Objects),简称共享对象,它们一般都是以“.so”为扩展名;动态链接文件被称为动态链.. 阅读全文

posted @ 2012-11-07 10:00 sslshop 阅读(365) 评论(0) 推荐(0) 编辑

Linux 内核--任务0的调度切换

摘要: main.c中在move_to_user_mode()之后,切换到用户模式下运行,task0然后执行fork()创建进程task1来执行init()函数。init()函数如下:[cpp] view plaincopyprint?void init (void) { int pid, i; // 读取硬盘参数包括分区表信息并建立虚拟盘和安装根文件系统设备。// 该函数是在25 行上的宏定义的,对应函数是sys_setup(),在kernel/blk_drv/hd.c,71 行。setup ((void *) &drive_info); (void) open ("/dev/tt 阅读全文

posted @ 2012-11-07 09:59 sslshop 阅读(247) 评论(0) 推荐(0) 编辑

深入探索 Kdump,第 1 部分

摘要: Kdump 的基本概念什么是 kexec ?Kexec 是实现 kdump 机制的关键,它包括 2 个组成部分:一是内核空间的系统调用 kexec_load,负责在生产内核(production kernel 或 first kernel)启动时将捕获内核(capture kernel 或 sencond kernel)加载到指定地址。二是用户空间的工具 kexec-tools,他将捕获内核的地址传递给生产内核,从而在系统崩溃的时候能够找到捕获内核的地址并运行。没有 kexec 就没有 kdump。先有 kexec 实现了在一个内核中可以启动另一个内核,才让 kdump 有了用武之地。kexe 阅读全文

posted @ 2012-11-07 09:58 sslshop 阅读(347) 评论(0) 推荐(0) 编辑

导航