代码改变世界

php内核分析(六)-opcode

2016-11-29 10:44 by 轩脉刃, 1852 阅读, 收藏, 编辑
正文内容加载中...

php内核分析(五)-zval

2016-11-28 10:24 by 轩脉刃, 3518 阅读, 收藏, 编辑
摘要:这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux 实际上,从这个函数开始,就已经进入到了zend引擎的范围了。 实际上是调用Zend/zend_execute_API.c 再进去是调用 这里的retval_ptr为NULL,string_name为"Command lin 阅读全文

php内核分析(四)-do_cli

2016-11-25 11:47 by 轩脉刃, 869 阅读, 收藏, 编辑
摘要:这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux # main 把剩下的代码增加了下注释全部贴出来了(这个是简化后的main函数,去掉了一些无关紧要的代码段): 其实看伪码很简单: 好了,其实看了一圈,里面最重的函数是do_cli了。 php参数 do_cli里面你会看到 阅读全文

php内核分析(三)-全局变量

2016-11-24 15:17 by 轩脉刃, 777 阅读, 收藏, 编辑
摘要:这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux CG CG是从全局的compiler_global中获取属性值,里面存储的就是编译过程使用到的全局变量。 SG EG EG是从executor_globals中获取变量 阅读全文

php内核分析(二)-ZTS和zend_try

2016-11-23 10:29 by 轩脉刃, 1413 阅读, 收藏, 编辑
摘要:这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux ZTS 我们会看到文章中有很多地方是: 这里的ZTS是个什么概念呢。我们经常使用的php都是运行在单进程,单线程环境,比如cgi,都是一个请求进来,就一个进程为它服务,当请求结束了,进程也就结束了。所以比如像全局变量,ph 阅读全文

php内核分析(一)-sapi_module_struct

2016-11-21 11:56 by 轩脉刃, 1577 阅读, 收藏, 编辑
摘要:这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux 首先是寻找php的入口,php有很多种模式,apache,php fpm, cli模式,我要入手的话,只能先从最简单的cli模型开始。 那么,我需要先寻找 这个命令是如何执行的。 首先还是寻找main入口,由于我们看的是命 阅读全文

go-hbase的Scan模型源码分析

2016-11-18 10:35 by 轩脉刃, 1457 阅读, 收藏, 编辑
摘要:git地址在这里: https://github.com/Lazyshot/go hbase 这是一个使用go操作hbase的行为。 分析scan行为 如何使用scan看下面这个例子,伪代码如下: 首先是NewClient, 返回的结构是hbase.Client, 这个结构代表的是与hbase服务端 阅读全文

linux源码分析(五)-start_kernel

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

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

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

linux源码分析(三)-start_kernel

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