A Look at Linux Capabilities

A preview and summary of the March 21 episode of Phil Hughes' weekly radio program featured on Wall Street Newshour.

Over the last two weeks, we looked at Linux from the beginning; then last week, I added some information on other efforts which have contributed to making Linux what it is today.

Once I have established the basics, I will start looking into specific areas of Linux and the Linux phenomenon. In future columns and radio programs, expect to see coverage of office suites, web servers, embedded systems and all the other ways Linux is being used.

In addition to the information you find in these brief introductions to the radio show, our web site contains a complete archive of the articles that have appeared in Linux Journal from 1994 through 1999. It also has information on how to subscribe to the print version of Linux Journal, which allows you to keep up to date.

This week, I want to take a look at some features of the Linux operating system which make it stand out from what you find in the basic offerings from Microsoft. If you have a UNIX background, these features will be expected.

First, Linux is a preemptive multi-tasking operating system. Let me explain this in two parts. First, multi-tasking means that the operating system can perform more than one job at once. Or, more accurately, appear to perform more than one job at once. If your computer only has a single CPU then it really can only do one task at a time. What the Linux kernel does is schedules tasks based on a priority scheme and switches between them so that it appears all the tasks are running at once.

Why would you want to do this? Let's say you are using a text editor to edit a document. You might want to grab a web page with your browser or upload a data file to another system while you are working interactively with the editor. To Linux, this is just a simple job of switching between running your text editor and the file transfer program or browser as needed.

The "as needed" gets us to the pre-emptive part. The text editor will need to run when you have entered a keystroke, so it can process the keystroke and update the screen. The browser or transfer program will need to run when it is necessary to process the next input character from the Internet or send the next block of data.

To completely understand this, you need to know that a program called a device driver, rather than the text editor or browser, handles the actual transfer of data from keyboard to video display card and to or from your communications device. Thus, the device driver must be scheduled to send or receive the data, and then the applications program must be run to process the data.

An interrupt is created by the hardware for each unit of transfer (where a unit could be a single character or a block of data, depending on the type of device). The Linux kernel schedules the interrupt handler code of the appropriate device driver to deal with the interrupt.

Once the interrupt handler is done, the Linux scheduler then has to select the next task to run. The selection is made among all tasks that are ready to run. "Ready to run" means they are not waiting for a reason such as keyboard input. Thus, after the device driver handles an interrupt, the choice of what is ready to run is likely to change.

The ability of the task scheduler, part of the Linux kernel, to re-prioritize activities on the fly is the preemptive part of the story. The interrupt caused the device driver to preempt the task that was running, and the result of handling the interrupt could cause a different task to preempt the task that was running before the interrupt. This scheduling capability is what makes the computer appear to be doing multiple tasks at the same time--the computer can get a lot of work done between your keystrokes.

Multi-user

This is simply the ability to have more than one person using a single computer system at the same time. If you are an MS-Windows user, you are probably thinking about how you log in and how this is multi-user. Not so. Note that I said at the same time. On Windows9x, a single person logs in and has control of the computer. On a Linux system, a whole group of users can be logged in and doing work at the same time.

In the early days of Linux Journal, we had one Linux machine and a whole host of serial terminals connected to this single computer. Each user logged in to the single system and did their work. It was up to the Linux kernel to allocate the system resources between all the users and protect the integrity of each task. This is a relatively simple extension to preemptive multi-tasking, but an important one.

______________________

Phil Hughes

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix