Jump to content
  • Advertisement
Sign in to follow this  
Josheir

software and hardware interaction

This topic is 617 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I would like to gain a some knowledge on the control of hardware, say a monitor interacting from an operating system,  What is the lowest level like and how does the software do this?

 

 

Thank you,

Joshua

 

Share this post


Link to post
Share on other sites
Advertisement

Do you have a particular piece of hardware you'd like to interact with?

Are you trying to make an OS?

Depending on what you want to do a good place to begin might be the Windows DDK (driver development kit).

Alongside the DDK data sheets and programming guides for certain chips that are in certain products would be a good read.

Another good place to start might be OS programming websites, or old DOS based programming books/sites since the OS didn't protect hardware access.

Become familiar with terms like interupts, DMA, MMIO, and I./O address space.

 

But basically reading and writing to special registers and memory areas which are mapped to the CPU address space is how its done.  But each piece of hardware is different in how its controlled.  For example AMD video cards are controlled differently than nvidia video cards and USB ports are still different to both those (and different brands of USB are different.

Share this post


Link to post
Share on other sites
Try taking a look at some sites like osdev.org, which will provide you with a wealth of information and even source code as low level as it's possible to go without creating your own hardware or flashing the bios with your own code (neither really recommended these days).

Let me know if this helps!

Share this post


Link to post
Share on other sites

Thank you everyone I'm not developing an OS just interested.  What I'm wondering now is how a software program's command result becomes a digital signal to the semiconductor?

 

 

Thanks again,

Joshuae

Share this post


Link to post
Share on other sites

Anything your high-level program does is never interpreted directly by hardware in a modern system.

Even what you visualise as machine code opcodes are just handled by microcode, interpreted at some level within the cpu to a more pure form...

A modern pc is like a huge game of "Chinese whispers", where each layer whispers a command to the next which is reinterpreted into a more suitable form.

Assuming you're running a c++ program on Windows 10, there are probably about 15 layers between you and the hardware. If you're executing .NET CIL code, many more layers exist on top of that.

It's important to only concern yourself with the layers that immediately concern what you want to achieve as there's many man-centuries of code and computer science between you and that discrete electronic signal bouncing around transistors.

Hope this helps!

Edited by Brain

Share this post


Link to post
Share on other sites

what I mean is the signal from the programming command to the actual computer.  Maybe this is a different answer.  I am at the level of how does a command turn into any sort of electronic signal.

 

Thank you,

JoshuaE

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!