SlideShare a Scribd company logo
1 of 53
Download to read offline
Linux For Embedded Systems
ForArabs
Ahmed ElArabawy
Course 102:
UnderstandingLinux
Lecture 9:
Input/Output Internals
Input/Output Internals
• Each Process in the system comes with
• Output device : defined by its stdout stream
• Input device : defined by its stdin stream
• Error Device : defined by its stderr stream
• We need to understand how does this reflect into messages
on the screen, or reading input from the keyboard
• We will then needs to understand how does this work with I/O
redirection, and the use of Pipes
• This lecture address all of these issues
• To understand all of that we need to understand the concept
of TTY Subsystem in Linux Kernel and how it operates
HISTORICAL BACKGROUND
1869
Stock Ticker
Telex
The Birth of Computers
TTY Device
UART
Driver
Line
Discipline
TTY
Driver
User App
User App
User App
TTY Device (/dev/ttyS*)
stdout = /dev/ttyS1
stderr = /dev/ttyS1
stdin = /dev/ttyS1
Cotrolling TTY: /dev/ttyS1
TTY Device
UART
Driver
Line
Discipline
TTY
Driver
User App
User App
User App
TTY Device (/dev/ttyS*)
stdout = /dev/ttyS2
stderr = /dev/ttyS2
stdin = /dev/ttyS2
TTY Device
Line
Discipline
TTY
Driver
User App
User App
User App
USB
Driver
TTY Device (/dev/ttyUSB*)
stdout = /dev/ttyUSB1
stderr = /dev/ttyUSB1
stdin = /dev/ttyUSB1
Multiple Terminals
User App
User App
User App
/dev/ttyS1
/dev/ttyS2
User App
User App
User App
Then Comes the Personal Computers
Line
Discipline
TTY
Driver
User App
User App
User App
TTY Device
VGA
Driver
Keyboard
Driver
TTY Devices
• TTY stands for TeleTYpewriter
• TTY machines were used originally in stock tickers, and Telex Machines
• When Computers were introduced, a computer was a big central unit,
TTY machines were used as an I/O terminal, and connect to the
computer via UART (Serial Interface)
• In case the terminal is remote, a modem pair were used
• Unix supported all of this via the introduction of TTY subsystem in its
kernel
• TTY device is composed of 3 blocks
• A driver to the hardware interface(UART driver, USB driver, VGA/KB drivers, ..)
• Line Discipline to handle low level editing commands (backspace, erase word,
clear line, …. )
• TTY driver to interface with the user space applications
• The User space application communicates with the TTY driver via system
calls and signals
• The default I/O Streams of the user application is the assigned TTY
device (/dev/tty*)
• This TTY Terminal is also the controlling terminal for its user
applications
VIRTUAL TERMINALS
Introducing Virtual Terminals
• When we were connecting terminals via the serial interface,
we were able to have multiple terminals to the computer
• However, when we connect the monitor and keyboard directly
to the PC, and use the same architecture, we can not have
multiple terminals (only one monitor/keyboard pair)
• We need a new architecture that will enable us to run multiple
terminals from the same Physical Terminal(Keyboard/Monitor)
• This led to the introduction of the concept of Virtual Terminals
in Linux
Virtual Terminal
Line
Discipline
User App
User App
User App
Keyboard
Driver
VGA
Driver TTY
Driver
TTY Device (/dev/tty*)
Multiple Virtual Terminals
Keyboard
Driver
VGA
Driver
/dev/tty1
/dev/tty2
/dev/tty3
/dev/ttyN
…….
User
App
User
App
User
App
User
App
Multiple Virtual Terminals
Keyboard
Driver
VGA
Driver
/dev/tty1
/dev/tty2
/dev/tty3
/dev/ttyN
…….
User
App
User
App
User
App
User
AppALT-F2
Multiple Virtual Terminals
Keyboard
Driver
VGA
Driver
/dev/tty1
/dev/tty2
/dev/tty3
/dev/ttyN
…….
User
App
User
App
User
App
User
App
ALT-F3
Virtual Terminals
• A new architecture is used to be able to have multiple
terminals on the same machines (with the same physical
terminal)
• The Monitor/Keyboard drivers are no longer part of a TTY
device, they are now separate devices
• Linux kernel provides up to 63 virtual terminals (VT)
(/dev/tty1 up to /dev/tty63)
• Most distributions initialize only 7 VTs (/dev/tty1 - /dev/tty7)
• On each of these VTs, the user app getty is started. This
program is responsible for user login
• All VTs are active, but only one have access to the Physical
terminal (Monitor/Keyboard)
• To switch between different VTs, use ALT-Fn to go to the VT#n
NOW LET US ADD SOME GUI
Linux GUI
• So far we have talked about Text I/O
• We need to have,
• Windowing (Multiple windows, maximize, minimize, ...)
• Fonts, colors, icons
• Handling of mouse actions
• Displaying of Graphics
• For performing all of these tasks, Linux uses X-Window System
• The X-Window System (also Called X system, or X11 System) is a
Windowing system for bitmap displays
• It is composed of:
• Server (X-Server):
• A user application that is responsible for handling the Graphical User
Interface and connecting to the drivers
• Most Linux distributions use the Xorg application for this
• Client (X-Client)
• The client part lives in every user application that needs to use the GUI
• The user app connects to the Xserver using the X Protocol
X-Server and VTs
• As mentioned before, Linux distributions, initialize some VTs to run
getty for user login (most Distributions use /dev/tty1 to /dev/tty6
for that)
• The X-Server is started on at least one VT (normally /dev/tty7). This
is X-Session # 0
• Some Distributions start the X-server on multiple VTs (so we get
multiple X-Sessions)
• A User can add more X-Sessions or stop X-Sessions if needed.
Remember, the X-Server, is just a User application that is started on
one of the VTs
• Since Alt-Fn has some meaning for the GUI, to move from the GUI to
another VT, use Ctrl-Alt-Fn instead
• So assuming we have X-server running on /dev/tty7
• To move to VT#1  Ctrl-Alt-F1
• To move back to the GUI  Alt-F7
Using X-Server
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Using X-Server
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
FireFox
GIMP
/dev/tty7
Using X-Server
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty1
User
App
FireFox
GIMP
/dev/tty7
Using X-Server
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty1
User
App
FireFox
GIMP
/dev/tty7
USING EMULATED TERMINALS
Emulated Terminals
• The next step is to use an emulated terminal from the GUI
• This means, to have an X-App that acts as a terminal
• There exists some terminal emulators that run as X-clients
such as,
• xterm
• Konsole (in KDE)
• gnome-terminal (in GNOME)
• To support this concept, the Linux Kernel introduces the
concept of Pseudo Terminals (PTY)
Using Emulated Terminals
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty1
User
App
FireFox
GIMP
/dev/tty7
Using Emulated Terminals
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty1
User
App
FireFox
GIMP
/dev/tty7
Xterm
PTY
User
App
Using Emulated Terminals
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty1
User
App
FireFox
GIMP
/dev/tty7
Xterm
User
App
PTYMaster
PTYSlave
/dev/pts/*
USE CASES
Running a Shell Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
PTYMaster
PTY Slave
/dev/pts/1
command
Controlling TTY/PTY
Default stdin/stdout/stderr
Redirecting stdout to a File
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
PTYMaster
PTY Slave
/dev/pts/1
command
File
Running a Piped Shell Commands
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
PTYMaster
PTY Slave
/dev/pts/*
Command-1
Command-2
IdentifyTheControllingTTY/PTYDevice
(tty Command)
$ tty
• If you run this command from any terminal
(Physical/Virtual/Emulated), you will get the TTY/PTY device
associated with it
MANAGING EMULATED SESSIONS
THE SCREEN COMMAND
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
/dev/pts/1
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
command
/dev/pts/1
$ command
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
command
/dev/pts/1
Close
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
/dev/pts/1
screen
term
/dev/pts/2
Shell
$ screen
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
command
/dev/pts/1
screen
term
/dev/pts/2
Shell
term
/dev/pts/3
Shell
Ctrl-A c
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
command
/dev/pts/1
screen
term
/dev/pts/2
Shell
term
/dev/pts/3
Shell
Ctrl-A d
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
command
/dev/pts/1
screen
term
/dev/pts/2
Shell
term
/dev/pts/3
Shell
Close
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
commandscreen
term
/dev/pts/2
Shell
term
/dev/pts/3
Shell
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
command
/dev/pts/1
screen
term
/dev/pts/2
Shell
term
/dev/pts/3
Shell
Working with the Screen Command
Keyboard
Driver
X-Server
Mouse
Driver
Video
Driver(s)
/dev/tty7
Xterm
Shell
command
/dev/pts/1
screen
term
/dev/pts/2
Shell
term
/dev/pts/3
Shell
$ screen -r
Managing Emulated Terminals
(screen Command)
$ screen
$ screen -r
• The screen Command is an Emulated Terminal Manager
• It enables the user to create multiple emulated terminal
sessions (Ctrl-A c to create a new session)
• It then enables the user to move between the different
sessions (Ctrl-A n to move to next sesseion)
• The user can detach the screen command from its controlling
TTY (Ctrl-A d).
• This is a very useful tool, now the controlling terminal can
close without affecting the sessions running under screen
• To regain control of the screen sessions, perform
$ screen -r
http://Linux4EmbeddedSystems.com

More Related Content

What's hot

Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux Ahmed El-Arabawy
 
Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions Ahmed El-Arabawy
 
Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals Ahmed El-Arabawy
 
Course 102: Lecture 7: Simple Utilities
Course 102: Lecture 7: Simple Utilities Course 102: Lecture 7: Simple Utilities
Course 102: Lecture 7: Simple Utilities Ahmed El-Arabawy
 
Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers Ahmed El-Arabawy
 
Course 102: Lecture 17: Process Monitoring
Course 102: Lecture 17: Process Monitoring Course 102: Lecture 17: Process Monitoring
Course 102: Lecture 17: Process Monitoring Ahmed El-Arabawy
 
Course 102: Lecture 27: FileSystems in Linux (Part 2)
Course 102: Lecture 27: FileSystems in Linux (Part 2)Course 102: Lecture 27: FileSystems in Linux (Part 2)
Course 102: Lecture 27: FileSystems in Linux (Part 2)Ahmed El-Arabawy
 
Course 102: Lecture 14: Users and Permissions
Course 102: Lecture 14: Users and PermissionsCourse 102: Lecture 14: Users and Permissions
Course 102: Lecture 14: Users and PermissionsAhmed El-Arabawy
 
Course 102: Lecture 19: Using Signals
Course 102: Lecture 19: Using Signals Course 102: Lecture 19: Using Signals
Course 102: Lecture 19: Using Signals Ahmed El-Arabawy
 
Course 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild CardsCourse 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild CardsAhmed El-Arabawy
 
Course 102: Lecture 26: FileSystems in Linux (Part 1)
Course 102: Lecture 26: FileSystems in Linux (Part 1) Course 102: Lecture 26: FileSystems in Linux (Part 1)
Course 102: Lecture 26: FileSystems in Linux (Part 1) Ahmed El-Arabawy
 
Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Ahmed El-Arabawy
 
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)Ahmed El-Arabawy
 
linux file sysytem& input and output
linux file sysytem& input and outputlinux file sysytem& input and output
linux file sysytem& input and outputMythiliA5
 
The basic concept of Linux FIleSystem
The basic concept of Linux FIleSystemThe basic concept of Linux FIleSystem
The basic concept of Linux FIleSystemHungWei Chiu
 
Linux Kernel - Virtual File System
Linux Kernel - Virtual File SystemLinux Kernel - Virtual File System
Linux Kernel - Virtual File SystemAdrian Huang
 
Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Ahmed El-Arabawy
 
Course 102: Lecture 12: Basic Text Handling
Course 102: Lecture 12: Basic Text Handling Course 102: Lecture 12: Basic Text Handling
Course 102: Lecture 12: Basic Text Handling Ahmed El-Arabawy
 
Linux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job SchedulingLinux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job SchedulingKenny (netman)
 

What's hot (20)

Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux
 
Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions
 
Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals
 
Course 102: Lecture 7: Simple Utilities
Course 102: Lecture 7: Simple Utilities Course 102: Lecture 7: Simple Utilities
Course 102: Lecture 7: Simple Utilities
 
Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers Course 102: Lecture 25: Devices and Device Drivers
Course 102: Lecture 25: Devices and Device Drivers
 
Course 102: Lecture 17: Process Monitoring
Course 102: Lecture 17: Process Monitoring Course 102: Lecture 17: Process Monitoring
Course 102: Lecture 17: Process Monitoring
 
Course 102: Lecture 27: FileSystems in Linux (Part 2)
Course 102: Lecture 27: FileSystems in Linux (Part 2)Course 102: Lecture 27: FileSystems in Linux (Part 2)
Course 102: Lecture 27: FileSystems in Linux (Part 2)
 
Course 102: Lecture 14: Users and Permissions
Course 102: Lecture 14: Users and PermissionsCourse 102: Lecture 14: Users and Permissions
Course 102: Lecture 14: Users and Permissions
 
Course 102: Lecture 19: Using Signals
Course 102: Lecture 19: Using Signals Course 102: Lecture 19: Using Signals
Course 102: Lecture 19: Using Signals
 
Course 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild CardsCourse 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild Cards
 
Course 102: Lecture 26: FileSystems in Linux (Part 1)
Course 102: Lecture 26: FileSystems in Linux (Part 1) Course 102: Lecture 26: FileSystems in Linux (Part 1)
Course 102: Lecture 26: FileSystems in Linux (Part 1)
 
Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Course 102: Lecture 20: Networking In Linux (Basic Concepts)
Course 102: Lecture 20: Networking In Linux (Basic Concepts)
 
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
 
linux file sysytem& input and output
linux file sysytem& input and outputlinux file sysytem& input and output
linux file sysytem& input and output
 
The basic concept of Linux FIleSystem
The basic concept of Linux FIleSystemThe basic concept of Linux FIleSystem
The basic concept of Linux FIleSystem
 
Linux file system
Linux file systemLinux file system
Linux file system
 
Linux Kernel - Virtual File System
Linux Kernel - Virtual File SystemLinux Kernel - Virtual File System
Linux Kernel - Virtual File System
 
Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU
 
Course 102: Lecture 12: Basic Text Handling
Course 102: Lecture 12: Basic Text Handling Course 102: Lecture 12: Basic Text Handling
Course 102: Lecture 12: Basic Text Handling
 
Linux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job SchedulingLinux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job Scheduling
 

Viewers also liked

Course 101: Lecture 6: Installing Ubuntu
Course 101: Lecture 6: Installing Ubuntu Course 101: Lecture 6: Installing Ubuntu
Course 101: Lecture 6: Installing Ubuntu Ahmed El-Arabawy
 
Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems Ahmed El-Arabawy
 
Course 101: Lecture 4: A Tour in RTOS Land
Course 101: Lecture 4: A Tour in RTOS Land Course 101: Lecture 4: A Tour in RTOS Land
Course 101: Lecture 4: A Tour in RTOS Land Ahmed El-Arabawy
 
Course 101: Lecture 1: Introduction to Embedded Systems
Course 101: Lecture 1: Introduction to Embedded SystemsCourse 101: Lecture 1: Introduction to Embedded Systems
Course 101: Lecture 1: Introduction to Embedded SystemsAhmed El-Arabawy
 
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi AP
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi APEmbedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi AP
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi APAhmed El-Arabawy
 
Embedded Systems: Lecture 4: Selecting the Proper RTOS
Embedded Systems: Lecture 4: Selecting the Proper RTOSEmbedded Systems: Lecture 4: Selecting the Proper RTOS
Embedded Systems: Lecture 4: Selecting the Proper RTOSAhmed El-Arabawy
 
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry PiEmbedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry PiAhmed El-Arabawy
 
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)Ahmed El-Arabawy
 
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Ahmed El-Arabawy
 
Course 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment VariablesCourse 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment VariablesAhmed El-Arabawy
 
Embedded Systems: Lecture 1: Course Overview
Embedded Systems: Lecture 1: Course OverviewEmbedded Systems: Lecture 1: Course Overview
Embedded Systems: Lecture 1: Course OverviewAhmed El-Arabawy
 
Embedded Systems: Lecture 7: Unwrapping the Raspberry Pi
Embedded Systems: Lecture 7: Unwrapping the Raspberry PiEmbedded Systems: Lecture 7: Unwrapping the Raspberry Pi
Embedded Systems: Lecture 7: Unwrapping the Raspberry PiAhmed El-Arabawy
 
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)Ahmed El-Arabawy
 

Viewers also liked (14)

Course 101: Lecture 6: Installing Ubuntu
Course 101: Lecture 6: Installing Ubuntu Course 101: Lecture 6: Installing Ubuntu
Course 101: Lecture 6: Installing Ubuntu
 
Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems
 
Course 101: Lecture 4: A Tour in RTOS Land
Course 101: Lecture 4: A Tour in RTOS Land Course 101: Lecture 4: A Tour in RTOS Land
Course 101: Lecture 4: A Tour in RTOS Land
 
Course 101: Lecture 1: Introduction to Embedded Systems
Course 101: Lecture 1: Introduction to Embedded SystemsCourse 101: Lecture 1: Introduction to Embedded Systems
Course 101: Lecture 1: Introduction to Embedded Systems
 
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi AP
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi APEmbedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi AP
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi AP
 
Embedded Systems: Lecture 4: Selecting the Proper RTOS
Embedded Systems: Lecture 4: Selecting the Proper RTOSEmbedded Systems: Lecture 4: Selecting the Proper RTOS
Embedded Systems: Lecture 4: Selecting the Proper RTOS
 
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry PiEmbedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
 
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
Embedded Systems: Lecture 12: Introduction to Git & GitHub (Part 3)
 
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
 
Course 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment VariablesCourse 102: Lecture 11: Environment Variables
Course 102: Lecture 11: Environment Variables
 
Embedded Systems: Lecture 1: Course Overview
Embedded Systems: Lecture 1: Course OverviewEmbedded Systems: Lecture 1: Course Overview
Embedded Systems: Lecture 1: Course Overview
 
Embedded Systems: Lecture 7: Unwrapping the Raspberry Pi
Embedded Systems: Lecture 7: Unwrapping the Raspberry PiEmbedded Systems: Lecture 7: Unwrapping the Raspberry Pi
Embedded Systems: Lecture 7: Unwrapping the Raspberry Pi
 
C 102 lec_29_what_s_next
C 102 lec_29_what_s_nextC 102 lec_29_what_s_next
C 102 lec_29_what_s_next
 
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
 

Similar to Course 102: Lecture 9: Input Output Internals

1.1.1.Introduction.pdf
1.1.1.Introduction.pdf1.1.1.Introduction.pdf
1.1.1.Introduction.pdfbemnitekalegn
 
Introduction to Networking | Linux-Unix and System Administration | Docker an...
Introduction to Networking | Linux-Unix and System Administration | Docker an...Introduction to Networking | Linux-Unix and System Administration | Docker an...
Introduction to Networking | Linux-Unix and System Administration | Docker an...andega
 
Linux for beginners
Linux for beginnersLinux for beginners
Linux for beginnersNitesh Nayal
 
Unit 1 computer concepts
Unit 1   computer conceptsUnit 1   computer concepts
Unit 1 computer conceptsMithun DSouza
 
Remote login.89 to 90
Remote login.89 to 90Remote login.89 to 90
Remote login.89 to 90myrajendra
 
Lecture 4.pptx
Lecture 4.pptxLecture 4.pptx
Lecture 4.pptxsara591850
 
Jaringan, Linux, Docker
Jaringan, Linux, DockerJaringan, Linux, Docker
Jaringan, Linux, DockerSatrioBudi10
 
Pre requisite of COA- for Micro controller Embedded systems
Pre requisite of COA- for Micro controller Embedded systemsPre requisite of COA- for Micro controller Embedded systems
Pre requisite of COA- for Micro controller Embedded systemsSMITA V MORE
 
Open Source Virtualization Hacks
Open Source Virtualization HacksOpen Source Virtualization Hacks
Open Source Virtualization HacksNiel Bornstein
 
Introduction To Unix.pptx
Introduction To Unix.pptxIntroduction To Unix.pptx
Introduction To Unix.pptxssuser140ea3
 
Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Peter Tröger
 
PT101-WEEK-8-9-Importance-functions-of-Input-output-in-OS-1.pptx
PT101-WEEK-8-9-Importance-functions-of-Input-output-in-OS-1.pptxPT101-WEEK-8-9-Importance-functions-of-Input-output-in-OS-1.pptx
PT101-WEEK-8-9-Importance-functions-of-Input-output-in-OS-1.pptxAngelikaSolomon
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016Chris Simmonds
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityLinaro
 
Introduction to TensorFlow Lite
Introduction to TensorFlow Lite Introduction to TensorFlow Lite
Introduction to TensorFlow Lite Koan-Sin Tan
 
Operating System Slides 1.pptx
Operating System Slides 1.pptxOperating System Slides 1.pptx
Operating System Slides 1.pptxDureshehwarArshad
 

Similar to Course 102: Lecture 9: Input Output Internals (20)

1.1.1.Introduction.pdf
1.1.1.Introduction.pdf1.1.1.Introduction.pdf
1.1.1.Introduction.pdf
 
Introduction to Networking | Linux-Unix and System Administration | Docker an...
Introduction to Networking | Linux-Unix and System Administration | Docker an...Introduction to Networking | Linux-Unix and System Administration | Docker an...
Introduction to Networking | Linux-Unix and System Administration | Docker an...
 
Linux for beginners
Linux for beginnersLinux for beginners
Linux for beginners
 
Tech n computing
Tech n computingTech n computing
Tech n computing
 
Unit 1 computer concepts
Unit 1   computer conceptsUnit 1   computer concepts
Unit 1 computer concepts
 
Remote login.89 to 90
Remote login.89 to 90Remote login.89 to 90
Remote login.89 to 90
 
Lecture 4.pptx
Lecture 4.pptxLecture 4.pptx
Lecture 4.pptx
 
Jaringan, Linux, Docker
Jaringan, Linux, DockerJaringan, Linux, Docker
Jaringan, Linux, Docker
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 
Pre requisite of COA- for Micro controller Embedded systems
Pre requisite of COA- for Micro controller Embedded systemsPre requisite of COA- for Micro controller Embedded systems
Pre requisite of COA- for Micro controller Embedded systems
 
Open Source Virtualization Hacks
Open Source Virtualization HacksOpen Source Virtualization Hacks
Open Source Virtualization Hacks
 
Introduction To Unix.pptx
Introduction To Unix.pptxIntroduction To Unix.pptx
Introduction To Unix.pptx
 
Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)
 
PT101-WEEK-8-9-Importance-functions-of-Input-output-in-OS-1.pptx
PT101-WEEK-8-9-Importance-functions-of-Input-output-in-OS-1.pptxPT101-WEEK-8-9-Importance-functions-of-Input-output-in-OS-1.pptx
PT101-WEEK-8-9-Importance-functions-of-Input-output-in-OS-1.pptx
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source security
 
Introduction to TensorFlow Lite
Introduction to TensorFlow Lite Introduction to TensorFlow Lite
Introduction to TensorFlow Lite
 
Operating System Slides 1.pptx
Operating System Slides 1.pptxOperating System Slides 1.pptx
Operating System Slides 1.pptx
 
os.ppt
os.pptos.ppt
os.ppt
 
Module # 1.pptx
Module # 1.pptxModule # 1.pptx
Module # 1.pptx
 

Recently uploaded

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Course 102: Lecture 9: Input Output Internals