SlideShare a Scribd company logo
1 of 23
GROUP 20
Operating Systems
NAMES STUDENT_NUMBER REG_NUMBER
NSEREKO KAYONGO JULIUS 2100714339 21/U/14339/PS
MUTUMBA ROBERT 2100711810 21/U/11810/EVE
AMANDA ANN KIRABO 2100704763 21/U/04763/PS
ALIDDEKI MULINDWA BRYAN 2100700663 21/U/0663
NANYONGA RAHMAH 2100711530 21/U/11530/PS
DEVICE DRIVERS
 A device driver is a specialized software that
operates a particular computer-connected device
offering a software interface to the hardware allows
operating systems and other computer applications
to access hardware functionalities.
 The hardware is linked to a computer
bus/communication subsystem via which device
drivers interact with the device. They are
hardware-dependent and operating-system-
specific (OS). They offer the interrupt processing
essential for any time-dependent asynchronous
hardware interface.
 A device driver’s primary objective is to allow computers
and network hardware components to interface and
interact with specific devices. They handle requests made
by the kernel concerning a particular type of device.
 Device drivers define messages and mechanisms through
which the computer’s operating system and applications
can access the device or make requests for the device.
They also handle device responses and messages for
delivery to the computer.
Device Drivers cont’d
Device Drivers cont’d
How do device drivers handle requests
 Device drivers receive requests for device
access and actions from the Operating
System and it’s active applications to their
respective hardware devices.
 Suppose a request comes to read block N. If
a driver is idle when the request arrives, it
starts carrying out the request immediately. If
the driver is already busy with some other
request, it places a new request in the queue
of the pending request.
Illustration
 Block N is called the block device and this devices
communicate with the driver by sending the entire blocks
of data. For example, hard disks.
TYPES OF DEVICE DRIVERS
1. Kernel device drivers
Kernel device drivers consist of some generic hardware loaded
with the operating system (OS) as part of the OS. They include
motherboards, processors, and BIOS. They are invoked and
loaded into the random-access memory (RAM) when required.
2. User-mode device drivers
User mode device drivers refer to device drivers that users may
trigger during a session. When using a system, users may have
their own external devices that they bring to use, such as
external plug-and-play devices. These devices also require
drivers to function. Users can write these drivers to the disk to
reduce strain on computer resources.
3. Character drivers
Character device drivers provide unstructured access to the
hardware. They transfer data to and from devices without using a
specific device address. They allow the reading or writing of one
byte at a time as a stream of sequential data.
4. Block drivers
Block device drivers provide structured access to the hardware.
They use file system block-sized buffers from a buffer cache
supplied by the kernel to perform I/O. A buffer cache is a memory
pool established by the kernel to store frequently accessed blocks
via block devices. The buffer cache reduces the amount of I/O
queries that need an I/O operation from the device.
5. Original equipment manufacturer (OEM) drivers
Device drivers can be categorized as generic or OEM-related.
Generic drivers refer to device drivers with their operating
software bundled into the OEM hardware. One can use
generic drivers with different brands of a particular device type.
For instance, Linux works with several generic drivers that
function without the need to install any other software
manually.
6. Virtual device drivers
Virtual device drivers operate in both virtualization and non-
virtualization environments. In virtualization environments,
these drivers are used to emulate the hardware of the host
device. They control or manage the resource hardware of the
host device to ensure that both the guest and host device run
as expected.
7. BIOS
The basic input output system (BIOS) is located in a ROM chip,
which ensures that BIOS will be available even when the hard
disk is formatted. It performs power-on self-tests (POST) that
are required during startup. The BIOS also provides drivers for
the basic hardware, such as keyboards and monitors, to ensure
that they interface with the operating system to function as
intended.
8. Motherboard drivers
Motherboard drivers exist within the operating system and
enable fundamental computer operations. These drivers
comprise applications that allow the keyboard and mouse’s
USB devices and I/O ports to work. Some motherboards have
drivers that support video and audio.
9. Open-source drivers
Open-source drivers refer to drivers that are released under a free
and open-source license. For instance, open-source graphic
drivers control the output to the display if the display is part of the
graphics hardware.
The source code for open-source drivers is available to everyone,
making software collaborations easier. They are more trustworthy
as people can check them for any malicious code.
Applications of Device Drivers
Accessing Storage Systems
 Computer storage systems allow users to store data and
