DRI-Next/DRM2: a Walkthrough the Linux Graphics Stack and Its Security Overview, Vulnerabilities, Attacks and Discussions Around the Graphic Stack’S Security
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Porting a Window Manager from Xlib to XCB
Porting a Window Manager from Xlib to XCB Arnaud Fontaine (08090091) 16 May 2008 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version pub- lished by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Contents List of figures i List of listings ii Introduction 1 1 Backgrounds and Motivations 2 2 X Window System (X11) 6 2.1 Introduction . .6 2.2 History . .6 2.3 X Window Protocol . .7 2.3.1 Introduction . .7 2.3.2 Protocol overview . .8 2.3.3 Identifiers of resources . 10 2.3.4 Atoms . 10 2.3.5 Windows . 12 2.3.6 Pixmaps . 14 2.3.7 Events . 14 2.3.8 Keyboard and pointer . 15 2.3.9 Extensions . 17 2.4 X protocol client libraries . 18 2.4.1 Xlib . 18 2.4.1.1 Introduction . 18 2.4.1.2 Data types and functions . 18 2.4.1.3 Pros . 19 2.4.1.4 Cons . 19 2.4.1.5 Example . 20 2.4.2 XCB . 20 2.4.2.1 Introduction . 20 2.4.2.2 Data types and functions . 21 2.4.2.3 xcb-util library . 22 2.4.2.4 Pros . 22 2.4.2.5 Cons . 23 2.4.2.6 Example . 23 2.4.3 Xlib/XCB round-trip performance comparison . -
How-To Gnome-Look Guide
HHOOWW--TTOO Written by David D Lowe GGNNOOMMEE--LLOOOOKK GGUUIIDDEE hen I first joined the harddisk, say, ~/Pictures/Wallpapers. right-clicking on your desktop Ubuntu community, I and selecting the appropriate You may have noticed that gnome- button (you know which one!). Wwas extremely look.org separates wallpapers into impressed with the amount of different categories, according to the customization Ubuntu had to size of the wallpaper in pixels. For Don't let acronyms intimidate offer. People posted impressive the best quality, you want this to you; you don't have to know screenshots, and mentioned the match your screen resolution. If you what the letters stand for to themes they were using. They don't know what your screen know what it is. Basically, GTK is soon led me to gnome-look.org, resolution is, click System > the system GNOME uses to the number one place for GNOME Preferences > Screen Resolution. display things like buttons and visual customization. The However, Ubuntu stretches controls. GNOME is Ubuntu's screenshots there looked just as wallpapers quite nicely if you picked default desktop environment. I impressive, but I was very the wrong size, so you needn't fret will only be dealing with GNOME confused as to what the headings about it. on the sidebar meant, and I had customization here--sorry no idea how to use the files I SVG is a special image format that Kubuntu and Xubuntu folks! downloaded. Hopefully, this guide doesn't use pixels; it uses shapes Gnome-look.org distinguishes will help you learn what I found called vectors, which means you can between two versions of GTK: out the slow way. -
Linux Kernel and Driver Development Training Slides
Linux Kernel and Driver Development Training Linux Kernel and Driver Development Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 9, 2021. Document updates and sources: https://bootlin.com/doc/training/linux-kernel Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/470 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/470 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/470 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb. -
A Simplified Graphics System Based on Direct Rendering Manager System
J. lnf. Commun. Converg. Eng. 16(2): 125-129, Jun. 2018 Regular paper A Simplified Graphics System Based on Direct Rendering Manager System Nakhoon Baek* , Member, KIICE School of Computer Science and Engineering, Kyungpook National University, Daegu 41566, Korea Abstract In the field of computer graphics, rendering speed is one of the most important factors. Contemporary rendering is performed using 3D graphics systems with windowing system support. Since typical graphics systems, including OpenGL and the DirectX library, focus on the variety of graphics rendering features, the rendering process itself consists of many complicated operations. In contrast, early computer systems used direct manipulation of computer graphics hardware, and achieved simple and efficient graphics handling operations. We suggest an alternative method of accelerated 2D and 3D graphics output, based on directly accessing modern GPU hardware using the direct rendering manager (DRM) system. On the basis of this DRM support, we exchange the graphics instructions and graphics data directly, and achieve better performance than full 3D graphics systems. We present a prototype system for providing a set of simple 2D and 3D graphics primitives. Experimental results and their screen shots are included. Index Terms: Direct rendering manager, Efficient handling, Graphics acceleration, Light-weight implementation, Prototype system I. INTRODUCTION Rendering speed is one of the most important factors for 3D graphics application programs. Typical present-day graph- After graphics output devices became publicly available, a ics programs need to be able to handle very large quantities large number of graphics applications were developed for a of graphics data. The larger the data size, and the more sen- broad spectrum of uses including computer animations, com- sitive to the rendering speed, the better the speed-up that can puter games, user experiences, and human-computer inter- be achieved, even for minor aspects of the graphics pipeline. -
The Linux Graphics Stack Attributions
I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions Introduction to GPUs and to the Linux Graphics Stack Martin Peres CC By-SA 3.0 Nouveau developer Ph.D. student at LaBRI November 26, 2012 1 / 36 I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions General overview Outline 1 I - Hardware : Anatomy of a GPU General overview Driving screens Host < − > GPU communication 2 II - Host : The Linux graphics stack General overview DRM and libdrm Mesa X11 Wayland X11 vs Wayland 3 Attributions Attributions 2 / 36 I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions General overview General overview of a modern GPU's functions Display content on a screen Accelerate 2D operations Accelerate 3D operations Decode videos Accelerate scientific calculations 3 / 36 I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions General overview CPU Clock Front-side Graphics Generator bus card slot Chipset Memory Slots High-speed graphics bus (AGP or PCI Northbridge Memory Express) bus (memory controller hub) Internal Bus PCI Bus Onboard Southbridge graphics PCI (I/O controller controller Bus hub) IDE SATA USB Cables and Ethernet ports leading Audio Codec CMOS Memory off-board PCI Slots LPC Bus Super I/O Serial Port Parallel Port Flash ROM Floppy Disk Keyboard (BIOS) Mouse 4 / 36 I - Hardware : Anatomy of a GPU II - Host : The Linux graphics stack Attributions General overview Hardware architecture GPU: Where all the calculations are made VRAM: Stores -
Freiesmagazin 07/2009
freiesMagazin Juli 2009 Topthemen dieser Ausgabe ZevenOS – Linux goes BeOS Seite 4 Ein biologisches Phänomen hat längst Einzug in die Linux-Welt gehalten: Mimikry. Das bedeu- tet, dass eine Spezies wegen bestimmter Vorteile eine andere Spezies nachahmt, z. B. legt sich eine harmlose Fliegenart das Aussehen von Wespen zu. Einer der neueren Fälle in der Linux-Welt ist ZevenOS, eine Linux-Distribution, die auf Ubuntu aufbaut. Das Besondere: Sie will im Aussehen und in der Benutzung etwas vom Feeling des legendären und leider im Nebel der Geschichte verschwundenen Betriebssystems BeOS vermitteln. (weiterlesen) easyVDR – The easy VDR Distribution Seite 12 Die Distribution easyVDR ist eine unter der GNU General Public License (GPL) veröffentlichte Distribution, die sich den Themen Video und TV widmet. Hat man noch ausgemusterte Rech- ner zuhause, lassen sich diese mit der Hilfe von easyVDR als digitaler Videorekorder nutzen – mit dem Vorteil, in vielen Belangen anpassbar zu sein; ein digitaler Selbstbaukasten sozusa- gen. (weiterlesen) Was bieten freie CRM-Lösungen? – Im Vergleich: SugarCRM und vtiger CRM Seite 34 CRM steht für Customer Relationship Management und beschreibt die Verwaltung von Kunden- daten und Kundenbeziehungen. Anhand eines konkreten Anwendungsfalls der fiktiven Firma EVENTO, einer Veranstaltungsagentur mit dem Schwerpunkt auf außergewöhnliche Orte, wer- den zwei CRM-Lösungen verglichen. Aus der Vielzahl an frei verfügbaren Programmen wurden die zwei populären Vertreter SugarCRM Version 5.2.0c und vtiger CRM Version 5.0.4 ausge- wählt. (weiterlesen) © freiesMagazin GNU FDL Ausgabe 07/2009 ISSN 1867-7991 MAGAZIN Editorial Anleitung: Wie verprellt man eine Community? Wir befinden uns im Jahre 2009 n. Chr. Die ganze ten [5]. -
Linux Graphics Meets the ARM Ecosystem
Linux Graphics Meets the ARM Ecosystem Jesse Barker <[email protected]> April 12, 2011 Find us here on the Linaro wiki Overview ● The Linux Desktop ● The ARM Linux Desktop ● The Subset Approach ● Examples ● Questions ● What's Next The Desktop Window system ● Display management ● Resource management ● Session management ● Event handling ● Application programming interface Protocol Decode Device Independent X (DIX) DRI EXA DDX User space libdrm evdev DRM KMS Kernel GEM/TTM space Input H/W CPU GPU DC Memory Protocol Encode DRI GLX libdrm libX* Core Application Logic User space DRM KMS Kernel GEM/TTM space GPU DC CPU Memory Toolkits/Frameworks ● Create abstraction layer from the underlying window system. ● Provide uniform look-and-feel across platforms. ● Applications don't have to care which system they are running on. ● New backend to the framework adds a new supported platform for a whole bundle of applications. Bells and Whistles ● OpenGL ● Video ● Audio ● Compositing window managers ● Animation The ARM Desktop What's the difference? ● Most differences are “physical” ● Screen size and resolution ● Unified memory pool ● Power vs. raw performance ● Some API (not necessarily, though) ● Window system interfaces ● Rendering interfaces The Subset Approach ● OpenGL ES 2.0 is explicitly defined as a subset of OpenGL 2.1. ● Both have diverged since the original definition. ● Minimize specialized code (e.g., window system interfaces). The “big-ticket” items ● Immediate mode ● Fixed-function vertex processing ● Fixed-function fragment processing ● EGL vs. GLX Examples ● glmark2 ● cairo-gles ● compiz glmark2 ● Based upon opensource glmark by Ben Smith. ● Uses 3D Studio Max for model content. ● Uses SDL for window system abstraction. -
Beyond Eye Candy
COVER STORY Xgl and Compiz An OpenGL-accelerated desktop with Xgl and Compiz BEYOND EYE CANDY www.sxc.hu A member of Suse’s X11 team delivers an insider’s look at Xgl. agement must work hand in hand, we can expect to see more compositing BY MATTHIAS HOPF window managers in the future with the ability to merge both processes. ac fans were ecstatic when The Render extension adds new basic Another important X server compo- Apple introduced the Quartz primitives for displaying images and nent that desperately needs reworking is MExtreme [1] graphics interface, polygons, along with a new glyph sys- the hardware acceleration architecture, which accelerated desktop effects using tem for enhanced font displays. This which is responsible for efficient hard- 3D hardware. Microsoft’s Windows Vista particularly reflects the fact that the leg- ware representation of graphic com- with its Aero technology looks to close acy graphics commands, called core re- mands. The previous XAA architecture is this gap with the Mac. In the world of quests, no longer meet the demands built around core requests, and is there- Linux, Xgl [2] now provides a compara- placed on modern toolkits such as Qt fore difficult to extend. The architecture ble and even more advanced technology and GTK. All primitives can now be outlived its usefulness and needs replac- that supports similar effects. linked to data in the framebuffer using ing. The most promising alternatives are Xgl is an X Server by David Revemann Porter-Duff operators [3], thus support- EXA and OpenGL. that uses OpenGL to implement graphics ing the rendering of semitransparent sur- EXA is straightforward and easy to im- output. -
Oracle R Enterprise User's Guide, Release 11.2 for Linux, Solaris, AIX, and Windows E26499-05
Oracle® R Enterprise User's Guide Release 11.2 for Linux, Solaris, AIX, and Windows E26499-05 June 2012 Oracle R Enterprise User's Guide, Release 11.2 for Linux, Solaris, AIX, and Windows E26499-05 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Primary Author: Margaret Taft Contributing Author: Contributor: This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). -
Drawing with Cairo in GTK
Drawing with Cairo in GTK# http://zetcode.com/gui/gtksharp/drawing/ Home Contents Drawing with Cairo in GTK# In this part of the GTK# programming tutorial, we will do some drawing with the Cairo library. Cairo is a library for creating 2D vector graphics. We can use it to draw our own widgets, charts or various effects or animations. Simple drawing The stroke operation draws the outlines of shapes and the fill operation fills the insides of shapes. Next we will demonstrate these two operations. simpledrawing.cs using Gtk; using Cairo; using System; class SharpApp : Window { public SharpApp() : base("Simple drawing") { SetDefaultSize(230, 150); SetPosition(WindowPosition.Center); DeleteEvent += delegate { Application.Quit(); };; DrawingArea darea = new DrawingArea(); darea.ExposeEvent += OnExpose; Add(darea); ShowAll(); } void OnExpose(object sender, ExposeEventArgs args) { DrawingArea area = (DrawingArea) sender; Cairo.Context cr = Gdk.CairoHelper.Create(area.GdkWindow); cr.LineWidth = 9; cr.SetSourceRGB(0.7, 0.2, 0.0); int width, height; width = Allocation.Width; height = Allocation.Height; cr.Translate(width/2, height/2); cr.Arc(0, 0, (width < height ? width : height) / 2 - 10, 0, 2*Math.PI); cr.StrokePreserve(); cr.SetSourceRGB(0.3, 0.4, 0.6); cr.Fill(); ((IDisposable) cr.Target).Dispose(); ((IDisposable) cr).Dispose(); } public static void Main() { Application.Init(); new SharpApp(); Application.Run(); } } In our example, we will draw a circle and will it with a solid color. 1 di 7 16/12/2014 10:47 Drawing with Cairo in GTK# http://zetcode.com/gui/gtksharp/drawing/ gmcs -pkg:gtk-sharp-2.0 -r:/usr/lib/mono/2.0/Mono.Cairo.dll simple.cs Here is how we compile the example. -
Armadillo-640 製品マニュアル
Armadillo-640 製品マニュアル A6400-U00Z A6400-D00Z A6400-B00Z Version 1.14.0 2020/07/13 株式会社アットマークテクノ [https://www.atmark-techno.com] Armadillo サイト [https://armadillo.atmark-techno.com] Armadillo-640 製品マニュアル 株式会社アットマークテクノ 製作著作 © 2018-2020 Atmark Techno, Inc. Version 1.14.0 2020/07/13 Armadillo-640 製品マニュアル Armadillo-640 製品マニュアル 目次 1. はじめに ........................................................................................................................................ 15 1.1. 本書で扱うこと扱わないこと ............................................................................................. 15 1.1.1. 扱うこと .................................................................................................................. 15 1.1.2. 扱わないこと ........................................................................................................... 15 1.2. 本書で必要となる知識と想定する読者 ............................................................................... 15 1.3. ユーザー限定コンテンツ .................................................................................................... 16 1.4. 本書および関連ファイルのバージョンについて ................................................................. 16 1.5. 本書の構成 ......................................................................................................................... 16 1.6. 表記について ...................................................................................................................... 17 1.6.1. フォント ................................................................................................................. -
Peerconnection Implementation Experience
Experiences from implementing PeerConnection and related APIs @ Ericsson Labs Background • First implementation of the device element during spring 2010 • No peer-to-peer communication spec at the time • A WebSocket-based, server-relayed solution, ‘MediaStreamTransceiver’ was implemented during summer 2010 • Working ConnectionPeer (i.e. the previous spec) implementation in late 2010 • The current PeerConnection implementation is constantly being improved and updated as the spec changes Target platform • Ubuntu 11.04 • Epiphany web browser • WebKitGTK+ • GStreamer • Libnice WebKitGTK+ • WebKit port to the GTK+ GUI toolkit used by GNOME • Using GLib and GObject • Graphics provided by Cairo, HTTP by libsoup, media playback by GStreamer GStreamer (1) • Pipeline-based open source media framework using GObject • Pipeline elements provided by plugins • A great number of plugins for different codecs, transports, etc. • Fairly easy to create new plugins from existing code from other projects • Simple to work with and provides great functionality, we really like GStreamer GStreamer (2) • Since WebKitGTK+ already uses GStreamer for media playback, we could hook into some of the existing infrastructure • For example, the existing sink element for rendering video in the video element • Thanks to GLib, WebKitGTK+ and GStreamer share the same main event loop Libnice • An open source ICE library based on GLib with GStreamer elements • Simple to use with GStreamer • Since we have only run libnice to libnice we have now idea how interoperable it is PeerConnection