操作系统的职责是在多个程序(进程)之间共享计算机提供的物理资源,并提供一系列比直接操作硬件更有用的服务。具体地说,操作系统为计算机硬件提供一层抽象,使软件程序不需要关心硬件的具体实现。操作系统还必须通过某种时分复用的机制使得多个程序可以共享底层硬件。最后,操作系统也必须为不同程序进程提供某种通信机制。

操作系统中,运行的程序被抽象成进程,一个进程的内容即它所占用的内存及其他资源。其中,在内存中存有进程的指令,数据,堆栈等运行时上下文。操作系统接口即操作系统内核为其他进程提供的一系列服务的接口,称为系统调用 (system call) 。当进程需要调用系统服务时,其只能通过调用操作系统接口实现.

阅读全文 »

自 C++ 11, 模板可以接受可变数量的参数,这一特性允许向模板传入任意数目的任意类型参数

阅读全文 »

C++ 模板的参数不必是类型,也可以是编译时整型常量。例如标准模板库中的 std::array 就接受非类型模板参数用于描述数组的长度: std::array<int, 10>

阅读全文 »

包括函数模板, 类模板, 别名模板, 变量模板基本的用法, 偏特化和全特化的基本知识, 以及类型推导的基本用法.

阅读全文 »

大概半个月前在看 cppcon 2022 一个 talk 时候偶然发现 Nicolai M. Josuttis 这么一个技术作家, 打算把他的 the complete guide 系列, 包括 C++ templates: the complete guide, C++ 17: the complete guideC++ 20: the complete guide 都看一看。最近刚读完 C++ templates: the complete guide 的第一部分也是基础部分的 11 章。 书中许多概念也在别的书例如 Effective Modern C++ 出现过, 这里打算完整地写几篇文章作为我对 C++ template 的学习总结, 主要记录下那些我阅读本书之前未知的新知识和虽然是已知的知识但尚未考虑过的地方。希望能够顺利完成这一系列。

阅读全文 »

阅读全文 »

Shot with Nikon D610.

阅读全文 »

也许最后的时刻到了
我没有留下遗嘱
只留下笔, 给我的母亲
我并不是英雄
在没有英雄的年代里,
我只想做一个人。

宁静的地平线
分开了生者和死者的行列
我只能选择天空
绝不跪在地上
以显出刽子手的高大
好阻挡那自由的风

从星星的弹孔里
将流出血红的黎明

北岛 『献给遇罗克 』

0%