make it available on demand. They include external and
internal devices such as USB flash drives, hard drives,
and network-attached storage. Drivers in storage
systems enable them to interact with the computer. This
ensures that the computer can access its internal or
external storage systems, query their information, and
allow data transfer
Applications of Device Drivers (ctd)
For Input and Output Devices
 The computer’s OS interacts with device drivers to
ensure its hardware functions as expected. Input devices
include mice and keyboards, while output devices
include display devices such as monitors. Keyboards,
mice, and monitors are categorized as plug-and-play
devices
Applications of Device Drivers (ctd)
Control and management of virtual machines
When a guest operating system works on a host, it makes function calls to virtual device
drivers to access the hardware. In addition, they imitate processor-level occurrences like
interrupts and transmit them to the virtual machine.
Applications of Device Drivers (ctd)
BIOS for booting and hardware support
The BIOS performs the POST to ensure that all devices
are correctly configured before the computer can resume
with the normal booting process. This is an essential part
of botting
Applications of Device Drivers (ctd)
Smooth functioning of peripherals (e.g., printers, keyboards)
The device drivers responsible for PnP (Plug and Play)
have eased attachment of computer peripherals onto the
computer ports.
This ensures that a device is configured as soon as it is
connected
Steps taken when developing device
drivers
1. Know about the hardware. The developer should
have an in-depth grasp about the platform’s
hardware. Read the device –datasheet to understand
relevant terms and definitions. You should know the
method through which data is transferred. You should
know the software of the device-drivers resides and
what bus interface does the hardware use to
communicate with the host.
 In case the primary device is a system on chip then
developers should know how the driver interacts with
its firmware and command protocols
Steps cont’d
2. Write driver code. In this step, developers are
expected to come up with the a working prototype of
the preferred hardware then they should start writing
the kernel mode driver.
 If the device is incorrectly designed the driver’s
running in the user mode may cause system crash
likewise if anything goes wrong with the drivers
working in highly privileged settings, operational
concerns may occur.
 Usually, the first functions that you develop for your
Device Driver are Load and Unload functions
which are invoked when the Operating System
Starts and Shuts down respectively.
Steps cont’d
3.Initialise the hardware. Once you are able to
detect your hardware, the next is to initialize your
hardware. The kind of initialization that is needed
may vary for each hardware. It may range from just
writing to a couple of device registers to all the way,
downloading a microcode onto the device, and
communicating using proprietary command protocol.
Steps cont’d
4. Control the hardware. The next step is controlling your hardware.
Until Step 3, the operation might be a one-time operation when the OS loads, Step
4 might be needed to be performed multiple times after the Operating System is up
and running. The developer must know whether the device will simply relay data
from one device to another, they should also consider whether the device will be
sending data continuously
Steps cont’d
5.Begin data communication with the hardware.
Several devices deal with some form of data be it
video, audio. Once the device is initialized, the
developer can send some stream of data as
required. The driver works a as pipeline between the
high level application and the low level hardware for
data transfer.
As noted in step 1 developer should know the
protocols of data communication.
Steps cont’d
6.Control data communication. In this step
developers need to control data transfer and manage
data communication in several situations. When
problems arise ,the peripheral devices shouldn’t
send the same error message.
7.Test it and debug it. At this point, your driver may
be ready for testing, since all the development is
done to ensure that is initialized and recognized.
Functional tests should be run to ensure that it works
as expected.
References
 https://www.javatpoint.com/device-driver-in-
operating-system
 spiceworks.com/tech/devops/articles/what-is-
device-driver/
 Advanced OS by Nsereko Julius Kayongo

