随笔分类 -  Z技术(OS/Security)

摘要:计算机的存储层次 同样都是晶体管存储设备,为什么寄存器比内存快呢? Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。原因一:距离不同 距离不是主要因素,但是最好懂,所以放在最前面说。内存离CPU比较远,所以要耗费更长的时间读取。 以3GHz的CPU为例,电流每秒钟可以振荡30亿次,每次耗时大约为0.33纳秒。光在1纳秒的时间内,可以前进30厘米。也就是说,在CPU的一个时钟周期内,光可以前进10厘米。因此,如果内存距离CPU超过5厘米,就不可能在一个时钟周期内完成数据的读取,这还没有考虑硬件的限制和电流实际上达不到光速。相比之下,寄存器在CPU... 阅读全文
posted @ 2013-10-16 12:12 Leo.cheng 阅读(1204) 评论(0) 推荐(0) 编辑
摘要:对于一个无符号数字x,截断它到k位的结果就相当于计算xmod2^k.在大多数的机器上,整数乘法指令相当地慢,需要12或者更多的始终周期,然而其他整数运算-例如加法、减法、位移运算和移位-只需要1个时钟周期.因此,编译器使用的一项重要的优化就是试着使用移位和加法运算的组合来代替乘以常数因子的乘法.在大多数的机器上,整数除法要比整数乘法更慢-需要30或者更多的始终周期.除以2的幂也可以用移位运算来实现,只不过我们用的是右移,而不是左移.对于无符号和二进制补码数,分别使用逻辑移位和算术移位来达到目的.注意系统的分类:主流的IA32(也就是x86),以及x86-64(也就是x64),还有种Intel的 阅读全文
posted @ 2013-07-09 23:33 Leo.cheng 阅读(681) 评论(0) 推荐(0) 编辑
摘要:小续 这也是我11年看加密解密整理的一些笔记,因为后面有事,所以这个笔记并不完整,不过也涉及到很多知识了,写给爱好加密解密的朋友 多字节数据是按怎样的顺序存放的呢?实际情况和CPU有关,微处理中的存放顺序有正序和逆序之分。正序(big-endian) 逆序(little-endian) 两种编码的... 阅读全文
posted @ 2013-06-27 17:37 Leo.cheng 阅读(460) 评论(0) 推荐(0) 编辑
摘要:欺骗的艺术整理篇 人们对于绝对安全的渴望常常导致他们满足于虚假的安全感之中。 人为因素才是安全的软肋 安全,通常情况下仅仅是个幻想,由其是轻信、好奇和无知存在的时候。 二十世纪最受尊敬的科学家爱因斯坦这样说道:“只有两种事物是无穷尽的――宇宙和人类的愚蠢。但对于前者,我不敢确定。” 安全不是一件产品... 阅读全文
posted @ 2013-06-27 17:35 Leo.cheng 阅读(270) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示