一、简介:

DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管理
由于数字化信息的特点决定了必须有另一种独特的技术,来加强保护这些数字化的音视频节目内容,文档、电子书籍的版权,该技术就是数字权限管理技术—DRM(Digital rights management)

二、基本要素:

画布(FrameBuffer) , 绘图现场(CRTC) , 输出转换器(Encoder) , 连接器(Connector) , 然后就到显示屏了

三、DRM分为两类

一类是多媒体保护,例如加密电影、音乐、音视频、流媒体文件。
另外一类是加密文档,例如Word, Excel,PDF等。
DRM主要通过技术手段来保护文档、电影、音乐不被盗版。
这项技术通过对数字内容进行加密和附加使用规则对数字内容进行保护,其中,使用规则可以断定用户是否符合播放。

四、工作原理

DRM技术的工作原理是,首先建立数字节目授权中心。编码压缩后的数字节目内容,可以利用密钥(Key)进行加密保护(lock),加密的数字节目头部存放着KeyID和节目授权中心的URL。用户在点播时,根据节目头部的KeyID和URL信息,就可以通过数字节目授权中心的验证授权后送出相关的密钥解密(unlock),节目方可播放。

五、DRM代码位置

因为Linux kernel内部接口和数据结构可能随时发生变化,所以DRI模块要针对特定的内核版本进行编译。kernel 2.6.26之后的版本,DRM(DRI kernel模块)源码存放在kernel/drivers/gpu/drm中;在这之前的版本,源码在kernel/drivers/char/drm目录中。
每一个3D硬件加速驱动都包含一个内核模块,并且都需要使用DRM支持代码。
在类unix世界中还有一个DRM即The Direct Rendering Manager,它是DRI(Direct Rendering Infrastructure)框架的一个组件。而DRI的作用是为类Unix系统提供高效视频加速(很重要的用途是可以对3D渲染提供加速效果)。
DRI - Direct Rendering Infrastructure
DRI并不是一个软件模块。相反DRI是由一系列的软件模块组成。引入DRI的目的是为了3D图形加速,DRI是一个软件架构,用来协调linux kernel,X windows系统,3D图形硬件以及OpenGL渲染引擎之间的工作。

六、DRM以三种方式支持DRI

1. DRM提供到显卡硬件的同步访问。

Direct rendering system有多个实体(比如X server,多个direct-rendering客户端,以及kernel)竞争访问显卡硬件。PC类的显卡在多个实体访问显卡硬件时会使用锁。DRM为每个显卡设备提供了一个锁,来同步硬件的访问。比如X server正在执行2D渲染,此direct-rendering客户端执行一个软件回调,这个软件回调会读写frame buffer。对于一些高端卡来说,由于硬件内部本身会对访问命令做排序,因此并不需要使用这个锁。

2. DRM在访问显卡硬件时,强制执行DRI安全测策略。

X server以root权限运行,在访问显卡的framebuffer和MMIO区域时,会用/dev/mem映射这些区域。direct-rendering 客户端,并不是运行在root权限的,但是仍然需要类似的映射。DRM设备接口允许客户端创建这些映射,但是必须遵守以下限制: *仅当客户端连接到X server时才能映射这些区域,这就迫使direct-rendering客户端遵守正常的X server安全策略。 * 仅当客户端能够打开/dev/drm?时才可以映射这些区域。这允许系统管理员可以配置direct rendering访问,仅可信的用户才能访问。 * 客户端只能映射X server允许映射的区域。

3. DRM提供了一个通用的DMA引擎。

大部分现代PC类计算机的显卡硬件提供command FIFO的DMA访问。DMA 访问比MMIO访问有更好的吞吐量性能。对于这些显卡,DRM 提供的DMA引擎包含下面的features: *
DRM和DRI关系

我们可以看出DRM是DRI的一个组成部分,DRI同时还包含kms以及OPenGLES DRI driver部分。