More Related Content

What's hot

Memory modules
Memory modulesMemory modules
Memory modulesSana Sini
 
Computer hardware-ports-connectors
Computer hardware-ports-connectorsComputer hardware-ports-connectors
Computer hardware-ports-connectorsRoshan sp
 
1 01 Computer Components
1 01 Computer Components1 01 Computer Components
1 01 Computer Componentsjasonmammano
 
Parts of the computer and thier function
Parts of the computer and thier functionParts of the computer and thier function
Parts of the computer and thier functionRobelyn Jardeliza
 
Chapter 2 Power Supply
Chapter 2 Power SupplyChapter 2 Power Supply
Chapter 2 Power Supplyaskme
 
Understanding the Computer System
Understanding the Computer SystemUnderstanding the Computer System
Understanding the Computer SystemSheryl Nelmida
 
Different types of operating systems
Different  types  of  operating  systems Different  types  of  operating  systems
Different types of operating systems Mehul Jain
 
Parts Of The Computer
Parts Of The ComputerParts Of The Computer
Parts Of The ComputerAaron Abraham
 
CD, DVD , BLU RAY DISC
CD, DVD , BLU RAY DISCCD, DVD , BLU RAY DISC
CD, DVD , BLU RAY DISCPrateek Aloni
 
Computer specifications
Computer specificationsComputer specifications
Computer specificationsLeonel Rivas
 
Parts of a computer
Parts of a computerParts of a computer
Parts of a computerAmit Jaglan
 

What's hot (20)

Memory modules
Memory modulesMemory modules
Memory modules
 
Computer hardware-ports-connectors
Computer hardware-ports-connectorsComputer hardware-ports-connectors
Computer hardware-ports-connectors
 
Motherboard
MotherboardMotherboard
Motherboard
 
1 01 Computer Components
1 01 Computer Components1 01 Computer Components
1 01 Computer Components
 
Parts of the computer and thier function
Parts of the computer and thier functionParts of the computer and thier function
Parts of the computer and thier function
 
Assembling a computer
Assembling a computerAssembling a computer
Assembling a computer
 
1.2 i o interface
1.2 i o interface1.2 i o interface
1.2 i o interface
 
Chapter 2 Power Supply
Chapter 2 Power SupplyChapter 2 Power Supply
Chapter 2 Power Supply
 
Ports and Connectors
Ports and ConnectorsPorts and Connectors
Ports and Connectors
 
Processor types
Processor typesProcessor types
Processor types
 
Understanding the Computer System
Understanding the Computer SystemUnderstanding the Computer System
Understanding the Computer System
 
Computer software
Computer softwareComputer software
Computer software
 
Different types of operating systems
Different  types  of  operating  systems Different  types  of  operating  systems
Different types of operating systems
 
Parts Of The Computer
Parts Of The ComputerParts Of The Computer
Parts Of The Computer
 
System unit
System unitSystem unit
System unit
 
CD, DVD , BLU RAY DISC
CD, DVD , BLU RAY DISCCD, DVD , BLU RAY DISC
CD, DVD , BLU RAY DISC
 
Computer specifications
Computer specificationsComputer specifications
Computer specifications
 
Installing Operating System
Installing Operating System Installing Operating System
Installing Operating System
 
Computer hardware
Computer hardwareComputer hardware
Computer hardware
 
Parts of a computer
Parts of a computerParts of a computer
Parts of a computer
 

Similar to Device drivers and their applications

An IO sub system comprises of IO devices and their corresponding d.pdf
An IO sub system comprises of IO devices and their corresponding d.pdfAn IO sub system comprises of IO devices and their corresponding d.pdf
An IO sub system comprises of IO devices and their corresponding d.pdfsooryasalini
 
Software and hardware PPT1.pptx
Software and hardware PPT1.pptxSoftware and hardware PPT1.pptx
Software and hardware PPT1.pptxdevnamu
 
