
glibc+linux源码分析
二侠
这个作者很懒,什么都没留下…
展开
-
malloc源码分析---4
malloc源码分析—4上一章分析了_int_malloc中的fastbin、smallbin和部分largebin的处理,本章继续往下看代码,static void * _int_malloc(mstate av, size_t bytes) {... for (;;) { int iters = 0; while ((victim = un原创 2015-12-09 21:08:39 · 4647 阅读 · 0 评论 -
grub源码分析---1
grub源码分析原创 2017-11-14 16:27:57 · 5443 阅读 · 1 评论 -
grub kernel.img makefile源码分析
grub kernel.img makefile源码分析原创 2017-12-09 17:01:10 · 1181 阅读 · 0 评论 -
grub源码分析---2
grub源码分析—2_start grub-core/boot/i386/pc/startup_raw.S_start:LOCAL (base): ljmp $0, $ABS(LOCAL (codestart)) ...LOCAL (codestart): cli xorw %ax, %ax movw %ax, %ds原创 2017-11-22 16:19:31 · 3765 阅读 · 0 评论 -
grub boot.img makefile源码分析
grub boot.img makefile 源码分析原创 2017-12-06 21:20:44 · 1187 阅读 · 0 评论 -
grub-mkimage源码分析---2
grub-mkimage源码分析—2上一张分析了grub-mkimage命令对应的main函数如何对输入的参数进行解析,本章分析余下的代码。main util/grub-mkimage.cint main (int argc, char *argv[]) { ... if (!arguments.image_target) { ... ...原创 2018-03-24 09:10:21 · 1562 阅读 · 0 评论 -
grub-mkimage源码分析---1
grub-mkimage源码分析—1本章开始分析grub-mkimage的源码,首先来看grub-mkimage文件的生成过程,从Makefile开始看。grub-mkimage目标定义在grub源码的顶层Makefile文件中。grub-mkimage Makefilegrub-mkimage$(EXEEXT): $(grub_mkimage_OBJECTS) $(grub_m...原创 2017-12-20 22:55:22 · 1831 阅读 · 0 评论 -
grub-install源码分析---2
grub-install源码分析—2上一章分析了grub-install源码的第一部分,该部分的主要功能是处理命令行参数,并初始化一些文件和变量,紧接下来的一部分代码用于处理即将安装的存储设备,下面来看。grub2-install第四部分 util/grub-install.c ... size_t ndev = 0; grub_devices = gru...原创 2018-03-30 08:27:20 · 1952 阅读 · 0 评论 -
grub-mkimage源码分析---3
grub-mkimage源码分析—3上一章分析了如何将kernel.img文件以及各个的模块和对应的依赖模块读取并写入内存映像kernel_img中,本章分析如何将kernel_img中的数据以及解压缩程序写入最终的core.img文件中。grub_install_generate_image第四部分 util/mkimage.c ... compress_kerne...原创 2018-03-25 10:38:57 · 1192 阅读 · 0 评论 -
grub-install源码分析---3
grub-install源码分析—3本章之前的分析介绍了grub-install如何解析输入参数,并打开相应的存储设备,本章主要看grub如何识别根设备上的文件系统。grub2-install第五部分 util/grub-install.c ... grub_fs = grub_fs_probe (grub_dev); grub_install_push_...原创 2018-04-02 22:00:16 · 2159 阅读 · 0 评论 -
grub-install源码分析---1
grub-install源码分析—1本章开始分析grub-install的源码,该命令最终会将grub的映像存入引导扇区中,最简单的命令如下,grub2-install /dev/sda下面从main函数开始看,有一部分代码已经在《grub-mkimage源码分析》中分析了,本章包括后面的章节对这些代码就直接略过了。grub2-install第一部分 util/grub-ins...原创 2018-03-29 08:31:35 · 2994 阅读 · 0 评论 -
sys_nice源码分析
sys_nice源码分析原创 2017-10-10 20:48:16 · 2117 阅读 · 1 评论 -
enqueue_task和dequeue_task源码分析
enqueue_taskdequeue_task原创 2017-10-11 14:37:35 · 4786 阅读 · 0 评论 -
malloc源码分析---5
malloc源码分析—sysmalloc本章主要分析sysmalloc的代码,在《malloc源码分析—2》中已经分析了sysmalloc的一部分,主要针对分配去没有初始化的情况。本章查看余下的代码,static void * sysmalloc(INTERNAL_SIZE_T nb, mstate av) { mchunkptr old_top; INTERNAL_S原创 2015-12-12 23:15:17 · 3389 阅读 · 1 评论 -
free源码分析---2
free源码分析—_int_free根据上一章的分析可知,如果一个chunk不是由mmap分配得到,最后会调用_int_free进行释放。void __libc_free(void *mem) { ... p = mem2chunk(mem); if (chunk_is_mmapped(p)){ ... } ar_ptr =原创 2015-12-15 23:22:45 · 4176 阅读 · 0 评论 -
free源码分析---1
free源码分析本章继续之前的glibc中的malloc源码分析开始分析free的源码,malloc的源码分析可以查看同类别下的《malloc源码分析—1》到《malloc源码分析—5》,因为free的源码中有一些结构和malloc相似的地方就不会做过多的介绍了。首先在glibc的malloc.c中有如下定义,strong_alias( __libc_free, __cfree)we原创 2015-12-13 22:32:20 · 4882 阅读 · 0 评论 -
malloc源码分析---1
malloc源码分析本文分析malloc的源码,首先从glibc开始,首先看malloc.c文件中的一段定义,strong_alias (__libc_malloc, __malloc) strong_alias (__libc_malloc, malloc)strong_alias是GNU C中的定义,编译器判定这里malloc是__libc_malloc的别名,__libc_m原创 2015-12-01 00:34:27 · 15671 阅读 · 2 评论 -
malloc源码分析---2
malloc源码分析—_int_malloc根据上一章的分析,malloc会调用__libc_malloc分配内存,__libc_malloc会调用malloc_hook_ini 进行初始化,然后回调__libc_malloc函数,这时候会执行_int_malloc开始分配内存,定义在malloc.c中,因为非常长,这里分段来看,_int_malloc第一部分static void *原创 2015-12-05 15:40:14 · 7282 阅读 · 1 评论 -
malloc源码分析---3
malloc源码分析—_int_malloc上一章分析了_int_malloc的前面一小部分,本章继续往下看,static void * _int_malloc(mstate av, size_t bytes) { ... if ((unsigned long) (nb) <= (unsigned long) (get_max_fast ())) { i原创 2015-12-07 21:01:03 · 4072 阅读 · 0 评论 -
sys_execv源码分析
sys_execvdo_execvedo_execveat_commonload_elf_binary程序装载,解释器原创 2017-02-01 16:19:31 · 3824 阅读 · 1 评论 -
_dl_start_user源码分析(一)
_dl_start_user源码分析_start原创 2017-07-24 19:40:01 · 3247 阅读 · 0 评论 -
__pthread_initialize_minimal源码分析
__pthread_initialize_minimal源码分析__pthread_initialize_minimal在__libc_start_main中被调用。 csu/lib-tls.cvoid __attribute__ ((weak)) __pthread_initialize_minimal (void){ __libc_setup_tls (TLS_INIT_T原创 2017-09-12 12:40:18 · 1887 阅读 · 0 评论 -
pthread_create源码分析
pthread_create源码分析pthread_attr_t的主要属性的意义如下: __detachstate,表示新线程是否与进程中其他线程脱离同步, 如果设置为PTHREAD_CREATE_DETACHED 则新线程不能用pthread_join()来同步,且在退出时自行释放所占用的资源。缺省为PTHREAD_CREATE_JOINABLE状态。这个属性也可以在线程创建并运行以后用p原创 2017-08-22 21:10:44 · 11548 阅读 · 0 评论 -
grub-install源码分析---4
grub-install源码分析—4上一章重点分析了grub是如何探测一个文件系统的,本章分析grub-install的最后一部分代码,该代码包含了最主要的业务逻辑,下面来看。grub2-install第六部分 util/grub-install.c ... char mkimage_target[200]; const char *core_name =...原创 2018-04-04 18:45:21 · 1393 阅读 · 0 评论