Knowledge (XXG)

Device driver

Source đź“ť

49: 317:(KMDF) model continues to allow development of kernel-mode device drivers, but attempts to provide standard implementations of functions that are known to cause problems, including cancellation of I/O operations, power management, and plug and play device support. 945:
There is a lack of effective kernel vulnerability detection tools, especially for closed-source OSes such as Microsoft Windows where the source code of the device drivers is mostly not public (open source) and the drivers often also have many privileges.
219:
may simply have two functions for "send data" and "receive data". At a lower level, a device driver implementing these functions would communicate to the particular serial port controller installed on a user's computer. The commands needed to control a
697:
host. Instead of enabling the guest operating system to dialog with hardware, virtual device drivers take the opposite role and emulates a piece of hardware, so that the guest operating system and its drivers running inside a
1797: 1766: 1889: 1670: 271:
who work for hardware-development companies. This is because they have better information than most outsiders about the design of their hardware. Moreover, it was traditionally considered in the hardware
702:
can have the illusion of accessing real hardware. Attempts by the guest operating system to access the hardware are routed to the virtual device driver in the host operating system as e.g., 
215:
that use it. Programmers can write higher-level application code independently of whatever specific hardware the end-user is using. For example, a high-level application for interacting with a
1858: 1301: 1981: 375:.ko files can contain loadable device drivers. The advantage of loadable device drivers is that they can be loaded only when necessary and then unloaded, thus saving kernel memory. 196:
in the driver, the driver issues commands to the device (drives it). Once the device sends data back to the driver, the driver may invoke routines in the original calling program.
450:. The primary benefit of running a driver in user mode is improved stability, since a poorly written user-mode device driver cannot crash the system by overwriting kernel memory. 1360: 2011: 918:
A PCI device has often an ID pair for the main chip of the device, and also a subsystem ID pair that identifies the vendor, which may be different from the chip manufacturer.
1920: 1828: 1950: 1789: 1758: 1400: 291:. In such cases, it is important that the hardware manufacturer provide information on how the device communicates. Although this information can instead be learned by 2259: 1881: 1660: 1159: 284:(PDD) is implemented by the device vendor. However, in recent years, non-vendors have written numerous device drivers for proprietary devices, mainly for use with 2075: 1339: 2206: 1567: 753: 1197: 1735: 1850: 1120: 1637: 1038: 1525:
An improved Gigabaud Link Module (GLM) is provided for performing bi-directional data transfers between a host device and a serial transfer medium.
926:
Devices often have a large number of diverse and customized device drivers running in their operating system (OS) kernel and often contain various
854: 2535: 2506: 1277: 996: 1293: 301:
has attempted to reduce system instability due to poorly written device drivers by creating a new framework for driver development, called
1973: 949:
Such vulnerabilities also exist in drivers in laptops, drivers for WiFi and bluetooth, gaming/graphics drivers, and drivers in printers.
211:
The main purpose of device drivers is to provide abstraction by acting as a translator between a hardware device and the applications or
2041: 1370: 1222: 1017:); whether they are hardware supported or language based; whether they are more an open mechanism or a binding policy; and many more. 677:
Virtual device drivers represent a particular variant of device drivers. They are used to emulate a hardware device, particularly in
2003: 1703: 1631: 1545: 1467: 1333: 1252: 1191: 1153: 1010: 864: 669:
So choosing and installing the correct device drivers for given hardware is often a key component of computer system configuration.
244:
function. Because drivers require low-level access to hardware functions in order to operate, drivers typically operate in a highly
2105: 1912: 915:
each. The vendor ID identifies the vendor of the device. The device ID identifies a specific device from that manufacturer/vendor.
1820: 1005:
The mechanisms or policies provided by the kernel can be classified according to several criteria, including: static (enforced at
313:
for communicating with their devices—as user-mode drivers. If such drivers malfunction, they do not cause system instability. The
2310: 2254: 1942: 181:
and other computer programs to access hardware functions without needing to know precise details about the hardware being used.
2229: 2199: 778: 458:
Because of the diversity of modern hardware and operating systems, drivers operate in many different environments. Drivers may
399:, will typically run device drivers with the same privilege as all other kernel objects. By contrast, a system designed around 1392: 54: 2731: 2422: 2320: 574: 540: 248:
environment and can cause system operational issues if something goes wrong. In contrast, most user-level software on modern
229: 71: 1509: 2700: 2249: 2234: 2069: 1693: 1620:
Talebi, Seyed Mohammadjavad Seyed; Tavakoli, Hamid; Zhang, Hang; Zhang, Zheng; Sani, Ardalan Amiri; Qian, Zhiyun (2018).
2295: 2280: 2239: 1143: 1083: 822: 647: 459: 314: 132: 53: 2461: 2408: 2097:
Huang, Yongzhe; Narayanan, Vikram; Detweiler, David; Huang, Kaiming; Tan, Gang; Jaeger, Trent; Burtsev, Anton (2022).
961: 935: 1422: 2736: 2476: 2315: 2192: 842: 784: 306: 2064: 1323: 240:
Writing a device driver requires an in-depth understanding of how the hardware and the software works for a given
2511: 2330: 2290: 2285: 2244: 1759:"How Microsoft blocks vulnerable and malicious drivers in Defender, third-party security tools and in Windows 11" 980: 957: 942:(BYOVD) uses signed, old drivers that contain flaws that allow hackers to insert malicious code into the kernel. 931: 835: 588: 442:
processors, switching between rings imposes a performance penalty, a factor that operating system developers and
388: 342:, or as user-mode drivers (for certain types of devices where kernel interfaces exist, such as for USB devices). 302: 2554: 2441: 2305: 1181: 972: 892: 886: 359: 55: 2721: 2300: 2164: 2147:
Swift 2005, p.29 quote: "isolation, resource control, decision verification (checking), and error recovery."
987:
An important consideration in the design of a kernel is the support it provides for protection from faults (
876: 870: 768: 718: 620: 281: 1727: 277: 2726: 2688: 2627: 2516: 2496: 2445: 2403: 1058: 447: 339: 310: 1621: 1112: 2471: 2437: 2339: 2275: 580: 503: 384: 245: 170: 1444:
Drivers for the HP (previously Compaq) Smart Array controllers which provide hardware RAID capability.
2668: 2642: 1073: 848: 584: 552: 285: 276:'s interest to guarantee that their clients can use their hardware in an optimum way. Typically, the 583:
as used for short-distance and low-rate wireless communication in home automation, (such as example
2637: 2589: 2466: 1599: 446:
consider when creating drivers for devices which are preferred to be run with low latency, such as
292: 52: 2574: 2481: 1483: 898:
Dynax Driver Framework (dxd) – C++ open source cross-platform driver framework for KMDF and IOKit
241: 309:(UMDF) that encourages development of certain types of drivers—primarily those that implement a 383:
Depending on the operating system, device drivers may be permitted to run at various different
2683: 2632: 2564: 2521: 2362: 1699: 1627: 1463: 1366: 1329: 1273: 1248: 1187: 1149: 1028: 992: 965: 953: 686: 518: 443: 392: 387:. The choice of which level of privilege the drivers are in is largely decided by the type of 365: 268: 264: 257: 174: 101: 81: 31: 2033: 1013:); pre-emptive or post-detection; according to the protection principles they satisfy (e.g., 2663: 2215: 1014: 690: 524: 466: 407:, will place drivers as processes independent from the kernel but that use it for essential 351: 288: 249: 212: 178: 154: 146: 125: 96: 40: 1218: 252:
can be stopped without greatly affecting the rest of the system. Even drivers executing in
2607: 2569: 2540: 1495: 1068: 1000: 988: 722: 714: 713:
Virtual devices may also operate in a non-virtualized environment. For example, a virtual
699: 678: 510: 439: 431: 355: 2159: 1537: 1145:
Information Storage and Management: Storing, Managing, and Protecting Digital Information
2179: 2098: 1457: 2693: 2617: 2579: 2451: 2174: 1882:"Vulnerabilities that could allow undectable infections affect 70 Lenovo laptop models" 1078: 1043: 880: 569: 514: 471: 199:
Drivers are hardware dependent and operating-system-specific. They usually provide the
430:
The most common mechanism for segregating memory into various privilege levels is via
2715: 2559: 2352: 1048: 826: 741: 703: 632:
Using another lower-level device driver (e.g. file system drivers using disk drivers)
564: 496: 476: 416: 347: 203:
handling required for any necessary asynchronous time-dependent hardware interface.
2486: 1665: 1033: 1006: 968: 927: 858: 730: 492: 408: 396: 335: 331: 273: 185: 106: 30:
This article is about device drivers for hardware. For other software drivers, see
2169: 1790:"No fix in sight for mile-wide loophole plaguing a key Windows defense for years" 1513: 2612: 2594: 2377: 2367: 2357: 1695:
Digtool: A {Virtualization-Based} Framework for Detecting Kernel Vulnerabilities
1427: 706:. The virtual device driver can also send simulated processor-level events like 559: 536: 400: 216: 189: 118: 86: 2065:"Automatic device driver isolation protects against bugs in operating systems" 952:
A group of security researchers considers the lack of isolation as one of the
660: 626: 486: 481: 424: 412: 411:
functionalities and to pass messages between user programs and each other. On
320: 221: 193: 158: 17: 1247:(3rd. ed.). Upper Saddle River, NJ: Pearson Pretence Hall. p. 256. 2549: 2456: 2382: 2347: 1510:"US Patent 5969841 - Gigabaud link module with received power detect signal" 1297: 1268:
Yosifovich, Pavel; Ionescu, Alex; Russinovich, Mark; Solomon, David (2017).
707: 528: 420: 298: 253: 200: 166: 76: 260:. These factors make it more difficult and dangerous to diagnose problems. 1974:"Installing gaming drivers might leave your PC vulnerable to cyberattacks" 1661:"How a Microsoft blunder opened millions of PCs to potent malware attacks" 2678: 1432: 1053: 162: 1623:
Charm: Facilitating Dynamic Analysis of Device Drivers of Mobile Systems
1568:"What are DCH drivers and why do you need to know about them? | Dell US" 346:
includes a list of the devices in Linux, including ttyS (terminal), lp (
2673: 2602: 2372: 1913:"You're going to want to update your Wi-Fi and Bluetooth drivers today" 1063: 908: 635:
Simulating work with hardware, while doing something entirely different
343: 295:, this is much more difficult with hardware than it is with software. 1851:"Windows 10 Security Alert: Vulnerabilities Found in Over 40 Drivers" 596: 592: 532: 2184: 995:). These two aspects are usually not clearly distinguished, and the 1943:"Wireless 'BlueBorne' Attacks Target Billions of Bluetooth Devices" 873:(SANE) – a public-domain interface to raster-image scanner-hardware 334:
environments, programmers can build device drivers as parts of the
188:
or communications subsystem to which the hardware connects. When a
2622: 774: 726: 653: 404: 372: 324: 1821:""Bring Your Own Vulnerable Driver" Attacks Are Breaking Windows" 1462:. IBM International Technical Support Organization. p. 207. 809:
soc: SPARC Storage Array (SSA) controllers and the control device
643:
Allowing the operating system direct access to hardware resources
1728:"Closed Source vs. Open Source Hardware Drivers: Why It Matters" 1088: 912: 759: 602: 548: 544: 368: 228:
serial port converter, but each hardware-specific device driver
225: 2188: 2004:"HP patches vulnerable driver lurking in printers for 16 years" 2658: 737: 736:
There are several variants of virtual device drivers, such as
694: 682: 506: 435: 964:
framework to protect operating system kernels, primarily the
232:
these details into the same (or similar) software interface.
47: 1365:. Technical Publications Pune. January 2008. pp. 5–8. 391:
an operating system uses. An operating system which uses a
280:(LDD) is written by the operating system vendor, while the 1272:(Seventh ed.). Redmond, Washington: Microsoft Press. 764:
RAIDs: CCISS (Compaq Command Interface for SCSI-3 Support)
659:
Implementing a language, sometimes quite high-level (e.g.
224:
are much different from the commands needed to control an
609:
Common levels of abstraction for device drivers include:
1591: 797:
isp: Differential SCSI controllers and the SunSwift card
652:
Implementing an interface for non-driver software (e.g.
1294:"Introduction to the User-Mode Driver Framework (UMDF)" 806:
sf: soc+ or social Fiber Channel Arbitrated Loop (FCAL)
579:
Radio frequency communication transceiver adapters for
323:
has an open-source framework for developing drivers on
911:
or USB is identified by two IDs which consist of two
825:(WDDM) – the graphic display driver architecture for 2165:
Linux Hardware Compatibility Lists and Linux Drivers
803:
scsi: Small Computer Serial Interface (SCSI) devices
2651: 2588: 2534: 2495: 2430: 2421: 2391: 2338: 2329: 2268: 2222: 729:. A good example for virtual device drivers can be 419:, it is common for device drivers to run in either 1692:Pan, Jianfeng; Yan, Guanglu; Fan, Xiaocao (2017). 1393:"What are Device Drivers and why do we need them?" 1219:"MAKEDEV â€” Linux Command â€” Unix Command" 867:(ALSA) – the standard Linux sound-driver interface 812:social: Serial optical controllers for FCAL (soc+) 263:The task of writing drivers thus usually falls to 184:A driver communicates with the device through the 999:in the kernel design leads to the rejection of a 895:(UDI) – a cross-platform driver interface project 800:glm: (Gigabaud Link Module) UltraSCSI controllers 1325:Understanding Computers 2009: Today and Tomorrow 157:that operates or controls a particular type of 51: 1183:Writing device drivers: tutorial and reference 787:descriptions of commonly used device drivers: 2200: 350:), hd (disk), loop, and sound (these include 126: 8: 2099:"KSplit: Automating Device Driver Isolation" 1245:Operating Systems, Design and Implementation 1243:Tanenbaum, Andrew; Woodhull, Albert (2006). 841:Declarative Componentized Hardware (DCH) - 2427: 2335: 2207: 2193: 2185: 2170:Understanding Modern Device Drivers(Linux) 1456:Russell, Steve; et al. (2003-10-21). 133: 119: 36: 1592:"dxd - dynax driver framework: Main Page" 1039:Device driver synthesis and verification 889:(ODI) – network card API similar to NDIS 625:Using some higher-level interface (e.g. 1101: 971:which, according to them, gets ~80,000 794:hme: Fast (10/100 Mbit/s) Ethernet 63: 39: 2111:from the original on 15 September 2022 2078:from the original on 15 September 2022 2044:from the original on 15 September 2022 1972:Spadafora, Anthony (12 January 2022). 1538:"Unified Audio Model (Windows CE 5.0)" 1491: 1481: 1403:from the original on November 20, 2016 1107: 1105: 981:Kernel (operating system) § Protection 855:Network Driver Interface Specification 434:. On many systems, such as those with 27:Software interface to attached devices 1123:from the original on 13 February 2021 1001:hierarchical structure for protection 883:for IBM OS/2 and Microsoft Windows NT 575:Digital terrestrial television tuners 7: 2014:from the original on 5 November 2022 1984:from the original on 5 November 2022 1953:from the original on 5 November 2022 1923:from the original on 5 November 2022 1892:from the original on 5 November 2022 1861:from the original on 5 November 2022 1831:from the original on 5 November 2022 1800:from the original on 5 November 2022 1769:from the original on 5 November 2022 1738:from the original on 5 November 2022 1673:from the original on 8 November 2022 1640:from the original on 5 November 2022 495:of various sorts—in particular, for 256:can crash a system if the device is 1362:Computer Peripherals and Interfaces 558:Implementing support for different 25: 1911:Ridley, Jacob (9 February 2022). 1757:Branscombe, Mary (7 April 2022). 1512:. PatentStorm LLC. Archived from 991:) and from malicious behaviours ( 865:Advanced Linux Sound Architecture 681:environments, for example when a 2311:Object-oriented operating system 979:This section is an excerpt from 940:Bring Your Own Vulnerable Driver 2034:"Fine-grained kernel isolation" 1659:Goodin, Dan (14 October 2022). 1602:from the original on 2016-05-29 1548:from the original on 2017-06-22 1342:from the original on 2021-06-09 1304:from the original on 2010-01-07 1225:from the original on 2009-04-30 1221:. Linux.about.com. 2009-09-11. 1200:from the original on 2021-01-26 1162:from the original on 2021-02-13 1142:EMC Education Services (2010). 779:Direct Rendering Infrastructure 581:wireless personal area networks 169:. A driver provides a software 2321:Supercomputer operating system 1788:Goodin, Dan (5 October 2022). 791:fas: Fast/wide SCSI controller 1: 2070:Pennsylvania State University 1726:King, Bertel (18 June 2022). 619:Writing to or reading from a 2296:Just enough operating system 2281:Distributed operating system 1880:Goodin, Dan (13 July 2022). 1113:"What is all device driver?" 1084:Replicant (operating system) 997:adoption of this distinction 823:Windows Display Driver Model 509:buses of various sorts (for 315:Kernel-Mode Driver Framework 2409:User space and kernel space 2160:Windows Hardware Dev Center 1542:Microsoft Developer Network 934:, making them a target for 444:embedded software engineers 2753: 2316:Real-time operating system 2175:BinaryDriverHowto, Ubuntu. 1459:Abbreviations and acronyms 1009:) or dynamic (enforced at 978: 843:Universal Windows Platform 710:into the virtual machine. 693:is run on, for example, a 585:Bluetooth Low Energy (BLE) 307:User-Mode Driver Framework 29: 2512:Multilevel feedback queue 2507:Fixed-priority preemptive 2291:Hobbyist operating system 2286:Embedded operating system 1270:Windows Internals, Part 1 1148:. John Wiley & Sons. 836:Windows Driver Foundation 832:Unified Audio Model (UAM) 689:computer or when a guest 338:, separately as loadable 303:Windows Driver Frameworks 2555:General protection fault 2306:Network operating system 2260:User features comparison 893:Uniform Driver Interface 887:Open Data-Link Interface 2301:Mobile operating system 2038:mars-research.github.io 1322:Deborah Morley (2009). 1180:Burke, Timothy (1995). 877:Installable File System 871:Scanner Access Now Easy 719:virtual private network 621:device control register 448:network interface cards 2404:Loadable kernel module 1431:. 2010. Archived from 1059:Loadable kernel module 975:/year to its drivers. 754:Graphics device driver 673:Virtual device drivers 311:message-based protocol 282:Physical Device Driver 258:erroneously programmed 161:that is attached to a 58: 2732:Computing terminology 2472:Process control block 2438:Computer multitasking 2276:Disk operating system 305:(WDF). This includes 278:Logical Device Driver 145:In the context of an 57: 2643:Virtual tape library 2235:Forensic engineering 2180:Linux Drivers Source 2129:Wulf 1974 pp.337–345 1698:. pp. 149–165. 1626:. pp. 291–307. 1328:. Cengage Learning. 1074:Open-source hardware 857:(NDIS) – a standard 849:Windows Driver Model 725:device is used with 685:program is run on a 616:Interfacing directly 286:free and open source 2652:Supporting concepts 2638:Virtual file system 1819:Davenport, Corbin. 748:Open source drivers 293:reverse engineering 2575:Segmentation fault 2423:Process management 2072:via techxplore.com 1399:. April 17, 2015. 960:, and published a 721:, while a virtual 646:Implementing only 415:, a system with a 327:, called I/O Kit. 269:computer engineers 265:software engineers 192:program invokes a 177:devices, enabling 72:Process management 59: 2737:Windows NT kernel 2709: 2708: 2565:Memory protection 2536:Memory management 2530: 2529: 2522:Shortest job next 2417: 2416: 2216:Operating systems 1279:978-0-7356-8418-8 1186:. Digital Press. 1029:Driver (software) 687:Microsoft Windows 499:on modern systems 393:monolithic kernel 366:Microsoft Windows 289:operating systems 250:operating systems 213:operating systems 179:operating systems 143: 142: 82:Memory management 41:Operating systems 32:Driver (software) 16:(Redirected from 2744: 2664:Computer network 2428: 2336: 2209: 2202: 2195: 2186: 2148: 2145: 2139: 2136: 2130: 2127: 2121: 2120: 2118: 2116: 2110: 2103: 2094: 2088: 2087: 2085: 2083: 2060: 2054: 2053: 2051: 2049: 2030: 2024: 2023: 2021: 2019: 2000: 1994: 1993: 1991: 1989: 1969: 1963: 1962: 1960: 1958: 1939: 1933: 1932: 1930: 1928: 1908: 1902: 1901: 1899: 1897: 1877: 1871: 1870: 1868: 1866: 1855:BleepingComputer 1847: 1841: 1840: 1838: 1836: 1816: 1810: 1809: 1807: 1805: 1785: 1779: 1778: 1776: 1774: 1754: 1748: 1747: 1745: 1743: 1723: 1717: 1716: 1714: 1712: 1689: 1683: 1682: 1680: 1678: 1656: 1650: 1649: 1647: 1645: 1617: 1611: 1610: 1608: 1607: 1588: 1582: 1581: 1579: 1578: 1563: 1557: 1556: 1554: 1553: 1534: 1528: 1527: 1522: 1521: 1506: 1500: 1499: 1493: 1489: 1487: 1479: 1477: 1476: 1453: 1447: 1446: 1441: 1440: 1419: 1413: 1412: 1410: 1408: 1389: 1383: 1382: 1380: 1379: 1357: 1351: 1350: 1348: 1347: 1319: 1313: 1312: 1310: 1309: 1290: 1284: 1283: 1265: 1259: 1258: 1240: 1234: 1233: 1231: 1230: 1215: 1209: 1208: 1206: 1205: 1177: 1171: 1170: 1168: 1167: 1139: 1133: 1132: 1130: 1128: 1109: 1091:(userspace /dev) 907:A device on the 691:operating system 527:devices such as 525:Computer storage 511:pointing devices 432:protection rings 385:privilege levels 379:Privilege levels 155:computer program 147:operating system 135: 128: 121: 50: 37: 21: 2752: 2751: 2747: 2746: 2745: 2743: 2742: 2741: 2712: 2711: 2710: 2705: 2647: 2608:Defragmentation 2593: 2584: 2570:Protection ring 2539: 2526: 2498: 2491: 2413: 2387: 2325: 2264: 2218: 2213: 2156: 2151: 2146: 2142: 2137: 2133: 2128: 2124: 2114: 2112: 2108: 2101: 2096: 2095: 2091: 2081: 2079: 2062: 2061: 2057: 2047: 2045: 2032: 2031: 2027: 2017: 2015: 2002: 2001: 1997: 1987: 1985: 1971: 1970: 1966: 1956: 1954: 1941: 1940: 1936: 1926: 1924: 1910: 1909: 1905: 1895: 1893: 1879: 1878: 1874: 1864: 1862: 1849: 1848: 1844: 1834: 1832: 1818: 1817: 1813: 1803: 1801: 1787: 1786: 1782: 1772: 1770: 1756: 1755: 1751: 1741: 1739: 1725: 1724: 1720: 1710: 1708: 1706: 1691: 1690: 1686: 1676: 1674: 1658: 1657: 1653: 1643: 1641: 1634: 1619: 1618: 1614: 1605: 1603: 1590: 1589: 1585: 1576: 1574: 1565: 1564: 1560: 1551: 1549: 1536: 1535: 1531: 1519: 1517: 1508: 1507: 1503: 1490: 1480: 1474: 1472: 1470: 1455: 1454: 1450: 1438: 1436: 1421: 1420: 1416: 1406: 1404: 1391: 1390: 1386: 1377: 1375: 1373: 1359: 1358: 1354: 1345: 1343: 1336: 1321: 1320: 1316: 1307: 1305: 1292: 1291: 1287: 1280: 1267: 1266: 1262: 1255: 1242: 1241: 1237: 1228: 1226: 1217: 1216: 1212: 1203: 1201: 1194: 1179: 1178: 1174: 1165: 1163: 1156: 1141: 1140: 1136: 1126: 1124: 1111: 1110: 1103: 1099: 1094: 1069:Microcontroller 1024: 1019: 1018: 989:fault tolerance 984: 958:kernel security 932:vulnerabilities 924: 905: 819: 750: 717:is used with a 715:network adapter 700:virtual machine 675: 570:Digital cameras 456: 381: 238: 209: 139: 64:Common features 56: 48: 35: 28: 23: 22: 15: 12: 11: 5: 2750: 2748: 2740: 2739: 2734: 2729: 2724: 2722:Device drivers 2714: 2713: 2707: 2706: 2704: 2703: 2698: 2697: 2696: 2694:User interface 2691: 2681: 2676: 2671: 2666: 2661: 2655: 2653: 2649: 2648: 2646: 2645: 2640: 2635: 2630: 2625: 2620: 2618:File attribute 2615: 2610: 2605: 2599: 2597: 2586: 2585: 2583: 2582: 2580:Virtual memory 2577: 2572: 2567: 2562: 2557: 2552: 2546: 2544: 2532: 2531: 2528: 2527: 2525: 2524: 2519: 2514: 2509: 2503: 2501: 2493: 2492: 2490: 2489: 2484: 2479: 2474: 2469: 2464: 2459: 2454: 2452:Context switch 2449: 2434: 2432: 2425: 2419: 2418: 2415: 2414: 2412: 2411: 2406: 2401: 2395: 2393: 2389: 2388: 2386: 2385: 2380: 2375: 2370: 2365: 2360: 2355: 2350: 2344: 2342: 2333: 2327: 2326: 2324: 2323: 2318: 2313: 2308: 2303: 2298: 2293: 2288: 2283: 2278: 2272: 2270: 2266: 2265: 2263: 2262: 2257: 2252: 2247: 2242: 2237: 2232: 2226: 2224: 2220: 2219: 2214: 2212: 2211: 2204: 2197: 2189: 2183: 2182: 2177: 2172: 2167: 2162: 2155: 2154:External links 2152: 2150: 2149: 2140: 2131: 2122: 2089: 2063:Fetzer, Mary. 2055: 2025: 1995: 1964: 1947:threatpost.com 1934: 1903: 1872: 1842: 1811: 1780: 1749: 1718: 1704: 1684: 1651: 1632: 1612: 1583: 1558: 1529: 1501: 1468: 1448: 1414: 1384: 1372:978-8184314748 1371: 1352: 1334: 1314: 1300:. 2006-10-10. 1285: 1278: 1260: 1253: 1235: 1210: 1192: 1172: 1154: 1134: 1119:. TechTarget. 1100: 1098: 1095: 1093: 1092: 1086: 1081: 1079:Printer driver 1076: 1071: 1066: 1061: 1056: 1051: 1046: 1044:Driver wrapper 1041: 1036: 1031: 1025: 1023: 1020: 985: 977: 923: 920: 904: 901: 900: 899: 896: 890: 884: 881:filesystem API 874: 868: 862: 852: 846: 839: 833: 830: 818: 815: 814: 813: 810: 807: 804: 801: 798: 795: 792: 782: 781: 771: 765: 762: 756: 749: 746: 704:function calls 679:virtualization 674: 671: 667: 666: 665: 664: 657: 650: 644: 640:For software: 638: 637: 636: 633: 630: 623: 617: 613:For hardware: 607: 606: 600: 577: 572: 567: 565:Image scanners 562: 556: 522: 500: 489: 484: 479: 474: 472:Video adapters 469: 455: 452: 395:, such as the 380: 377: 362:, and audio). 237: 234: 208: 205: 141: 140: 138: 137: 130: 123: 115: 112: 111: 110: 109: 104: 99: 94: 92:Device drivers 89: 84: 79: 74: 66: 65: 61: 60: 44: 43: 26: 24: 18:Device drivers 14: 13: 10: 9: 6: 4: 3: 2: 2749: 2738: 2735: 2733: 2730: 2728: 2727:Linux drivers 2725: 2723: 2720: 2719: 2717: 2702: 2699: 2695: 2692: 2690: 2687: 2686: 2685: 2682: 2680: 2677: 2675: 2672: 2670: 2667: 2665: 2662: 2660: 2657: 2656: 2654: 2650: 2644: 2641: 2639: 2636: 2634: 2631: 2629: 2626: 2624: 2621: 2619: 2616: 2614: 2611: 2609: 2606: 2604: 2601: 2600: 2598: 2596: 2591: 2587: 2581: 2578: 2576: 2573: 2571: 2568: 2566: 2563: 2561: 2560:Memory paging 2558: 2556: 2553: 2551: 2548: 2547: 2545: 2542: 2537: 2533: 2523: 2520: 2518: 2515: 2513: 2510: 2508: 2505: 2504: 2502: 2500: 2494: 2488: 2485: 2483: 2480: 2478: 2475: 2473: 2470: 2468: 2465: 2463: 2460: 2458: 2455: 2453: 2450: 2447: 2443: 2439: 2436: 2435: 2433: 2429: 2426: 2424: 2420: 2410: 2407: 2405: 2402: 2400: 2399:Device driver 2397: 2396: 2394: 2390: 2384: 2381: 2379: 2376: 2374: 2371: 2369: 2366: 2364: 2361: 2359: 2356: 2354: 2351: 2349: 2346: 2345: 2343: 2341: 2340:Architectures 2337: 2334: 2332: 2328: 2322: 2319: 2317: 2314: 2312: 2309: 2307: 2304: 2302: 2299: 2297: 2294: 2292: 2289: 2287: 2284: 2282: 2279: 2277: 2274: 2273: 2271: 2267: 2261: 2258: 2256: 2253: 2251: 2248: 2246: 2243: 2241: 2238: 2236: 2233: 2231: 2228: 2227: 2225: 2221: 2217: 2210: 2205: 2203: 2198: 2196: 2191: 2190: 2187: 2181: 2178: 2176: 2173: 2171: 2168: 2166: 2163: 2161: 2158: 2157: 2153: 2144: 2141: 2135: 2132: 2126: 2123: 2107: 2100: 2093: 2090: 2077: 2073: 2071: 2066: 2059: 2056: 2043: 2039: 2035: 2029: 2026: 2013: 2009: 2005: 1999: 1996: 1983: 1979: 1975: 1968: 1965: 1952: 1948: 1944: 1938: 1935: 1922: 1918: 1914: 1907: 1904: 1891: 1887: 1883: 1876: 1873: 1860: 1856: 1852: 1846: 1843: 1830: 1826: 1822: 1815: 1812: 1799: 1795: 1791: 1784: 1781: 1768: 1764: 1760: 1753: 1750: 1737: 1733: 1729: 1722: 1719: 1707: 1705:9781931971409 1701: 1697: 1696: 1688: 1685: 1672: 1668: 1667: 1662: 1655: 1652: 1639: 1635: 1633:9781939133045 1629: 1625: 1624: 1616: 1613: 1601: 1597: 1593: 1587: 1584: 1573: 1569: 1562: 1559: 1547: 1543: 1539: 1533: 1530: 1526: 1516:on 2011-06-12 1515: 1511: 1505: 1502: 1497: 1485: 1471: 1469:0-7384-2684-9 1465: 1461: 1460: 1452: 1449: 1445: 1435:on 2010-08-21 1434: 1430: 1429: 1424: 1418: 1415: 1402: 1398: 1394: 1388: 1385: 1374: 1368: 1364: 1363: 1356: 1353: 1341: 1337: 1335:9780324830132 1331: 1327: 1326: 1318: 1315: 1303: 1299: 1295: 1289: 1286: 1281: 1275: 1271: 1264: 1261: 1256: 1254:0-13-142938-8 1250: 1246: 1239: 1236: 1224: 1220: 1214: 1211: 1199: 1195: 1193:9781555581411 1189: 1185: 1184: 1176: 1173: 1161: 1157: 1155:9780470618332 1151: 1147: 1146: 1138: 1135: 1122: 1118: 1114: 1108: 1106: 1102: 1096: 1090: 1087: 1085: 1082: 1080: 1077: 1075: 1072: 1070: 1067: 1065: 1062: 1060: 1057: 1055: 1052: 1050: 1049:Free software 1047: 1045: 1042: 1040: 1037: 1035: 1032: 1030: 1027: 1026: 1021: 1016: 1012: 1008: 1004: 1002: 998: 994: 990: 982: 976: 974: 970: 967: 963: 959: 955: 950: 947: 943: 941: 937: 933: 929: 921: 919: 916: 914: 910: 902: 897: 894: 891: 888: 885: 882: 878: 875: 872: 869: 866: 863: 860: 856: 853: 850: 847: 844: 840: 837: 834: 831: 828: 827:Windows Vista 824: 821: 820: 816: 811: 808: 805: 802: 799: 796: 793: 790: 789: 788: 786: 780: 776: 772: 770: 766: 763: 761: 757: 755: 752: 751: 747: 745: 743: 739: 734: 732: 728: 724: 720: 716: 711: 709: 705: 701: 696: 692: 688: 684: 680: 672: 670: 662: 658: 655: 651: 649: 645: 642: 641: 639: 634: 631: 628: 624: 622: 618: 615: 614: 612: 611: 610: 604: 601: 598: 594: 590: 586: 582: 578: 576: 573: 571: 568: 566: 563: 561: 557: 554: 550: 546: 542: 538: 534: 530: 526: 523: 520: 516: 512: 508: 505: 501: 498: 497:bus mastering 494: 490: 488: 485: 483: 480: 478: 477:Network cards 475: 473: 470: 468: 465: 464: 463: 461: 453: 451: 449: 445: 441: 437: 433: 428: 426: 422: 418: 417:hybrid kernel 414: 410: 406: 402: 398: 394: 390: 386: 378: 376: 374: 370: 367: 363: 361: 357: 353: 349: 348:parallel port 345: 341: 337: 333: 328: 326: 322: 318: 316: 312: 308: 304: 300: 296: 294: 290: 287: 283: 279: 275: 270: 266: 261: 259: 255: 251: 247: 243: 235: 233: 231: 227: 223: 218: 214: 206: 204: 202: 197: 195: 191: 187: 182: 180: 176: 172: 168: 164: 160: 156: 152: 151:device driver 148: 136: 131: 129: 124: 122: 117: 116: 114: 113: 108: 105: 103: 100: 98: 95: 93: 90: 88: 85: 83: 80: 78: 75: 73: 70: 69: 68: 67: 62: 46: 45: 42: 38: 33: 19: 2595:file systems 2487:Time-sharing 2398: 2143: 2138:Denning 1976 2134: 2125: 2115:15 September 2113:. Retrieved 2092: 2082:15 September 2080:. Retrieved 2068: 2058: 2048:15 September 2046:. Retrieved 2037: 2028: 2016:. Retrieved 2007: 1998: 1986:. Retrieved 1977: 1967: 1955:. Retrieved 1946: 1937: 1925:. Retrieved 1916: 1906: 1894:. Retrieved 1886:Ars Technica 1885: 1875: 1863:. Retrieved 1854: 1845: 1833:. Retrieved 1824: 1814: 1802:. Retrieved 1794:Ars Technica 1793: 1783: 1771:. Retrieved 1763:TechRepublic 1762: 1752: 1740:. Retrieved 1731: 1721: 1709:. Retrieved 1694: 1687: 1675:. Retrieved 1666:Ars Technica 1664: 1654: 1642:. Retrieved 1622: 1615: 1604:. Retrieved 1596:dxd.dynax.at 1595: 1586: 1575:. Retrieved 1572:www.dell.com 1571: 1561: 1550:. Retrieved 1541: 1532: 1524: 1518:. Retrieved 1514:the original 1504: 1473:. Retrieved 1458: 1451: 1443: 1437:. Retrieved 1433:the original 1426: 1417: 1405:. Retrieved 1396: 1387: 1376:. Retrieved 1361: 1355: 1344:. Retrieved 1324: 1317: 1306:. Retrieved 1288: 1269: 1263: 1244: 1238: 1227:. Retrieved 1213: 1202:. Retrieved 1182: 1175: 1164:. Retrieved 1144: 1137: 1125:. Retrieved 1116: 1034:Class driver 1007:compile time 986: 969:Linux kernel 956:undermining 954:main factors 951: 948: 944: 939: 925: 917: 906: 859:network card 783: 744:, and VDDs. 735: 731:Daemon Tools 712: 676: 668: 608: 560:file systems 457: 454:Applications 429: 409:input-output 397:Linux kernel 382: 364: 329: 319: 297: 274:manufacturer 262: 239: 210: 198: 186:computer bus 183: 150: 144: 107:Input/output 91: 2613:Device file 2603:Boot loader 2517:Round-robin 2442:Cooperative 2378:Rump kernel 2368:Multikernel 2358:Microkernel 2255:Usage share 1825:How-To Geek 1492:|work= 1428:SourceForge 1397:drivers.com 903:Identifiers 537:floppy disk 487:PC chipsets 482:Sound cards 421:kernel-mode 401:microkernel 236:Development 217:serial port 87:File system 2716:Categories 2543:protection 2499:algorithms 2497:Scheduling 2446:Preemptive 2392:Components 2363:Monolithic 2230:Comparison 2018:5 November 1988:5 November 1957:5 November 1927:5 November 1896:5 November 1865:5 November 1835:5 November 1804:5 November 1773:5 November 1742:5 November 1711:5 November 1677:8 November 1644:5 November 1606:2016-09-19 1577:2020-10-29 1552:2016-09-19 1520:2009-09-08 1475:2011-08-14 1439:2010-08-11 1378:2016-05-03 1346:2020-11-10 1308:2008-03-04 1229:2009-09-17 1204:2016-08-05 1166:2020-11-10 1117:WhatIs.com 1097:References 966:monolithic 879:(IFS) – a 861:driver API 829:and later. 767:Scanners: 758:Printers: 708:interrupts 661:PostScript 648:primitives 627:Video BIOS 413:Windows NT 403:, such as 371:files and 246:privileged 222:16550 UART 97:Networking 77:Interrupts 2633:Partition 2550:Bus error 2477:Real-time 2457:Interrupt 2383:Unikernel 2348:Exokernel 1978:TechRadar 1566:Dell US. 1494:ignored ( 1484:cite book 1407:March 19, 1298:Microsoft 962:isolation 529:hard disk 519:keyboards 504:bandwidth 460:interface 425:user-mode 356:sequencer 299:Microsoft 254:user mode 230:abstracts 201:interrupt 171:interface 167:automaton 2679:Live USB 2541:resource 2431:Concepts 2269:Variants 2250:Timeline 2106:Archived 2076:Archived 2042:Archived 2012:Archived 1982:Archived 1951:Archived 1921:Archived 1917:PC Gamer 1890:Archived 1859:Archived 1829:Archived 1798:Archived 1767:Archived 1736:Archived 1671:Archived 1638:Archived 1600:Archived 1546:Archived 1401:Archived 1340:Archived 1302:Archived 1223:Archived 1198:Archived 1160:Archived 1127:19 March 1121:Archived 1054:Firmware 1022:See also 1011:run time 993:security 936:exploits 922:Security 605:adapters 513:such as 467:Printers 242:platform 175:hardware 163:computer 102:Security 2674:Live CD 2628:Journal 2592:access, 2590:Storage 2467:Process 2373:vkernel 2240:History 2223:General 1423:"CCISS" 1064:Makedev 1015:Denning 973:commits 909:PCI bus 785:Solaris 773:Video: 539:buses ( 521:, etc.) 344:Makedev 340:modules 207:Purpose 194:routine 190:calling 2482:Thread 2353:Hybrid 2331:Kernel 1702:  1630:  1466:  1369:  1332:  1276:  1251:  1190:  1152:  845:driver 597:Z-Wave 595:, and 593:Zigbee 589:Thread 535:, and 533:CD-ROM 491:Local 462:with: 389:kernel 336:kernel 159:device 2684:Shell 2623:Inode 2109:(PDF) 2102:(PDF) 2008:ZDNET 913:bytes 851:(WDM) 838:(WDF) 775:Vidix 727:iSCSI 654:TWAIN 493:buses 405:Minix 373:Linux 352:mixer 332:Linux 325:macOS 321:Apple 153:is a 2245:List 2117:2022 2084:2022 2050:2022 2020:2022 1990:2022 1959:2022 1929:2022 1898:2022 1867:2022 1837:2022 1806:2022 1775:2022 1744:2022 1713:2022 1700:ISBN 1679:2022 1646:2022 1628:ISBN 1496:help 1464:ISBN 1409:2018 1367:ISBN 1330:ISBN 1274:ISBN 1249:ISBN 1188:ISBN 1150:ISBN 1129:2018 1089:udev 930:and 928:bugs 817:APIs 769:SANE 760:CUPS 742:VLMs 738:VxDs 723:disk 603:IrDA 549:SCSI 545:SATA 515:mice 502:Low- 438:and 369:.sys 226:FTDI 149:, a 2701:PXE 2689:CLI 2669:HAL 2659:API 2462:IPC 1732:MUO 695:Xen 683:DOS 553:SAS 541:ATA 507:I/O 440:ARM 436:x86 423:or 360:dsp 330:In 267:or 173:to 165:or 2718:: 2444:, 2104:. 2074:. 2067:. 2040:. 2036:. 2010:. 2006:. 1980:. 1976:. 1949:. 1945:. 1919:. 1915:. 1888:. 1884:. 1857:. 1853:. 1827:. 1823:. 1796:. 1792:. 1765:. 1761:. 1734:. 1730:. 1669:. 1663:. 1636:. 1598:. 1594:. 1570:. 1544:. 1540:. 1523:. 1488:: 1486:}} 1482:{{ 1442:. 1425:. 1395:. 1338:. 1296:. 1196:. 1158:. 1115:. 1104:^ 1003:. 938:. 777:, 740:, 733:. 599:). 591:, 587:, 551:, 547:, 543:, 531:, 517:, 427:. 358:, 354:, 2538:, 2448:) 2440:( 2208:e 2201:t 2194:v 2119:. 2086:. 2052:. 2022:. 1992:. 1961:. 1931:. 1900:. 1869:. 1839:. 1808:. 1777:. 1746:. 1715:. 1681:. 1648:. 1609:. 1580:. 1555:. 1498:) 1478:. 1411:. 1381:. 1349:. 1311:. 1282:. 1257:. 1232:. 1207:. 1169:. 1131:. 983:. 663:) 656:) 629:) 555:) 134:e 127:t 120:v 34:. 20:)

Index

Device drivers
Driver (software)
Operating systems
Process management
Interrupts
Memory management
File system
Device drivers
Networking
Security
Input/output
v
t
e
operating system
computer program
device
computer
automaton
interface
hardware
operating systems
computer bus
calling
routine
interrupt
operating systems
serial port
16550 UART
FTDI

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