Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Good books for systems programming

  1. Jul 20, 2005 #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 any one recommend one?
     
  2. jcsd
  3. Jul 20, 2005 #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 theres 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.
     
  4. Jul 22, 2005 #3
    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.
     
  5. Jul 24, 2005 #4
    It seems like hes 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.
     
  6. Jul 25, 2005 #5
    A normal desktop computer.
    OS? Windows or Linux, whichever is cheaper and easier.

    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.
     
  7. Jul 25, 2005 #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 definitly 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: Jul 25, 2005
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: Good books for systems programming
Loading...