• 分布式原理与实战(三) 以FDB为例之通信

    分布式原理与实战(三) 以FDB为例之通信

    Q : 很多协议都采用分层模型?为什么? 答:协议的每一层都必须和其它层相独立。从第k+1层传送至第k层的数据同时包含了报头和数据,但是第k层协议不能对它们进行辨别。如果使用单个大的报头来包含所有信息的话将会破坏透明性,使得一个协议层的变动会影响到其它层,这显然不是我们所希望的。FDB作为应用程序,并不需要 ...

    阅读全文
    作者:root | 分类:分布式系统实战
  • 分布式原理与实战(二) —以FirstDB为例之体系结构

    分布式原理与实战(二)  —以FirstDB为例之体系结构

    在上一篇中,我们主要阐述了分布式系统的几个关键问题,我们也结合FDB做了一些实例化的东西,接着我们来考虑下分布式的体系结构相关的东西,还是以我们的FDB作为实例化的说明。 FDB的地址:https://github.com/zmr961006/FirstDB Q:如果客户和服务器相隔很远,我们可以看到网络延时将主导性能,如何处理这个问题? 答 ...

    阅读全文
    作者:root | 分类:分布式系统实战
  • 分布式原理与实战(一)—以FirstDB为例(一)

    分布式原理与实战(一)—以FirstDB为例(一)

    分布式是一个非常复杂且广泛的概念,几乎没有办法系统的学习,因为每一种办法都难以在所有的场景下通用,所以我打算从问题的角度来记录一些关于分布式的知识原理。并且我想要以我们之前设计的一个分布式键值存储系统为例,来说明一些分布式的东西。 FirstDB 项目地址:https://github.com/zmr961006/FirstDB Q:中间件 ...

    阅读全文
    作者:root | 分类:分布式系统实战
  • C/C++ 代码安全(五)

    C/C++ 代码安全(五)

    规则: 不要使用rand( ) 函数生成伪随机数,这个函数不保证不保证产生随机序列质量,比较好预测。使用random( )  替换。 规则: 正确的设置伪随机数生成器的种子,在random() 之前调用srandom( ) ,以设置伪随机数生成器。 规则: 不要向asctime( ) 函数提供无效数据。 规则: 确保控制永远不会到达非void 函数的结束位 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(四)

    C/C++ 代码安全(四)

    规则: 不要访问已经释放的内存。使用引用被free( ) 或者 realloc( ) 函数调用释放的内存指针值是未确定的。 需要注意的一点是,realloc( )  可能会释放原来的指针。 规则: 在不需要时释放动态分配的内存。 规则: 动态分配和复制包含灵活数组成员结构。为了避免未定义行为,包含灵活数组成员的结构应该始终动态分配, ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(三)

    C/C++ 代码安全(三)

    规则: 确保无符号整数运算不产生回绕,如果底层整数表示无法表示无符号整数运算的结果,该值可能发生回绕。在8086处理器上整数溢出也就仅仅会发生一个标志位修改罢了。所以我们还是要注意整数溢出发生回绕现象。 C /*错误实例,这很有可能发生回绕*/ void func(unsigned int ui_a,unsi ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(二)

    C/C++ 代码安全(二)

    规则: 声明的每一个对象都必须具有正确的存储期。 对象的生命周期是程序执行的一部分,在此期间保证对象保留存储空间。任何形式的访问已经超出生命周期的行为都是未定义的。 引用超出生命周期的对象,可能导致攻击者执行任意代码。 规则: 在使用前声明表示符,不要隐含类型。 规则: 不要声明具有冲突链接类别的表示 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(一)

    C/C++ 代码安全(一)

    规则1: 不通过链接创建通用字符串。 C11标准:如果匹配通用字符名称的字符序列由符号链接生成,将产生未定义行为。 C #define assign(uc1,uc2,val) uc1##uc2 = val void func(){ int u0401; assign(u04,01,4); printf("u0401 = %d\n",u0401); } int main() ...

    阅读全文
    作者:root | 分类:C, C/C++
  • 随笔–即将大三的我

    随笔–即将大三的我

    好久没有写点什么了,最近几天也过的很一般,我并不是想要天天高压式的生活,我也不是一个所为的“技术”的追求者,技术说到底不过是经验和科学具体化的结合体。没有什么值得吹嘘的。就像我曾经和同学说起过,我会16/32/64的汇编语言,他立刻说汇编很难的,你好厉害之类的一堆一堆,我真心不知道汇编有什么难的,我觉得这 ...

    阅读全文
    作者:root | 分类:生活点滴
  • 内存管理器(二十四)引用计数

    内存管理器(二十四)引用计数

    引用计数 一种直接的内存清扫方式,通过遍历可以直接的判定一个对象的存活性。 这个思想可以说是非常的简单,有新对象就增加新对象的引用计数,并且减少旧对象的引用计数,当某个引用计数的值为0的时候将它回收。 C new(){ ref = allocate(); if (ref == NULL){ print ...

    阅读全文
    作者:root | 分类:内存管理