linux drm 架构 基础相关推荐

  1. linux drm 架构及linux drm 架构 之代码分析

    转自: http://manpages.ubuntu.com/manpages/utopic/man7/drm-kms.7.html 根据自己的理解来转述一下: 摘要: DRM 是linux 下的图形 ...

  2. 简述 Linux DRM 架构

    简述 Linux DRM Purpose Overview Architecture Components Framebuffer a. Information stored Purpose Over ...

  3. linux drm 架构

    转自: http://manpages.ubuntu.com/manpages/utopic/man7/drm-kms.7.html 根据自己的理解来转述一下: 摘要: DRM 是linux 下的图形 ...

  4. Linux DRM 相关知识

    目录 一.X Server 和 X Cilent 二.DRM / KMS 框架 1.‎DRM/KMS 框架专用于管理显示.图形和合成子系统.在其他 Linux 多媒体框架和应用程序的帮助下,通常使用 ...

  5. linux目录结构来源6,Linux入门基础 #6 Linux系统目录架构

    Linux入门基础 #6 Linux系统目录架构 /bin 即binary,用于保存各种(二进制)可执行文件. 在CLI中输入执行的命令都保存在这里. 此目录下的所有命令都是普通权限用户也可执行的. ...

  6. ALSA (高级Linux声音架构)、ASOC基础知识

    目录 第一节:什么是ALSA和ASOC 第二节:ALSA框架 第三节:ALSA的使用 第四节:ASOC的硬件框架 第四节:ASOC的软件框架 第一节:什么是ALSA和ASOC ALSA是Advance ...

  7. 整理一篇Linux drm显示系统的文章

    这篇文章主要是回答一位同学的提问,当然也是做一次总结,我相信关注我号的很多人也有做LCD相关的驱动或者系统开发,即使不是专门做LCD,但是在开发过程中也难免会遇到这样或者那样的问题. 所以找了几篇和d ...

  8. Linux DRM Developer's Guide

    Linux DRM开发人员指南 http://landley.net/kdocs/htmldocs/drm.html Jesse Barnes Initial version Intel Corpor ...

  9. Linux drm显示系统的两种方案

    找了几篇和drm不错的文章分享给大家,Linux是一个模块化非常明显的系统,每个子系统又会有属于自己的一些特性,学习的时候,最好也是分类学习比较好. 这篇文章主要是回答一位同学的提问,当然也是做一次总 ...

最新文章

  1. mysql 安装以及配置
  2. 一台机器上启动多个tomcat
  3. codeblock 显示 no such file(头文件)
  4. python输入一个字母_python – Tkinter输入的第一个字母
  5. C++学习——string
  6. layui 表单动态添加、删除input框
  7. C/C++无限关机(提权例子)
  8. CentOS报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7arch=x86_64repo=osi...
  9. odom_out_and_back.cpp
  10. Shell 脚本实例
  11. python读取压缩文件的指定后缀的文件_python打包压缩、读取指定目录下的指定类型文件...
  12. 01背包问题理解笔记
  13. arcgis两点之间连线_three3D地图设置两点之间的连线
  14. xss跨站攻击详讲 | 如何利用xss拿下一个站?
  15. 2022危险化学品经营单位安全管理人员特种作业证考试题库及在线模拟考试
  16. ISO7816 智能卡 接口
  17. DEI脉冲发生器维修高压电源维修PVX-5500
  18. ZYNQ学习笔记(3)-局部重构Partial Reconfiguration
  19. mini6410移植全攻略(5)--uboot移植之支持nand flansh启动(下)
  20. 教你彻底屏蔽百度的广告与智能推荐

热门文章

  1. ARM开发板使用GDB调试程序
  2. 3.购买服务器并部署
  3. 小型微型计算机系统退休,《小型微型计算机系统》人工智能专栏征文
  4. 人工智能未来十大趋势,22年最新
  5. JS屏蔽功能类(屏蔽F5,退格键,空格键......
  6. android 系统图标_9个非常实用的CSS图标库
  7. 一文搞定JVM常见工具和优化策略
  8. msvc2017配置qt5.12.8 x86和x64库版本切换
  9. Cousera-Introduction to Data Science in Python Assignment1-4答案
  10. AtCoder Beginner Contest 209 D - Collision「黑白染色」