Thread: What is system programming?

  1. #1
    Registered User
    Join Date
    Aug 2009
    Posts
    21

    What is system programming?

    I am learning C as a hobby and it looks like the goal of beginner tutorials is to create simple applications, which is fine to understand how the language works.

    However, C is supposedly mainly targeted toward systems programming, but I don't really know what this means.

    As a hobby, what can I do in systems programming? examples? is it just things like writing device drivers, editing operating system code etc?

    Does anyone here do systems programming for fun? what sort of programs do you write?

  2. #2
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by hellogamesmaste View Post
    However, C is supposedly mainly targeted toward systems programming, but I don't really know what this means.

    As a hobby, what can I do in systems programming? examples? is it just things like writing device drivers, editing operating system code etc?
    The answer to the last question is yes, that is the general realm of systems programming (hardware and OS).

    However, in terms of "things you can try" in C you are not limited to just system programming. Compilers and interpreters are written in C more often than anything else, ha ha ha. Obviously, networking is also common.

    It is important to understand that because of the nature, and perhaps history, of C, there is not really anything that is not possible to do with it, it is just a question of how much work you will have to do. The greater the extent of existing libraries to assist you in your goal is the major factor in this question.

    But that is pretty well covered. I've been programming in C for a little over a year, and two of the big "popular" API's that I got into to some extent were gtk, which is GUI stuff, and openGL. The basic GL library is actually a C API, altho people seem to associate 3D graphics with C++. I have noticed a significant percentage of cross-platform libraries with multiple language bindings are actually written in C, and then "wrapper" API's are added on for the other languages. Like, probably most common multi-language libraries are exactly that.

    AFAIK C is just a nice lite, very fast, very portable computer language. That's why people use it to do systems programming, which everything else is usually built on top of (in this sense C is the most portable language). But mostly it is up to you to decide what to do with it.
    Last edited by MK27; 08-19-2009 at 03:59 AM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  3. #3
    Registered User
    Join Date
    Sep 2008
    Location
    Toronto, Canada
    Posts
    1,834
    Quote Originally Posted by hellogamesmaste View Post
    Does anyone here do systems programming for fun? what sort of programs do you write?
    Systems programming is mostly what you said: underlying operating system processes... things that support the development of applications for the vast majority of programmers.

    I write stuff for fun all the time. Things other people may not regard as fun. Custom data base low-level I/O routines, memory management tools, custom interpreters for newly developed specialized languages, machine emulators, that sort of stuff. Not sure if those would normally qualify as mere 'simple applications'. Many of these are destined to be libraries for future tools (at least I hope they'll have longevity)... or they may just be exercises for my personal amusement. You never know. I've written a Rubik's Cube solver-script interpreter, only to discover that a year later I could use most of that code in a general purpose interpreter for an automated intranet webpage builder suite. Saved me at least 3 weeks of development time.

    At work, usually, unfortunately, I don't get to exercise my brain cells all that much. I end up writing quickie 'tools' - data crunchers. So that's why I tend to get interested in so-called systems stuff and the theories and algorithms they may need when I'm on my own time.
    Last edited by nonoob; 08-19-2009 at 04:21 PM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. File System Implementation
    By dodgeviper in forum C Programming
    Replies: 9
    Last Post: 11-16-2007, 01:04 PM
  2. Using system icons
    By @nthony in forum Windows Programming
    Replies: 1
    Last Post: 01-13-2007, 07:56 PM
  3. Linux database system needed
    By BobS0327 in forum Tech Board
    Replies: 7
    Last Post: 06-11-2006, 03:56 PM
  4. BIOS system and memory allocation problem
    By beely in forum Tech Board
    Replies: 9
    Last Post: 11-25-2003, 07:12 AM
  5. Number system base M, print numbers N digits wide...
    By biterman in forum C Programming
    Replies: 12
    Last Post: 11-19-2001, 04:31 AM