Linux Driver Devices. Why, When, Which, How?
|
|
- Avice Morris
- 8 years ago
- Views:
Transcription
1 Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may have had a lot of very different devices however the Linux kernel has few different versions; it can adapt thanks to the driver devices. The Linux kernel use to be presented as a chunk of executable code responsible for different things. These things are often split in five categories; Process management, memory management, file systems, networking and device control. The process management is in charge of creating and killing the different processes that runs to do what the user want to do and of managing the interactions between them by dealing with handlers and organizing the access to the CPU(s). The memory management organizes the access to the memory by creating for example virtual addresses for the processes. The file systems creates a structure on the physical layer to deal with data through files. We will show later in this article that a lot of things in Linux can be treated like files. Networking is processed in its own way because network operations are not specific to a task. The packets are analyzed and redistributed the processes that need it. Finally the device control is by itself an entire part because a process may want to access to several devices in a small amount of time. Besides several processes may want to access the same device. These pieces of code are going to be the main subject of this article. Our global questions are going to be Why? When? Which? How? We are going to say first why and when should we use driver devices. Then we will give some examples of driver devices and some tips to make it. 1
2 Why and when should we use driver devices? We said in introduction that Linux driver devices are only pieces of executable code - and it is true, but it does not take off anything about their importance. They are a vital link between the hardware layer composed by the different pieces of metal of a system and the software layer composed by the sessions and the applications running on the operating system. The drivers not only make a link between these two layers; they act like an abstraction mask. It means that the same applications can run on a lot of different machines, using different devices and in the other way a lot of different applications can use the same devices. According to this scheme, one of the role of the driver is the following: When a driver receive several requests from processes to access to its device it will schedule them in order to make them access alternatively to its unique resource but as fast as possible. One of the automatic problem linked with multiple access to a resource is competition. As soon as two processes may want to access to the same resource, for example the same device, there will be competition. It has become a huge problematic since we are building systems with more and more processors. Mechanisms to prevent from it are to be implemented directly in the code of the drivers. It can also be a solution to deal with problems linked with hot plug. For example if drivers are unplugged while they are accessing memory. A well known mechanism to deal with the access of a protected resource is the semaphore structure. If it is use to prevent from multiple access to a unique resource it is called a MutEx (Mutual Exclusion). It is generally organized through a counter and two functions called P and V. If a process wants to enter a critical section it calls the function P. If the value of the counter is above zero, the counter is decremented and the process enter the critical section. If, at the contrary, the counter is under or equal to zero, the process waits until somebody frees the semaphore. When the process leaves the critical section it calls the function V that frees the semaphore by incrementing the counter. According to this scheme the counter of a MutEx is initialized to 1. An other lighter mechanism is the Spinlock. The resource is protected by a bit meaning available or not. If the bit is at available the process can take the resource. Otherwise it enters a loop while the resource is unavailable. The advantage is that is can be implemented for processes that can go sleeping for example handlers. But the test must be proceeded in an atomic instruction. 2
3 Kernel modules In order to allow the kernel to run with more privileges than user applications, modern CPUs can be run in different operating modes. Unix systems use two of these modes to divide the running code into two different spaces. The kernel is executed in the highest level (also called supervisor mode) where it has unlimited access to all resources. And applications run in the lowest level with restricted access to system resources. These two spaces are usually referred to as user space and kernel space. User space applications can communicate with the kernel through system calls that are with hardware interruptions the only two events able to transfer execution to kernel space. In some cases device drivers could be run in user space, but most of the time it needs to execute in kernel space. Indeed several features needed by device drivers cannot be used from user space. Interrupts are not accessible in user space. Kernel space has direct access to physical memory and I/O ports. And last but not least, this is the only way to create drivers for many devices including block devices and network interfaces. The most basic way to execute drivers in kernel mode would be to add the code inside the kernel tree and recompile it. Luckily, the Linux kernel has the very interesting feature to be able to add code to the Linux kernel while it is running. Such a piece of code is called a kernel module, a module is actually an object file that can be dynamically linked/unlinked to the running kernel with the insmod/rmmod programs. Kernel modules have a lot of advantages over writing code directly in the kernel. There is no need to recompile the whole kernel to add a new feature, it makes debug easier and allows to prevent a specific piece of code to be executed (for instance a device driver containing a bug). It also saves memory because modules are loaded only when they are actually used (there is no need to load a camera driver if the camera is not connected for example). Device drivers doesn t work in the same way than most applications. Instead of executing a flow of instruction in order to perform a specific task, they follow the paradigm of event based programming. When loaded, the driver initializes all what he will need and registers the functions that he will be able to do. All the time the driver is loaded, it serves the requests that are addressed to him. When unloaded, the driver execute a cleanup function that cleans everything that was used by the driver, unlike an user mode application a driver has to be very 3
4 rigorous about it because remaining pieces will stay until reboot. The cleanup function should also tell the kernel that the module is no longer loaded and should not be invoked. Linux device management An important thing to remember about Unix based operating system is what is known as Everything is a file. Indeed with the exception of network interfaces, all devices are accessed through file. It makes an easy way to access all kind of device through a common interface with a few specific extensions. Device files can be found in the /dev directory. 4
5 Examples of device drivers and some tips to make them Three categories of devices are defined; the character devices, the block devices and the network interfaces. The main difference between these different types is the way they are addressed. The character devices are like files accessible as a stream of bytes. The driver is responsible for at least opening and closing these files. It can also allow write and read in it. These devices can also be addressed through file system nodes. Their address usually looks like that: /dev/ttys0 for the serial port, /dev/lp0 for a printer... There is one notable difference with classic files. Some char devices (not all of them) can be accessed only sequentially meaning that one can not move back and forth. The block devices are also accessible through their nodes but they can transfer a much greater amount of bytes than a char device. The drivers of these two categories are different but they appear to the user to have the same way of working. The network interfaces cannot be addressed in file system because they deal only with network packets. But this classification is not exclusive in the sense that a driver can belong to the three categories. For example a USB module can be considered as a char device if it is a USB serial port, as a block device if it is a memory card reader or as a network interface if it is a USB Ethernet interface. We are going now to deal with the features of writing drivers for these different categories of devices. char device drivers The char devices have the simplest drivers to write. They have several attributes as illustrated below by a view of the command ps -l in a /dev directory: crw-rw-rw- 1 root root 1, 3 Mar null The first character reminds the type of the device (c for character). The two numbers after root are called the major and the minor device number. The major number refers to the specific type of device among char device. There is for example the major 4 that refers to serial interfaces. 5
6 The minor number is specific to any single device and can be used to address a device. These number can be implemented with several functions available in <linux/fs.h>. It is possible to give numbers to the device among a list of available numbers with a call to the function: int register_chrdev_region(dev_t first, unsigned int count, char *name); It is also possible to let the system give dynamically numbers to the device with a call to the function: int alloc_chrdev_region(dev_t *dev, unsigned int firstminor, unsigned int count, char *name); Then it can be relevant to free the device numbers in order to let the system allocate it again with a call, when the module is cleaned, to the function: void unregister_chrdev_region(dev_t first, unsigned int count); Of course a driver must implement a lot of other characteristics of the device. We are going to give a short presentation of the most important methods that have to be implemented by a driver : owner is a pointer to the module in which the structure is. It is often initialized with a macro named THIS_MODULE. llseek allows to move from the current read/write position in the file. read allows to read a data from the file. write allows to send a data to the device. ioctl allows to deal with commands that are specific to the device. open allows to open the device. It the first operation complete when using a device. release allows the release of the structure. There are many devices whose driver works this way such as serial ports, parallel ports, keyboards, sound cards... Block device drivers We call a block device a device whose data is available through random access of constant sized blocks. This is the way to access data stored on a hard drive for example, you specify the location you want to access and then read or write data by blocks. Such devices can be critical for the system and performance is a key factor. This is why the kernel interface for them is more complex and more powerful than char devices. When looking at /dev, block devices appears like : 6
7 brw-rw---t 1 root disk 8, 0 mars 9 03:02 sda The b at the beginning of the line stands for block device and the two numbers after disk are the major and minor numbers. The remaining information is the same that for standard files. In a similar way than for char drivers, the block driver should register a major number identifying the driver and one or several minor numbers identifying the disk and its possible partitions. Block drivers make their operations available through the bloc_device_operations structure, which is quite similar to the file_operation structure used by char drivers. It can also register open, release, or ioctl functions but there is no functions actually meant to read or write data. Instead of that there is a request function whose working makes the specificity of block drivers. During its initialisation, block driver is initializing a message queue whose purpose will be to hold the different I/O request made to the device. The kernel put in this queue all the requests to do and when it thinks it is a good time, calls the register function of the driver. The register function doesn t have to empty the queue or even to fully accomplish any of the request but it should start them and ensure that they will all finally be accomplished. This system of queues allow the block drivers to have a finest management of requests than executing them linearly. For instance in the case of the hard drive, reordering the requests may allow to access more contiguous segments and avoid unnecessary movements of the read/write head. Nevertheless in the case of real random access device (a RAM for instance), the queue might be useless, so it is possible to bypass the queue mechanism by providing a make request function. Block devices are usually accessed through filesystems that make full use of their features. Network interface drivers The last class of drivers defined by the Linux kernel is the network drivers class. It differs from char and block drivers because it is not only supposed to operate in response to kernel requests but also to be able to receive data from outside. Network drivers are independent from the protocol that will be used to transmit data. Like we mentioned before, network interfaces are the only exceptions to the everything is a file rule. Instead of being accessible through a file with a major and minor number, each new network interface is inserted in a global list of network devices. Just like char and block drivers, network drivers register the set of methods that they will be able to perform. We recognize the open method that is called when ifconfig activates the interface. The stop method is called when deactivating the interface. And amongst some others the hard_start_xmit that initiate the transmission of a packet. In order to send data on the network, the kernel calls the hard_start_xmit function with a socket buffer structure in argument. This socket buffer contains the packet as it should be 7
8 transmitted and some headers for transmission. On the other hand, packet reception is a bit trickier. It can be done both based on polling or interruptions. The driver has to get the data from the outside, store them in a socket buffer and transmit it to the upper layers of the kernel. Conclusion Linux driver devices can be reduced to very simple executable pieces of code. However they have a crucial importance as they allow to make a link between the software layer and the hardware layer. It also brings a level of abstraction: one can create hardware without taking care about how the operating system will work and on the other hand one can create software without taking care about how the hardware work. But the consequences of mistake can be much heavier. Where a bug into a software code will cause, in the worst case to the crash of the session, a bug in a driver device can lead to the degradation of the material that can even be harmful for the user. Bibliography Linux Device Drivers, Third Edition (by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman) 8
Have both hardware and software. Want to hide the details from the programmer (user).
Input/Output Devices Chapter 5 of Tanenbaum. Have both hardware and software. Want to hide the details from the programmer (user). Ideally have the same interface to all devices (device independence).
More informationREAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-12: Real Time Linux 1 1. Real Time Linux 2 Linux 2.6.x Linux is after Linus Torvalds, father of the Linux operating
More informationCS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
More informationChapter 11 I/O Management and Disk Scheduling
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
More informationAn Implementation Of Multiprocessor Linux
An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than
More informationStorage and File Systems. Chester Rebeiro IIT Madras
Storage and File Systems Chester Rebeiro IIT Madras 1 Two views of a file system system calls protection rwx attributes Application View Look & Feel File system Hardware view 2 Magnetic Disks Chester Rebeiro
More informationComputer Organization & Architecture Lecture #19
Computer Organization & Architecture Lecture #19 Input/Output The computer system s I/O architecture is its interface to the outside world. This architecture is designed to provide a systematic means of
More informationDEVICE DRIVERS AND TERRUPTS SERVICE MECHANISM Lesson-14: Device types, Physical and Virtual device functions
DEVICE DRIVERS AND TERRUPTS SERVICE MECHANISM Lesson-14: Device types, Physical and Virtual device functions 1 Device Types For each type of device, there is a set of the generic commands. For example,
More informationCOS 318: Operating Systems. I/O Device and Drivers. Input and Output. Definitions and General Method. Revisit Hardware
COS 318: Operating Systems I/O and Drivers Input and Output A computer s job is to process data Computation (, cache, and memory) Move data into and out of a system (between I/O devices and memory) Challenges
More informationLSKA 2010 Survey Report I Device Drivers & Cloud Computing
LSKA 2010 Survey Report I Device Drivers & Cloud Computing Yu Huang and Hao-Chung Yang {r98922015, r98944016}@csie.ntu.edu.tw Department of Computer Science and Information Engineering March 31, 2010 Abstract
More informationCS161: Operating Systems
CS161: Operating Systems Matt Welsh mdw@eecs.harvard.edu Lecture 2: OS Structure and System Calls February 6, 2007 1 Lecture Overview Protection Boundaries and Privilege Levels What makes the kernel different
More informationCOSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters
COSC 6374 Parallel Computation Parallel I/O (I) I/O basics Spring 2008 Concept of a clusters Processor 1 local disks Compute node message passing network administrative network Memory Processor 2 Network
More informationI/O. Input/Output. Types of devices. Interface. Computer hardware
I/O Input/Output One of the functions of the OS, controlling the I/O devices Wide range in type and speed The OS is concerned with how the interface between the hardware and the user is made The goal in
More informationPOSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)
RTOSes Part I Christopher Kenna September 24, 2010 POSIX Portable Operating System for UnIX Application portability at source-code level POSIX Family formally known as IEEE 1003 Originally 17 separate
More informationOperating Systems. Notice that, before you can run programs that you write in JavaScript, you need to jump through a few hoops first
Operating Systems Notice that, before you can run programs that you write in JavaScript, you need to jump through a few hoops first JavaScript interpreter Web browser menu / icon / dock??? login??? CPU,
More informationSYSTEM ecos Embedded Configurable Operating System
BELONGS TO THE CYGNUS SOLUTIONS founded about 1989 initiative connected with an idea of free software ( commercial support for the free software ). Recently merged with RedHat. CYGNUS was also the original
More informationFile Management. Chapter 12
Chapter 12 File Management File is the basic element of most of the applications, since the input to an application, as well as its output, is usually a file. They also typically outlive the execution
More informationReview from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture
Review from last time CS 537 Lecture 3 OS Structure What HW structures are used by the OS? What is a system call? Michael Swift Remzi Arpaci-Dussea, Michael Swift 1 Remzi Arpaci-Dussea, Michael Swift 2
More informationComputer Systems Structure Input/Output
Computer Systems Structure Input/Output Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Examples of I/O Devices
More informationAn Introduction To Simple Scheduling (Primarily targeted at Arduino Platform)
An Introduction To Simple Scheduling (Primarily targeted at Arduino Platform) I'm late I'm late For a very important date. No time to say "Hello, Goodbye". I'm late, I'm late, I'm late. (White Rabbit in
More informationUSB 2.0 Flash Drive User Manual
USB 2.0 Flash Drive User Manual 1 INDEX Table of Contents Page 1. IMPORTANT NOTICES...3 2. PRODUCT INTRODUCTION...4 3. PRODUCT FEATURES...5 4. DRIVER INSTALLATION GUIDE...6 4.1 WINDOWS 98 / 98 SE... 6
More informationCSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building mirela.damian@villanova.edu
More informationCSE 120 Principles of Operating Systems. Modules, Interfaces, Structure
CSE 120 Principles of Operating Systems Fall 2000 Lecture 3: Operating System Modules, Interfaces, and Structure Geoffrey M. Voelker Modules, Interfaces, Structure We roughly defined an OS as the layer
More informationKVM: Kernel-based Virtualization Driver
KVM: Kernel-based Virtualization Driver White Paper Overview The current interest in virtualization has led to the creation of several different hypervisors. Most of these, however, predate hardware-assisted
More informationµtasker Document FTP Client
Embedding it better... µtasker Document FTP Client utaskerftp_client.doc/1.01 Copyright 2012 M.J.Butcher Consulting Table of Contents 1. Introduction...3 2. FTP Log-In...4 3. FTP Operation Modes...4 4.
More informationE-Blocks Easy RFID Bundle
Page 1 Cover Page Page 2 Flowcode Installing Flowcode Instruction for installing Flowcode can be found inside the installation booklet located inside the Flowcode DVD case. Before starting with the course
More informationEmbedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
More informationI/O Management. General Computer Architecture. Goals for I/O. Levels of I/O. Naming. I/O Management. COMP755 Advanced Operating Systems 1
General Computer Architecture I/O Management COMP755 Advanced Operating Systems Goals for I/O Users should access all devices in a uniform manner. Devices should be named in a uniform manner. The OS, without
More informationReal-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 26 Real - Time POSIX. (Contd.) Ok Good morning, so let us get
More informationLab 2 : Basic File Server. Introduction
Lab 2 : Basic File Server Introduction In this lab, you will start your file system implementation by getting the following FUSE operations to work: CREATE/MKNOD, LOOKUP, and READDIR SETATTR, WRITE and
More informationNew Mexico Broadband Program. Basic Computer Skills. Module 1 Types of Personal Computers Computer Hardware and Software
New Mexico Broadband Program Basic Computer Skills Module 1 Types of Personal Computers Computer Hardware and Software Basic Computer Skills Learning Objectives Acquire introductory familiarity with basic
More information1. Computer System Structure and Components
1 Computer System Structure and Components Computer System Layers Various Computer Programs OS System Calls (eg, fork, execv, write, etc) KERNEL/Behavior or CPU Device Drivers Device Controllers Devices
More informationOperating Systems. 12. Devices. Paul Krzyzanowski. Rutgers University. Spring 2015. 3/9/2015 2014-2015 Paul Krzyzanowski
Operating Systems 12. Devices Paul Krzyzanowski Rutgers University Spring 2015 3/9/2015 2014-2015 Paul Krzyzanowski 1 Devices Block devices: disk drives, flash memory Addressable blocks (suitable for caching)
More informationIntroduction. What is an Operating System?
Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization
More informationJorix kernel: real-time scheduling
Jorix kernel: real-time scheduling Joris Huizer Kwie Min Wong May 16, 2007 1 Introduction As a specialized part of the kernel, we implemented two real-time scheduling algorithms: RM (rate monotonic) and
More informationOperating Systems Design 16. Networking: Sockets
Operating Systems Design 16. Networking: Sockets Paul Krzyzanowski pxk@cs.rutgers.edu 1 Sockets IP lets us send data between machines TCP & UDP are transport layer protocols Contain port number to identify
More informationFile Systems for Flash Memories. Marcela Zuluaga Sebastian Isaza Dante Rodriguez
File Systems for Flash Memories Marcela Zuluaga Sebastian Isaza Dante Rodriguez Outline Introduction to Flash Memories Introduction to File Systems File Systems for Flash Memories YAFFS (Yet Another Flash
More informationPerformance of Software Switching
Performance of Software Switching Based on papers in IEEE HPSR 2011 and IFIP/ACM Performance 2011 Nuutti Varis, Jukka Manner Department of Communications and Networking (COMNET) Agenda Motivation Performance
More informationSystem Calls and Standard I/O
System Calls and Standard I/O Professor Jennifer Rexford http://www.cs.princeton.edu/~jrex 1 Goals of Today s Class System calls o How a user process contacts the Operating System o For advanced services
More informationEmbedded Systems. 6. Real-Time Operating Systems
Embedded Systems 6. Real-Time Operating Systems Lothar Thiele 6-1 Contents of Course 1. Embedded Systems Introduction 2. Software Introduction 7. System Components 10. Models 3. Real-Time Models 4. Periodic/Aperiodic
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationOperating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
More informationSAN Conceptual and Design Basics
TECHNICAL NOTE VMware Infrastructure 3 SAN Conceptual and Design Basics VMware ESX Server can be used in conjunction with a SAN (storage area network), a specialized high speed network that connects computer
More informationExceptions in MIPS. know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine
7 Objectives After completing this lab you will: know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine Introduction Branches and jumps provide ways to change
More informationCANnes PC CAN Interface Manual
CANnes PC CAN Interface Manual Version: 1.21 October 1 st, 2004 D 20375 Hamburg, Germany Phone +49-40-51 48 06 0 FAX: +49-40-51 48 06 60 2 CANnes Card Manual V1.21 Version Version Date Author Comment 1.00
More informationLesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization
Lesson Objectives To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization AE3B33OSD Lesson 1 / Page 2 What is an Operating System? A
More informationRemote Access Server - Dial-Out User s Guide
Remote Access Server - Dial-Out User s Guide 95-2345-05 Copyrights IBM is the registered trademark of International Business Machines Corporation. Microsoft, MS-DOS and Windows are registered trademarks
More informationPARALLELS SERVER 4 BARE METAL README
PARALLELS SERVER 4 BARE METAL README This document provides the first-priority information on Parallels Server 4 Bare Metal and supplements the included documentation. TABLE OF CONTENTS 1 About Parallels
More informationPerformance Tuning Guidelines for PowerExchange for Microsoft Dynamics CRM
Performance Tuning Guidelines for PowerExchange for Microsoft Dynamics CRM 1993-2016 Informatica LLC. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying,
More informationDevice Management Functions
REAL TIME OPERATING SYSTEMS Lesson-6: Device Management Functions 1 1. Device manager functions 2 Device Driver ISRs Number of device driver ISRs in a system, Each device or device function having s a
More informationNetwork Attached Storage. Jinfeng Yang Oct/19/2015
Network Attached Storage Jinfeng Yang Oct/19/2015 Outline Part A 1. What is the Network Attached Storage (NAS)? 2. What are the applications of NAS? 3. The benefits of NAS. 4. NAS s performance (Reliability
More informationNetwork Scanning: A New Feature for Digital Copiers
Network Scanning: A New Feature for Digital Copiers Abstract Introduction The method of implementing electronic document capture and distribution, known as network scanning, into the traditional copier/printer
More informationLinux Kernel Architecture
Linux Kernel Architecture Amir Hossein Payberah payberah@yahoo.com Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management
More informationMemory Management under Linux: Issues in Linux VM development
Memory Management under Linux: Issues in Linux VM development Christoph Lameter, Ph.D. Technical Lead, Linux Kernel Software Silicon Graphics Inc. clameter@sgi.com 2008-03-12 2008 SGI Sunnyvale, California
More informationProtocols and Architecture. Protocol Architecture.
Protocols and Architecture Protocol Architecture. Layered structure of hardware and software to support exchange of data between systems/distributed applications Set of rules for transmission of data between
More informationImplementing and testing tftp
CSE123 Spring 2013 Term Project Implementing and testing tftp Project Description Checkpoint: May 10, 2013 Due: May 29, 2013 For this project you will program a client/server network application in C on
More informationChapter 12 File Management
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 12 File Management Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Roadmap Overview File organisation and Access
More informationChapter 12 File Management. Roadmap
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 12 File Management Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Overview Roadmap File organisation and Access
More informationCGL Architecture Specification
CGL Architecture Specification Mika Karlstedt Helsinki 19th February 2003 Seminar paper for Seminar on High Availability and Timeliness in Linux University of Helsinki Department of Computer science i
More informationObjectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
More informationHow To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)
TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions
More informationOperating System Overview. Otto J. Anshus
Operating System Overview Otto J. Anshus A Typical Computer CPU... CPU Memory Chipset I/O bus ROM Keyboard Network A Typical Computer System CPU. CPU Memory Application(s) Operating System ROM OS Apps
More informationChapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
More informationEXPLORING LINUX KERNEL: THE EASY WAY!
EXPLORING LINUX KERNEL: THE EASY WAY! By: Ahmed Bilal Numan 1 PROBLEM Explore linux kernel TCP/IP stack Solution Try to understand relative kernel code Available text Run kernel in virtualized environment
More informationcnds@napier Slide 1 Introduction cnds@napier 1 Lecture 6 (Network Layer)
Slide 1 Introduction In today s and next week s lecture we will cover two of the most important areas in networking and the Internet: IP and TCP. These cover the network and transport layer of the OSI
More informationWinDriver 5.22 User s Guide. Jungo Ltd
WinDriver 5.22 User s Guide Jungo Ltd 27th November 2002 COPYRIGHT Copyright c 1997-2002 Jungo Ltd. All Rights Reserved Information in this document is subject to change without notice. The software described
More informationADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory
ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory 1 1. Memory Organisation 2 Random access model A memory-, a data byte, or a word, or a double
More information- An Essential Building Block for Stable and Reliable Compute Clusters
Ferdinand Geier ParTec Cluster Competence Center GmbH, V. 1.4, March 2005 Cluster Middleware - An Essential Building Block for Stable and Reliable Compute Clusters Contents: Compute Clusters a Real Alternative
More informationIntroduction To Computer Networking
Introduction To Computer Networking Alex S. 1 Introduction 1.1 Serial Lines Serial lines are generally the most basic and most common communication medium you can have between computers and/or equipment.
More informationA Comparative Study on Vega-HTTP & Popular Open-source Web-servers
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers Happiest People. Happiest Customers Contents Abstract... 3 Introduction... 3 Performance Comparison... 4 Architecture... 5 Diagram...
More informationA Research Study on Packet Sniffing Tool TCPDUMP
A Research Study on Packet Sniffing Tool TCPDUMP ANSHUL GUPTA SURESH GYAN VIHAR UNIVERSITY, INDIA ABSTRACT Packet sniffer is a technique of monitoring every packet that crosses the network. By using this
More informationStudy and installation of a VOIP service on ipaq in Linux environment
Study and installation of a VOIP service on ipaq in Linux environment Volkan Altuntas Chaba Ballo Olivier Dole Jean-Romain Gotteland ENSEIRB 2002 Summary 1. Introduction 2. Presentation a. ipaq s characteristics
More informationPRODUCTIVITY ESTIMATION OF UNIX OPERATING SYSTEM
Computer Modelling & New Technologies, 2002, Volume 6, No.1, 62-68 Transport and Telecommunication Institute, Lomonosov Str.1, Riga, LV-1019, Latvia STATISTICS AND RELIABILITY PRODUCTIVITY ESTIMATION OF
More informationIntroduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu
Introduction to Operating Systems Indiana University Chen Yu Perspective of the Computer System Software A general piece of software with common functionalities that support many applications. Example:
More informationOpen Flow Controller and Switch Datasheet
Open Flow Controller and Switch Datasheet California State University Chico Alan Braithwaite Spring 2013 Block Diagram Figure 1. High Level Block Diagram The project will consist of a network development
More informationPorting Lustre to Operating Systems other than Linux. Ken Hornstein US Naval Research Laboratory April 16, 2010
Porting Lustre to Operating Systems other than Linux Ken Hornstein US Naval Research Laboratory April 16, 2010 Motivation We do a lot of data visualization on Lustre data, and would like to do that on
More informationTEST CHAPTERS 1 & 2 OPERATING SYSTEMS
TEST CHAPTERS 1 & 2 OPERATING SYSTEMS True/False Indicate whether the statement is true or false. 1. Changes that you make in virtual machines do not affect your physical computer. 2. The size of a bus
More informationVirtualization Technologies
12 January 2010 Virtualization Technologies Alex Landau (lalex@il.ibm.com) IBM Haifa Research Lab What is virtualization? Virtualization is way to run multiple operating systems and user applications on
More informationComputer Systems and Networks. ECPE 170 Jeff Shafer University of the Pacific. Linux Basics
ECPE 170 Jeff Shafer University of the Pacific Linux Basics 2 Pre- Lab Everyone installed Linux on their computer Everyone launched the command line ( terminal ) and ran a few commands What problems were
More informationOperating Systems CSE 410, Spring 2004. File Management. Stephen Wagner Michigan State University
Operating Systems CSE 410, Spring 2004 File Management Stephen Wagner Michigan State University File Management File management system has traditionally been considered part of the operating system. Applications
More informationChapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines Operating System Concepts 3.1 Common System Components
More informationINPUT/OUTPUT ORGANIZATION
INPUT/OUTPUT ORGANIZATION Accessing I/O Devices I/O interface Input/output mechanism Memory-mapped I/O Programmed I/O Interrupts Direct Memory Access Buses Synchronous Bus Asynchronous Bus I/O in CO and
More informationChapter 3: Operating-System Structures. Common System Components
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
More informationPresentation of Diagnosing performance overheads in the Xen virtual machine environment
Presentation of Diagnosing performance overheads in the Xen virtual machine environment September 26, 2005 Framework Using to fix the Network Anomaly Xen Network Performance Test Using Outline 1 Introduction
More informationWaspmote. Quickstart Guide
Waspmote Quickstart Guide Index Document version: v4.3-11/2014 Libelium Comunicaciones Distribuidas S.L. INDEX 1. Introduction... 3 2. General and safety information... 4 3. Waspmote s Hardware Setup...
More informationLecture 1: Data Storage & Index
Lecture 1: Data Storage & Index R&G Chapter 8-11 Concurrency control Query Execution and Optimization Relational Operators File & Access Methods Buffer Management Disk Space Management Recovery Manager
More informationSecureDoc Disk Encryption Cryptographic Engine
SecureDoc Disk Encryption Cryptographic Engine FIPS 140-2 Non-Proprietary Security Policy Abstract: This document specifies Security Policy enforced by SecureDoc Cryptographic Engine compliant with the
More information1 File Management. 1.1 Naming. COMP 242 Class Notes Section 6: File Management
COMP 242 Class Notes Section 6: File Management 1 File Management We shall now examine how an operating system provides file management. We shall define a file to be a collection of permanent data with
More informationChapter 11 I/O Management and Disk Scheduling
Operatin g Systems: Internals and Design Principle s Chapter 11 I/O Management and Disk Scheduling Seventh Edition By William Stallings Operating Systems: Internals and Design Principles An artifact can
More informationShared Address Space Computing: Programming
Shared Address Space Computing: Programming Alistair Rendell See Chapter 6 or Lin and Synder, Chapter 7 of Grama, Gupta, Karypis and Kumar, and Chapter 8 of Wilkinson and Allen Fork/Join Programming Model
More informationPrograming the Microprocessor in C Microprocessor System Design and Interfacing ECE 362
PURDUE UNIVERSITY Programing the Microprocessor in C Microprocessor System Design and Interfacing ECE 362 Course Staff 1/31/2012 1 Introduction This tutorial is made to help the student use C language
More informationTechnology in Action. Alan Evans Kendall Martin Mary Anne Poatsy. Eleventh Edition. Copyright 2015 Pearson Education, Inc.
Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Eleventh Edition Technology in Action Chapter 4 System Software: The Operating System, Utility Programs, and File Management. Chapter Topics
More informationScaling Networking Applications to Multiple Cores
Scaling Networking Applications to Multiple Cores Greg Seibert Sr. Technical Marketing Engineer Cavium Networks Challenges with multi-core application performance Amdahl s Law Evaluates application performance
More informationWindows Server Performance Monitoring
Spot server problems before they are noticed The system s really slow today! How often have you heard that? Finding the solution isn t so easy. The obvious questions to ask are why is it running slowly
More informationLecture 25 Symbian OS
CS 423 Operating Systems Design Lecture 25 Symbian OS Klara Nahrstedt Fall 2011 Based on slides from Andrew S. Tanenbaum textbook and other web-material (see acknowledgements) cs423 Fall 2011 1 Overview
More informationCPS221 Lecture: Operating System Structure; Virtual Machines
Objectives CPS221 Lecture: Operating System Structure; Virtual Machines 1. To discuss various ways of structuring the operating system proper 2. To discuss virtual machines Materials: 1. Projectable of
More informationCS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
More informationThe Linux Kernel Device Model
The Linux Kernel Device Model Patrick Mochel Open Source Development Lab mochel@osdl.org Abstract Linux kernel development follows a simple guideline that code should be only as complex as absolutely necessary.
More informationNetwork Licensing. White Paper 0-15Apr014ks(WP02_Network) Network Licensing with the CRYPTO-BOX. White Paper
WP2 Subject: with the CRYPTO-BOX Version: Smarx OS PPK 5.90 and higher 0-15Apr014ks(WP02_Network).odt Last Update: 28 April 2014 Target Operating Systems: Windows 8/7/Vista (32 & 64 bit), XP, Linux, OS
More informationOPERATING SYSTEMS STRUCTURES
S Jerry Breecher 2: OS Structures 1 Structures What Is In This Chapter? System Components System Calls How Components Fit Together Virtual Machine 2: OS Structures 2 SYSTEM COMPONENTS These are the pieces
More information