Notes on Slides
These slides were developed for the Introduction to UNIX
Software Development course offered at MIT during IAP 1996.
They are meant to be used both as slides to complement the lecture
and also as a reference. As a result, their structure is more
an outline than a tutorial. The outline for this course was developed
by
Erik Nygren (nygren@mit.edu)
and
Mike Whitson (mwhitson@mit.edu)
for IAP '95 and was revised and converted to HTML by Erik Nygren.
Why Software Development Environments?
- Simplify the development of scalable and maintainable applications
ranging from small utilities to massive systems
- It would be possible to have everything in one big .c file, but this
would make it more difficult to maintain and recompile
- Enables team development efforts
UNIX as a programming environment (compared to
integrated environments under Windows or the MacOS)
Advantages of developing under UNIX
- powerful
- less GUI
- portability
- tons of features added over many years
Disadvantages
- less GUI (intimidating)
- steep learning curve
- tons of features added over many years
What we plan to cover
- This course will primarily cover C as it is the most widely
used language under UNIX. Many of these techniques apply
to other programming languages, such as C++, and even
to word processing with LaTeX
- The compilation process
- C programming with multiple files
- Some tools to make life easier
- Makefiles to automate processes like compiling
- Using RCS to manage revisions and lock files
- Build trees and multi-platform support
- Emacs as an integrated environment
We'll cover GNU versions (where available)
- GNU software is all freely available
(source
on prep.ai.mit.edu in /pub/gnu)
- Superset/subset of what's offered by vendors
- Available for almost all platforms and OS's so portable
![[BACK]](images/back.gif)
Prepared by
Erik Nygren (nygren@mit.edu)
and
Mike Whitson (mwhitson@mit.edu)