C Language | Computer System Development | Program Structure

This article explains how programs work and introduces types of software such as applications and operating systems.

Software and Programming

If you already have programming experience in a language other than C and understand what a program is, you can skip this section.

Although computer systems differ, every computer runs according to logical information called software. Software consists of programs that record the procedures and information a computer must process. After a computer boots, programs are loaded into the CPU and continue running according to defined procedures until the computer is turned off. A computer cannot operate without software.

Programs read and processed by the CPU consist of numeric data called machine code. Each value has a meaning defined by the CPU. The CPU reads an instruction, interprets it, and executes it. The operation of determining the location of the next instruction and retrieving it is called a fetch. A working program repeatedly performs this fetch cycle and the instruction execution cycle.

Most software written by programmers, however, is not designed to run immediately after the computer is powered on. An application, also called application software or an application program, is software created for a specific purpose such as business processing. How does a computer reach the point where it can run application software?

When the computer is powered on, a predefined program runs first. After hardware initialization is complete, the computer reads a program from a designated storage device. This series of operations is called booting. Only a small number of programmers need detailed knowledge of the boot process.

After the boot process completes, the operating system starts. An operating system provides control over the physical computer, system management, and a basic working environment. It is also called system software. A computer cannot be used without an operating system. Representative operating systems include Microsoft Windows, Solaris, HP-UX, OS/2, and Linux.

The software we create runs on top of an operating system. An operating system is also a program and can be created independently, but doing so requires substantial development experience and advanced knowledge of computer science and systems. Application software runs on an operating system, so application developers generally need less hardware knowledge. They can build the programs they want efficiently by using the features provided by the operating system.

Business applications, games, and even viruses are all application software that run on top of some form of system software.

This book frequently uses the word “system.” It is not simply an abbreviation for operating system. It means the entire information-processing environment composed of hardware and software. For example, C may be used to generate data that acts like an intermediate language for large applications that operate in a manner similar to an operating system. Because the target of a C program is not necessarily an operating system, this book often uses the more abstract term “system.”