Operating System Case Study and I/O System
Operating System Case Study and I/O SystemOperating System Case Study and I/O System
Operating System Case Study and I/O Systemprakash ganesan
 
Computer Hardware and Networking Tutorial for beginners
Computer Hardware and Networking Tutorial for beginnersComputer Hardware and Networking Tutorial for beginners
Computer Hardware and Networking Tutorial for beginnersMohammedRizwanSharie
 
IO SYSTEM AND CASE STUDY STRUCTURE
IO SYSTEM AND CASE STUDY STRUCTUREIO SYSTEM AND CASE STUDY STRUCTURE
IO SYSTEM AND CASE STUDY STRUCTUREHariharan Anand
 
Difference Between Software and hardware
Difference Between Software and hardwareDifference Between Software and hardware
Difference Between Software and hardwareZeeshan Ilyas
 
Computer networks note 3
Computer networks note 3Computer networks note 3
Computer networks note 3MDHASNAIN23
 
Day 2 hardware & software
Day 2 hardware & softwareDay 2 hardware & software
Day 2 hardware & softwaremn_maps
 
L-3 BCE OS FINAL.ppt
L-3 BCE OS FINAL.pptL-3 BCE OS FINAL.ppt
L-3 BCE OS FINAL.pptKirti Verma
 
Introduction to computer
Introduction to computerIntroduction to computer
Introduction to computerNoor Zada
 
Types and components of computer systems
Types and components of computer systemsTypes and components of computer systems
Types and components of computer systemsRayane619450
 
Hardware software
Hardware softwareHardware software
Hardware softwareSaheli Aich
 
Basic operating systems in computer and it's uses
Basic operating systems in computer and it's usesBasic operating systems in computer and it's uses
Basic operating systems in computer and it's usesSurya Vishnuram
 

Similar to Device drivers and their applications (20)

An IO sub system comprises of IO devices and their corresponding d.pdf
An IO sub system comprises of IO devices and their corresponding d.pdfAn IO sub system comprises of IO devices and their corresponding d.pdf
An IO sub system comprises of IO devices and their corresponding d.pdf
 
Software and hardware PPT1.pptx
Software and hardware PPT1.pptxSoftware and hardware PPT1.pptx
Software and hardware PPT1.pptx
 
Device drivers by prabu m
Device drivers by prabu mDevice drivers by prabu m
Device drivers by prabu m
 
Operating System Case Study and I/O System
Operating System Case Study and I/O SystemOperating System Case Study and I/O System
Operating System Case Study and I/O System
 
Computer Hardware and Networking Tutorial for beginners
Computer Hardware and Networking Tutorial for beginnersComputer Hardware and Networking Tutorial for beginners
Computer Hardware and Networking Tutorial for beginners
 
System Software
System SoftwareSystem Software
System Software
 
IO SYSTEM AND CASE STUDY STRUCTURE
IO SYSTEM AND CASE STUDY STRUCTUREIO SYSTEM AND CASE STUDY STRUCTURE
IO SYSTEM AND CASE STUDY STRUCTURE
 
Clifford sugerman
Clifford sugermanClifford sugerman
Clifford sugerman
 
Difference Between Software and hardware
Difference Between Software and hardwareDifference Between Software and hardware
Difference Between Software and hardware
 
Computer networks note 3
Computer networks note 3Computer networks note 3
Computer networks note 3
 
unit 5.pptx
unit 5.pptxunit 5.pptx
unit 5.pptx
 
Day 2 hardware & software
Day 2 hardware & softwareDay 2 hardware & software
Day 2 hardware & software
 
L-3 BCE OS FINAL.ppt
L-3 BCE OS FINAL.pptL-3 BCE OS FINAL.ppt
L-3 BCE OS FINAL.ppt
 
Linux io
Linux ioLinux io
Linux io
 
Introduction to computer
Introduction to computerIntroduction to computer
Introduction to computer
 
Operating systems
Operating systemsOperating systems
Operating systems
 
