- 博客(25)
- 收藏
- 关注
原创 自动更新 Docker 镜像
Watchtower 会通过 Unix Socket 与 Docker 的守护进程 dockerd 通信,拉取最新的镜像,并与当前运行的进行比较。如果两者的 Hash 不同,则停止当前容器,并使用相同命令参数启动新容器。目前该项目由于维护者的经历不足,已归档停止维护。
2025-12-26 15:13:19
99
原创 STLINK
在 Windows 下,使用 WinUBS,从用户态直接控制 USB 设备;如果在安装 udev-rules 之前就插入了 STLINK,在安装后需要重新拔插,使 udev 规则生效,在普通用户权限下也能访问 USB 设备。STSW-LINK007 是用于更新 ST-LINK 固件的应用程序,基于 Java 开发,提供 Windows,Linux,MacOS 版本。官方的烧录程序和固件升级程序均在用户态实现驱动,只需在用户态能获取 USB 设备控制权即可。关于 STLINK 驱动的文档,可以查看。
2025-11-25 11:43:35
643
原创 为什么 Windows 的镜像通常不能 dd 烧录
由于 Windows 的 ISO 没有专门的 FAT32 分区,所以需要 UEFI 固件能支持识别 ISO 9660 的头,并根据头加载 EFI image。或者只能使用 Legacy BIOS 模式启动。ISO 9660 规定,文件系统从第 16 个扇区开始,前 16 个扇区保留,通常每个扇区为 2048 字节;而现代传统的光驱已经消失,取而代之的是 USB 启动,这是一个类似于硬盘的设备,通常使用传统的硬盘启动方式。因为光盘只能写入一次,不能擦除,所以需要为光盘定制专用的文件系统 ISO 9660;
2025-11-24 17:42:43
522
原创 海思 SLE 芯片 Linux 烧录
海思官方只提供了 Windows 下的烧录工具 BurnTool,支持串口,USB,JLINK,网口等方式,但无法在 Linux 下烧录。有人根据开源出来的文档和源码,逆向出,可以在 Linux 等全平台以串口方式烧录。虽然其名字为 ws63,但其同样支持 fwpkg 打包的 BS21 芯片。
2025-11-05 15:19:39
256
原创 iPhone 无线充电发展历史
iPhone 17 发布了,宣称支持 25W 的无线充电速率,但互联网上总是说其在国内只支持 15W 速率;最近还偶然得到一个磁吸充电宝,就想着把无线充电的知识补充一下。
2025-09-23 15:46:11
3084
原创 IP、ASN 地址分配与域名注册
一些固定的注册信息是记录在 IANA 和 RIR 的 WHOIS 数据库中的。而一些动态的路由信息,需要通过 RRC 来收集。更多的地理信息则需要与 ISP 合作进行原始数据清洗、合成等运算得出。
2025-09-22 11:02:27
1052
1
原创 远程查看海康威视 NVR 监控
客户需求为远程查看海康威视 NVR 监控。通过通过观察客户的网络环境,其采用中国电信的企业网络,分配公有 IPv4 地址,但不是专线,每次 PPPoE 拨号时会轮换 IP 地址。
2025-08-19 11:55:01
1652
原创 HTTP API 身份认证
互联网系统通常需要根据用户身份决定是否有资源的访问权限,这就需要对用户进行身份认证(),验证用户所声称的身份。验证手段通常是验证只有用户知道或拥有的东西,比如密码、手机号、指纹等。
2025-07-09 17:42:50
854
原创 内核命令行参数系统分析
内核通过两个系统注册内核命令行参数解析函数:废弃系统和现代系统。内核运行时,通过调用解析函数。以initrd通过宏向段注册参数解析函数。2 内核启动函数调用进行早期内核参数解析;该函数最终会调用到段中的解析函数。整个过程的系统调用如下:fill:#333;color:#333;color:#333;fill:none;最后回到开头,参数的EARLY选项代表是通过宏注册;不过从解析流程的调度看,在解析完早期参数以后,立马解析剩余参数,所以有没有该标志没有任何实际意义,应该是历史遗留。
2025-06-07 22:14:07
2084
原创 使用 cpio 解压 debian 系的 initrd-img 时,只能解压出 cpu 微码 AuthenticAMD.bin
通过查看initrd.img解压后,发现其只解压了头 151 个扇区的内容,包含一个大小为 75K 的 CPU 微码但实际这个initrd.img通过 binwalk 分析下initrd.img是 cpio 存档格式的结束符号,可以发现initrd.img所以这个initrd.img其实是由 3 个 cpio 存档和一个使用 zstd 压缩后的 cpio 存档组成。而 cpio 命令行解析到第一个结束符后就停止了,所以对于 debian 系的initrd.img,需要使用解压后可以发现三个early和一个。
2025-06-02 00:53:29
536
原创 USB Type-C 连接器与线缆详解
电源引角:4 个 GND + 4 个 VBUS,共 8 pin高速差分对:4 对,共 8 pin低速差分对:2 对,共 4 pin配置通道:CC,2 pin辅助通道:SBU,2 pin在 Type-C 之前,通常可以通过形状区分主机和设备:方形的 Tpye-A 为主机,其它形状为设备。Host 的 CC 使用上拉电阻,Device 的 CC 使用下拉电阻;Host 端必须监控 CC 信号;只有在监控到 CC 信号在正确的分压范围内,才会开启 VBUS 供电。
2025-05-28 18:37:48
3889
原创 glibc 库解析
GNU C Library 目标是为 Linux 内核操作系统提供用户态的 C 标准库;由与 C 标准库无法直接调用内核,所以 glibc 还实现了 POSIX.1 接口,用于与内核通信。fill:#333;color:#333;color:#333;fill:none;kernellibc.sokernelPOSIX.1ISO C我们通过关注一个最常见的。
2025-05-24 18:05:34
1271
原创 Qemu 磁盘扩容
扩展分区实际就是修改分区表中分区占用的扇区大小。有两种方法修改分区表,一种是进入到虚拟机中执行,只需打开虚拟机就行;另外一种直接将 qcow2 盘挂载到宿主机上,这需要借助。块大小即盘的实际容量,使用 Qemu 自带的磁盘工具。首先打印现有的分区表,确定需要扩展的分区为。
2025-05-15 17:33:07
866
原创 Kubernetes RuntimeClass 与 CRI 的分析
蚂蚁密算开发的 kuscia 是一款基于 k3s 的调度系统。在使用过程中发现其无法指定不同的容器运行时。初步分析,kuscia 的 server 节点使用的是开源。节点使用的是蚂蚁修改过的 kubelet 实现,一起放在 kuscia 中打包的。接口,也就是后端不依赖 containerd,而是完全自己实现整套类似 runc 的共能。变量,导致其无法指定不同的容器运行时。定义的一个接口函数,究竟是哪个结构体实现的呢?查看 kubelet 相关函数的实现,发现其在。,它用来实现 cri-api。
2025-05-13 18:42:15
1274
原创 go module 模块与源码的对应关系
模块是一组同时发布、拥有相同版本号的软件包集合。模块根目录包含go.mod,包目录下最少要有一个.go文件。
2025-05-08 23:04:55
895
原创 Docker Engine 存储驱动框架
Docker 镜像由一系列层级构成,每一层只存储与前一层的差异,。在使用 Dockerfile 构建镜像时,每条添加或删除文件的指令都会生成新的层,而其它不更改文件系统的指令只会在 Config 中体现。通过命令行查看镜像的构建过程,只有SIZE查看 nginx 的 manifest 验证层数,其layersDocker 容器是在 Docker 镜像的基础上添加一个新的可写层,也称为容器层,以保存容器运行期间对文件系统的更改。当容器被删除时,只会删除最上层的可写层,底层镜像保持不变。其中。
2025-04-30 11:57:22
841
原创 鲲鹏 TrustZone 初探
通信框架从程序开发者角度看,是将 TA 编译为 libcombine.so 动态库由 CA 调用。而对于 TA 的编译,由于在 TEE OS 中只内置了 LIBC 和 OPENSSL 库,如果使用其它库需要以静态链接的形式编译 TA。CA 与 TA 之间的通信依赖于 REE 侧的通信框架,包括用户态的 API 库、守护进程以及内核驱动;这两个环境各自拥有自己的资源,包括内存和 Cache。在被严格隔离的资源之上,TEE 和 REE 侧分别拥有自己的操作系统,用来执行用户的可信应用。
2025-04-27 16:13:46
432
原创 docker pull 过程解析
其中 Manifest 和 Config 时 JSON 格式的文本文件,Layer 是 tar.gz 格式的二进制文件。2. 请求 config.json (GET /v2/library/ubuntu/blobs/<config.digest>)1. 请求 Manifest (GET /v2/library/ubuntu/manifests/latest)3. 请求层文件 (GET /v2/library/ubuntu/blobs/<layer.digest>)返回压缩的层文件 (tar.gz)
2025-04-24 17:37:57
1219
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