Unix Concepts   «Prev 

Unix Course Project Background

In the project that began in UNIX Fundamentals I you are a product manager at eCyberCom Software (ECS), a mid-sized technology company. Your division includes several departments. These departments are Engineering, Documentation, Quality Assurance (QA), and Marketing, working together to deliver the next release of software.
As a product manager, your job is to ensure successful workflow among the teams so that the product can be delivered on time and on budget.
Your boss agrees with you that communication among teams is key. She also believes an internal Web site for the project will help. Working with the Information Systems (IS) group, your boss has obtained disk space on the company's intranet, which runs on a UNIX system. She has asked you to implement and maintain the Web site.
What will you do?
There is a spare computer terminal in one of the ECS labs. Using this terminal, you will be able to connect to the UNIX system that hosts the company intranet. To create your internal Web site, you will need basic knowledge of UNIX which will include:

General Survey of UNIX Development

Observing different versions of UNIX emerging, you will realize that it is in a process of constant development, amendment and enhancement. In this process, the thoughts of UNIX developers were adjusted and enriched with the development of computer hardware and peripherals, along with the proposal of new application demands. It resulted in UNIX being moved to execute on different hardware platforms and projects, which also made the portability and scalability of UNIX essential to the theory of operating systems. UNIX drew on a lot of ideas of the earlier operating systems, and its openness made the prototyping expand into different UNIX versions and different groups of developers. For a new programmer, it is also necessary to derive the development thoughts and experiences of precursors.
By learning from the precursors, newcomers can enrich their knowledge gradually and effectively, and the novel thinking can grow from the knowledge reserves.
For promising developers, the UNIX development process was also a training program. Linux is a successful example of a derivative of UNIX . This training program involes
  1. deducing mentally and
  2. programming physically,
so that developers can get familiar with the computer system as a whole, including both hardware and software.
With the advent of commercial operating systems, most of the readers do their jobs on encapsulated and transparent operating systems. On the other hand, many students and graduate students in computer science start their studies with the theory of operating systems. A transparent and well-designed operating system saves the users a lot of time and effort, but it also allows scientists to explore roads inside operating systems and the underlying hardware parts. For real developers and programmers, this may seem like a big risk to sit on a seemingly-transparent but unfamiliar system to do development. Finally programmers may encounter some bugs that they cannot tackle. They have to experience something that can let them understand what really
  1. makes the construction of an operating system,
  2. what the kernel of an operating system does for users, and
  3. how algorithms and mechanisms in the theory of operating systems are implemented.
Even though UNIX cannot tell all the story of a well-designed modern or future operating system, it can give the mapping or clues to different functions and services, which can be treated as an anatomy lecture of a promising surgeon.