prima

宋宝华:那些年你误会的Linux DMA(关于Linux DMA ZONE和API最透彻的一篇)

ε祈祈猫儿з 提交于 2020-11-28 08:41:46
原创 宋宝华 Linux阅码场 2019-11-29 创作目的 互联网、Linux内核书籍上充满了各种关于Linux DMA ZONE和dma_alloc_coherent、dma_map_single等的各种讲解,由于很多童鞋缺乏自身独立的思考,人云亦云,对这些概念形成了很多错误的理解。本文的目的在于彻底澄清这些误解。 当你发现本文内容与baidu到的内容不一致的时候,以本文内容为准。 本文目录 1.DMA ZONE的大小是16MB? 这个答案在32位X86计算机的条件下是成立的,但是在其他的绝大多数情况下都不成立。 首先我们要理解DMA ZONE产生的历史原因是什么。DMA可以直接在内存和外设之间进行数据搬移,对于内存的存取来讲,它和CPU一样,是一个访问master,可以直接访问内存。 DMA ZONE产生的本质原因是:不一定所有的DMA都可以访问到所有的内存,这本质上是硬件的设计限制。 在32位X86计算机的条件下,ISA实际只可以访问16MB以下的内存。那么ISA上面假设有个网卡,要DMA,超过16MB以上的内存,它根本就访问不到。所以Linux内核干脆简单一点,把16MB砍一刀,这一刀以下的内存单独管理。如果ISA的驱动要申请DMA buffer,你带一个GFP_DMA标记来表明你想从这个区域申请,我保证申请的内存你是可以访问的。 DMA ZONE的大小,以及DMA

宋宝华:那些年你误会的Linux DMA(关于Linux DMA ZONE和API最透彻的一篇)

久未见 提交于 2020-11-28 08:39:14
原创 宋宝华 Linux阅码场 2019-11-29 创作目的 互联网、Linux内核书籍上充满了各种关于Linux DMA ZONE和dma_alloc_coherent、dma_map_single等的各种讲解,由于很多童鞋缺乏自身独立的思考,人云亦云,对这些概念形成了很多错误的理解。本文的目的在于彻底澄清这些误解。 当你发现本文内容与baidu到的内容不一致的时候,以本文内容为准。 本文目录 1.DMA ZONE的大小是16MB? 这个答案在32位X86计算机的条件下是成立的,但是在其他的绝大多数情况下都不成立。 首先我们要理解DMA ZONE产生的历史原因是什么。DMA可以直接在内存和外设之间进行数据搬移,对于内存的存取来讲,它和CPU一样,是一个访问master,可以直接访问内存。 DMA ZONE产生的本质原因是:不一定所有的DMA都可以访问到所有的内存,这本质上是硬件的设计限制。 在32位X86计算机的条件下,ISA实际只可以访问16MB以下的内存。那么ISA上面假设有个网卡,要DMA,超过16MB以上的内存,它根本就访问不到。所以Linux内核干脆简单一点,把16MB砍一刀,这一刀以下的内存单独管理。如果ISA的驱动要申请DMA buffer,你带一个GFP_DMA标记来表明你想从这个区域申请,我保证申请的内存你是可以访问的。 DMA ZONE的大小,以及DMA

可信计算技术的前生今世:从等保2.0谈起

时光怂恿深爱的人放手 提交于 2020-04-29 14:27:03
https://www.secrss.com/articles/12250 可信计算经过这么多年的发展,对应的关键技术发展思路逐步清晰,但仍然有许多未解决的技术问题待进一步深入研究。 概述 2019年安全圈讨论度最高的热门词一定是“等保2.0”。等保2.0时代保护策略要变被动防御为主动防御,变层面防御为立体防御。 可信计算技术为主动防御提供了新的思路,也在等保2.0中被重点提及。我国网络安全领域著名专家、中国工程院院士沈昌祥在以《重启可信革命——主动免疫可信计算3.0》为主题的演讲中指出:“当前我国的信息安全的防护工作是比较传统的,也就是说称为老三样:防火墙、杀病毒、入侵监测,这样是解决不了安全问题的。”那么如何解决问题呢?引入可信计算,因为“可信计算包括三方面:可信可用,方能安全交互;主动免疫方能有效保护;自主创新方能安全可控”。所以要利用可信计算技术实现主动免疫。 1.1 概念 首先我们了解一下什么是可信。 可信在不同的机构下的定义是不同的。可信计算工作组TCG(Trusted Computing Group)对可信的定义可以描述为:对于一个特定的目标,实体的行为总是与预期的相符,则针对这个目标,该实体就是可信的。电气电子工程师学会IEEE(Institute of Electrical and Electronics Engineers)对可信的定义则是