主题的晦涩 人生的短暂

kongjun18's Github chart

网络层:控制面板

路由器中和路由(决定数据包从源主机到目的主机的路径)相关的功能成为控制面板。 传统上,每个路由器都有自己的控制面板,即每个路由器都独立实现了路由算法。 per-router-control-plane 现在,软件定义网络迅速发展,使用远程控制器连接路由器,实现逻辑上集中式的控制,路由器给控制器提供必要链路信息,控制器计算路由表并安装到路由器中。 SND-contral-plane 路由算法 路由算法决定数据报从主机发送到目的主机的路径,路由算法探

搭建家庭私有云

最近阅读了韦易笑(Github/知乎)专栏我爱命令行中的三篇文章: KVM 虚拟化环境搭建 - WebVirtMgr KVM 虚拟化环境搭建 - ProxmoxVE OpenMediaVault:你的开源 NAS 系统 这三篇文章介绍了 KVM 虚拟化的搭建和家庭 NAS 方案,看得我心痒痒的。恰好自己在学校有动态公网 IP,就从咸鱼买了两条 16G 内存,加上一块 2T 监控硬盘,把台式机虚拟化作服务器。 我在 Debian10 上搭建 KVM 虚拟化环境,在虚拟机中创建 OpenMe

UNIX 进程关系

UNIX是分时系统,同时运行着多个进程,进程之间相互联系,形成了进程组、会话等进程关系,这些进程关系会影响某些函数/系统调用和信号的行为。 进程的起源 所有的进程都有一共同的起源,加电开机启动操作系统并登录(获取login shell)就是用户进程的起始1。这里介绍传统的UNIX登录机制。 UNIX登录的过程一般分为两种: 终端登录(terminal login) 网络登

用 Vim 搭建开发环境

刚接触 Vim 的同学往往因为无法搭建开发环境而“从入门到放弃”,本文旨在帮助这些同学搭建开发环境,聚焦于最核心的开发需求,忽略换配色调字体之类的细枝末节。如果需要开箱即用的 vim 配置(发行版),可以使用 Spacevim。 本文使用 neovim-nightly,但也适用于 Vim 8.2+,不需要读者有任何 VimL 基础,以 C/C++ 为例,但应该适用于任何语言。 插件管理 在 Vim 中,插件只是一些脚本,

Vimspector: 最强 Vim 调试插件

vimspector是一个基于 DAP(debug adapter protocol) 的Vim多语言调试插件,理论上能够支持所有支持语言(只要有对应的 DAP)。这个插件仍在实验阶段,可能会有各种bug,但是对C/C++、Python 等流行的语言已经进行了充分的测试。 这篇文章以调试 C/C++ 程序为例,介绍 vimspector 的配置与使用。 dap 依赖 带 Python3.6+ 支持的 Vim 8.2 或更高版本 带 Python3.6+ 支持的 Neovim-0.4.3 或更高版本(最好是 Nightly 版本) 由于 vimspector 的作者主要在 GNU/Linux 上使用 Vim 开

C/C++ 的严格别名规则

C/C++ 中的变量占有一块内存,这时这个变量就是这块内存的别名,指针也可以指向内存,因此同一块内存可能会有多个别名。 int main() { int i = 0; int *ip = &i; }其中i和ip是同一块内存,都是它的别名。 内存别名的存在会影响编译器生成的代码的行为。 考虑以下代码块(来自 CSAPP 5.1 节): void twiddle1(long *xp, long *yp) { *xp += *yp; *xp += yp; } void tiwddle2(long *xp, long *yp) { *xp *= 2 * *yp; }这两个函数的功能看起来是相同的,但其实不然。加入,xp和yp指向
0%