An operating system sits on top of hardware specific drivers. An OS is much like a government, it is responsible to allocate and deallocate resources as application program need them. An OS also provides common interfaces for applications to utilize resources.
An operating system makes use of hardware specific drivers so that it does not need to worry about the differences between hardware components of the same category. For example, to an OS, the difference between an ATI graphics card and an nVidia graphics card is not important. This is because the vendors of both graphics card supply the necessary hardware specific drivers to “hide” the differences. The drivers supply a common interface to the OS despite the differences of the graphics cards.
An OS also includes components that are not directly related to hardware. For example, most OSs include a number of file systems, such as FAT, FAT32, NTFS and etc. A file system does not care what kind of drive is being used, but it determines how data is stored on the drive.
Other components of an OS include one or more network stacks. The common networking stack is the TCP/IP stack. Again, this component is insensitive to the actual NIC hardware because the drivers of different NICs present a common interface to the OS. A TCP/IP stack implements the logic of network communication using TCP/IP.
Similarly, most modern OSs support USB stacks and Bluetooth stacks. Each stack is essentially an implementation of the respective published standards. These stacks rely on hardware specific USB hub drivers and hardware specific Bluetooth drivers.
With an OS, hardware specific drivers and hardware, a computer can finally create and delete files, communicate with another computer via the NICs, and be able to read/write disks. However, a computer is still fairly useless only with an OS.