代码改变世界

随笔档案-2016年10月

linux源码分析(五)-start_kernel

2016-10-28 16:45 by 轩脉刃, 3142 阅读, 收藏, 编辑
摘要: 前置:这里使用的linux版本是4.8,x86体系。 local_irq_disable(); 这个函数是做了关闭中断操作。和后面的local_irq_enable相对应。说明启动的下面函数是不允许被中断抢占的。这个函数追下去会发现下面的代码: 这个写法是linux的内联汇编写法。在C语言中写汇编语 阅读全文

linux源码分析(四)-start_kernel-cgroup

2016-10-27 10:51 by 轩脉刃, 7505 阅读, 收藏, 编辑
摘要: 前置:这里使用的linux版本是4.8,x86体系。 聊这个函数就需要先了解cgroup。 cgroup概念 这个函数就是初始化cgroup所需要的参数的。cgroup最初是在2006年由google的一名工程师提出的,目的是把一些共同目标的进程放在一个组里面,而这个组里面的进程能共享指定数额的资源 阅读全文

linux源码分析(三)-start_kernel

2016-10-26 11:01 by 轩脉刃, 10775 阅读, 收藏, 编辑
摘要: 前置:这里使用的linux版本是4.8,x86体系。 start_kernel是过了引导阶段,进入到了内核启动阶段的入口。函数在init/main.c中。 set_task_stack_end_magic(&init_task); 这个函数是设置操作系统的第一个进程init。 这个init_task 阅读全文

linux源码分析(二)-启动过程

2016-10-25 13:01 by 轩脉刃, 6111 阅读, 收藏, 编辑
摘要: 前置:这里使用的linux版本是4.8,x86体系。 这篇是 http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html 的学习笔记。 linux的启动过程有点像是小鱼吃大鱼,最后吃成一个胖子。 计算机中的PC寄存器是用来指示下个执行程 阅读全文

linux源码分析(一)

2016-10-24 10:29 by 轩脉刃, 22238 阅读, 收藏, 编辑
摘要: 前置:这里使用的linux版本是4.8,x86体系。 其实linux的内核启动的入口文件还是非常好找的,init/main.c。 static 和 extern 首先理解的是static和extern的区别: 这个代码说的是kernel_init函数的定义在这个文件中,extern说明init_IR 阅读全文

phpcurl 请求Chunked-Encoded data 遇到的一个问题

2016-10-21 16:51 by 轩脉刃, 3309 阅读, 收藏, 编辑
摘要: 最早出现的问题情况是提供es的部门在es的外部封装了一个gateway做请求中转。 当我们转换到gateway上之后,发现了问题: 有的请求可以获取到数据,有的请求获取不到数据。 仔细分析了业务代码,抽取了一个出问题的业务请求,这个业务请求里面包含了多次对es的请求,只有最后一个es请求抛出异常,其 阅读全文