首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
postgresql 内核解读笔记
2024-08-09
PostgreSQL内核学习笔记四(SQL引擎)
PostgreSQL实现了SQL Standard2011的大部分内容,SQL处理是数据库中非常复杂的一部分内容. 本文简要介绍了SQL处理的相关内容. 简要介绍 SQL文的处理分为以下几个部分: Parser阶段(词法分析,语法解析) 对应于source中的parser模块 analyzer阶段(语义分析) 对应于source中的analyzer模块 内部处理中将Parser阶段生成的Parser tree转换为Query tree rewriter阶段(查询重写) 安装规则系统进行查询重写,
PostgreSQL内核学习笔记十一(索引)
Index Scan涉及到两部分的内容Heap Only Tuple和index-only-scan. 什么是Heap Only Tuple(HOT)? 例如:Update a Row Without HOT testdb=# \d tbl Table "public.tbl" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- id | i
EPROCESS 进程/线程优先级 句柄表 GDT LDT 页表 《寒江独钓》内核学习笔记(2)
在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习内核中很重要的另一批数据结构: EPROCESS/KPROCESS/PEB.把它们放到一起是因为这三个数据结构及其外延和windows中进程的表示关系密切,我们在做进程隐藏和进程枚举的时候一定会涉及到这3类数据结构,所以这里有必要及时做一下总结,做个学习笔记,理清思路. 1. 相关阅读材料 <windows 内核原理与实现> --- 潘爱民 <深入解析windows操作系统(第4版,中文版)> --- 潘
Linux内核学习笔记-2.进程管理
原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert Love,陈莉君等译. 1.进程 进程是正在执行的程序代码的实时结果,包含打开的文件.挂起的信号等.线程是进程中的活动的对象,内核调度的对象是线程.在Linux内核对线程与进程并不加以区分,线程只不过是一种特殊的进程. 2.进程描述符 内核把进程的信息存放在task list的双向循环链表中,链表中的
Linux内核学习笔记-1.简介和入门
原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert Love,陈莉君等译. 1.操作系统和内核简介 Linux内核是自由公开软件,使用GNU的General Public License(GPL)第二版作为限制条款.大多数软件许可证决意剥夺你共享和修改软件的自由.相比之下,GNU通用公共许可证试图保证你共享和修改自由软件的自由. 通常一个内核负责响应中
Bandwidthd+Postgresql数据库配置笔记
Bandwidthd+Postgresql数据库配置笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/zjianbo/article/details/16717625 作者:张建波 邮箱: 281451020@qq.com 电话:13577062679 欢迎来电交流! 一.安装前的准备工作 (1)安装前请参考http://blog.csdn.net/zjianbo/article/details/16623879,了解Postgresql数
Linux内核学习笔记二——进程
Linux内核学习笔记二——进程 一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器. 内核调度的对象是线程而不是进程.对Linux而言,线程是特殊的进程. 二 进程描述符及任务结构 内核使用双向循环链表的任务队列来存放进程,使用结构体task_struct来描述进程所有信息. 1 进程描述符task_struct struct task_struct {}结构体相当大,大约1.7
20135316王剑桥Linux内核学习笔记
王剑桥Linux内核学习笔记 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机是如何工作的 个人理解:计算机就是通过和用户进行交互,执行用户的指令,这些指令存放在内存中,通过寄存器存储,堆栈变化,来一步步顺序执行. 一.存储程序计算机工作模型 1.冯诺依曼体系结构-存储程序计算机 硬件角度(主板):通过cpu中IP寄存器指向一个代码段运行某些指令: 寄存区,指向内存的某一块区域(代码段) IP:16位cp
Linux内核设计笔记10——内核同步
Linux内核同步笔记 几个基本概念 - 临界区(critical region):访问和操作共享数据的代码段: - 原子操作:操作在执行中不被打断,要么不执行,要么执行完: - 竞争条件: 两个线程处于同一个临界区内执行,对数据同时访问或操作,称之为竞争: - 同步(synchronization):避免并发和防止竞争条件成为同步. 预防死锁 - 按顺序加锁,使用嵌套锁时,必须注意按顺序加锁,可以防止拥抱类死锁. - 防止饥饿 - 不要重复请求同一个锁 - 设计力求简单. 原子操作 原子操作可
KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态获取 《寒江独钓》内核学习笔记(5)
目录 . 相关阅读材料 . <加密与解密3> . [经典文章翻译]A_Crash_Course_on_the_Depths_of_Win32_Structured_Exception_Handling.pdf . < DAY安全: 软件漏洞分析技术> 2. 数据结构分析 二. KTHREAD KTHREAD(内核层线程对象).再次重复说明一点: windows内核中的执行体(ETHREAD, EPROCESS) 负责各种与管理和策略相关的功能,而内核层(或微内核)(KTHREAD,
ETHREAD APC 《寒江独钓》内核学习笔记(4)
继续学习windows 中和线程有关系的数据结构: ETHREAD.KTHREAD.TEB 1. 相关阅读材料 <windows 内核原理与实现> --- 潘爱民 2. 数据结构分析 我们知道,windows内核中的执行体层负责各种与管理和策略相关的功能,而内核层(微内核)实现了操作系统的核心机制.进程和线程在这两层上都有对应的数据结构.我们先从执行体层的ETHREAD开始. 一. ETHREAD ETHREAD(执行体线程块)是执行体层上的线程对象的数据结构.在windows内核中,每个进
KPROCESS IDT PEB Ldr 《寒江独钓》内核学习笔记(3)
继续上一篇(2)未完成的研究,我们接下来学习 KPROCESS这个数据结构. 1. 相关阅读材料 <深入理解计算机系统(原书第2版)> 二. KPROCESS KPROCESS,也叫内核进程块.我们在开始学习它的数据机构之前,首先要思考的一个问题是,它和EPROCESS名字感觉差不多,那它们之间是什么关系呢?它们在内核区域中都位于那一层呢? 我们先来看一张图: windows内核中的执行体负责各种与管理和策略相关的的功能(在学习笔记(2)有相关的介绍).而内核层(或微内核)实现了操作系统的&q
IRP IO_STACK_LOCATION 《寒江独钓》内核学习笔记(1)
在学习内核过滤驱动的过程中,遇到了大量的涉及IRP操作的代码,这里有必要对IRP的数据结构和与之相关的API函数做一下笔记. 1. 相关阅读资料 <深入解析 windows 操作系统(第4版,中文版)> --- 9章 <windows driver kit 帮助文档> http://support.microsoft.com/kb/115758/zh-cn IRP 结构中各地址字段的含义 http://www.programlife.net/io_stack_location-i
linux内核编程笔记【原创】
以下为本人学习笔记,如有转载请注明出处,谢谢 DEFINE_MUTEX(buzzer_mutex); mutex_lock(&buzzer_mutex); mutex_unlock(&buzzer_mutex); static void WriteNumber(const char *fileName, int number) { FILE *fp; fp = fopen(fileName, "w"); if (fp == NULL) { LCD_DEBUG("
分享:json2.js源代码解读笔记
1. 怎样理解"json" 首先应该意识到,json是一种数据转换格式,既然是个"格式",就是个抽象的东西.它不是js对象,也不是字符串,它仅仅是一种格式,一种规定而已. 这个格式规定了如何将js对象转换成字符串.以及转换成如何的字符串--序列化 -- JSON.stringify 接口: 以及怎样将一个有效字符串转换成js对象--反序列化-- JSON.parse 接口: 2. 关于作者 json作者是 道格拉斯.克劳福德 ,是一位js大牛,写过一本<jav
js便签笔记(10) - 分享:json2.js源码解读笔记
1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转换成字符串.以及转换成怎样的字符串——序列化 —— JSON.stringify 接口: 以及如何将一个有效字符串转换成js对象——反序列化—— JSON.parse 接口: 2. 关于作者 json作者是 道格拉斯.克劳福德 ,是一位js大牛,写过一本<javascript语言精粹>,相信不少朋
js便签笔记(10) - 分享:json.js源码解读笔记
1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转换成字符串.以及转换成怎样的字符串——序列化 —— JSON.stringify 接口: 以及如何将一个有效字符串转换成js对象——反序列化—— JSON.parse 接口: 2. 关于作者 json作者是 道格拉斯.克劳福德 ,是一位js大牛,写过一本<javascript语言精粹>,相信不少朋
Linux内核学习笔记之seq_file接口创建可读写proc文件
转自:http://blog.csdn.net/mumufan05/article/details/45803219 学习笔记与个人理解,如有错误,欢迎指正. 温馨提示:建议跟着注释中的编号顺序阅读代码 测试方法:cat /proc/abc_proc echo 任意字符串 >/proc/abc_pro(需root权限) /************************************************* 使用seq_file接口实现可读写proc文件的例子 适用于3.10以后的内
PostgreSQL内核分析——BTree索引
文中附图参考至<PostgreSQL数据库内核分析> (一)概念描述 B+树是一种索引数据结构,其一个特征在于非叶子节点用于描述索引,而叶子节点指向具体的数据存储位置.在PostgreSQL中,存在结构相似的BTree索引,该数据结构最先引用于<Effiicient Locking for Concurrent Operations on B-Trees>论文,一个新特征在于,引入了“High Key”(下述HK)用于描述当前节点子节点的最大值.如下图所示: 其中K1代表一个HK,
Windows内核读书笔记——Windows异常分发处理机制
本篇读书笔记主要参考自<深入解析Windows操作系统>和<软件调试>这两本书. IDT是处理异常,实现操作系统与CPU的交互的关口. 系统在初始化阶段会去填写这个结构. IDT的每一个表项都成为门描述符,因为IDT的功能就像大门一样,从一个空间跳到另一个空间去执行. IDT中包含三种门描述符 任务门描述符:用于任务切换 中断门描述符:用于描述中断处理例程 陷阱们描述符:用于描述异常处理例程 CPU如何使用IDT cpu首先根据IDTR找到IDT,再利用向量号码找到门描述符.再去判
热门专题
gwas catalog R语言
github fork和clone的区别
react 静态化缓存策略
vs中decimal保留两位小数
ceres动态库 ubuntu
idea中如何把一个新项目上传到gitlab上
es 的yml配置大小
Autfac默认注册
os 提取指定类型文件名
oracle连接运算符
IIS8伪静态和301重定向文件web.config规则
googlechrome js通过ajax访问数据库
安卓invoking installer报错
ardc安卓投屏下载
java定义变长数组
C# radiobutton.UNCHECKED怎么用
rtamap都可以自行定位为啥还要开启acml模式
linux查看二进制文件命令
react 3行溢出隐藏
虚拟机ubuntu界面小