这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux。 我们研究下反射这个扩展。 反射这个扩展目录是存在在:ext/reflection。其实里面的代码很简单。一个.h文件,一个 .c文件。 我们先看下.c文件中,会看到很多ZEND_METHOD 对应的宏: 这里的 代表的是
转载
2022-01-18 11:50:14
79阅读
在开发扩展之前最好了解下PHP内核的执行流程PHP大概包括三个方面 SAPIZend VM内部扩展Zend VM是PHP的虚拟机与JVM类似都是各自语言的编译/执行的核心。它们都会把各自的代码先编译为一种中间代码PHP的通常叫 opcodeJava通常叫bytecode不同的是PHP的opcode直接被Zend VM的执行单元调用对应的C函数执行不会显示保留下来可以cache保留而Jav
转载
精选
2015-03-25 10:28:27
778阅读
Linux下使用NTFS文件系统扩展设备Linux下使用NTFS文件系统扩展设备NTFS-3G介绍安装NTFS-3G方法一:手动下载安装安装步骤方法二:用yum使用NTFS-3G挂载NTFS文件系统磁盘 Linux下使用NTFS文件系统扩展设备有时候做大数据量迁移时,为了快速迁移大数据,有可能在Linux服务器上临时挂载NTFS格式的移动硬盘, 一般情况下,Linux是识别不了NTFS格式移动硬
转载
2024-08-06 19:34:16
177阅读
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html 在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,如今已经可以进入保护模式了,并且编写了我们自己的内核程序,这个内核虽然什么也没
原创
2021-06-04 22:06:13
399阅读
对于业务系统本身在架构设计的时候考虑扩展,原来更多的都是谈的 IT 基础技术架构本身的高可用性和高扩展性。而对于业务系统扩展性,简单来说就是如何灵活的应对需求的变化和扩展,如何减少在处理变更或扩展中代码不断产生的坏味道。说到扩展性,一般会谈到数据库扩展性和应用扩展性两个方面的内容,当然很多应用的扩展性最终会反馈到数据库本身的扩展性上面来。而对于应用本身的扩展性本身又包括了数据模型的扩展,接口的扩展
转载
2024-09-26 10:38:57
14阅读
一个完整的linux系统所需最小条件: /boot grub initrd.gz vmlinuz(kernel) ... /sysroot init linux常用目录 linux常用命令 ...创建精简内核实例: 1.磁盘分区并挂载 #fdisk /dev/sdb /dev/sdb1 /dev/sdb2 #partprobe /dev/sdb #mke2fs -j
原创
2015-02-24 08:34:58
1204阅读
我们将讨论调试器扩展,这些扩展允许您查看与LPC相关的问题。
LPC Kernel Debugger Extensions
Command
Description
!lpc
Display the list and description of all the !lpc commands
!lpc message [MessageId]
Display the message
转载
2020-09-16 08:00:00
143阅读
2评论
目录
目录... 2
一、 基础知识... 4
1.1 PHP变量的存储... 4
1.1.1 zval结构... 4
1.1.2 引用计数... 5
1.1.3 &nb
转载
精选
2012-07-27 15:42:22
652阅读
1.1 使用数组
曾讲到,PHP数组本质上就是个HashTable,因此访问数组就是对HashTable进行操作,Zend为我们提供的一组数组函数也只是对HashTable操作进行了简单包装而已。
来看创建数组,由于数组也是存在于zval里的,因此要先用MAKE_STD_ZVAL()宏创建一个zval,之后调用如下宏将其转化为一个空数组
原创
2011-06-03 10:06:53
963阅读
PHP内核源代码、PHP Zend扩展、API Hook学习笔记
原创
2023-07-24 11:35:01
13阅读
类和对象(TODO)
附录A. Extension的编译
Extension的编译是比较简单的,下面是个示例Makefile:
原创
2011-06-03 10:06:41
806阅读
玩Linux网络的同好一定希望可以任意定义网络处理逻辑的行为,可谓协议处理的高端定制,最显而易见的办法就是在结构体里面加一个字段,事实上Linux的一个入口流控补丁IMQ就是这么做的,它简单的修改了Linux内核的sk_buff结构体的定义,增加了一个字段,增加了一个IMQ使用的字段,然后重新编译了内核... 通过重新编译内核,总是能满足任何的需求,但是噩
推荐
原创
2014-04-13 15:47:16
850阅读
点赞
1. 关注属性gpio-hog GPIO hogging is a mechanism providing automatic GPIO request and configuration as part of the gpio-controller's driver probe function.
转载
2020-03-16 09:45:00
656阅读
2评论
Extensions 的编写
理解了这些运行机制以后,本章着手介绍Extensions 的编写,但凡写程序的人都知道hello world,那好,就从hello world开始。
原创
2011-12-16 20:16:14
1216阅读
一、 基础知识
本章简要介绍一些Zend引擎的内部机制,这些知识和Extensions密切相关,同时也可以帮助我们写出更加高效的PHP代码。
原创
2011-05-30 08:05:06
618阅读
说到浏览器插件,很多人想到的多数是电脑上的玩法。实际上,随着手机浏览器功能越来越完善,很多手机浏览器已经开始支持插件的使用。也就是说,支持安装插件的手机浏览器,不仅能体验如电脑般丝滑强大的功能,而且又不会造成内存过分臃肿、开启响应缓慢的问题,你就说香不香吧?下面,给大家介绍3款支持安装插件的手机浏览器,比夸克还好用,希望帮助大家找到一款属于你手机中不可或缺的心头好。支持安装插件的手机浏览器第一款:
转载
2024-04-18 15:10:21
42阅读
操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。按照类似封装的形式,这些术语定义如下:
单内核:也称为宏内核。将内核从整体上作为一个大过程实现,并同时运行在一个单独的地址空间。所有的内核服务都在一个地址空间运行,相互之间直接调用函数,简单高效。微内核:功能被划分成独立的过程,过程间通过IPC进行通信。模块化程度高,一个服务失效不会影响另外一个服务。Linu
转载
精选
2010-09-12 11:20:53
10000+阅读
点赞
Monolithic Kernel 无论是Windows还是Linux等等,这些寻常使用的操作系统,都是用内核和管理和使用硬件的。 宏内核。 Monolithic,词典义是『单一的,庞大的』,简单理解,就是内核的所有功能,从文件系统,到内存管理,到CPU调度,等等等等,都放在内核态中。这样做有一个很
转载
2020-03-05 16:30:00
1253阅读
2评论
线程分类:内核线程、用户线程(指不需要内核支持而完全建立在用户空间的线程库,这种线程效率高,由于Linux内核没有轻量级进程(线程)的概念,因此不能独立的对用户线程进行调度,而是由一个线程运行库来组织线程的调度)和轻量级线程(内核线程的高级抽象,大多数操作涉及到系统调用,效率不高)。 传统的Unix系统把一些重要的任务委托给周期性的执行进程,这些任务包括刷新磁盘高速缓存,交换出不用的页框,维护网络连接等。这些线程只运行在内核态(普通进程既可以运行在内核态,也可以运行在用户态),内核线程只运行在内核态,所以只使用大于PAGE_OFFSET的线性地址空间。现代操作系统把它们的函数委托...
转载
2013-07-05 22:18:00
1052阅读
2评论