Dynamic Device Handling on the Modern Desktop

Total Page:16

File Type:pdf, Size:1020Kb

Dynamic Device Handling on the Modern Desktop Dynamic Device Handling on the Modern Desktop David Zeuthen Kay Sievers Red Hat, Inc. Novell, Inc. [email protected] [email protected] Abstract has received, it can reflect that change accord- ingly or in response request a specific action to be taken for a specific device. Today, where almost all devices can be added and removed from a running system, the whole system environment needs to dynami- cally adopt to such changes. It creates the need The Path of an Event to move from static device specific configura- tions given at install time to policy based run- The core of the Linux kernel keeps the control time device configuration and change propaga- over the interfaces where devices can be con- tion troughout the whole system including cur- nected and disconnected at runtime. The ker- rently running system services and end user ap- nel drivers create or destroy internal device in- plications. stances, to handle and represent devices. These device instances are exported through the spe- cial filesystem sysfs. Most of the directories in sysfs represent a device and the files in the di- Architectural Overview rectories are properties or methods to request a specific action of the device: The Linux kernel 2.6 exports almost all inter- esting internal device state in a special filesys- /sys/class/block/sda |-- dev tem and sends out events for every change. |-- device -> ../../devices/pci0000:00/\ Udev and HAL as system-wide services are 0000:00:1f.2/host0/target0:0:0/0:0:0:0 ... picking up these device events, possibly re- | |-- read_ahead_kb quest more information from the device itself | ‘-- scheduler |-- range or merge available information stored on the |-- removable system. A global list of devices, including |-- sda1 | |-- dev the whole device context is maintained and | |-- size made available to every possible consumer. All | |-- start | |-- stat changes to that list are propagated over a sim- | ‘-- uevent ple inter-process-communication (IPC) inter- ‘-- uevent face. Applications can subscribe to a specific class of changes and adapt itself according to The hierachy of the device directories repre- that. Based on the notification the application sent the dependency of the devices given by 342 • Dynamic Device Handling on the Modern Desktop KERNEL=="mice", NAME="input/$kernel_name" the hardware itself and the logical stacking con- ACTION=="add", MODALIAS=="?*", \ structed by the kernel driver core. Every de- RUN+="/sbin/modprobe $modalias" SUBSYSTEM=="scsi_device", ACTION=="add", \ vice is identified by its filesystem path, called RUN+="/sbin/modprobe sg" the devpath. Everytime a device is added or KERNEL="sda[0-9]", \ removed an uevent is sent out over a kernel IMPORT{program}="/sbin/vol_id --export $tempnode" netlink socket: ENV{ID_FS_UUID}=="?*", \ SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}" RUN+="socket:/org/freedesktop/hal/udev_event" add@/class/input/devices/input5 ACTION=add Udev rules can specify the name of the de- DEVPATH=/class/input/devices/input5 SUBSYSTEM=input vice node to be created, request programs to SEQNUM=1166 be executed to import additional data into the ... event environment, or run external programs to setup or initialize a device, or request a match- A raw message send over the socket looks like ing module to be loaded into the kernel. Rules this: can also pass the whole event udev has received from the kernel, including possibly added data recv(3,"add@/class/input/devices/input5\0 collected from the device or system configu- ACTION=add\0 DEVPATH=/class/input/devices/input5\0 ration by executing a program or passing the SUBSYSTEM=input\0SEQNUM=1166\0 event over a domain socket. CLASS=/class/input/devices\0 PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.1/\ usb2/2-2/2-2:1.0\0 A simple database with persistent device in- PHYSDEVBUS=usb\0PHYSDEVDRIVER=usbhid\0 PRODUCT=3/46d/c03e/2000\0 formation is maintained by udev and can NAME=\"Logitech USB-PS/2 Optical Mouse\"\0 be queried on demand by any program, but PHYS=\"usb-0000:00:1d.1-2/input0\"\0 UNIQ=\"\"\0EV=7\0KEY=70000 0 0 0 0 0 0 0 0\0 udev does not watch any device state besides REL=103\0", 2048, 0) = 383 adding or removal, and does not get notified about things like battery state changes, media An event sequence for a USB storage device changes in optical drives or card readers. The looks like this: udev infrastructure is limited to very short liv- ing event handling to provide the initial setup add@/devices/pci0000:00/0000:00:1d.7/usb5/5-3 of a device and to reflect the kernels internal add@/devices/pci0000:00/0000:00:1d.7/\ device state to userspace. usb5/5-3/5-3:1.0 add@/class/scsi_host/host13 add@/class/usb_device/usbdev5.15 All advanced subsystem specific knowledge add@/block/sdb add@/class/scsi_generic/sg1 and device monitoring requires a stateful sys- add@/class/scsi_device/13:0:0:0 tem service that has specific knowlege about remove@/class/scsi_generic/sg1 certain classes of hardware, and has access to remove@/class/scsi_device/12:0:0:0 information that can uniquely identify a device. remove@/block/sdb remove@/class/scsi_host/host12 remove@/devices/pci0000:00/0000:00:1d.7/\ usb5/5-3/5-3:1.0 remove@/class/usb_device/usbdev5.14 remove@/devices/pci0000:00/0000:00:1d.7/\ Abstraction and Meaningful Event usb5/5-3 Context The udev [1] daemon listens on the socket and In order to provide applications with more in- matches the given event properties with a set of formation than what the kernel or udev can pro- simple rules: vide, all hardware information is kept in the 2006 Linux Symposium, Volume Two • 343 stateful HAL daemon. Upon startup, the dae- some are read from the actual hardware us- mon scans sysfs and builds a list of device ob- ing ioctl’s, some are merged from device in- jects. It connects to the udev daemon to get formation files and some are related to the ac- notified about further device state changes and updates its internal device representation from tual device configuration. A device object has that on accordingly. Each device object is iden- one or more capabilities and for each capa- tified by a Unique Device Identifier (UDI) and bility a number of properties must be present. each has a number of properties which simply Properties are name spaced; for example the are key/value pairs: capability block requires properties prefixed block udi =’/org/freedesktop/Hal/devices/volume_uuid\ with . Some properties are optional. _c66f3d19_2e10_44c0_9bd6_a8fefc476f7d’ All properties are strongly typed (integer, dou- volume.partition.msdos_part_table_type = 130 info.product = ’SWAP-hda2’ ble, boolean, string, and list of strings are sup- volume.size = 1077511680 ported) and are defined in the HAL specifica- volume.num_blocks = 2104515 volume.block_size = 512 tion [3]. volume.partition.number = 2 info.capabilities = {’volume’, ’block’} Once a device object is constructed it is info.category = ’volume’ matched by one or more device information volume.is_partition = true files to merge additional properties. These files volume.is_disc = false volume.is_mounted_read_only = false are simple XML files that define rules. For ex- volume.is_mounted = false ample: volume.mount_point = ’’ volume.label = ’SWAP-hda2’ volume.uuid = ’c66f3d19-2e10-44c0-\ <match key="storage.model" 9bd6-a8fefc476f7d’ contains="Storage-CFC"> volume.fsversion = ’2’ <merge key="storage.drive_type" volume.fsusage = ’other’ type="string">compact_flash</merge> volume.fstype = ’swap’ </match> storage.model = ’’ block.storage_device = ’/org/freedesktop/Hal/\ devices/storage_serial_NP0JT48299J8’ block.is_volume = true will match all device objects that contains block.minor = 2 the string Storage-CFC in the storage. block.major = 3 block.device = ’/dev/hda2’ model property and set the drive type to be a Compact Flash reader, while These objects are exported via the D-BUS <!-- Sony Ericsson Handys with Memory Stick (Duo) --> <match key="@storage.physical_device:usb.vendor_id" [2] system message bus and each object int="0xfce"> <!-- K750i --> implements the org.freedesktop.Hal. <match key="@storage.physical_device:usb.product_id" int="0xd016"> Device interface with methods that applica- <merge key="storage.drive_type" type="string">memory_stick</merge> tions can use among other things to query prop- </match> erties. On Linux, there is almost a one to one </match> mapping between directories in sysfs and the matches a specific USB device and sets the device objects. When new devices are plugged drive to be of type memory stick. Since in or out, device objects will appear and disap- the HAL specification [3] precisely defines the pear and applications listening on the message properties (including the range of values they bus can be notified. Depending on the device can assume), an application can rely on this object, properties may change values over time, property to e.g. display the right icon for such which also triggers notifications to subscribed drives that reads Compact Flash, MemoryStick applications. and so forth. Most of the properties of HAL device objects To provide up to date information including are derived from the contents of sysfs files, when media is removed, HAL polls device 344 • Dynamic Device Handling on the Modern Desktop files. This is a necessary since e.g. the Linux button.has_state = false kernel (rightly) refuses to do so, since it is not button.type = ’power’ always necessary. udi = ’/org/freedesktop/Hal/devices/acpi_LID’ button.has_state = true button.state.value = true For each device object, HAL provides a suffi- button.type = ’lid’ cient number of properties for consumer appli- cations to make intelligent choices about how to react when new devices are added or re- moved or when properties change. An example and the above snippet shows the representa- is the way HAL abstracts batteries: tion of the power button and the lid button. Since a button can be either pressed or remain udi = ’/org/freedesktop/Hal/devices/acpi_BAT0’ pressed down, the abstraction has the notion of battery.charge_level.percentage = 99 state.
Recommended publications
  • Desktop Migration and Administration Guide
    Red Hat Enterprise Linux 7 Desktop Migration and Administration Guide GNOME 3 desktop migration planning, deployment, configuration, and administration in RHEL 7 Last Updated: 2021-05-05 Red Hat Enterprise Linux 7 Desktop Migration and Administration Guide GNOME 3 desktop migration planning, deployment, configuration, and administration in RHEL 7 Marie Doleželová Red Hat Customer Content Services [email protected] Petr Kovář Red Hat Customer Content Services [email protected] Jana Heves Red Hat Customer Content Services Legal Notice Copyright © 2018 Red Hat, Inc. This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
    [Show full text]
  • Enable USB Drivers on Linux
    Enable USB drivers on Linux INTHISDOCUMENT · Enable USB driver on system with USBFS support · Enable USB driver on system without USBFS support · Additional notes for FTDI/XTAG debug adapters The XMOS tools interface to development boards using USB debug adapters. USB driver support is provided natively on Linux, but in some cases, the driver must be enabled. The method required to enable the driver depends on the Linux distribution you are using and the kernel version. Linux distributions known to provide USBFS support include: · Ubuntu 9.04 or older · Ubuntu 9.10 with kernel 2.6.31-19-server · CentOS 4.8 and 5.4 · Generally, any distribution with kernel version < 2.6.32 Linux distributions known to not provide USBFS support include: · Ubuntu 10.04 · Generally, any distribution with kernel version >= 2.6.32 1 Enable USB driver on system with USBFS support If your distribution provides USBFS support, use the following command to enable the Linux driver: · mount -t usbfs none /proc/bus/usb -o devmode=0666 To automatically enable the driver on boot, add the following line to the file /etc/fstab: none /proc/bus/usb usbfs defaults,devmode=0666 0 0 Publication Date: 2012/10/30 Document Number: X2612A XMOS © 2012, All Rights Reserved Enable USB drivers on Linux 2/3 2 Enable USB driver on system without USBFS support If you distribution does not provide USBFS support, you must configure udev to recognise the device. To configure udev, follow these steps: 1. Create a file /etc/udev/rules.d/99-xmos.rules with the following contents: SUBSYSTEM!="usb|usb_device", GOTO="xmos_rules_end" ACTION!="add", GOTO="xmos_rules_end" # 20b1:f7d1 for xmos xtag2 ATTRS{idVendor}=="20b1", ATTRS{idProduct}=="f7d1", MODE="0666", SYMLINK+="xtag2-%n" # 0403:6010 for XC-1 with FTDI dual-uart chip ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0666", SYMLINK+="xc1-%n" LABEL="xmos_rules_end" The ATTRS, MODE and SYMLINK stanzas must be all on one line, as each rule can only be on one line.
    [Show full text]
  • Flexible Lustre Management
    Flexible Lustre management Making less work for Admins ORNL is managed by UT-Battelle for the US Department of Energy How do we know Lustre condition today • Polling proc / sysfs files – The knocking on the door model – Parse stats, rpc info, etc for performance deviations. • Constant collection of debug logs – Heavy parsing for common problems. • The death of a node – Have to examine kdumps and /or lustre dump Origins of a new approach • Requirements for Linux kernel integration. – No more proc usage – Migration to sysfs and debugfs – Used to configure your file system. – Started in lustre 2.9 and still on going. • Two ways to configure your file system. – On MGS server run lctl conf_param … • Directly accessed proc seq_files. – On MSG server run lctl set_param –P • Originally used an upcall to lctl for configuration • Introduced in Lustre 2.4 but was broken until lustre 2.12 (LU-7004) – Configuring file system works transparently before and after sysfs migration. Changes introduced with sysfs / debugfs migration • sysfs has a one item per file rule. • Complex proc files moved to debugfs • Moving to debugfs introduced permission problems – Only debugging files should be their. – Both debugfs and procfs have scaling issues. • Moving to sysfs introduced the ability to send uevents – Item of most interest from LUG 2018 Linux Lustre client talk. – Both lctl conf_param and lctl set_param –P use this approach • lctl conf_param can set sysfs attributes without uevents. See class_modify_config() – We get life cycle events for free – udev is now involved. What do we get by using udev ? • Under the hood – uevents are collect by systemd and then processed by udev rules – /etc/udev/rules.d/99-lustre.rules – SUBSYSTEM=="lustre", ACTION=="change", ENV{PARAM}=="?*", RUN+="/usr/sbin/lctl set_param '$env{PARAM}=$env{SETTING}’” • You can create your own udev rule – http://reactivated.net/writing_udev_rules.html – /lib/udev/rules.d/* for examples – Add udev_log="debug” to /etc/udev.conf if you have problems • Using systemd for long task.
    [Show full text]
  • Nix on SHARCNET
    Nix on SHARCNET Tyson Whitehead May 14, 2015 Nix Overview An enterprise approach to package management I a package is a specific piece of code compiled in a specific way I each package is entirely self contained and does not change I each users select what packages they want and gets a custom enviornment https://nixos.org/nix Ships with several thousand packages already created https://nixos.org/nixos/packages.html SHARCNET What this adds to SHARCNET I each user can have their own custom environments I environments should work everywhere (closed with no external dependencies) I several thousand new and newer packages Current issues (first is permanent, second will likely be resolved) I newer glibc requires kernel 2.6.32 so no requin I package can be used but not installed/removed on viz/vdi https: //sourceware.org/ml/libc-alpha/2014-01/msg00511.html Enabling Nix Nix is installed under /home/nixbld on SHARCNET. Enable for a single sessiong by running source /home/nixbld/profile.d/nix-profile.sh To always enable add this to the end of ~/.bash_profile echo source /home/nixbld/profile.d/nix-profile.sh \ >> ~/.bash_profile Reseting Nix A basic reset is done by removing all .nix* files from your home directory rm -fr ~/.nix* A complete reset done by remove your Nix per-user directories rm -fr /home/nixbld/var/nix/profile/per-user/$USER rm -fr /home/nixbld/var/nix/gcroots/per-user/$USER The nix-profile.sh script will re-create these with the defaults next time it runs. Environment The nix-env commands maintains your environments I query packages (available and installed) I create a new environment from current one by adding packages I create a new environment from current one by removing packages I switching between existing environments I delete unused environements Querying Packages The nix-env {--query | -q} ..
    [Show full text]
  • 1. D-Bus a D-Bus FAQ Szerint D-Bus Egy Interprocessz-Kommunikációs Protokoll, És Annak Referenciamegvalósítása
    Az Udev / D-Bus rendszer - a modern asztali Linuxok alapja A D-Bus rendszer minden modern Linux disztribúcióban jelen van, sőt mára már a Linux, és más UNIX jellegű, sőt nem UNIX rendszerek (különösen a desktopon futó változatok) egyik legalapvetőbb technológiája, és az ismerete a rendszergazdák számára lehetővé tesz néhány rendkívül hasznos trükköt, az alkalmazásfejlesztőknek pedig egyszerűen KÖTELEZŐ ismerniük. Miért ilyen fontos a D-Bus? Mit csinál? D-Bus alapú technológiát teszik lehetővé többek között azt, hogy közönséges felhasználóként a kedvenc asztali környezetünkbe bejelentkezve olyan feladatokat hajtsunk végre, amiket a kernel csak a root felasználónak engedne meg. Felmountolunk egy USB meghajtót? NetworkManagerrel konfiguráljuk a WiFi-t, a 3G internetet vagy bármilyen más hálózati csatolót, és kapcsolódunk egy hálózathoz? Figyelmeztetést kapunk a rendszertől, hogy új szoftverfrissítések érkeztek, majd telepítjük ezeket? Hibernáljuk, felfüggesztjük a gépet? A legtöbb esetben ma már D-Bus alapú technológiát használunk ilyen esetben. A D-Bus lehetővé teszi, hogy egymástól függetlenül, jellemzően más UID alatt indított szoftverösszetevők szabványos és biztonságos módon igénybe vegyék egymás szolgáltatásait. Ha valaha lesz a Linuxhoz professzionális desktop tűzfal vagy vírusirtó megoldás, a dolgok jelenlegi állasa szerint annak is D- Bus technológiát kell használnia. A D-Bus technológia legfontosabb ihletője a KDE DCOP rendszere volt, és mára a D-Bus leváltotta a DCOP-ot, csakúgy, mint a Gnome Bonobo technológiáját. 1. D-Bus A D-Bus FAQ szerint D-Bus egy interprocessz-kommunikációs protokoll, és annak referenciamegvalósítása. Ezen referenciamegvalósítás egyik összetevője, a libdbus könyvtár a D- Bus szabványnak megfelelő kommunikáció megvalósítását segíti. Egy másik összetevő, a dbus- daemon a D-Bus üzenetek routolásáért, szórásáért felelős.
    [Show full text]
  • The Linux Command Line
    The Linux Command Line Fifth Internet Edition William Shotts A LinuxCommand.org Book Copyright ©2008-2019, William E. Shotts, Jr. This work is licensed under the Creative Commons Attribution-Noncommercial-No De- rivative Works 3.0 United States License. To view a copy of this license, visit the link above or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042. A version of this book is also available in printed form, published by No Starch Press. Copies may be purchased wherever fine books are sold. No Starch Press also offers elec- tronic formats for popular e-readers. They can be reached at: https://www.nostarch.com. Linux® is the registered trademark of Linus Torvalds. All other trademarks belong to their respective owners. This book is part of the LinuxCommand.org project, a site for Linux education and advo- cacy devoted to helping users of legacy operating systems migrate into the future. You may contact the LinuxCommand.org project at http://linuxcommand.org. Release History Version Date Description 19.01A January 28, 2019 Fifth Internet Edition (Corrected TOC) 19.01 January 17, 2019 Fifth Internet Edition. 17.10 October 19, 2017 Fourth Internet Edition. 16.07 July 28, 2016 Third Internet Edition. 13.07 July 6, 2013 Second Internet Edition. 09.12 December 14, 2009 First Internet Edition. Table of Contents Introduction....................................................................................................xvi Why Use the Command Line?......................................................................................xvi
    [Show full text]
  • Important Notice Regarding Software
    Important Notice Regarding Software The software package installed in this product includes software licensed to Onkyo & Pioneer Corporation (hereinafter, called “O&P Corporation”) directly or indirectly by third party developers. Please be sure to read this notice regarding such software. Notice Regarding GNU GPL/LGPL-applicable Software This product includes the following software that is covered by GNU General Public License (hereinafter, called "GPL") or by GNU Lesser General Public License (hereinafter, called "LGPL"). O&P Corporation notifies you that, according to the attached GPL/LGPL, you have right to obtain, modify, and redistribute software source code for the listed software. ソフトウェアに関する重要なお知らせ 本製品に搭載されるソフトウェアには、オンキヨー & パイオニア株式会社(以下「弊社」とします)が 第三者より直接的に又は間接的に使用の許諾を受けたソフトウェアが含まれております。これらのソフト ウェアに関する本お知らせを必ずご一読くださいますようお願い申し上げます。 GNU GPL / LGPL 適用ソフトウェアに関するお知らせ 本製品には、以下の GNU General Public License(以下「GPL」とします)または GNU Lesser General Public License(以下「LGPL」とします)の適用を受けるソフトウェアが含まれております。 お客様は添付の GPL/LGPL に従いこれらのソフトウェアソースコードの入手、改変、再配布の権利があ ることをお知らせいたします。 Package List パッケージリスト alsa-conf-base glibc-gconv alsa-conf glibc-gconv-utf-16 alsa-lib glib-networking alsa-utils-alsactl gstreamer1.0-libav alsa-utils-alsamixer gstreamer1.0-plugins-bad-aiff alsa-utils-amixer gstreamer1.0-plugins-bad-bluez alsa-utils-aplay gstreamer1.0-plugins-bad-faac avahi-autoipd gstreamer1.0-plugins-bad-mms base-files gstreamer1.0-plugins-bad-mpegtsdemux base-passwd gstreamer1.0-plugins-bad-mpg123 bluez5 gstreamer1.0-plugins-bad-opus busybox gstreamer1.0-plugins-bad-rawparse
    [Show full text]
  • Developer Conference 2012 Schedule
    Developer Conference 2012 Schedule Friday D1 D2 D3 Vlastimil Eliáš Jakub Hrozek, Jan Zeleny František Řezníček Centralized Identity Management 9:00 - 9:45 FreeIPA/SSSD + Intro to MIT Kerberos [Security] Towards Unified Messaging [CoreOS] And SSO for jboss.org Community Systems [JBoss] Alexander Bokovoy, Andreas Schneider Kamil Dudka, Ondřej Vašík Christian Sadilek 9:50 - 10:35 Cross-realm Trusts in FreeIPA v3.0 [Security] Common C/C++ Error Patterns & Static Analysis [CoreOS] JBoss Errai Framework [JBoss] Eduard Beneš, Miroslav Grepl Adam Tkáč Martin Kouba 10:40 - 11:25 SELinux News in Fedora 16 [Security] DNSSEC in Fedora 17 [CoreOS] CDI for Seam2 [JBoss] Dmitri Pal Marcela Maslanova, Jindrich Novy Peter Skopek 11:30 - 12:15 Identity Management Roadmap + MIT and Kerberos [Security] Dynamic Software Collections [CoreOS] PicketBox in AS7 [JBoss] Quick break Peter Vrabec Bryn Reeves Karel Piwko 12:30 - 13:15 Security Compliance Check in Fedora [Security] Supporting the Open Source Enterprise [Misc] Arquillian Drone Helping Ike Get Rid of the Bugs [JBoss] Jan Hutar Miloslav Trmac Software Robot Competition Around the World and Our Way Pavol Pitoňák 13:20 - 14:05 Concise Overview of Security [Security] [Misc, CZ] RichFaces: Testing on Mobile Devices [JBoss] Steve Grubb Stanislav Kozina Geoffrey De Smet 14:10 - 14:55 Government Security [Security] What Can Linux Learn from the Others [Misc] What Are Drools, Guvnor and Planner? [JBoss] Lennart Poettering, Kay Sievers Phil Knirsch Pavel Tisnovsky 15:00 - 15:45 Do's and Don'ts when Writing System
    [Show full text]
  • CIS Ubuntu Linux 18.04 LTS Benchmark
    CIS Ubuntu Linux 18.04 LTS Benchmark v1.0.0 - 08-13-2018 Terms of Use Please see the below link for our current terms of use: https://www.cisecurity.org/cis-securesuite/cis-securesuite-membership-terms-of-use/ 1 | P a g e Table of Contents Terms of Use ........................................................................................................................................................... 1 Overview ............................................................................................................................................................... 12 Intended Audience ........................................................................................................................................ 12 Consensus Guidance ..................................................................................................................................... 13 Typographical Conventions ...................................................................................................................... 14 Scoring Information ..................................................................................................................................... 14 Profile Definitions ......................................................................................................................................... 15 Acknowledgements ...................................................................................................................................... 17 Recommendations ............................................................................................................................................
    [Show full text]
  • ANDROID PRIVACY THROUGH ENCRYPTION by DANIEL
    ANDROID PRIVACY THROUGH ENCRYPTION by DANIEL DEFREEZ A THESIS Presented to the Department of Computer Science in partial fullfillment of the requirements for the degree of Master of Science in Mathematics and Computer Science Ashland, Oregon May 2012 ii APPROVAL PAGE “Android Privacy Through Encryption,” a thesis prepared by Daniel DeFreez in partial fulfillment of the requirements for the Master of Science in Mathematics and Computer Science. This project has been approved and accepted by: Dr. Lynn Ackler, Chair of the Examining Committee Date Pete Nordquist, Committee Member Date Hart Wilson, Committee Member Date Daniel DeFreez c 2012 iii ABSTRACT OF THESIS ANDROID PRIVACY THROUGH ENCRYPTION By Daniel DeFreez This thesis explores the field of Android forensics in relation to a person’s right to privacy. As the field of mobile forensics becomes increasingly sophisticated, it is clear that bypassing common privacy measures, such as disk encryption, will become routine. A new keying method for eCryptfs is proposed that could significantly mitigate memory attacks against encrypted file systems. It is shown how eCryptfs could be modified to implement this keying method on an Android device. iv ACKNOWLEDGMENTS I would like to thank Dr. Lynn Ackler for introducing me to the vast world of computer security and forensics, cultivating a healthy paranoia, and for being a truly excellent teacher. Dr. Dan Harvey, Pete Nordquist, and Hart Wilson provided helpful feedback during the preparation of this thesis, for which I thank them. I am deeply indebted to my friends and colleagues Brandon Kester, Andrew Krug, Adam Mashinchi, Jeff McJunkin, and Stephen Perkins, for their enthusiastic interest in the forensics and security fields, insightful comments, love of free software, and encouraging words.
    [Show full text]
  • Installing a Real-Time Linux Kernel for Dummies
    Real-Time Linux for Dummies Jeroen de Best, Roel Merry DCT 2008.103 Eindhoven University of Technology Department of Mechanical Engineering Control Systems Technology group P.O. Box 513, WH -1.126 5600 MB Eindhoven, the Netherlands Phone: +31 40 247 42 27 Fax: +31 40 246 14 18 Email: [email protected], [email protected] Website: http://www.dct.tue.nl Eindhoven, January 5, 2009 Contents 1 Introduction 1 2 Installing a Linux distribution 3 2.1 Ubuntu 7.10 . .3 2.2 Mandriva 2008 ONE . .6 2.3 Knoppix 3.9 . 10 3 Installing a real-time kernel 17 3.1 Automatic (Ubuntu only) . 17 3.1.1 CPU Scaling Settings . 17 3.2 Manually . 18 3.2.1 Startup/shutdown problems . 25 4 EtherCAT for Unix 31 4.1 Build Sources . 38 4.1.1 Alternative timer in the EtherCAT Target . 40 5 TUeDACs 43 5.1 Download software . 43 5.2 Configure and build software . 44 5.3 Test program . 45 6 Miscellaneous 47 6.1 Installing ps2 and ps4 printers . 47 6.1.1 In Ubuntu 7.10 . 47 6.1.2 In Mandriva 2008 ONE . 47 6.2 Configure the internet connection . 48 6.3 Installing Matlab2007b for Unix . 49 6.4 Installing JAVA . 50 6.5 Installing SmartSVN . 50 6.6 Ubuntu 7.10, Gutsy Gibbon freezes every 10 minutes for approximately 10 sec 51 6.7 Installing Syntek Semicon DC1125 Driver . 52 Bibliography 55 A Menu.lst HP desktop computer DCT lab WH -1.13 57 i ii CONTENTS Chapter 1 Introduction This document describes the steps needed in order to obtain a real-time operating system based on a Linux distribution.
    [Show full text]
  • A Brief History of GNOME
    A Brief History of GNOME Jonathan Blandford <[email protected]> July 29, 2017 MANCHESTER, UK 2 A Brief History of GNOME 2 Setting the Stage 1984 - 1997 A Brief History of GNOME 3 Setting the stage ● 1984 — X Windows created at MIT ● ● 1985 — GNU Manifesto Early graphics system for ● 1991 — GNU General Public License v2.0 Unix systems ● 1991 — Initial Linux release ● Created by MIT ● 1991 — Era of big projects ● Focused on mechanism, ● 1993 — Distributions appear not policy ● 1995 — Windows 95 released ● Holy Moly! X11 is almost ● 1995 — The GIMP released 35 years old ● 1996 — KDE Announced A Brief History of GNOME 4 twm circa 1995 ● Network Transparency ● Window Managers ● Netscape Navigator ● Toolkits (aw, motif) ● Simple apps ● Virtual Desktops / Workspaces A Brief History of GNOME 5 Setting the stage ● 1984 — X Windows created at MIT ● 1985 — GNU Manifesto ● Founded by Richard Stallman ● ● 1991 — GNU General Public License v2.0 Our fundamental Freedoms: ○ Freedom to run ● 1991 — Initial Linux release ○ Freedom to study ● 1991 — Era of big projects ○ Freedom to redistribute ○ Freedom to modify and ● 1993 — Distributions appear improve ● 1995 — Windows 95 released ● Also, a set of compilers, ● 1995 — The GIMP released userspace tools, editors, etc. ● 1996 — KDE Announced This was an overtly political movement and act A Brief History of GNOME 6 Setting the stage ● 1984 — X Windows created at MIT “The licenses for most software are ● 1985 — GNU Manifesto designed to take away your freedom to ● 1991 — GNU General Public License share and change it. By contrast, the v2.0 GNU General Public License is intended to guarantee your freedom to share and ● 1991 — Initial Linux release change free software--to make sure the ● 1991 — Era of big projects software is free for all its users.
    [Show full text]