CITS2002 Systems Programming  
prev
next CITS2002 CITS2002 schedule  

Systems-focussed Standards

In this unit we'll introduce a number of standards relevant to systems programming. Formal standards are used to define nearly all aspects of computing, notably data-representations, file-formats, programming-languages, networking protocols, web (communication) interfaces, and encryption and authentication.

Formal standards in computing are often very large. For example, the formal standard for the C11 programming language (used in this unit) is 660 pages. You are not expected to understand these standards in depth (they will not be examined), but as part of professional development you're encouraged to skim them for an appreciation of their role in computing.

Standards discussed in this unit

  • C11 - the ISO/IEC 9899:2011 programming language standard standardizes a set of features supported by common contemporary compilers, such as gcc and clang. In this unit we focus on C11, despite it being superseded by C17 (standard ISO/IEC 9899:2018), because C11 is widely supported in the computing environments you'll use (and C17 is not yet widely supported).

  • POSIX - the Portable Operating System Interface is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines the both system- and user-level application programming interfaces (API), along with command line shells and utility interfaces [Wikipedia].

    While POSIX is often associated with open-source systems (such as Linux), the first POSIX-certified system was Microsoft's Windows-NT v3.5 in 1999!

 


CITS2002 Systems Programming, Lecture 1, p3, 24th July 2023.