AY 2023-24 IT WORKSHOP REPORT Submitted for IT WORKSHOP By Vansh Rastogi 23364 II Semester B.Tech – IT Submitted to Mrs. Shonal Chouksey Faculty,School of computing Objective:- To test and study various device drivers in the computer system. Requirement:-A device having both hardware and software component(like a PC) What are device drivers ? A device driver is a piece of software that enables communication between an operating system or application and hardware or peripheral devices. It serves as a bridge between the different components of a computer, allowing them to interact with each other. Without device drivers, computers would be unable to run any type of application because all programs require access to the underlying hardware in order to function. Device drivers enable the transmission of data from one component to another, simplifying the process by which users can interact with their machines. Device drivers are broadly split into two categories; generic and specific. Generic device drivers are used for broad purposes such as keyboard control and mouse interaction. Specific device drivers are made for individual pieces of hardware such as printers, scanners, audio cards, video cards and graphics cards. These usually need to be installed manually but may come packaged alongside certain devices or peripherals when purchased new. Device drivers provide information about how software interacts with particular pieces of hardware. They communicate directly with the processor or CPU on behalf of applications and user commands, sending instructions and retrieving data where necessary in order to execute a task. To install any device driver, you need to download it from the hardware or peripheral Manufacturer’s website. 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. When several of them are operating at the same time, the machine can slow down. Thus, there is a minimum requirement for each OS. Higher-level drivers, such as file system drivers, receive data from applications, filter it, and pass it to a lower-level driver, supporting drive functionality. Kernel device drivers are implemented as discrete and modular components that have a well-defined set of required functionalities. 2. User Mode Device Drivers:User mode device drivers execute in user mode. They 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. In Windows systems, user-mode device drivers provide an interface between a Win32 application and kernel-mode drivers or other operating systems. 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. Character drivers do not handle input/output (I/O) through the buffer cache, so they are more flexible in handling I/O\.They provide additional interfaces such as I/O control commands, device polling, and memory mapping. Examples are modems and bus controllers. 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.In addition, block device drivers provide accessible block-oriented I/O and demonstrate data durability. They take a file system request and issue the I/O procedures to the disk to transfer the requested block. Examples are USB memory keys and disk drives. 5. Original Equipment Manufacturer (OEM) Device Drivers:OEMs can create their proprietary device drivers, which need to be installed separately after installing the OS. OEM drivers enable hardware such as keyboards to communicate with the host OS. For instance, OEM drivers enable functions such as integrating the lighting control system with OEM hardware in Google Assistant and Alexa. 6. BIOS(Basic Input Output System):The basic input output system (BIOS) is the most fundamental driver on a computer. It is located in a read-only memory (ROM) chip, which ensures that BIOS will be available even when the hard disk is formatted. It is in charge of booting a computer and providing it with a set of instructions during this process. It also performs poweron 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. 7. Virtual Device Drivers:Virtual device drivers are essential in controlling virtual machines. They 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. For example, 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. 8. Motherboard Drivers:Motherboard drivers are simple applications that both Windows and Linux may utilize. They 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. To realize the motherboard’s full potential and enable components connected to it to work correctly, users may need to install additional drivers. 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.Open-source drivers offer more privacy. If they track users, people can redistribute a copy of the software with the tracking removed. Open-source drivers last longer as more people continue to make improvements, thus ensuring that even when the company stops distributing them, a copy remains. 10. Device Drivers For Superior Video Performance:- Graphic cards are core components of a computer system and are responsible for superior video performance in computers, games, or other graphic-intensive tasks. Graphic drivers allow graphic cards to interact with the computer’s operating system and are thus essential to getting top performance from the graphic cards. Updating graphic drivers can give users a speed boost, fix problems, and sometimes even provide users with new features. For instance, updating game drivers can increase frames per second, reducing lag. Available Device Drivers In The Computer System:- How To test device drivers:To test a device driver we should follow the following steps mentioned below:1. Open up the device manager and click on the drop down menu botton of the component that you want to test. 2. In the drop down menu right click on the component you want to check and right click on it. 3. Click on Properties. 4. Here you will see whether the component is working properly or not. Here is an example shown below:- Learning Outcomes:From This Workshop I was able to learn about various device drivers present in the computer system and learn about them.