Next: Linux in the Medium
Up: Linux in the Small
Previous: Developers
  Contents
Linux is an operating system. It has the goal of managing the resources
of your computer. In particular, if you look at the source code [7]
you'll find that it breaks down into several parts, thus:
initialization is the process that happens when you power-on
your computer. The kernel initialization code parses the command line
options, calibrates the speed of the machine, initializes various tables,
and starts the first ``program'' running (called init). The init program
then reads configuration files and starts other programs.
(see [7] pp443-450).
- system calls are a set of services that the operating system
provides to user programs. System calls allow you to do things like
read the time from the hardware clock. Since the hardware clock is
shared by all running programs access to the clock has to be managed.
(see [7] pp451-458)
- signals, interrupts, and time are the primary tools to
allow the operating system to make it appear that there are multiple
programs running in parallel. The resources of the computer are
time-sliced and scheduled in very small increments to give the
impression of many things happening at once. (see [7] pp459-478)
- processor or CPU (central processing unit) is managed by
the operating system and is allocated among the many processes and
threads. Linux maintains priorities and schedules use of the processor.
(see [7] pp479-498)
- memory in a computer forms a hierarchy. There are registers
within the CPU, two or three levels of cache where level 1 cache is
faster than level 2 cache. Level 2 cache is faster than level 3 cache.
Beyond the cache is slower main memory. And beyond main memory is the
hard drive which is the slowest of all the devices
(see [7] pp499-520) (refrigerator story).
- devices that are attached to the computer are next.
Examples of devices are your keyboard, screen, speakers, PCMCIA cards,
etc. Since access to these devices need to be shared the operating
system manages them. Linux has a fairly uniform way of handling most
device drivers that are dynamically loaded as needed. (tables story)
Next: Linux in the Medium
Up: Linux in the Small
Previous: Developers
  Contents
root
2004-02-24