Good books for systems programming

In summary, the conversation discusses the need for a good book on systems programming and driver development for interacting with external devices. The conversation mentions some possible resources such as books on Linux drivers and the DDK for Windows. It also suggests looking into the BASIC Stamp for embedded chip development and provides some tips for writing device drivers. The conversation ends with a recommendation for the book "Writing Windows WDM Device Drivers" and an offer to share additional resources on writing drivers.
  • #1
sid_galt
502
1
I need a good book for systems programming. Basically how to build drivers and programs on the computer using languages(preferable C) to interact with an outside devices like joysticks or to control things like motors, etc. Can anyone recommend one?
 
Computer science news on Phys.org
  • #2
Well, since no one has responded I'll give you my 2 cents. I've never programmed drivers, but I'd imagine writing them well is mainly all about having good documentation about the hardware as well as the OS. Without it, its pretty difficult to program a good driver. From there, I would just take a 'skeleton' of a similar driver I'd want to implement if I could get the source code. A good source for this is drivers in the Linux kernel source. There you have all types of drivers from basic disk drivers even to things like HAM radio drivers, and even a few video drivers. No ATI/Nvidia source though :-)

This looks like a good one from O'Reilly on Linux Drivers: http://www.oreilly.com/catalog/linuxdrive3/

In the windows world there's the DDK (Driver Development Kit) which has decent documentation on MSDN, which I have copy of with Visual C++ .NET 2003.

When writing a driver for either Windows or Linux, keep in mind that you are in kernel mode and can potentially crash the system or cause it to become unstable. Bad drivers are #1 cause of crashes these days on both Windows and Linux.

BTW joysticks/mice are pretty simple and seen like a good place to start.
 
  • #3
sid_galt said:
I need a good book for systems programming. Basically how to build drivers and programs on the computer using languages(preferable C) to interact with an outside devices like joysticks or to control things like motors, etc. Can anyone recommend one?

What kind of computer? What OS? Details!

If you want to write software that runs on an embedded chip and interacts with hardware devices, Check out BASIC Stamp -- which can be bought at Radio Shack. The starting kit is under $100.00. You can hook motors up to this kit as it is extendible. It supports assembly language and C, and can be interfaced from your Windows based PC.

If you want to write device drivers for MS-Windows, there are plenty of books on the subject.

As for interacting with mouse and joysticks, there are standard API calls for Windows and Linux.
 
  • #4
SteveRives said:
As for interacting with mouse and joysticks, there are standard API calls for Windows and Linux.

It seems like he's more interested in knowing the details of how those drivers are implemented (which actually isn't that interesting for those simple devices) rather than knowing how to use them.
 
  • #5
SteveRives said:
What kind of computer? What OS? Details!
A normal desktop computer.
OS? Windows or Linux, whichever is cheaper and easier.

If you want to write software that runs on an embedded chip and interacts with hardware devices, Check out BASIC Stamp -- which can be bought at Radio Shack. The starting kit is under $100.00. You can hook motors up to this kit as it is extendible. It supports assembly language and C, and can be interfaced from your Windows based PC.

Something like that. Specifically, how to create device drivers for a hardware device so that one can simply plug in the hardware device, install the drivers and use it.
 
  • #6
hmm I guess you want to write drivers for windows NT os
hmm you should look on amazon for WDM just type it in a search
and it will find you some good resources, but of course you have to remember that without an assembly language there is no drivers and also they're really difficult to write.
http://www.freewebs.com/four-f/
here is the tutorial for writing kernel drivers in masm, its rather for malware coders but of course its all about drivers

Writing Windows Wdm Device Drivers: Covers Nt 4, Win 98, and Win 2000
you should definately buy this book if you think of writing a windows drivers
for more resources just like i said before look at amazon WDM
ciao

w8 i forgot to say, if you want to you may msg me and a send you some good resources on writing drivers under winnt you may even learn a lot from them but i think its usually better for beginers to buy a paper book and learn from it the basics or something more than that and then look for the resources on the net
ciao
 
Last edited by a moderator:

1. What is systems programming?

Systems programming is a branch of computer science that involves creating and managing the low-level software that runs on a computer system, such as operating systems, device drivers, and programming languages.

2. Why is it important to read good books for systems programming?

Good books for systems programming provide comprehensive and in-depth knowledge about the underlying principles and techniques used in this field. They can also help improve your programming skills and understanding of complex systems.

3. What are some popular books for systems programming?

Some popular books for systems programming include "The C Programming Language" by Brian Kernighan and Dennis Ritchie, "Operating Systems: Three Easy Pieces" by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, and "Modern Operating Systems" by Andrew S. Tanenbaum and Herbert Bos.

4. Are there any recommended books specifically for beginners in systems programming?

Yes, there are several books recommended for beginners in systems programming, such as "Introduction to Systems Programming" by Leland L. Beck, "Systems Programming: Designing and Developing Distributed Applications" by John J. Donovan, and "Systems Programming" by John J. Donovan and Martin P. Reilly.

5. Can I learn systems programming from online resources instead of books?

While online resources can be helpful in learning systems programming, books provide a more structured and comprehensive approach to understanding the subject. Books also often include exercises and examples that can aid in the learning process. It is recommended to use a combination of both books and online resources for the best learning experience.

Similar threads

  • Computing and Technology
Replies
9
Views
1K
  • Computing and Technology
2
Replies
44
Views
3K
Replies
26
Views
2K
  • STEM Academic Advising
Replies
12
Views
1K
Replies
4
Views
1K
  • Programming and Computer Science
Replies
1
Views
835
Replies
19
Views
2K
  • STEM Academic Advising
Replies
3
Views
904
Replies
4
Views
1K
  • Programming and Computer Science
Replies
8
Views
1K
Back
Top