- 博客(43)
- 资源 (12)
- 收藏
- 关注

原创 你不得不知道的 IP 包详解(傻瓜式讲解)
写在前面的话:在刚开始学习网络的时候感觉一些包以及一些啥层的啥协议特别抽象,总是不能窥探其中的原理。而经过自己利用模拟软件进行网络学习环境的搭建,以及传输时的抓包分析,终于将那一层窗户纸捅破了,希望你们能坚持下去,努力会有收获的--共勉!简介:IP协议控制传输的协议单元称为IP数据报(IP Datagram,IP数据报、IP包或IP分组)。IP协议屏蔽了下层各种物理子网的差异,能够向...
2020-04-13 21:19:20
12575
1
原创 K8s智能管家揭秘(调度器/控制器)
Kubernetes调度器kube-scheduler负责将Pod分配到合适的Node节点运行,主要流程包括:用户提交Pod清单到APIServer后,调度器通过预选(Predicates)过滤不满足条件的节点,再通过优选(Priorities)对剩余节点打分,选择最优节点绑定Pod。预选阶段检查CPU/内存资源、端口冲突、节点亲和性等条件;优选阶段根据资源均衡、镜像本地化等策略评分。整个过程支持插件扩展,开发者可通过实现Framework接口自定义调度逻辑。最终kubelet负责在目标节点创建并运行Pod
2025-09-03 14:30:18
584
原创 K8s 二次开发漫游录
摘要:本文介绍了Kubernetes APIServer的核心组件与工作原理,重点解析了认证流程和声明式API的实现机制。APIServer通过认证(AuthN)、限速、审计、鉴权(AuthZ)等组件处理请求,支持Mutating/Validating Webhook进行资源修改和验证。声明式API通过Group/Version/Resource路径解析YAML文件,并转换为Super Version对象统一处理。认证阶段支持外部Webhook服务验证Token,需注意熔断限流以避免依赖服务故障影响集群稳定
2025-08-27 18:35:45
1157
原创 藏在 K8s 幕后的记忆中枢(etcd)
本文介绍了etcd分布式键值存储服务的架构演进与核心机制。etcd v2存在内存开销大、不支持多版本等缺陷,v3版本通过MVCC模型、HTTP/2协议等改进解决了这些问题。文章详细解析了etcd v3的多层架构,包括Client层、gRPC API层、逻辑层(KVServer、LeaseServer等)、存储层(treeIndex和boltdb)等核心模块。重点阐述了配额管理、数据压缩、幂等性保证等关键机制,并展示了请求处理的完整流程:从鉴权检查、限速控制到Raft提案和MVCC存储。最后通过流程图直观呈现
2025-08-22 16:22:08
781
原创 解锁 Docker:一场从入门到源码的趣味解谜之旅
本文摘要:Docker技术基础与核心原理 Docker通过镜像和容器实现轻量化应用部署,镜像作为磁盘文件创建内存中的容器进程。容器共享宿主机内核但隔离性低于虚拟机,存在安全风险。网络方面,Docker默认使用docker0虚拟交换机,支持自定义网络配置,不同网络间通过iptables规则隔离。核心技术包括Namespace(UTS、User、Mount、PID、Network等)实现资源隔离,通过nsenter命令可进入目标进程的命名空间,unshare则用于创建新命名空间。文中详细解析了容器内进程的PID
2025-08-14 17:21:39
859
1
原创 GO的启动流程(GMP模型/内存)
本文通过分析Go程序编译运行过程,深入探讨了Go程序的启动机制。首先使用readelf和nm工具查看可执行文件头信息,定位到程序入口地址0x45e9a0对应的_rt0_amd64_linux符号。通过gdb调试发现,Go程序启动过程依次调用了runtime.rt0_go、runtime.osinit和runtime.schedinit等核心初始化函数,完成CPU数量获取、GMP调度器初始化等工作。重点解析了runtime.newproc创建主协程的过程,包括从缓存获取G对象、栈内存分配等细节。
2025-08-08 18:24:17
1065
原创 文件系统(dcoker联合文件系统&linux文件系统)
在生活中我们经常会看到投影,比如投影仪投到幕布上可以显示具体的画面。如果有3个幕布呢?每个幕布上都会有固定的图案(假设这些图案可受一种光的影响来实现向下层幕布的映射),将一个强光打在三个幕布上此时会发生什么?那此时在不同层的幕布同一个位置有不同的图案颜色此时会怎么办?即下层的会覆盖到上层的图案,下层的优先展示。有了上面的概念之后,当我们用docker pull xx 拉取一个镜像的时候会出现下面的场景:这里的打印出许多Pull complete以及前面的12位字符对应就是一层。
2025-04-12 00:41:48
1074
原创 如何扩展 Linux 中 ext4 文件系统的大小
我们通过docker部署的程序已经吃满了所挂载的磁盘,导致里面的服务由于磁盘空间的不足而不能正常提供服务。此时我们首先进行了物理扩容,直接在vdb上扩容到1000G。通过lsblk -l 命令可以看出我们的扩容是成功的vdb已经有1000G了,可是通过df -H 查看使用情况时发现/mnt/docker挂载的盘符还是400多G,且已经没有使用空间了。
2025-03-24 19:33:26
960
原创 navicat忘记已经连接过的数据库密码的操作步骤
第二步:选中具体的数据库,且勾选左下角的记住密码。第三步:打开刚刚导出的文件,找到对应加密后的密码。第四步:复制密码到工具点击查看密码。第一步: 点击文件-》导出连接。注:参考文章链接附带工具。
2025-03-19 23:12:16
1293
原创 MySQL 数据目录迁移导致启动失败
在项目运行过程中,MySQL 数据库由于 磁盘空间不足,需要将数据目录从 /data/docker/volumes/mysql-master 迁移至 /mnt/docker/volumes/volumes/mysql-master。由于 MySQL 运行的 UID/GID 为 999:999(mysql 用户),但 ibdata1 文件的所有者是 systemd-coredump,MySQL 可能无权限访问或修改该文件,导致 InnoDB 初始化失败。(3)MySQL 数据目录权限。
2025-03-07 21:51:04
519
原创 串联计算机组成原理
比如我故意编写一段代码让CPU执行,然后触发其乱序执行过程中,接着触发分支预测,按照50%的命中率来说,会有一部分的预测会出错,此时CPU会清空错误的指令并重新读取正确的指令去执行,但此时之前执行出错的数据会留存在CPU的Cache寄存器中,此时如果拿到这个寄存器内的数据就可以反推内存地址中的相关数据,真的太厉害了!通过内存地址的地位地址可以获取Cache中的索引号,然后根据有效位来判断该数据是否有效,若有效则通过组标记来确保就是我们要读的内存地址的数据,然后通过偏移量获取到实际的数据。
2024-10-24 17:46:26
774
原创 ImportError: cannot import name ‘DglNodePropPredDataset‘ from ‘ogb.nodepropp
import 失败
2024-09-07 17:00:30
395
原创 CPU是如何从硬盘读取数据到内存再到Cache的?!
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例
2021-01-15 15:28:41
3521
2
原创 超声波+51单片机测距实验
学习食谱前言一、超声波即测距原理二、源代码三、 总结及扩展前言提示:我这里选的超声波模块是 HC-SR04 ,单片机使用的是51单片机。一、超声波即测距原理原理很简单就是依靠脉冲,只要控制脉冲的时间就能触发其驱动。看相关文档记录有:采用IO口Trig触发测距,至少给 10us 的高电平信号触发(利用单片机的定时器可实现)当有了19us的高电平后模块会自动发送8个40 khz 的方波,自动检测是否用信号返回有信号返回,通过Echo输出,输出的高电平时间就是测距所用的时间公式
2020-09-14 17:46:15
5695
原创 计算机的流水线-----流水线的原理
文章目录先听一个故事流水线优化总结先听一个故事假如你是刚刚在繁华的地带开了一个餐馆,雇了一个大厨掌管厨房,所有的流程都由这个厨师来操作,那么当生意好的时候,厨师一个人根本来不及啊。而且客人本来就很饿,这就很不好了。【大厨的图片】于是你想提高上菜的效率,就将大厨解雇掉,用相应的薪资雇了几个人,如洗菜的,切菜的,烧菜的,上菜的。这样一来原来每四分钟做完一个菜,现在也需要四分钟(在菜的数量等于1的时候情况是这样),但后面伴随着点的菜的数量越来越多,则这种i分工明确化的操作将大大提高上菜效率。
2020-09-05 23:43:21
1458
原创 详解CPU的指令执行步骤
补充知识执行过程大图谱取指译码执行回写=======================================补充知识:不知道你能不能看懂汇编指令,如:mov ax,0800H ; 将内存地址 0B800H 写入 ax 寄存器add ax,ds:[6] ; 计算 ax + ds:[6],并将值更新到 ax 寄存器执行过程大图谱:PS: 试看自己能不能看懂 ?. ?取指:CPU的控制电路将 PC(Program Counter )程序计数器 , 通过内部总.
2020-08-15 16:06:16
12940
1
原创 串讲6-18购物所用到的网络协议(一)
- 动感地带,我的地盘我做主:当我们访问京东,淘宝,拼多多等一系列国名品牌购物APP的时候,一进去就是光彩夺目的商品信息。那么你觉得这些信息资源都是存在哪个里面呢?当然是存到数据库里面了,那么多的数据放在一个数据库里肯定是不行的,所以在大型的电商公司都会有自己的 数据中心。其实数据中心并没有那么高大上,不也就是几百台服务器根据标准有规律的存放在一起。如一个机架(Rack),可以类比成放衣服的柜子,一个机架上面一层层的放的都是服务器,如图:每个机架(Rack)里的服务器可能需要相互通信,那么就在每个
2020-07-16 11:26:28
1185
原创 DHCP 能装操作系统? 神操作?
静态地址与动态地址DHCP概念及其应用场景(租期,续租等)举两个栗子(本地获取地址,跨网段获取)DHCP的工作原理扩展: PXE(Pre-Boot-Execution Environment )问题: 既然 MAC地址能唯一标识一台计算机,那为啥还需要IP呢?直接通过 MAC地址通信不香吗?...
2020-06-10 23:47:47
728
原创 从hello world 看编译器原理
来一句hello world# vim hello.c#include<stdio.h>int main(){ printf("hello world \n"); return 0;}编译器翻译过程gcc -o hello hello.c# gcc编译器驱动程序读取hello.c,#将其翻译成可执行的目标文件 hello流程图解释:预处理阶段:hello.c 通过 cpp 改写为 hello.i ,将头文件 #include<std.
2020-06-02 09:41:48
727
原创 撕裂内存,刨析原理
目录:内存的物理构造(与或非门)CPU 访问内存的过程DRAM 和 SRAM内存中的数据结构虚拟内存(地址转换,TLB)内存保护(可执行空间,地址空间布局随机化)扩展 DRAM(DDRAM)===========================================内存的物理构造(与或非门)先来看一下能存一个字节(1)的逻辑门电路:当B为 1 时,无论 A的输入是啥,输出都是1。这也就意味着这个异或逻辑门电路能存一个字节为 1 的数据。在来看一个能存 0 的逻辑门电
2020-05-18 01:58:23
873
原创 一个窗口,轻松解决流量和拥塞问题。【TCP特性】
相关基础传送门: [ TCP ] : 一个靠谱 Man 的自白窗口的概念:就像队列一样,起到缓存的作用。 当双方开始建立连接时,会将各自的发送 / 接收 最大的窗口大小告知其,然后使其发送接受速率相同。抓包图(如果看不清楚可以 按住 ctrl + 鼠标滚到的那个进行放大): 注意看 ip 地址这部分,一开始是我的 PC 向浏览器所监听的端口发送建立请求,这时你看橙色框起来的部分— 那部分双方告知自己的窗口大小,以及 WS(理解成缓存窗口) 注: 这很容易乱,收/发窗口 和拥塞窗口不是一个概
2020-05-08 23:30:23
282
原创 Centos7中搭建QT开发环境
安装步骤:(建议先配置一下阿里云镜像的yum源) 安装 gcc 和 gcc-c++:yum -y install gcc gcc-c++wget http://download.qt-project.org/official_releases/qt/5.14/5.14.0/qt-opensource-linux-x64-5.14.0.run./qt-opensource-linu...
2020-04-26 17:01:23
1923
原创 终结:VirtualBox启动win7黑屏 !
背景:由于用 win10 装 华为的 eNSP ,成功后运行 eNSP 托一个路由器过来试试,没想到报 40 错误,我当时软件卸载又装来来回回七八次一直都不能解决这个问题。曾一直怀疑我的电脑是盗版的,怎么这个软件都带不起来,好歹也是 Y7000 啊!? 最后,本着不解决问题就不放手的原则,想到了那么既然能在我的 win7 上完美 runing 那我可不可以给 VB(Virtual Box)装一个...
2020-04-18 23:25:14
5690
2
原创 IDEA 调式Debug 不进去?(岂有此理 )
当我一边跟随着视频教学,一边进行操作。 视频的老师进行Debug 调试进入底层代码,而我却一直在自己写的代码这里上下波动,怎么也看不了 jdk 的底层源码,如果你也和我这样,那么这个操作就对你有帮助:然后在代表旁打上圆滚滚的小红点,点击debug,随着 F7(按住)一步一步的跟着它,一路向西 >.< 。...
2020-04-16 15:05:11
7015
4
原创 程序加载: 你的内存真的够用吗?
简介:看到标题你是否有些许的疑问?其实我也同你差不多。上篇博客讲了一个 .c 文件是如何变成可执行文件的,里面有链接器和装载器的作用。你可以点击这个链接看看,了解一下程序是如何一步步被加载进内存的。程序加载过程通过装载器我们知道两条线索:1 程序指令的执行是存放在一段连续的内存空间内。2 我们不能指定指令在内存中存放的地址,因为你所指定的地址可能被别的程序所占用。基于这两条线索,很...
2019-12-08 17:01:41
323
原创 为什么同一个程序不能在两种操作系统上分别运行?
最初试解:你可以这样想一下, 为啥记事本不能打开 .map4 的文件?因为记事本只能打开 .txt 类型的文件。由程序进行探索:你可以看看下面这段函数:然后进行编译,反汇编:虽然两个函数的起止地址都是从00000…开始的,那在主函数中 call sub 函数时,怎么知道调用函数的入口在哪呢? 如果我们直接执行这个 test.o 文件时,是会报错的。第一个报错原因是因为没有权限:...
2019-12-06 09:53:01
1887
原创 相爱容易分手难(TCP断开连接)
回顾 TCP 建立连接:假如你对一个女孩子告白,大概流程只有三步:具体的 TCP 建立连接的内容你可以参考这一篇:TCP 连接过程哈哈,我曾把完整的镜子打碎… 就这样你们的爱情走向失败。TCP 断开连接:相爱容易,分手难。 相爱只需要三步,而分手则需要四步:这个过程就和CP断开连接过程很像,下面具体解析TCP断开连接流程:过程:A发送完数据后发送 FIN 报文给B,表示想断开连...
2019-12-02 18:58:27
269
原创 指令跳转
CPU 顺序执行指令:计算机是如何执行一条条指令的呢? 计算机内部是由许多的寄存器和锁存器组成的,由不同的与或非门构造而成。而在其内部主要的寄存器有:程序在CPU内的执行过程:CPU根据 PC寄存器里的地址,从内存中读取对应需要执行的指令到指令寄存器中执行,然后根据指令长度自增顺序执行下一条指令。我们可以看出一个程序是连续存储在内存中的。那当我们编程时用到 if… else这样的语句,...
2019-12-01 19:06:49
1748
原创 TCP建立连接的过程
简介:TCP::传输控制协议,面向连接,确保 port to port ,可靠的传输协议。面向连接: 发数据前先建立一条虚拟的链路,让数据在这条链路上“”流动“” 完成传输可靠:所发的每一个字节都要进行编号确认以此来检验数据包的有效性。检验方法: 可通过校验位(奇 / 偶)因为是面向连接的所以存在服务器和客户端(C/S):实践:TCP报文格式部分解读:建立连接过程: 三次握手三次...
2019-11-27 09:22:44
1590
原创 Java 生成二维码代码解析
毫无疑问,第一点也是最重要的一点引入相关 jar 包的支持。你可以在 mvn 仓库中进行下载。我们先来看主函数: // 生成图片路径 src/img.png String imgPath = "src/qr.png"; // 二维码内容: 文字信息 , 网址信息等。。 String contenx = "Hello World"; ...
2019-11-18 10:58:28
914
原创 分页查询 ? 异步 : 同步
上篇博客说到了同步请求的分页查询:you can click here to konw the knowledge异步请求开发流程图:第一步: html页面中跳转新页面<a href="${APP_PATH }/user/toindex.do"><i class="glyphicon glyphicon-user"></i> 用户维护</a>...
2019-10-28 17:52:16
771
原创 分页查询 ==? 同步:异步
总结一下最近学习项目中的一个模块-- 分页查询。即如何将数据库查到的结果显示到页面上? 后台代码又该如何操作?同步查询流程图:准备工作: 创建一个 Page 对象用于参数传递。package com.atguigu.atcrowdfunding.util;import java.util.List;public class Page { //当前页 private Integer...
2019-10-24 09:52:15
456
原创 交换分区的查看与创建
简介:Swap (交换分区) : 当系统内存不足时,会启用这块备份内存区域。当 swap 内存不足时,系统会随机杀死内存较大的程序,想一下一些重要的程序被停止运行该多么的不爽。查看: free -m创建:i 利用物理磁盘ii 利用文件利用物理磁盘:第一步: 和之前的分区大径相同,如果不清楚可以看看。***here for you a git第二步: 格式化系统文件类型第二...
2019-10-23 17:34:05
868
原创 常用的文件类型 --ext4
哈哈,当我们给电脑新安装了一个磁盘时,系统会提示我们是否格式化这个盘,也就是为这个盘规定特定的文件类型。先来看看它的结构:超级块: 存储这个文件系统文件的个数,大小。超级块副本:用于备份超级块(超级块副本可不止一个哦)i 节点: 用于存储文件的大小,权限,编号。(文件名是存储在父文件的 i 节点内)数据块: 存储具体的数据。具体结构如下:如何查看一个文件的编号: ls -li x...
2019-10-20 21:13:16
1243
鸿蒙基本开发教程以及一个小demo
2020-10-08
HCIA-RS(H12-211-V2.5-947题(最终版本)密码:www.wanho.net)2.pdf
2020-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人