11.07.2015 Views

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

systems programming 465network facilities, program language compilers <strong>and</strong> others<strong>of</strong>tware development tools, utilities, <strong>and</strong> device drivers.However, systems programmers can also work for applicationsdevelopers to help them interface their programs tothe operating system or to devices (see device driver <strong>and</strong>applications programming interface).Modern operating systems are highly complex, so systemsprogrammers tend to specialize in particular areas.These might include device drivers, s<strong>of</strong>tware developmenttools, program language libraries, applications programminginterfaces (APIs), <strong>and</strong> utilities for monitoring systemconditions <strong>and</strong> resources. Systems programmers developthe infrastructure needed for networking, as well as multiple-processorcomputers <strong>and</strong> distributed computing systems.Systems programmers also play a key role when anapplication program must be “ported” to a different platformor simply modified to run under a new version <strong>of</strong> theoperating system.Generally, an application programmer works at a fairlyhigh level, using language functions <strong>and</strong> APIs to have theprogram ask the operating system for services such as loadingor saving files, printing, <strong>and</strong> so on. The systems programmer,on the other h<strong>and</strong>, must be concerned with theinternal architecture <strong>of</strong> the system (such as the buffers allocatedto hold various kinds <strong>of</strong> temporary data) <strong>and</strong> withhow comm<strong>and</strong>s are constructed for disks <strong>and</strong> other devices.Generally, the systems programmer must also have a morethorough knowledge <strong>of</strong> data structures <strong>and</strong> how they arephysically represented in the machine as well as the comparativeefficiency <strong>of</strong> various algorithms. Because it determineshow efficiently the system’s resources can be used,systems programming must <strong>of</strong>ten be “tight” <strong>and</strong> optimizedfor peak performance. Thus, although lower-level assemblylanguage is no longer used for much applications programming,it can still be found in systems programming.Further ReadingBeck, Lel<strong>and</strong> L. System S<strong>of</strong>tware: An Introduction to Systems Programming.3rd ed. Reading, Mass.: Addison-Wesley, 1996.Hart, Johnson M. Windows System Programming. 3rd ed. UpperSaddle River, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2004.Love, Robert. Linux System Programming. Sebastapol, Calif.:O’Reilly Media, 2007.Robbins, Kay A., <strong>and</strong> Steven Robbins. UNIX Systems Programming.Upper Saddle River, N.J.: Prentice Hall PTR, 2003.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!