Designing and developing device drivers. Coding drivers
|
|
- Martin Stokes
- 6 years ago
- Views:
Transcription
1 Designing and developing device drivers Coding drivers
2 Registering a driver 2 calls to register a driver defined in <linux/fs.h> int register_chrdev_region(dev_t first, unsigned int count, char *name); int alloc_chrdev_region(dev_t *dev, unsigned int firstminor, unsigned int count, char *name); Use alloc_chrddev_region They allocate major numbers and register the device Show up in /proc/devices and /sysfs
3 /proc/devices Character devices: 1 mem 2 pty 3 ttyp 4 ttys 6 lp 7 vcs 10 misc 13 input 14 sound 21 sg 180 usb Block devices: 2 fd 8 sd 11 sr 65 sd 66 sd
4 Dynamic allocation Eventually all major numbers will be dynamically allocated A script should be provided to initialise the device Can be in /etc/init.d/ A lot depends upon whether and how the driver is to be distributed
5 A init script #!/bin/sh module="scull" device="scull" mode="664" #invoke insmod with all arguments we got #and use a pathname, as newer modutils don't look in. by default /sbin/insmod./$module.ko $* exit 1 #remove stale nodes rm -f /dev/${device}[0-3] major=$(awk "\\$2==\"$module\" {print \\$1}" /proc/devices) mknod /dev/${device}0 c $major 0 mknod /dev/${device}1 c $major 1 mknod /dev/${device}2 c $major 2 mknod /dev/${device}3 c $major 3 #give appropriate group/permissions, and change the group. #Not all distributions have staff, some have "wheel" instead. group="staff" grep -q '^staff:' /etc/group group="wheel" chgrp $group /dev/${device}[0-3] chmod $mode /dev/${device}[0-3]
6 Char device de registration To de register or release a device call void unregister_chrdev_region(dev_t first, unsigned int count);
7 Important kernel data structures There are 3 important kernel data structures for device drvier writers File operations fops A field in File The File struct Not to be confused with stdio FILE The Inode struct
8 fops file operations In <linux/fs.h> All of the common calls that can be made on a file loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char user *, size_t, loff_t *); ssize_t (*aio_read)(struct kiocb *, char user *, size_t, loff_t); ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_t *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*release) (struct inode *, struct file *);
9 The FILE structure In <linux/fs.h> Used for every open file. Not specific to device drivers mode_t f_mode; loff_t f_pos; unsigned int f_flags; struct file_operations *f_op; void *private_data;
10 The inode structure Has a large amount of disc, file system and kernel information There are 2 fields important for drivers dev_t i_rdev; Use the macros iminor and imajor to access this struct cdev *i_cdev; The data structure for character devices
11 struct cdev Can be initialised directly from <linux/cdev.h> struct cdev *my_cdev = cdev_alloc( ); my_cdev >ops = &my_fops; Or embedded in driver s main data structure void cdev_init(struct cdev *cdev, struct file_operations *fops); Finally the kernel has to add the new cdev int cdev_add(struct cdev *dev, dev_t num, unsigned int count); The cdev can be removed with void cdev_del(struct cdev *dev);
12 The old method In most drivers you work with the older method of character device registration will be used int register_chrdev(unsigned int major, const char *name, struct file_operations *fops); To unregister int unregister_chrdev(unsigned int major, const char *name);
13 sa1100 audio.h typedef struct { char *id; /* identification string */ struct device *dev; /* device */ audio_buf_t *buffers; /* pointer to audio buffer structures */ u_int usr_head; /* user fragment index */ u_int dma_head; /* DMA fragment index to go */ u_int dma_tail; /* DMA fragment index to complete */ u_int fragsize; /* fragment i.e. buffer size */ u_int nbfrags; /* nbr of fragments i.e. buffers */ u_int pending_frags; /* Fragments sent to DMA */ dma_device_t dma_dev; /* device identifier for DMA */ dma_regs_t *dma_regs; /* points to our DMA registers */ int bytecount; /* nbr of processed bytes */ int fragcount; /* nbr of fragment transitions */ struct semaphore sem; /* account for fragment usage */ wait_queue_head_t wq; /* for poll */ int dma_spinref; /* DMA is spinning */ int mapped:1; /* mmap()'ed buffers */ int active:1; /* actually in progress */ int stopped:1; /* might be active but stopped */ int spin_idle:1; /* have DMA spin on zeros when idle */ int sa1111_dma:1; /* DMA handled by SA1111 */ } audio_stream_t; /* * State structure for one instance */ typedef struct { audio_stream_t *output_stream; audio_stream_t *input_stream; int rd_ref:1; /* open reference for recording */ int wr_ref:1; /* open reference for playback */ int need_tx_for_rx:1; /* if data must be sent while receiving */ void *data; void (*hw_init)(void *); void (*hw_shutdown)(void *); int (*client_ioctl)(struct inode *, struct file *, uint, ulong); struct semaphore sem; /* to protect against races in attach() */ } audio_state_t;
14 Audio functions and fileops extern int sa1100_audio_attach( struct inode *inode, struct file *file, audio_state_t *state); extern ssize_t audio_write(struct file *file, const char *buffer, size_t count, loff_t * ppos); int sa1100_audio_suspend(audio_state_t *s, pm_message_t state); int sa1100_audio_resume(audio_state_t *s); extern int audio_read(struct file *file, char *buffer, size_t count, loff_t * ppos); static struct file_operations dev_fileops = {.owner = THIS_MODULE,.read = audio_read,.write = audio_write,.ioctl = audio_ioctl,.release = audio_release,.mmap = audio_mmap,.poll = audio_poll,.llseek = audio_llseek, };
15 sa1100_audio_attach int sa1100_audio_attach(struct inode *inode, struct file *file, audio_state_t *state) { audio_stream_t *os = state >output_stream; audio_stream_t *is = state >input_stream; int err, need_tx_dma; int seq1,seq2; DPRINTK("sa1100_audio_attach fmode %d\n",file >f_mode); file >private_data=state; os >dev >coherent_dma_mask=0xffffffff; down(&state >sem); /* access control */ err = ENODEV; if ((file >f_mode & FMODE_WRITE) &&!os) goto out; if ((file >f_mode & FMODE_READ) &&!is) goto out; err = EBUSY; if ((file >f_mode & FMODE_WRITE) && state >wr_ref) goto out; if ((file >f_mode & FMODE_READ) && state >rd_ref) goto out;
16 ucb1x00 core.c static int ucb1x00_probe(struct mcp *mcp) { struct ucb1x00 *ucb; struct ucb1x00_driver *drv; unsigned int id; int ret = ENODEV; mcp_enable(mcp); id = mcp_reg_read(mcp, UCB_ID); printk("ucb1x00_probe is is %x\n",id); if (id!= UCB_ID_1200 && id!= UCB_ID_1300 && id!= UCB_ID_TC35143) { printk(kern_warning "UCB1x00 ID not found: %04x\n", id); goto err_disable; } Major = register_chrdev(0,device_name,&fops); printk("device Number %d\n",major); goto out;
Introduction Reading Writing scull. Linux Device Drivers - char driver
Overview 1 2 3 4 Major, minor File Operations The file Structure The inode structure Registraction simplest driver, suitable for most simple devices, follow the book. Jernej Figure: Vičič. (Simple Character
More informationCharacter Device Drivers
Character Device Drivers 張大緯 CSIE, NCKU The information on the slides are from Linux Device Drivers, Third Edition, by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman. Copyright 2005 O Reilly
More informationLinux Device Drivers. 3. Char Drivers cont. 3. Char Drivers. 1. Introduction 2. Kernel Modules 3. Char Drivers 4. Advanced Char Drivers 5.
Linux Device Drivers Dr. Wolfgang Koch Friedrich Schiller University Jena Department of Mathematics and Computer Science Jena, Germany wolfgang.koch@uni-jena.de Linux Device Drivers 1. Introduction 2.
More informationLinux Device Drivers. 3. Char Drivers. 1. Introduction 2. Kernel Modules 3. Char Drivers 4. Advanced Char Drivers 5. Interrupts
Linux Device Drivers Dr. Wolfgang Koch Friedrich Schiller University Jena Department of Mathematics and Computer Science Jena, Germany wolfgang.koch@uni-jena.de Linux Device Drivers 1. Introduction 2.
More informationUnix (Linux) Device Drivers
Unix (Linux) Device Drivers Kernel module that handles the interaction with an specific hardware device, hiding its operational details behind a common interface Three basic categories Character Block
More informationMP3: VIRTUAL MEMORY PAGE FAULT MEASUREMENT
MP3: VIRTUAL MEMORY PAGE FAULT MEASUREMENT University of Illinois at Urbana-Champaign Department of Computer Science CS423 Fall 2011 Keun Soo Yim GOAL A Linux kernel module to profile VM system events
More informationREVISION HISTORY NUMBER DATE DESCRIPTION NAME
i ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME iii Contents 1 The structure of a Linux kernel module 1 1.1 Install XV6...................................................... 1 1.2 Compile and load a
More informationLinux Device Drivers
Linux Device Drivers Modules A piece of code that can be added to the kernel at runtime is called a module A device driver is one kind of module Each module is made up of object code that can be dynamically
More informationVirtual File System (VFS) Implementation in Linux. Tushar B. Kute,
Virtual File System (VFS) Implementation in Linux Tushar B. Kute, http://tusharkute.com Virtual File System The Linux kernel implements the concept of Virtual File System (VFS, originally Virtual Filesystem
More informationCS5460/6460: Operating Systems. Lecture 24: Device drivers. Anton Burtsev April, 2014
CS5460/6460: Operating Systems Lecture 24: Device drivers Anton Burtsev April, 2014 Device drivers Conceptually Implement interface to hardware Expose some high-level interface to the kernel or applications
More informationCS 378 (Spring 2003)
Department of Computer Sciences THE UNIVERSITY OF TEXAS AT AUSTIN CS 378 (Spring 2003) Linux Kernel Programming Yongguang Zhang (ygz@cs.utexas.edu) Copyright 2003, Yongguang Zhang This Lecture Device Driver
More informationThe device driver (DD) implements these user functions, which translate system calls into device-specific operations that act on real hardware
Introduction (Linux Device Drivers, 3rd Edition (www.makelinux.net/ldd3)) Device Drivers -> DD They are a well defined programming interface between the applications and the actual hardware They hide completely
More informationDevice Drivers Demystified ESC 117. Doug Abbott, Principal Consultant Intellimetrix. Why device drivers? What s a device driver?
ESC 117, Principal Consultant Intellimetrix Outline Introduction Why device drivers? What s a device driver? Abstract model of device driver OS agnostic What makes drivers seem complicated? Independently
More informationIntroduction to Device Drivers Part-1
Introduction to Device Drivers Part-1 Introduction to Device Drivers-1 Objectives GNU/Linux Learn how to access the hardware similar to the sysfs method but faster Understand the basic techniques of how
More informationStep Motor. Step Motor Device Driver. Step Motor. Step Motor (2) Step Motor. Step Motor. source. open loop,
Step Motor Device Driver Step Motor Step Motor Step Motor source Embedded System Lab. II Embedded System Lab. II 2 Step Motor (2) open loop, : : Pulse, Pulse,, -, +5%, step,, Step Motor Step Motor ( ),
More informationCharacter Device Drivers One Module - Multiple Devices
Review from previous classes Three Types: Block, Character, and Network Interface Device Drivers MAJOR & MINOR numbers assigned register_chrdev_region(), alloc_chrdev_region(), unregister_chrdev_region()
More informationSimple char driver. for Linux. my_first.c: headers. my_first.c: file structure. Calcolatori Elettronici e Sistemi Operativi.
Calcolatori Elettronici e Sistemi Operativi Simple char driver Simple char driver for Linux Code organization my_first.c driver code: Headers Macro definitions Device structure definition Globals and module
More informationLinux drivers - Exercise
Embedded Realtime Software Linux drivers - Exercise Scope Keywords Prerequisites Contact Learn how to implement a device driver for the Linux OS. Linux, driver Linux basic knowledges Roberto Bucher, roberto.bucher@supsi.ch
More informationLoadable Kernel Module
Instituto Superior de Engenharia do Porto Mestrado em Engenharia Eletrotécnica e de Computadores Arquitetura de Computadores Loadable Kernel Module The objective of this lesson is to analyze, compile and
More informationFinish up OS topics Group plans
Finish up OS topics Group plans Today Finish up and review Linux device driver stuff Walk example again See how it all goes together Discuss talking to MMIO RTOS (on board) Deferred interrupts Discussion
More informationUSB. Development of a USB device driver working on Linux and Control Interface. Takeshi Fukutani, Shoji Kodani and Tomokazu Takahashi
Linux USB Development of a USB device driver working on Linux and Control Interface Takeshi Fukutani, Shoji Kodani and Tomokazu Takahashi Recently, it s becoming more popular to utilize Linux for controlling
More informationWhat is a Linux Device Driver? Kevin Dankwardt, Ph.D. VP Technology Open Source Careers
What is a Linux Device Driver? Kevin Dankwardt, Ph.D. VP Technology Open Source Careers kdankwardt@oscareers.com What does a driver do? Provides a more convenient interface to user-space for the hardware.
More information3 Character Drivers. 3.1 The Design of scullc. Linux Device Drivers in Assembly
3 Character Drivers In this chapter we will develop a simple character driver named SCULL for Simple Character Utility for Loading Localities; again, don t blame me for the name). As in the previous chapter,
More informationKernel Modules. Kartik Gopalan
Kernel Modules Kartik Gopalan Kernel Modules Allow code to be added to the kernel, dynamically Only those modules that are needed are loaded. Unload when no longer required - frees up memory and other
More informationDevice Drivers. CS449 Fall 2017
Device Drivers CS449 Fall 2017 Software Layers User-level I/O so7ware & libraries Device-independent OS so7ware Device drivers Interrupt handlers User OperaEng system (kernel) Hardware Device Drivers User
More information7.4 Simple example of Linux drivers
407 7.4 Simple example of Linux drivers In the previous section, we introduce a simple Hello module driver, it is just some information from the serial port output, the board did not correspond to the
More informationBLOCK DEVICES. Philipp Dollst
BLOCK DEVICES Philipp Dollst BASICS A block driver provides access to devices that transfer randomly accessible data in fixed-size blocks disk drives, primarily. The Linux kernel sees block devices a being
More informationRF-IDs in the Kernel -- Episode III: I want to File Away
What s on the menu Software Comprehension and Maintenance June 2005 RF-IDs in the Kernel -- Episode III: I want to File Away Achilleas Anagnostopoulos (archie@istlab.dmst.aueb.gr) Department of Management
More informationFAME Operatinf Systems - Modules
FAME Operatinf Systems - Modules 2012 David Picard Contributions: Arnaud Revel, Mickaël Maillard picard@ensea.fr Introduction Linux is not a monolithic pile of code anymore Possibility to add/remove functionalities
More information/dev/hello_world: A Simple Introduction to Device Drivers under Linux
Published on Linux DevCenter (http://www.linuxdevcenter.com/) See this if you're having trouble printing code examples /dev/hello_world: A Simple Introduction to Device Drivers under Linux by Valerie Henson
More informationIntroduction to Operating Systems. Device Drivers. John Franco. Dept. of Electrical Engineering and Computing Systems University of Cincinnati
Introduction to Operating Systems Device Drivers John Franco Dept. of Electrical Engineering and Computing Systems University of Cincinnati Basic Computer Architecture CPU Main Memory System Bus Channel
More informationCPSC 8220 FINAL EXAM, SPRING 2016
CPSC 8220 FINAL EXAM, SPRING 2016 NAME: Questions are short answer and multiple choice. For each of the multiple choice questions, put a CIRCLE around the letter of the ONE correct answer. Make sure that
More information1 #include <linux/module.h> 2 #include <linux/sched.h> 3 #include <linux/interrupt.h> 4 #include <linux/init.h> 5 #include <linux/kernel.
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include
More informationDeveloping Audio Applications on a StrongArm platform. Craig Duffy Bristol UWE, UK
Developing Audio Applications on a StrongArm platform Craig Duffy Bristol UWE, UK craig.duffy@uwe.ac.uk Background We use an embedded SA1110 board as part of our teaching of embedded systems at Bristol
More informationInterrupt handling. Interrupt handling. Deferred work. Interrupt handling. Remove an interrupt handler. 1. Link a struct work to a function
Interrupt handling Interrupt handling error = request_irq(irq_number, interrupt_service_routine, flags, module_name, (void*)dataptr); error: == 0 OK!= 0 FAILED interrupt_service_routine: irqreturn_t interrupt_service_routine(int
More informationOperating systems for embedded systems. Embedded Operating Systems
Operating systems for embedded systems Embedded operating systems How do they differ from desktop operating systems? Programming model Process-based Event-based How is concurrency handled? How are resource
More informationTPMC680-SW-82. Linux Device Driver. 64 Digital Input/Output Version 1.1.x. User Manual. Issue April 2010
The Embedded I/O Company TPMC680-SW-82 Linux Device Driver 64 Digital Input/Output Version 1.1.x User Manual Issue 1.1.3 April 2010 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek, Germany Phone:
More informationOperating systems for embedded systems
Operating systems for embedded systems Embedded operating systems How do they differ from desktop operating systems? Programming model Process-based Event-based How is concurrency handled? How are resource
More informationOperating System Labs. Yuanbin Wu
Operating System Labs Yuanbin Wu cs@ecnu Announcement Project 1 due 21:00, Oct. 8 Operating System Labs Introduction of I/O operations Project 1 Sorting Operating System Labs Manipulate I/O System call
More informationIntroduction to Linux Device Drivers Recreating Life One Driver At a Time
Introduction to Linux Device Drivers Recreating Life One Driver At a Time Muli Ben-Yehuda mulix@mulix.org IBM Haifa Research Labs, Haifa Linux Club Linux Device Drivers, Technion, Jan 2004 p.1/42 why write
More informationOperating System Concepts Ch. 11: File System Implementation
Operating System Concepts Ch. 11: File System Implementation Silberschatz, Galvin & Gagne Introduction When thinking about file system implementation in Operating Systems, it is important to realize the
More informationLinux Device Driver. Analog/Digital Signal Interfacing
Linux Device Driver Analog/Digital Signal Interfacing User Program & Kernel Interface Loadable Kernel Module(LKM) A new kernel module can be added on the fly (while OS is still running) LKMs are often
More informationLinux Device Driver in Action (LDDiA)
Linux Device Driver in Action (LDDiA) Duy-Ky Nguyen 2015-04-30 1. On Memory Any unit under user control must have a controller board (CB) with a controller unit (CU) and several devices (Dev.x) doing what
More informationLinux Kernel Modules & Device Drivers April 9, 2012
Linux Kernel Modules & Device Drivers April 9, 2012 Pacific University 1 Resources Linux Device Drivers,3rd Edition, Corbet, Rubini, Kroah- Hartman; O'Reilly kernel 2.6.10 we will use 3.1.9 The current
More informationDesign and Implementation of an Asymmetric Multiprocessor Environment Within an SMP System. Roberto Mijat, ARM Santa Clara, October 2, 2007
Design and Implementation of an Asymmetric Multiprocessor Environment Within an SMP System Roberto Mijat, ARM Santa Clara, October 2, 2007 1 Agenda Design Principle ARM11 MPCore TM overview System s considerations
More informationNPTEL Course Jan K. Gopinath Indian Institute of Science
Storage Systems NPTEL Course Jan 2012 (Lecture 17) K. Gopinath Indian Institute of Science Accessing Devices/Device Driver Many ways to access devices under linux Non-block based devices ( char ) - stream
More informationFinal Step #7. Memory mapping For Sunday 15/05 23h59
Final Step #7 Memory mapping For Sunday 15/05 23h59 Remove the packet content print in the rx_handler rx_handler shall not print the first X bytes of the packet anymore nor any per-packet message This
More informationWorkspace for '5-linux' Page 1 (row 1, column 1)
Workspace for '5-linux' Page 1 (row 1, column 1) Workspace for '5-linux' Page 2 (row 2, column 1) ECEN 449 Microprocessor System Design Introduction to Linux 1 Objectives of this Lecture Unit Learn basics
More informationNPTEL Course Jan K. Gopinath Indian Institute of Science
Storage Systems NPTEL Course Jan 2012 (Lecture 18) K. Gopinath Indian Institute of Science Spinlocks & Semaphores Shared data betw different parts of code in kernel most common: access to data structures
More informationFiles. Eric McCreath
Files Eric McCreath 2 What is a file? Information used by a computer system may be stored on a variety of storage mediums (magnetic disks, magnetic tapes, optical disks, flash disks etc). However, as a
More informationDriving Me Nuts Device Classes
Driving Me Nuts Device Classes More necessary insructions for making your new device driver play nice in the 2.6 kernel. by Greg Kroah-Hartman In the last Driving Me Nuts column [see LJ, June 2003], we
More informationECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective. Part I: Operating system overview: Disk and File System
ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part I: Operating system overview: Disk and File System 1 What Disks Look Like Hitachi Deskstar T7K500 SATA 2
More informationLinux Loadable Kernel Modules (LKM)
Device Driver Linux Loadable Kernel Modules (LKM) A way dynamically ADD code to the Linux kernel LKM is usually used for dynamically add device drivers filesystem drivers system calls network drivers executable
More informationInterprocess Communication. Originally multiple approaches Today more standard some differences between distributions still exist
Interprocess Communication Originally multiple approaches Today more standard some differences between distributions still exist Pipes Oldest form of IPC provided by all distros Limitations Historically
More informationCS 453: Operating Systems Programming Project 5 (100 points) Linux Device Driver
CS 453: Operating Systems Programming Project 5 (100 points) Linux Device Driver 1 Setup In this assignment, we will write a simple character driver called booga. Please do a git pull --rebase in your
More informationFall 2017 :: CSE 306. File Systems Basics. Nima Honarmand
File Systems Basics Nima Honarmand File and inode File: user-level abstraction of storage (and other) devices Sequence of bytes inode: internal OS data structure representing a file inode stands for index
More informationLinux Device Drivers
Linux Device Drivers for realtime course Björne Lindberg 17/02/09 1 Archite cture Net work MM Sched uler Applikationer Arch dep code Fil system Device control Syst em calls Drivers In kernel compiled modules
More informationInput & Output 1: File systems
Input & Output 1: File systems What are files? A sequence of (usually) fixed sized blocks stored on a device. A device is often refered to as a volume. A large device might be split into several volumes,
More informationLecture 3. Introduction to Unix Systems Programming: Unix File I/O System Calls
Lecture 3 Introduction to Unix Systems Programming: Unix File I/O System Calls 1 Unix File I/O 2 Unix System Calls System calls are low level functions the operating system makes available to applications
More informationAndroid 多核心嵌入式多媒體系統設計與實作
Android 多核心嵌入式多媒體系統設計與實作 Linux Device Driver 架構簡介 賴槿峰 (Chin-Feng Lai) Assistant Professor, institute of CSIE, National Ilan University Sep 29 th 2011 2011 MMN Lab. All Rights Reserved 2011 1 資訊軟體技術人才培訓
More informationTIP675-SW-82. Linux Device Driver. 48 TTL I/O Lines with Interrupts Version 1.2.x. User Manual. Issue November 2013
The Embedded I/O Company TIP675-SW-82 Linux Device Driver 48 TTL I/O Lines with Interrupts Version 1.2.x User Manual Issue 1.2.5 November 2013 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek, Germany
More informationwe are here I/O & Storage Layers Recall: C Low level I/O Recall: C Low Level Operations CS162 Operating Systems and Systems Programming Lecture 18
I/O & Storage Layers CS162 Operating Systems and Systems Programming Lecture 18 Systems April 2 nd, 2018 Profs. Anthony D. Joseph & Jonathan Ragan-Kelley http://cs162.eecs.berkeley.edu Application / Service
More informationOperating System Labs. Yuanbin Wu
Operating System Labs Yuanbin Wu cs@ecnu Annoucement Next Monday (28 Sept): We will have a lecture @ 4-302, 15:00-16:30 DON'T GO TO THE LABORATORY BUILDING! TA email update: ecnucchuang@163.com ecnucchuang@126.com
More informationOverview. Daemon processes and advanced I/O. Source: Chapters 13&14 of Stevens book
Overview Last Lecture Broadcast and multicast This Lecture Daemon processes and advanced I/O functions Source: Chapters 13&14 of Stevens book Next Lecture Unix domain protocols and non-blocking I/O Source:
More informationThe course that gives CMU its Zip! I/O Nov 15, 2001
15-213 The course that gives CMU its Zip! I/O Nov 15, 2001 Topics Files Unix I/O Standard I/O A typical hardware system CPU chip register file ALU system bus memory bus bus interface I/O bridge main memory
More informationCSE 333 SECTION 3. POSIX I/O Functions
CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight Exercise 7 due Monday (out later today) POSIX Portable Operating System Interface Family of standards specified by the
More informationProcesses often need to communicate. CSCB09: Software Tools and Systems Programming. Solution: Pipes. Recall: I/O mechanisms in C
2017-03-06 Processes often need to communicate CSCB09: Software Tools and Systems Programming E.g. consider a shell pipeline: ps wc l ps needs to send its output to wc E.g. the different worker processes
More informationCMPS 105 Systems Programming. Prof. Darrell Long E2.371
+ CMPS 105 Systems Programming Prof. Darrell Long E2.371 darrell@ucsc.edu + Chapter 3: File I/O 2 + File I/O 3 n What attributes do files need? n Data storage n Byte stream n Named n Non-volatile n Shared
More informationI/O Management Intro. Chapter 5
I/O Management Intro Chapter 5 1 Learning Outcomes A high-level understanding of the properties of a variety of I/O devices. An understanding of methods of interacting with I/O devices. 2 I/O Devices There
More informationCS360 Midterm 2 Spring, 2016 James S. Plank March 10, 2016
CS360 Midterm 2 Spring, 2016 James S. Plank March 10, 2016 In all of these questions, please assume the following: Pointers and longs are 4 bytes. The machine is little endian, but that doesn't matter
More informationChp1 Introduction. Introduction. Objective. Logging In. Shell. Briefly describe services provided by various versions of the UNIX operating system.
Chp1 Objective Briefly describe services provided by various versions of the UNIX operating system. Logging In /etc/passwd local machine or NIS DB root:x:0:1:super-user:/root:/bin/tcsh Login-name, encrypted
More informationCARRIER-SW-82. Linux Device Driver. IPAC Carrier Version 2.2.x. User Manual. Issue November 2017
The Embedded I/O Company CARRIER-SW-82 Linux Device Driver IPAC Carrier Version 2.2.x User Manual Issue 2.2.0 November 2017 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek, Germany Phone: +49 (0)
More informationThe Linux driver for the Rome PCI-AER board
The Linux driver for the Rome PCI-AER board Adrian M. Whatley, Institute of Neuroinformatics, University & ETH Zurich Specification version 2.16 (4.1.2012) 2.17 (6.9.2012) for driver versions >= 2.45 2.46
More informationCS 378 (Spring 2003)
Department of Computer Sciences THE UNIVERSITY OF TEXAS AT AUSTIN CS 378 (Spring 2003) Linux Kernel Programming Yongguang Zhang (ygz@cs.utexas.edu) Copyright 2003, Yongguang Zhang Linux File System Mounting
More informationThe Embedded I/O Company TIP700-SW-82 Linux Device Driver User Manual TEWS TECHNOLOGIES GmbH TEWS TECHNOLOGIES LLC
The Embedded I/O Company TIP700-SW-82 Linux Device Driver Digital Output 24V DC Version 1.2.x User Manual Issue 1.2.1 February 2009 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 Phone: +49 (0) 4101 4058 0 25469
More informationSection 3: File I/O, JSON, Generics. Meghan Cowan
Section 3: File I/O, JSON, Generics Meghan Cowan POSIX Family of standards specified by the IEEE Maintains compatibility across variants of Unix-like OS Defines API and standards for basic I/O: file, terminal
More informationCS , Spring Sample Exam 3
Andrew login ID: Full Name: CS 15-123, Spring 2010 Sample Exam 3 Mon. April 6, 2009 Instructions: Make sure that your exam is not missing any sheets, then write your full name and Andrew login ID on the
More informationMaRTE OS Misc utilities
MaRTE OS Misc utilities Daniel Sangorrin daniel.sangorrin@{unican.es, gmail.com} rev 0.1: 2008-5-12 1. Circular Memory Buffer This is a generic software component that allows the user to write some data
More informationPMON Module An Example of Writing Kernel Module Code for Debian 2.6 on Genesi Pegasos II
Freescale Semiconductor Application Note AN2744 Rev. 1, 12/2004 PMON Module An Example of Writing Kernel Module Code for Debian 2.6 on Genesi Pegasos II by Maurie Ommerman CPD Applications Freescale Semiconductor,
More informationMemory Mapped I/O. Michael Jantz. Prasad Kulkarni. EECS 678 Memory Mapped I/O Lab 1
Memory Mapped I/O Michael Jantz Prasad Kulkarni EECS 678 Memory Mapped I/O Lab 1 Introduction This lab discusses various techniques user level programmers can use to control how their process' logical
More informationBuilding Ethernet Drivers on RTLinux-GPL 1
Building Ethernet Drivers on RTLinux-GPL 1 Sergio Pérez, Joan Vila, Ismael Ripoll Department of Computer Engineering Universitat Politècnica de Valencia Camino de Vera, s/n. 46022 Valencia,SPAIN {serpeal,jvila,iripoll@disca.upv.es
More informationwe are here Page 1 Recall: How do we Hide I/O Latency? I/O & Storage Layers Recall: C Low level I/O
CS162 Operating Systems and Systems Programming Lecture 18 Systems October 30 th, 2017 Prof. Anthony D. Joseph http://cs162.eecs.berkeley.edu Recall: How do we Hide I/O Latency? Blocking Interface: Wait
More informationUNIX System Calls. Sys Calls versus Library Func
UNIX System Calls Entry points to the kernel Provide services to the processes One feature that cannot be changed Definitions are in C For most system calls a function with the same name exists in the
More informationRun time environments
Run time environments 1 What is runtime? Runtime: time during which a program is running (executing). It contrasts to other phases of program as compile time, link time, load time, etc 2 Topics we will
More informationIntroduc)on to I/O. CSE 421/521: Opera)ng Systems Karthik Dantu
Introduc)on to I/O CSE 421/521: Opera)ng Systems Karthik Dantu Slides adopted from CS162 class at Berkeley, CSE 451 at U-Washington and CSE 421 by Prof Kosar at UB Grading 5% - Design Git Assignment #1
More informationOS COMPONENTS OVERVIEW OF UNIX FILE I/O. CS124 Operating Systems Fall , Lecture 2
OS COMPONENTS OVERVIEW OF UNIX FILE I/O CS124 Operating Systems Fall 2017-2018, Lecture 2 2 Operating System Components (1) Common components of operating systems: Users: Want to solve problems by using
More informationTable of Contents. Preface... xi
,ldr3toc.fm.4587 Page v Thursday, January 20, 2005 9:30 AM Table of Contents Preface................................................................. xi 1. An Introduction to Device Drivers.....................................
More informationProgramming the GPMC driver
Embedded Systems with Linux Programming the GPMC driver Manuel Domínguez-Pumar Embedded Systems with Linux series Volume 3: Manuel Domínguez Pumar Electronic Engineering Department Technical University
More informationLecture 10 Overview!
Lecture 10 Overview! Last Lecture! Wireless Sensor Networks! This Lecture! Daemon processes and advanced I/O functions! Source: Chapters 13 &14 of Stevens book! Next Lecture! Unix domain protocols and
More informationI/O MANAGEMENT CATEGORIES OF I/O DEVICES 1. Slide 1. Slide 3. Controller: Three classes of devices (by usage):
Monitor Keyboard Floppy disk drive Hard disk drive Slide I/O MANAGEMENT Categories of I/O devices and their integration with processor and bus Design of I/O subsystems Slide CPU Memory Video controller
More informationECE 650 Systems Programming & Engineering. Spring 2018
ECE 650 Systems Programming & Engineering Spring 2018 Inter-process Communication (IPC) Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Recall Process vs. Thread A process is
More informationTutorial 2. Linux networking, sk_buff and stateless packet filtering. Roei Ben-Harush Check Point Software Technologies Ltd.
Tutorial 2 Linux networking, sk_buff and stateless packet filtering Agenda 1 Linux file system - networking 2 3 4 sk_buff Stateless packet filtering About next assignment 2 Agenda 1 Linux file system -
More informationExperiment 6 The Real World Interface
Experiment 6 The Real World Interface Instructions You are required to design, code, test and document the C program from the experiment listed below. You should prepare the pseudocode for the program
More informationOPAE Intel FPGA Linux Device Driver Architecture Guide
OPAE Intel FPGA Linux Device Driver Architecture Guide Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1 OPAE Intel FPGA Linux Device Driver Architecture...3 1.1 Hardware
More informationINSTRUMENTATION. using FREE/OPEN CODE
INSTRUMENTATION using FREE/OPEN CODE History of this lecture In real mode, the registers on the IO bus can be accessed directly from the C program. In the mid 90's some instrumentation was done here at
More informationLinux Device Drivers Interrupt Requests
Overview 1 2 3 Installation of an interrupt handler Interface /proc 4 5 6 7 primitive devices can be managed only with I/O regions, most devices require a more complicated approach, devices cooperate with
More informationFile Systems. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
File Systems Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu SSE3044: Operating Systems, Fall 2016, Jinkyu Jeong (jinkyu@skku.edu) File System Layers
More informationCSE 333 SECTION 3. POSIX I/O Functions
CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight HW2 Due Thursday, July 19 th Midterm on Monday, July 23 th 10:50-11:50 in TBD (And regular exercises in between) POSIX
More informationCoccinelle: Killing Driver Bugs Before They Hatch
Coccinelle: Killing Driver Bugs Before They Hatch Julia Lawall DIKU, University of Copenhagen Gilles Muller, Richard Urunuela École des Mines de Nantes-INRIA, LINA OS evolution Motivations: Improve performance.
More informationIntroduction USB Pisanje gonilnika USB. USB drivers
drivers drivers Overview 1 2 Urbs 3 drivers universal serial bus (), connection between the computer and peripherals, primarily intended for slow connections: parallel port, serial port, keyboard,... new
More information