摘要:
ceph提供软件定义的、统一的存储解决方案。是一个可大规模扩展,高性能并且无单点故障的分布式存储系统。具有高可伸缩性,容量可扩展到EB级别,甚至更大。 特性: 所有的组件必须可扩展 不能存在单点故障 解决方案是软件定义的、开源的并且可适配 Ceph软件运行在通用商用硬件之上 所有组件必须尽可能自我管 阅读全文
摘要:
ioctl 是设备驱动程序中设备控制接口函数,通过指定的命令来实现对应的操作。 用户空间 int ioctl(int fd, int cmd, ...) ; cmd: 交互协议,设备驱动将根据 cmd 执行对应操作 ...: 可变参数 arg 驱动程序 long (*unlocked_ioctl) 阅读全文
摘要:
元编程 编写一个用来编程的程序(生成代码的程序)。 以元编程来计算指数的例子: template<int B, int N> struct Pow { // 递归 enum{ value = B*Pow<B, N-1>::value }; }; template< int B > struct Po 阅读全文
摘要:
文件系统 文件系统是一套实现了数据的存储、分级组织、存取和获取等操作的抽象数据类型 。 文件系统是一种用于向用户提供底层数据存取的机制。它将设备中的空间划分为特定大小的块,一般每块512字节。数据存储在这些块中,大小被修正为占用整数个块。由文件系统软件来负责将这些块组织为文件和目录,并记录哪些块被分 阅读全文
摘要:
散列表类型 有无关系值 接受相同键值 std::unordered_set 否 否 std::unordered_multiset 否 是 std::unordered_map 是 否 std::unordered_multimap 是 是 std::map和std::unordered_map区别 阅读全文
摘要:
二元组(pair) 将两个元素合成一个对象,声明: 类模板 : template<class T1,class T2> struct pair 使用first和second来访问其中的两个元素,用make_pair()来构造 。 g_map_file.insert(std::pair<std::st 阅读全文
摘要:
内存模型 一般来说,内存模型可以分为静态内存模型和动态内存模型 静态内存模型 主要是类对象在内存中的布局,也就是类成员在内存中是如何存放的。 动态内存模型 从行为方面来看,多个线程对同一对象同事读写时所作的约束。涉及了内存、Cache、CPU各个层次的交互,尤其是在多核系统中为了保证多线程下执行的正 阅读全文
摘要:
C++ 03: 字符“12.5”能被编译器解释为数值为12.5的double类型字面值,但是添加后缀f例如12.5f将创建一个float类型的值。数字的后缀修饰符是由C规范固定的,C 03不能创建新的字面修饰符。 C++ 11: C++ 11使用户能够定义新的字面修饰符,利用自定义的修饰符完成由字面 阅读全文
摘要:
char* c = NULL; C:NULL表示空指针,NULL可以被定义为 ((void*)0)或是0 。 C++不允许将void*隐式转换为其他类型的指针,这样定义: #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NUL 阅读全文
摘要:
提出问题: struct Base { virtual void some_func(); }; struct Derived : Base { void some_func(); //重写 }; Derived::some_func 的真实意图?? 真的重写?意外写了同名的函数?基类中加了相同的签 阅读全文