Datasheet
Chapter 1: What is Ubuntu?
9
4759 ? Ss 0:00 /usr/sbin/gdm
4761 ? S 0:00 /usr/sbin/gdm
4814 ? Ss 0:00 /usr/sbin/atd
4832 ? Ss 0:00 /usr/sbin/cron
4920 tty1 Ss+ 0:00 /sbin/getty 38400 tty1
5417 ? Sl 0:01 gnome-settings-daemon
5425 ? S 0:00 /usr/bin/pulseaudio --log-target=syslog
5426 ? S 0:00 /usr/lib/pulseaudio/pulse/gconf-helper
5437 ? S 0:00 /usr/lib/gvfs/gvfsd
5451 ? S 0:05 gnome-panel --sm-client-id default1
5632 ? Sl 0:34 gnome-system-monitor
5638 ? S 0:00 /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon
5642 ? S 0:09 gimp-2.4
6319 ? Sl 0:01 gnome-terminal
6321 ? S 0:00 gnome-pty-helper
6322 pts/0 Rs 0:00 bash
6343 ? S 0:01 gedit
6385 pts/0 R+ 0:00 ps ax
$
The first column in the output shows the process ID (or PID) of the process. Notice that the
first process is our friend, the init process, which is assigned PID 1 by the Ubuntu system.
All other processes that start after the init process are assigned PIDs in numerical order.
No two processes can have the same PID.
The third column shows the current status of the process. The first letter represents the
state the process is in (S for sleeping, R for running). The process name is shown in the
last column. Processes that are in brackets have been swapped out of memory to the disk
swap space due to inactivity. You can see that some of the processes have been swapped
out, but the running processes have not.
Hardware Management
Still another responsibility for the kernel is hardware management. Any device that the
Linux system must communicate with needs driver code inside the kernel code. The driver
code allows the kernel to pass data back and forth to the device, acting as a intermedi-
ary between applications and the hardware. Two methods are used for inserting device
driver code in the Linux kernel:
Drivers compiled in the kernel
♦♦
Driver modules added to the kernel
♦♦
Previously, the only way to insert a device driver code was to recompile the kernel.
Each time you added a new device to the system, you had to recompile the kernel code.
This process became even more inefficient as Linux kernels supported more hardware.
Fortunately, Linux developers devised a better method to insert driver code into the run-
ning kernel.
Programmers developed the concept of kernel modules to allow you to insert driver code
into a running kernel without having to recompile the kernel. Also, a kernel module can
be removed from the kernel when the device is finished being used. This improvement
greatly simplified and expanded the use of hardware with Linux.
95080c01.indd 9 3/5/09 12:15:37 AM