<![CDATA[蜗窝科技]]> http://free586.com/ zh-cn www.emlog.net zRAM内存压缩技术原理与应用 http://free586.com/memory_management/zram.html 说到压缩这个词,我们并不陌生,应该都能想到是降低占用空间,使同样的空间可以存放更多的东西,类似于我们平时常用的文件压缩,内存压缩同样也是为了节省内存。

秒速牛牛,秒速牛牛官网 尽管当前android手机6GB,8GB甚至12GB的机器都较为常见了,但内存无论多大,总是会有不够用的时候。当系统内存紧张的时候,会将文件页丢弃或回写回磁盘(如果是脏页),还可能会触发LMK杀进程进行内存回收。这些被回收的内存如果再次使用都需要重新从磁盘读取,而这个过程涉及到较多的IO操作。就目前的技术而言,IO的速度远远慢于这RAM操作速度。因此,如果频繁地做IO操作,不仅影响flash使用寿命,还严重影响系统性能。内存压缩是一种让IO过程平滑过渡的做法, 即尽量减少由于内存紧张导致的IO,提升性能。

阅读全文>>]]>
Sun, 08 Mar 2020 00:38:19 +0000 OPPO内核团队 http://free586.com/memory_management/zram.html
浅谈Cache Memory http://free586.com/memory_management/458.html 今天探究的主题是cache。我们围绕几个问题展开。为什么需要cache?如何判断一个数据在cache中是否命中?cache的种类有哪些,区别是什么? 阅读全文>>]]> Thu, 02 May 2019 13:14:57 +0000 smcdef http://free586.com/memory_management/458.html 内存一致性模型 http://free586.com/memory_management/456.html 早期的CPU是通过提高主频来提升CPU的性能,但是随着频率“红利”越来越困难的情况下,厂商开始用多核来提高CPU的计算能力。多核是指一个CPU里有多个核心,在同一时间一个CPU能够同时运行多个线程,通过这样提高CPU的并发能力。

 内存一致性模型(memory consistency model)就是用来描述多线程对共享存储器的访问行为,在不同的内存一致性模型里,多线程对共享存储器的访问行为有非常大的差别。这些差别会严重影响程序的执行逻辑,甚至会造成软件逻辑问题。在后面的介绍中,我们将分析不同的一致性模型里,多线程的内存访问乱序问题。

阅读全文>>]]>
Sun, 24 Mar 2019 06:22:03 +0000 passerby http://free586.com/memory_management/456.html
copy_{to,from}_user()的思考 http://free586.com/memory_management/454.html 我们对copy_{to,from}_user()接口的使用应该是再熟悉不过吧。基本Linux书籍都会介绍它的作用。毕竟它是kernel space和user space沟通的桥梁。所有的数据交互都应该使用类似这种接口。所以,今天我们一起探究下copy_{to,from}_user()接口的作用。通过本文可以解答以下问题。

  1. 为什么需要copy_{to,from}_user(),它究竟在背后为我们做了什么?
  2. copy_{to,from}_user()和memcpy()的区别是什么,直接使用memcpy()可以吗?
  3. memcpy()替代copy_{to,from}_user()是不是一定会有问题?
阅读全文>>]]>
Sun, 27 Jan 2019 11:03:28 +0000 smcdef http://free586.com/memory_management/454.html
KASLR http://free586.com/memory_management/441.html 引言 什么是KASLR?KASLR是kernel address space layout randomization的缩写,直译过来就是内核地址空间布局随机化。KASLR技术允许kernel image加载到VMALLOC区域的任何位置。当KASLR关闭的时候,kernel image都会映射到一个固定的链接地址。对于黑客来说是透明的,因此安全性得不到保证。KASLR技术可以让kernel image映射的地址相对于链接地址有个偏移。偏移地址可以通过dts设置。如果bootloader支持每次开机随机生成偏移数值,那么可以做到每次开机kernel image映射的虚拟地址都不一样。因此,对于开启KASLR的kernel来说,不同的产品的kernel image映射的地址几乎都不一样。因此在安全性上有一定的提升。 阅读全文>>]]> Sun, 06 May 2018 02:00:16 +0000 smcdef http://free586.com/memory_management/441.html