Types and components of computer systems
Types and components of computer systemsTypes and components of computer systems
Types and components of computer systems
 
Hardware software
Hardware softwareHardware software
Hardware software
 
Information sheet 1
Information sheet 1Information sheet 1
Information sheet 1
 
Basic operating systems in computer and it's uses
Basic operating systems in computer and it's usesBasic operating systems in computer and it's uses
Basic operating systems in computer and it's uses
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Device drivers and their applications

  • 1. GROUP 20 Operating Systems NAMES STUDENT_NUMBER REG_NUMBER NSEREKO KAYONGO JULIUS 2100714339 21/U/14339/PS MUTUMBA ROBERT 2100711810 21/U/11810/EVE AMANDA ANN KIRABO 2100704763 21/U/04763/PS ALIDDEKI MULINDWA BRYAN 2100700663 21/U/0663 NANYONGA RAHMAH 2100711530 21/U/11530/PS
  • 2. DEVICE DRIVERS  A device driver is a specialized software that operates a particular computer-connected device offering a software interface to the hardware allows operating systems and other computer applications to access hardware functionalities.  The hardware is linked to a computer bus/communication subsystem via which device drivers interact with the device. They are hardware-dependent and operating-system- specific (OS). They offer the interrupt processing essential for any time-dependent asynchronous hardware interface.
  • 3.  A device driver’s primary objective is to allow computers and network hardware components to interface and interact with specific devices. They handle requests made by the kernel concerning a particular type of device.  Device drivers define messages and mechanisms through which the computer’s operating system and applications can access the device or make requests for the device. They also handle device responses and messages for delivery to the computer. Device Drivers cont’d
  • 5. How do device drivers handle requests  Device drivers receive requests for device access and actions from the Operating System and it’s active applications to their respective hardware devices.  Suppose a request comes to read block N. If a driver is idle when the request arrives, it starts carrying out the request immediately. If the driver is already busy with some other request, it places a new request in the queue of the pending request.
  • 6. Illustration  Block N is called the block device and this devices communicate with the driver by sending the entire blocks of data. For example, hard disks.
  • 7. TYPES OF DEVICE DRIVERS 1. Kernel device drivers Kernel device drivers consist of some generic hardware loaded with the operating system (OS) as part of the OS. They include motherboards, processors, and BIOS. They are invoked and loaded into the random-access memory (RAM) when required. 2. User-mode device drivers User mode device drivers refer to device drivers that users may trigger during a session. When using a system, users may have their own external devices that they bring to use, such as external plug-and-play devices. These devices also require drivers to function. Users can write these drivers to the disk to reduce strain on computer resources.
  • 8. 3. Character drivers Character device drivers provide unstructured access to the hardware. They transfer data to and from devices without using a specific device address. They allow the reading or writing of one byte at a time as a stream of sequential data. 4. Block drivers Block device drivers provide structured access to the hardware. They use file system block-sized buffers from a buffer cache supplied by the kernel to perform I/O. A buffer cache is a memory pool established by the kernel to store frequently accessed blocks via block devices. The buffer cache reduces the amount of I/O queries that need an I/O operation from the device.
  • 9. 5. Original equipment manufacturer (OEM) drivers Device drivers can be categorized as generic or OEM-related. Generic drivers refer to device drivers with their operating software bundled into the OEM hardware. One can use generic drivers with different brands of a particular device type. For instance, Linux works with several generic drivers that function without the need to install any other software manually. 6. Virtual device drivers Virtual device drivers operate in both virtualization and non- virtualization environments. In virtualization environments, these drivers are used to emulate the hardware of the host device. They control or manage the resource hardware of the host device to ensure that both the guest and host device run as expected.
  • 10. 7. BIOS The basic input output system (BIOS) is located in a ROM chip, which ensures that BIOS will be available even when the hard disk is formatted. It performs power-on self-tests (POST) that are required during startup. The BIOS also provides drivers for the basic hardware, such as keyboards and monitors, to ensure that they interface with the operating system to function as intended. 8. Motherboard drivers Motherboard drivers exist within the operating system and enable fundamental computer operations. These drivers comprise applications that allow the keyboard and mouse’s USB devices and I/O ports to work. Some motherboards have drivers that support video and audio.
  • 11. 9. Open-source drivers Open-source drivers refer to drivers that are released under a free and open-source license. For instance, open-source graphic drivers control the output to the display if the display is part of the graphics hardware. The source code for open-source drivers is available to everyone, making software collaborations easier. They are more trustworthy as people can check them for any malicious code.
  • 12. Applications of Device Drivers Accessing Storage Systems  Computer storage systems allow users to store data and make it available on demand. They include external and internal devices such as USB flash drives, hard drives, and network-attached storage. Drivers in storage systems enable them to interact with the computer. This ensures that the computer can access its internal or external storage systems, query their information, and allow data transfer
  • 13. Applications of Device Drivers (ctd) For Input and Output Devices  The computer’s OS interacts with device drivers to ensure its hardware functions as expected. Input devices include mice and keyboards, while output devices include display devices such as monitors. Keyboards, mice, and monitors are categorized as plug-and-play devices
  • 14. Applications of Device Drivers (ctd) Control and management of virtual machines When a guest operating system works on a host, it makes function calls to virtual device drivers to access the hardware. In addition, they imitate processor-level occurrences like interrupts and transmit them to the virtual machine.
  • 15. Applications of Device Drivers (ctd) BIOS for booting and hardware support The BIOS performs the POST to ensure that all devices are correctly configured before the computer can resume with the normal booting process. This is an essential part of botting
  • 16. Applications of Device Drivers (ctd) Smooth functioning of peripherals (e.g., printers, keyboards) The device drivers responsible for PnP (Plug and Play) have eased attachment of computer peripherals onto the computer ports. This ensures that a device is configured as soon as it is connected
  • 17. Steps taken when developing device drivers 1. Know about the hardware. The developer should have an in-depth grasp about the platform’s hardware. Read the device –datasheet to understand relevant terms and definitions. You should know the method through which data is transferred. You should know the software of the device-drivers resides and what bus interface does the hardware use to communicate with the host.  In case the primary device is a system on chip then developers should know how the driver interacts with its firmware and command protocols
  • 18. Steps cont’d 2. Write driver code. In this step, developers are expected to come up with the a working prototype of the preferred hardware then they should start writing the kernel mode driver.  If the device is incorrectly designed the driver’s running in the user mode may cause system crash likewise if anything goes wrong with the drivers working in highly privileged settings, operational concerns may occur.  Usually, the first functions that you develop for your Device Driver are Load and Unload functions which are invoked when the Operating System Starts and Shuts down respectively.
  • 19. Steps cont’d 3.Initialise the hardware. Once you are able to detect your hardware, the next is to initialize your hardware. The kind of initialization that is needed may vary for each hardware. It may range from just writing to a couple of device registers to all the way, downloading a microcode onto the device, and communicating using proprietary command protocol.
  • 20. Steps cont’d 4. Control the hardware. The next step is controlling your hardware. Until Step 3, the operation might be a one-time operation when the OS loads, Step 4 might be needed to be performed multiple times after the Operating System is up and running. The developer must know whether the device will simply relay data from one device to another, they should also consider whether the device will be sending data continuously
  • 21. Steps cont’d 5.Begin data communication with the hardware. Several devices deal with some form of data be it video, audio. Once the device is initialized, the developer can send some stream of data as required. The driver works a as pipeline between the high level application and the low level hardware for data transfer. As noted in step 1 developer should know the protocols of data communication.
  • 22. Steps cont’d 6.Control data communication. In this step developers need to control data transfer and manage data communication in several situations. When problems arise ,the peripheral devices shouldn’t send the same error message. 7.Test it and debug it. At this point, your driver may be ready for testing, since all the development is done to ensure that is initialized and recognized. Functional tests should be run to ensure that it works as expected.