CITS2002 Systems Programming  
next CITS2002 CITS2002 schedule  

Systems Programming and Portability

In this unit we've focused on system programming - understanding the interface between the operating system and application programs.

Operating systems are the best examples of programs that need to be aware of hardware's specifications and limitations, and to successfully hide as much of this detail from potential applications through good software engineering practices.

If the operating system, itself, has any chance of being ported to different architectures, its own implementation must identify and isolate its hardware dependencies.

Unix, the historic forefather of Linux and macOS (and many others), was the first portable operating system, reimplemented in C to support its migration from early Digital Equipment Corp (DEC). minicomputers. C itself was invented specifically for the purpose of enabling Unix to be portable.

We here at Bell Laboratories were truly dumfounded when this visitor from an unknown school in Australia reported his elegant procedure. Doug McIlroy, Head Unix Research Group, Bell Laboratories


Today, of course, we see Linux ported to nearly every form of contemporary architecture because:

  • hardware-dependent code has been identified and isolated,

  • software abstractions and application-programming interfaces hide hardware characteristics from applications, and

  • successful applications do not introduce, or depend upon, any hardware dependencies.

 


CITS2002 Systems Programming, Lecture 22, p1, 16th October 2023.