linux
文章平均质量分 94
c-rain
你唯一所知,就是你一无所知
展开
-
【Golang源码分析】Golang如何实现自举 - dist介绍(二)
前言 根据《Golang如何实现自举(一)》的相关引导,知道了go1.3的go编译是需要go_bootstrap、然而生成go_bootstrap,需要dist工具进行生成。那么本期主要关注dist工具。1.dist工具介绍 其实dist工具是属于go的一个引导工具,它负责构建C程序(如Go编译器)和go工具的初始引导副本。它也可以作为一个包罗万象用shell脚本替换以前完成的零工。通过“go tool dist”命令可以操作该工具。该工具不同系统下对应在p原创 2021-01-11 20:41:09 · 853 阅读 · 0 评论 -
【Golang源码分析】解析执行命令complie(二)词法解析
前言:当我们使用编程语言编写代码时,我们都知道代码都是写给人看的,只是除了人能看外编译器可以编译和执行。而这些复杂的代码其实是一堆堆字符串,只是我们训练编译器拆分解读。而编译器将一堆堆代码的字符串分组的过程,我们把这个过程称之为词法解析。本文中工具:lex:3.1golang : 1.13.4 darwin/amd64dlv: 1.3.2编译过程一般分为 6 步:扫描、语法分析、语义分析、源代码优化、代码生成、目标代码优化。下图来自《程序员的自我修养》词法解析相关知识:说到词法解原创 2020-08-06 23:01:06 · 1042 阅读 · 0 评论 -
【Mysql源码分析】MySQL为什么有时候会选错索引及成本计算
前言 在一次Mysql分享中提到过,会将相关的一些知识点整理成相应的文章。由于前段时间忙的不可开交,一直没有时间去整理这些相关内容。但是必定说出来的话,就要去落实。本章内容主要以实践为主,最好是跟着动手实践。这样才能逐步掌握其中奥秘。那么我们开始吧!!!1.安装数据库 在做这个实践之前,我们要先安装一下mysql数据库,这边是通过源码的形式进行安装。方便后续的调试跟踪。1.1通过git下载mysql源码:#cd /Users/edz/Desktop/src-source/mysql-serve原创 2020-07-29 02:04:43 · 970 阅读 · 2 评论 -
【协议分析】深入了解DNS
引言: 写这篇文章主要是因为准备搞一个httpDNS和http2对组内的分享,然后刚好花一些时间去画图。并且整理一些素材,刚好就把整理的一些内容整理成具体的文章。 在我们学习之前我们可以去思考一些问题:1)DNS是干嘛用的?为什么要有DNS?2)DNS是怎么获取到IP?3)DNS是怎么通信,通信协议是什么?针对这些问题我们可以展开我们的话题。1.DNS是干嘛用的?为什么要有DNS? 说到DNS,其实可以用一词概述域名系统,域名系统(Domain Name System缩写DNS,Dom原创 2020-05-20 19:11:26 · 802 阅读 · 0 评论 -
centos6.9安装nginx安装http3
前言: 安装nginx支持http3时对版本是软件的有一些要求的,安装过程中如果版本不差异会导致编译存在问题。还有就是安装过程中会有一些依赖支持库; gcc版本:大于 gcc-4.7 pcre版本: pcre-8.00 nginx版本: nginx-1.17.9 或 nginx-1.16.x cmake版本: 大于 cmake-3.0 golang版本: go1.13.x...原创 2020-04-14 19:18:01 · 1046 阅读 · 0 评论