Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Someone asked me when someone presses key "A", how does a PC recognizes which key is pressed? I don't actually know and I don't think it's important for a programmer to know. However, this triggered other questions in my head!

For example, What is a file? Is it a group of strings or something related to the hard-desk?

Where is the line between software and hardware? I mean, there are situations where you should know as a programmer when the CPU is executing your program, or it is waiting for data from Memory, or that it is waiting for the Hard-desk to finish a writing operation etc.

Even if a programmer shouldn't care about such matters, it would be really satisfying to understand how things are working.

I wasn't successful in searching the web. Maybe I'm not using the right keywords. How should I approach clarifying these issues? Any recommended book?


migration rejected from stackoverflow.com Sep 1 '13 at 9:09

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as unclear what you're asking by gnat, GlenH7, MichaelT, Michael Kohne, Bart van Ingen Schenau Sep 1 '13 at 9:09

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question.If this question can be reworded to fit the rules in the help center, please edit the question.

comments disabled on deleted / locked posts

1 Answer

up vote 1 down vote accepted

Operating System Concepts by Silberschatz is one of the main textbook studied in operating system courses and it covers all the topics you asked about. Also you may try searching Linux kernel modification or modifying Linux scheduler.

add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.