This course offers a hands-on introduction to UNIX, the operating system that helped build the Internet.
Programmers, researchers, Webmasters, students, and many other people around the world use UNIX.
This course is the second in this series. UNIX Fundamentals II assumes you have taken the prerequisite course,
UNIX Fundamentals I, or have equivalent background in UNIX.
You must be familiar with at least one other operating system, such as Macintosh, DOS, or Windows.
You also must be able to perform common computing tasks, such as moving, copying, creating, and printing files.
As an open-source operating system, UNIX made its history during two decades from 1969 to 1989.
The openness of UNIX, which brought different groups of developers together to communicate their developing ideas cultivated
an excellent generation of operating system developers.
We should remember these names:
- Dennis M. Ritchie,
- Ken Thompson,
- Robert S. Fabry,
- William N. Joy,
- Chuck Haley,
- Samuel J. Lefflerand, and
- Doug Burks.
The first two made their contribution to the premier UNIX System series and were honored by the ACM Turing Award in 1983 because of their work in UNIX,
and the latter four did their great work on the primary UNIX BSD versions.
Just as they made the earlier UNIX code open to the academic world and strived to move UNIX from one machine to another, UNIX grew and evolved. And
even more, it left a lot of valuable academic papers about operating systems for the successors.
For its development process as an intact software system, UNIX, which presented solutions in detail, is unchallenged for generations of programmers.
Compared to UNIX, its commercial counterparts usually provide a perfect environment that hides almost all the development details of lower levels of
operating systems, which may leave a limited space for application programmers and also confine their imagination and creativity.
This tendency can also affect the ability of system development newcomers to develop an intact software system that can handle software as well as hardware by restricting
the field of vision to some detached modules or applications so as to result in software maintenance costly and complicated.
Further, just understanding the theory of operating systems, readers cannot image and understand well how the operating system works. With UNIX
as a real case, readers can map the abstract algorithms, mechanisms and strategies of operating system theory into the real modules, functions and
programs of UNIX implementation one-to-one.
The abstract theory
can be exemplified. In this way, as the promising programmers, readers can understand well and master these algorithms and mechanisms,
practice them in their own development, and stimulate novel algorithms and mechanisms that
may be more effective and efficient to their own context.