MYSQL服务器接收SQL格式的查询,首先要对sql进行解析,内部将文本格式转换为二进制结构,这个转换就是解析器,解析的目的是为了让优化器更好的处理指令,以便以最优的路径,最少的耗时返回我们想要的结果。sql解析器的构成:1、词法分析(Lexicalscanner):作用是将整个查询分解为多个元素。2、语法规则(Grammarrulemodule):寻找sql语法规则组合,产生一个序列,执行这些规
分类:
数据库 时间:
2018-10-17 12:11:51
阅读次数:
227
本文是基于MySQL5.7.22进行分析1.SQL总体执行流程图通过上面图,可以从全局上了解SQL语句执行流程以及与其他模块交互1.1SQL查询执行流程2.语法解析2.1编程语言知识回顾在介绍具体的MySQL数据库解析SQL之前,先来回归一下编程语言的知识点形式语言(Formallanguage)形式语言是用精确的数学或机器可处理的公式定义的语言,个人理解形式语言就是符号化的语言,比如编程语言(C
分类:
数据库 时间:
2018-10-15 18:12:51
阅读次数:
312
Linux内核源码官方下载地址: https://www.kernel.org/pub/linux/kernel/ 系统:centos7.5 1、在官方下载自己需要的内核版本 例如:linux-3.9.tar.gz wget https://mirrors.edge.kernel.org/pub/l ...
分类:
其他好文 时间:
2018-10-07 20:54:38
阅读次数:
202
Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间的关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写的驱动不知道怎么编进内核,不知道怎么配置内核,这些问题都和Makefile、Kconfig、.config有关,下面简单谈谈Makefile、Kconfi ...
分类:
其他好文 时间:
2018-09-09 12:05:52
阅读次数:
215
为什么要了解内核的调度策略呢?呵呵,因为它值得我们学习,不算是废话吧。内核调度程序很先进很强大,管理你的LINUX上跑的大量的乱七八糟的进程,同时还保持着对用户操作的高灵敏响应,如果可能,为什么不把这种思想放到自己的应用程序里呢?或者,有没有可能更好的实现自己的应用,使得操作系统能够以自己的意志来分 ...
分类:
编程语言 时间:
2018-09-04 14:52:15
阅读次数:
168
Linux内核通过一个被称为进程描述符的 结构体来管理进程,这个结构体包含了一个进程所需的所有信息。它定义在 文件中。 谈到 结构体,可以说她是linux内核源码中最复杂的一个结构体了,成员之多,占用内存之大。 进程状态 5个互斥状态 状态 | 描述 |: : TASK_RUNNING | 表示进程 ...
分类:
系统相关 时间:
2018-09-01 00:05:56
阅读次数:
287
sudo apt install wine winecfg出现问题 树莓派3B是卡片电脑,内存为1GB,一般运行Linux。Linux两种主流的内存分配方法2G/2G和3G/1G,树莓派系统后期优化性能,使用2G/2G。(注:树莓派内核3.x仍旧采用3G/1G) 方法一,编译新的Linux内核:(本 ...
GPIO的初始化 ? 在内核源码目录下使用命令“ls drivers/gpio/*.o”,可以看到“gpioexynos4”被编译进了内核.通过搜索*.o文件,可以知道内核编译内哪些文件。针对的看可以简化很多。– 生成.o文件代表最终被编译进了内核– 除了menuconfig配置文件,还可以通过.o ...
分类:
其他好文 时间:
2018-08-10 01:13:09
阅读次数:
250
模块代码如下 Makefile编写 其中:make 中的 c 选项表示切换到指定目录,这里是切换到当前内核的源码目录下. M 选项表示:要生成模块的代码目录,modules表示生成内核模块 整个语句的理解大概可以为: 切换到内核源码目录(因为模块需要用到一些内核头文件),结合自己模块代码生成对应模块 ...
分类:
系统相关 时间:
2018-08-09 13:53:05
阅读次数:
175
环境:Qemu + ARMv8 perf是一款综合性分析工具,大到系统全局性性能,再小到进程线程级别,甚至到函数及汇编级别。 在内核源码目录下执行编译脚本: ...
分类:
系统相关 时间:
2018-07-29 17:02:32
阅读次数:
189