A Look at Linux Capabilities
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.
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.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Petros Koutoupis' RapidDisk
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- The Italian Army Switches to LibreOffice
- Linux Mint 18
- Oracle vs. Google: Round 2
- The FBI and the Mozilla Foundation Lock Horns over Known Security Hole
- Varnish Software's Varnish Massive Storage Engine
- Privacy and the New Math
- Firefox 46.0 Released
Until recently, IBM’s Power Platform was looked upon as being the system that hosted IBM’s flavor of UNIX and proprietary operating system called IBM i. These servers often are found in medium-size businesses running ERP, CRM and financials for on-premise customers. By enabling the Power platform to run the Linux OS, IBM now has positioned Power to be the platform of choice for those already running Linux that are facing scalability issues, especially customers looking at analytics, big data or cloud computing.
￼Running Linux on IBM’s Power hardware offers some obvious benefits, including improved processing speed and memory bandwidth, inherent security, and simpler deployment and management. But if you look beyond the impressive architecture, you’ll also find an open ecosystem that has given rise to a strong, innovative community, as well as an inventory of system and network management applications that really help leverage the benefits offered by running Linux on Power.Get the Guide