代码改变世界

linux源码分析(五)-start_kernel

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

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

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

linux源码分析(三)-start_kernel

2016-10-26 11:01 by 轩脉刃, 5523 阅读, 收藏, 编辑
摘要: 前置:这里使用的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 轩脉刃, 3493 阅读, 收藏, 编辑
摘要: 前置:这里使用的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 轩脉刃, 10302 阅读, 收藏, 编辑
摘要: 前置:这里使用的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 轩脉刃, 1580 阅读, 收藏, 编辑
摘要: 最早出现的问题情况是提供es的部门在es的外部封装了一个gateway做请求中转。 当我们转换到gateway上之后,发现了问题: 有的请求可以获取到数据,有的请求获取不到数据。 仔细分析了业务代码,抽取了一个出问题的业务请求,这个业务请求里面包含了多次对es的请求,只有最后一个es请求抛出异常,其阅读全文

漫谈TCP

2016-09-26 14:11 by 轩脉刃, 4965 阅读, 收藏, 编辑
摘要: 不得不承认,tcp是一个非常复杂的协议。它包含了RFC793及之后的一些协议。能把tcp的所有方面面面具到地说清楚,本身就是个很复杂的事情。如果再讲得枯燥,那么就会更让人昏昏欲睡了。本文希望能尽量用稍显通俗的话把tcp描述清楚。 关于分层 请忘掉大学课本上学的七层模型,我们使用四层模型更为贴合我们的阅读全文

https问答篇

2016-08-04 11:15 by 轩脉刃, 603 阅读, 收藏, 编辑
摘要: https问答 SSL和TLS有什么区别? 可以说,TLS是SSL的升级版本,SSL是网景公司设计的,为了最早期的网络安全而生,它的全名叫做“安全套接层”。后来,IETF在1999年把SSL标准化,名称改名为TLS,“传输层安全协议”。所以说,这两个东西就是同一个东西的不同阶段。 具体可以参考 "T阅读全文

TCP的阻塞和重传机制

2016-07-18 11:48 by 轩脉刃, 9484 阅读, 收藏, 编辑
摘要: TCP的阻塞和重传机制 网络拥堵 现在网络上大部分的网络请求都是以TCP的方式进行传输的了。网络链路是固定的,各种链路情况也是不一样的。网络拥堵一直是TCP协议设计和使用的时候尽力要避免的。比如,从TCP协议的网络包协议设计来看,TCP使用一发一答的ACK的网络包确认方式,而不是使用NAK这种会增加阅读全文

TCP的定时器

2016-07-11 10:00 by 轩脉刃, 1596 阅读, 收藏, 编辑
摘要: TCP的定时器 在TCP协议中有的时候需要定期或者按照某个算法对某个事件进行触发,那么这个时候,TCP协议是使用定时器进行实现的。在TCP中,会有四种定时器: 重传定时器 坚持定时器 保活定时器 2MSL定时器 这四个定时器都有各自的具体作用。 重传定时器 TCP是可靠的,因此,它对于发出去的信息,阅读全文