Device drivers and Windows – Stack Overflow
I’m making an attempt to finish the image of how the PC and the OS interacts collectively. And I’m at level, the place I’m little out of guess in relation to machine drivers.
Please, don´t write issues like its too sophisticated, otherwise you don´t have to know when utilizing excessive programming laguage and winapi features. I wish to know, it´s for examine functions.
So, the very fundamental construction of how OS and PC (by PC I imply after all HW) is how I see it’s that every one apart from direct CPU instructions, which might CPU do on itself (arithmetic operation, its registers entry and reminiscence entry) should move via OS. Primarily becouse from ring degree three you can not use out and in intructions that are used for acesing different HW. I do know that there’s MMIO,nevertheless it should be set by port comunication first.
It was not like this on a regular basis. Even I’m bit younger to recollect MSDOS, I do know you would entry HW immediately, becouse there ws no limitation, no ring mode. So you would to jot down string to diplay use wheather DOS perform, or immediately acess video card reminiscence and write it by your self.
However as OS developed, there isn’t any longer this risk. However it’s tremendous, since OS now handles all of the HW comunication, and admittedly it extra convinient and way more secure (I might say the one possibility) in multitasking setting. So nowdays you rather than utilizing int directions to make use of BIOS mapped perform or DOS perform you name dll which internally than handles the whole lot you don´t have to find out about.
I perceive this. I additionally undrstand that machine drivers is the piece of code that runs in ring degree 0, so it might probably do all of the HW interactions. However what I don´t perceive is connection between OS and machine driver. Let´s take a instance – I wish to make a sound card make a sound. So I name home windows API to acess sound card, however what occurs than? Does home windows name machine drivers to take action?
But when it does name machine driver, does it imply, that every one machine drivers which might be referred to as by winAPI perform, should have routines named in some particular approach? I imply, when I’ve new sound card, should its drivers have features named identical because the outdated one? So Home windows can really name the identical perform from its perspective? But when Home windows have predefined units of features requored by machine drivers, that it can not use new drivers that doesent existed earlier than final model of OS got here out.
Please, assist me perceive this mess. I’m actually getting mad. Thanks.