Good books for systems programming

AI Thread Summary
For systems programming, particularly in driver development using C, it's crucial to have comprehensive documentation on both the hardware and the operating system. Recommended resources include the O'Reilly book on Linux Drivers and the Windows Driver Development Kit (DDK), which provides essential guidance. Beginners are advised to start with simpler devices like joysticks and mice, utilizing standard API calls for interaction. Additionally, for embedded systems, the BASIC Stamp kit offers a practical starting point for interfacing with hardware. Overall, acquiring foundational knowledge through books is beneficial before exploring online resources.
sid_galt
Messages
502
Reaction score
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
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.
 
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.
 
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.
 
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.
 
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:
Thread 'ChatGPT Examples, Good and Bad'
I've been experimenting with ChatGPT. Some results are good, some very very bad. I think examples can help expose the properties of this AI. Maybe you can post some of your favorite examples and tell us what they reveal about the properties of this AI. (I had problems with copy/paste of text and formatting, so I'm posting my examples as screen shots. That is a promising start. :smile: But then I provided values V=1, R1=1, R2=2, R3=3 and asked for the value of I. At first, it said...
Sorry if 'Profile Badge' is not the correct term. I have an MS 365 subscription and I've noticed on my Word documents the small circle with my initials in it is sometimes different in colour document to document (it's the circle at the top right of the doc, that, when you hover over it it tells you you're signed in; if you click on it you get a bit more info). Last night I had four docs with a red circle, one with blue. When I closed the blue and opened it again it was red. Today I have 3...
Back
Top