Distributed Networks Distributed Networks

Unix Concepts   «Prev  Next»
Lesson 1

Introduction to Advanced Unix Concepts

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.

Course objectives

After completing the course, you will be able to:
  1. Perform additional file management tasks, such as finding files and copying directories
  2. Create and manage aliases
  3. Customize your UNIX environment
  4. Use regular expressions to search for text
  5. Perform advanced editing tasks using vi
  6. Manage disk space by compressing and archiving files
  7. Use ftp to send and retrieve 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:
  1. Dennis M. Ritchie,
  2. Ken Thompson,
  3. Robert S. Fabry,
  4. William N. Joy,
  5. Chuck Haley,
  6. Samuel J. Lefflerand, and
  7. 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.