Sirius
Sirius
Home avatar

Fan的博客

CPP 综合

一些CPP面试内容,有时间再整理

详细解释 C++ 中 “对象模型” 的核心概念(如虚函数表、内存布局、this 指针),并分析: ① 虚函数调用的核心流程; ② 多重继承下虚函数表的结构; ③ 为什么空类的大小是 1 字节?

Linux 网络数据包流转

整个收发包流程的核心在于数据如何在 用户态 (User Space)内核态 (Kernel Space)硬件 (Hardware) 之间流转。

发送 (TX)接收 (RX) 流程如下:


从应用层 write() 到 网卡发送

golang GMP模型

本篇写GMP

一直觉得GMP的内容比较散乱,这篇也是在草稿放了很久

还是用问答形式来写了

GMP 模型是 Go 语言运行时 (runtime) 为了实现高效并发而设计的核心调度方案。它是一种先进的 M:N 调度器,旨在以极低的开销管理成千上万的 Goroutine (G),并将它们映射到少量的操作系统线程 (M) 上执行。

linux如何不进入bios切换efi启动顺序

在 Linux 系统下,您可以使用 efibootmgr 这个命令行工具来列出和管理 UEFI 启动项。这个工具允许您查看当前的启动顺序、每个启动项的详细信息,以及修改它们。

在大多数现代 Linux 发行版中,如果您的系统是以 UEFI 模式安装的,efibootmgr 通常已经预装。如果尚未安装,您可以使用您的发行版的包管理器来安装它。

naive proxy 服务端搭建

使用了一段时间非常稳定, 记录一下以便于下次安装

部署 NaiveProxy 服务器需要结合 Caddy Web 服务器及其 forwardproxy 模块。NaiveProxy 的核心是利用 Chrome 的网络栈来伪装流量,使其看起来像普通的 HTTPS 流量,从而有效抵抗审查。

Go 语言 读写锁

Go 语言中的读写锁(sync.RWMutex)是 sync 包提供的一个核心同步原语,用于解决读多写少场景下的并发性能问题。它允许多个读操作并发执行,但写操作必须独占访问资源。

Linux下 Bash 向内核写日志, 写dmesg可以看的日志

在 Bash 中向系统写日志,使其能被 dmesg 查看,可以通过向 /dev/kmsg 写入,因为这个设备文件专门用于向内核消息缓冲区发送信息。你也可以使用 logger 命令向系统日志(如 syslog)发送消息,这同样可以查看,但它不会直接出现在 dmesg 输出中,而是出现在 /var/log 下的其他日志文件中,可以通过 journalctl 或其他日志查看工具查看。