Main

Week 3 notes

1. Linking

This week we will study in more depth the process of going from source code to an executable binary, with an emphasis on the last stage -- linking. While this is explained in terms of the ELF format used in many Unix environments, the concepts are similar across binary representations and operating systems.

Slides (PDF, PDF-6up).

2. Unix shell programming

When you work "on the command line" or Unix shell, you are programming the operating system using one of a number of languages that most Unix OS's support. In this class, we focus on one of those languages, bash, but you should feel free to explore others as you get more experienced.

Bourne shell (sh) is a shell, or command-line interpreter, for computer operating systems. It was developed by Stephen Bourne at Bell Labs and released in 1977.

Reference: Getting started with bash

  • Bash (the Bourne-Again shell) was later developed for the GNU project. Bash incorporates features from the Bourne shell, csh, and ksh.
  • Important concepts:
    • Variables: environment and local
    • Input and output redirection
    • Pipes
    • Signals
    • Operators
    • Control flow (conditionals, loops)
  • Examples

Green Marinee theme adapted by David Gilbert, powered by PmWiki