The LINUX Operating System
Matt McPhail
Introduction
Currently the market is only Windows. Microsoft has a virtual monopoly on operating systems. As Information Systems and Information Technology professionals we have very little choice when we chose which operating system to use, it is either Windows or nothing at all. We rely on the Microsoft Windows graphical user interface (GUI) for its usability and standardization of products. This causes a problem for us as Information Systems and Information Technology professionals. What if he do not like the inherent flaws that Windows has? Maybe partial multitasking, or multi-"threading" as it is only a continuation of program code, not a management of processes by the CPU, is not powerful enough for us. Maybe the licensing agreements to Microsoft are too expensive for what they are worth to us. What do we choose? We as Information Systems/Technology professional are starting to have a choice. It is an operating system called Linux.
Literature Review
Linux is an emerging technology invented in 1991 by an undergraduate student at the University of Helsinki named Linus Torvalds. He wanted to run the UNIX operating system on his new IBM 386 PC, but UNIX was too expensive. Linus and a team of talented programmers developed a new version of UNIX. They created the core operating system that became Linux.
Linus decided to make the code for his new operating system freely distributable. Many programmers added to the freeware version of Linux, which improved the original code dramatically. Eventually, organizations accumulated large amounts of the freely distributable software that was available from the programmers, and then developed a way to install the software on a computer. This created the distribution of Linux.
All of the gaining of free code and the silent distribution of Linux have given it a following in the programming circles. It has gained ground when Windows gained ground. It has a graphical user interface (GUI) and a silent following of users that enjoy the power that the operating system has to offer. It has true multi-tasking, virtual memory, shared libraries, demand loading, proper memory management, TCP/IP networking and other features consistent with Unix-type systems and a more powerful kernel then that of Windows. The question is whether the freeware operating system has the power to overcome the monopoly power of Microsoft.
An operating system is necessary for all computing applications. The need for a stable working operating system on any platform, whether it is a server, desktop, etc., is equally necessary. Although Windows is a sufficient operating system in server and desktop environments, it is only that; sufficient. A more powerful operating system is needed. An OS that does not easily crash due to conflicts. This operating system is Linux. The next paragraphs will compare the operating systems; Windows and Linux.
Windows
Windows is the definite leader when it comes to desktop PC’s and more and more servers have migrated to Windows NT platforms in place of the previous server leader Novell Netware. This is due to the tremendous marketing reach of Microsoft, Windows’ creator. Microsoft has built Windows into a virtual monopoly in the operating systems arena, especially for personal computers.
The Windows operating system runs and manages the applications on a computer, whether it is a server or a desktop personal computer. It organizes each of the applications into menus and folders, and each of the applications are written in a language, usually Visual Basic or C++, that the operating system can understand.
The Windows operating system also performs routine tasks that allow the computer to run more efficiently. Each of these tasks, such as scandisk or defragment target a specific area of the computer’s hardware or software in order to improve the performance of the computer. The main job of the operating system is to manage the applications and to act as a link between the software and the hardware.
Windows does a very good job as acting as a link between the software and the hardware of a computer. The vast majority of users of personal computers have Windows installed on the desktop. It is also fairly user-friendly. With its advanced graphical user interface (GUI) it is successful at allowing the newest of user to understand how to "point and click." Here are a few of Windows’ other features:
Windows has many good features and employs a sufficient amount to have a good operating system, but it lacks in areas that Linux makes up for in its operating system.
Linux
Linux is the fastest growing operating system on the market. It is the closest competitor to Windows and Microsoft for the best operating system. It also has a graphical user interface which allow users to "point and click" their way to different applications. It also does a good job of linking the hardware of a machine to its software. It can be argued that it does a better job than Windows. It has similar features to Windows, with just a few differences:
Linux does have a great many improvements over Windows, such as true multitasking and memory protection. These are only a few of the improvements.
Methodology
To gather information on Linux specific and accurate research was gathered. The research included four areas: Internet, Interviews, Library Search, and Personal Research.
Internet
The Internet was where I found a vast amount of my research. Not only did I find it in the Internet with just a quick search, but I was also able to find books on the subject that I proceeded to buy. These books ranged from Beginner to Advanced and were very helpful in the research that I was doing. I also was able to get many different downloadable copies of Linux and some of its applications free. I then had to decide which of the "flavors" of Linux that was the best. I chose Red Hat and Linux Mandrake. These versions were most tested and recognizable.
Interviews
I made contacts with two different people who deal with Linux. The first is a Electronics Student that runs most of his class work through Linux. The other is a developer who writes patches for Red Hat. The formal interviews are transcribed in Appendix A.
Library Search
I was able to find a large amount of information on Proquest and Acedemic Universe about Linux. Most of the information I had already found on the Web or in books.
Personal Research
I was able to obtain a copy of Red Hat Linux 5.2 and a new computer to run it on, This computer even though it was constructed out of older used parts is running Red Hat 5.2 easily. It is faster then my 98 system and it has yet to crash. My 98 system has crashed twice. I also have a dual-boot LILO(LInux LOader) with Linux-Mandrake 6.0 on one hard drive and Win98 on another hard drive for comparison.
Findings
Windows Benefits
There are only four reasons why Windows is more beneficial to use then Linux. These are very important reasons that Linux needs to improve upon in order to be in all areas greater then Windows. These four reasons are as follows.
Windows Faults
The list of faults with Windows is much longer then five, if you compare its perfomance with that of Linux’s.
Linux Benefits
Linux has many benefits over Windows. These are just a few that were found.
Linux Faults
Linux as any emerging technology has faults that need to be addressed in order for it to become more accepted by the general public.
Conclusions
Windows 95 is a true pre-emptive multi-tasking system. This is not true of Windows 3.1 and not true of 16-bit software running on 95. Windows 9X/NT version simply does not have the power that a Linux OS has. Linux takes advantage of CPU-oriented multitasking, where the CPU places the task into separate control processes. Win9X relies on multi-"threading", a process that simply places tasks, or threads, onto a linked list of operations that are executed by the CPU in order.
The term "Multi-tasking" in Windows 95 is deceiving. Microsoft's meaning is that you can do different things at once like play music and type at the same time. This does not extend to the actual code execution where all Windows 95 does is multi-THREAD.
WinNT supports true multitasking but only at its core. The GUI applications still use multithreading, with the instructions only executed faster due to the sub-tasks being sent to separate CPU controls. Linux bases all of its operations on CPU-driven TRUE multitasking. Only such things as XWindows and the like use multi-threading to accomplish their work, and they run in a separate CPU control to allow the rest of the operating system to handle its networking, users and other tasks.
This also allows Linux to let its users run their programs OFF the server as if they were at the computer itself. WinNT has no such thing in any way. WinNT uses the inferior Server/Client model which does not take advantage of the immensely more powerful serve computer (at least with the more powerful systems). The users run in their own CPU-control and produce no toll on the tasking of other users. ("Linux The Complete Reference," 1998)
In fact, you can run XWindows over the Internet through your browser on your computer. With the needed, plug-in it displays exactly what is happening on your desktop running on the other computer, which is not done in ANY Windows version.
Practically all Linux "flavors" or versions of Linux are also infinitely superior to WinNT when it comes to performance, security, and overall reliability in networks. The only exception (and only performance, not security and reliability) is that the $4000 Windows NT 4.0 Enterprising Edition beat Linux by only 20% but this was widely disputed by the Open-Source community. Nearly 90% of the Internet relies on Linux, Unix and the Apache server. Even Pro-Windows sites run on Linux, Unix and the Apache server (www.hotmail.com, www.windows95.com, etc.). Microsoft TRIED to get Hotmail on WinNT but found that it could not handle the massed volumes of users the way Linux could so they ditched the effort. ("Linux for Dummies," 1999)
Windows NT can be problematic among the network LAN, enterprise, business, and Internet communities. It costs exorbitant amounts of money to implement a WinNT-based network (one workstation costing $150 for the software alone), and WinNT requires expensive hardware. WinNT's Client/Server model is a bad implementation for a network also because each workstation must own a license to use the software. WinNT does not have the power to control what the user can do the way Linux can either. WinNT cannot make a user directory or drive actually point to different directories on the server AS WELL as on other computers at the same time, but Linux can. WinNT cannot run the word processor off the SERVER where the computing power is much better, but Linux can. WinNT cannot have a user be logged onto telnet and the server-based GUI program at the same time, but Linux can. WinNT only grants file and print sharing, NOTHING ELSE.
Linux can run just fine on a 486sx computer with 8-16 MB of RAM. This is INCLUDING a GUI. Win95/NT will "run" on a system like that, but will be extremely slow and clunky. Linux can also just run a HUGE program off the server. Imagine playing Quake II off an UltraSparc computer with your 486. Linux can do it because it uses the processing power of the server that the 486 is attached to, not the 486 itself. WinNT cannot do that.
WinNT also only supports Intel-based processors. You may call foul and say that it also supports Alpha processors but Microsoft has stopped supporting it. Linux can be run on 64-bit Sparcs, Ultrasparcs, Alpha processors; 32-bit PowerPCs, and all x86-based systems. Most of these processors are RISC processors which means that they can perform even better with better CPU-optimized code like Linux's. WinNT, using only Intel-based CISC processors have fewer registers to work with, can't even take advantage of any optimized code (because it is non-existent) and doesn't even support 64-bit processing. (some of the Alpha-based WinNT can do some 64-bit processing but not the huge memory addressing and key 64-bit handling)
There is a big difference between MFC (Microsoft Foundation Classes) and the Windows API. (Application Programming Interface) MFC provides a nice wrapper over the API, but is NOT the API itself. Many people never use MFC. Like the "open source" model, the source code to MFC is freely available. ("Linux Targets The Data Center," November 1999)
The MFC were created because the Windows API was too overly complicated to be used effectively.
Win9X has a 16-bit subsystem at its core, but it is not based on DOS. The 16-bit core is for compatibility with existing device drivers. Multi-threading is not limited here. NT is 32-bit from the ground up. Win9X applications, however, do not have a console-like interface that you see in so many XWindows programs.
However, the console interface is what gives Linux, the ultimate power that administrators need and want. Win9X is powerless when a core DLL crashes and you cannot manage your users from the command line. XWindows does not NEED to use a command line. A command line is put into there so users who are used to the command line can also use it to do their work.
The code to create an application with a simple window and menu is not hard. It comes to a few pages of code, but that code can be stolen from any sample, and used in any program you write.
There is no need to conform to a Microsoft standardized API. For starters, there is a standard API in XWindows. There is physically no other way for a windowing system to work. The applications must talk to the OS. There are many wrappers that can stand between the OS and your software. There are at least four different XWindows implementations which provide functions and classes that can be used to produce applications for the GUI. As a specification of the XWindows project, there is no defined way to program the GUI, so different XWindows projects were created to provide functions to control the GUI. That is why there are many XWindows APIs, and you don't have to use MFC if you don't want to. With Windows you're stuck with their GUI system and nothing else. No source code available for improvement.
Linux is being worked on by thousands of people all the time being improved, ported and optimized. Linux also supports practically everything that commercial Unix implementations do also. It is can be used on nearly any type of system, and takes advantage of such things as 64-bit processing, TRUE multitasking at all levels, and is Free.
However, the Linux platform most go through a few more evolutionary cycles before it is ready for prime time with the masses. Despite the stability and robustness of the Linux platform, it must evolve into a more user intuitive OS. The fact is the Windows platform (and all of its related application) has been designed to accommodate users with the very lowest level of computer expertise and/or abilities. Most of our users is the business world do not have the slightest idea how their computers work and frankly do not want to know. The trend in computing is to make things easier (i.e more pervasive, more intuitive, and simpler to use.) At this point in time, Linux is not there yet. However, it is fun to see it evolving. It is quite evident that as more and more Windows users start turning to Linux as an alternative platform for personal computing, Linux will become easier and easier. With the recent developments in the Judges ruling against MS, we are going to be seeing a larger array of software being ported over and written for Linux. I predict that within five years Linux will be the preferred OS on at least 50% of the desktops worldwide (if it evolves in a manner that promotes ease of use). Just look at www.sun.com, over 1,000,000 downloads of StarOffice in two months!!!! Impressive!
Right now, Linux is good if you need to do things where the computer should be stable, for web stuff it is excellent, and you have your whole office suites. Currently, I do not think the average person who just wants do to normal office work should switch from Windows. I am guessing that 2003 is when Linux gets ready to hit the masses.
It all depends on what you want out of your system and what you'll be using it for. Linux was set up primarily as a programmer’s OS and Windows was set up initially as a user-friendly OS. So on the Linux side you have all the power and stability to write some programs, while on the Windows side you can present your power-point presentations, play games, and have a standardized office suites.
So in other words, it boils down to what you'll be using your computer for.