.sys is a filename extension used in MS-DOS applications and Microsoft Windows operating systems. They are system files that contain device drivers or hardware configurations for the system.
Most DOS .sys files are real mode device drivers.[1] Certain files using this extension are not, however:
In Windows Vista and its successors, the .sys files are mainly found under the following paths:[7]
C:\Windows\system32\drivers
C:\Windows\WinSxS
In MS-DOS, the file named MSDOS.SYS is used to copy the system files from one drive to another, allowing the second drive to be bootable. MSDOS.SYS is located in the root directory of the bootable drive/partition (normally C:\ for hard disks) and has the hidden, read-only, and system file attributes set.
Paul, Matthias R. (2001-12-30). "KEYBOARD.SYS internal structure". comp.os.msdos.programmer. Archived from the original on 2017-09-09. Retrieved 2016-09-17. [...] In fact, the format is basically the same in MS-DOS 3.3 - 8.0, PC DOS 3.3 - 2000, including Russian, Lithuanian, Chinese and Japanese issues, as well as in Windows NT, 2000, and XP [...]. There are minor differences and incompatibilities, but the general format has not changed over the years. [...] Some of the data entries contain normal tables [...]. However, most entries contain "executable code" interpreted by some kind of P-code interpreter at *runtime*, including conditional branches and the like. This is why the KEYB driver has such a huge memory footprint compared to table-driven keyboard drivers which can be done in 3 - 4 Kb getting the same level of functionality except for the interpreter. [...]
Mendelson, Edward (2001-07-20). "How to Display the Euro in MS-DOS and Windows DOS". Display the euro symbol in full-screen MS-DOS (including Windows 95 or Windows 98 full-screen DOS). Archived from the original on 2016-09-17. Retrieved 2016-09-17. [...] Matthias [R.] Paul [...] warns that the IBM PC DOS version of the keyboard driver uses some internal procedures that are not recognized by the Microsoft driver, so, if possible, you should use the IBM versions of both KEYB.COM and KEYBOARD.SYS instead of mixing Microsoft and IBM versions [...]
(NB. What is meant by "procedures" here are some additional byte codes in the IBM KEYBOARD.SYS file not supported by the Microsoft version of the KEYB driver.)