Software Engineers Handbook/Operating Systems/Linux

Things encountered on Linux

  • GCC
  • Makefiles
  • Tarballs
  • Bash Scripts
  • Free Software Licences
  • Packaging Systems (e.g. deb)
  • Versioning Systems (e.g. CVS, Subversion)

Free Software LicencesEdit

Due to Linux's origins you will find that a lot of packages available for it use various types of free licenses. It is important that you pay attention to these if you are going to be using the code for any further development.


A term referring to a package stored as a file with the extension tar.gz these are often used for distributing source files. They perform a similar function to a zip file.


A text file used by the make program to create a program. The script used to make a program uses the form

programĀ : codefiles
 command to build

The script

  rm -f objectfiles program

tells make what to delete when the command make clean is invoked.

Versioning SystemsEdit

In open development processes many people may be working on the same codebase. To ease the complexity of co-ordinating development the code is sometimes stored in a versioning system. This usually consists of a central repository where developers can "check out" (like you check a book out of a library) pieces of code to work on they then work on it and their changes are merged back in when they have finished.