What Is Linux? The Origins of Linux
What Is Linux? The Origins of Linux
What Is Linux? The Origins of Linux
What is Linux?
G
Started by Linus Torvalds in 1991 Caught on in hacker community Exploding in popularity today
Linux is Unix
H
Designed from scratch to be multi-user and multi-tasking Very mature design Thousands of applications
Linux is Open-Source
H
Linux Is Powerful
H
Linux is high-performance Linux will network with almost anything The X Factor
Linux Is Flexible
H
Customizable hardware support Totally customizeable software Linux runs on multiple platforms
Linux Is Well-Supported
H
Rough Spots
G
Linux can be picky about PC hardware Limited support for proprietary formats Linux requires a paradigm shift
Further information
Last updated Sunday, May 9th, at 10:30pm
Linus started writing Linux as a hobby project in 1991 Followed the design of Unix Released as open-source
Linux attracted developers quickly Became useful quickly Grew steadily for years
Linux has about 10 million users today Used by companies large and small Drawing increasing attention from technology community User base is increasing dramatically - up 212% for 1998 Linux usage is expected to increase by at least 25% compounded annually for the next four years.
Linux is Unix
You can run multiple apps without hampering stability Multiple simultaneous users are no problem You can run apps on one machine and display on another
Linux is Unix
Sane handling of DLL's Better memory management than Win 98 or NT Advanced filesystem Remote administration Reboot only for some kernel or hardware upgrades Great networking - the OS of the Internet Solid security Doesn't crash - runs for years
Linux is Unix
Most Unix applications are portable between Unix brands Most Unix applications are open-source Commercial applications (including games) are available for Linux, too
Linux is Open
It's Open-Source
G
The source code must always be available If you modify the source code, you must make your changes available Just because you develop on Linux does not mean you have to make your programs free Plenty of commercial applications are available (StarOffice, WordPerfect, Informix, Oracle, etc.) You can (and many many do) run your business on Linux Check out http://www.opensource.org/ for details
Thousands of developers all over the world collaborate on Linux development Anyone can contribute Linus Torvalds, the original author, supervises
Many organizations assemble "distributions" of the Linux kernel and other applications You can download distributions for free You can buy Linux distributions on CD You can pay for value-added items like commercial software
People write Linux code because they want or need it People write Linux code for fun and recognition Other people can and do read, critique and fix Bugs are fixed quickly Linux is demonstrably stable and nearly bug-free.
Linux takes advantage of decades of Unix design work Linux makes even low-end hardware useful Benchmarks show Linux to be very fast
Linux talks with Windows Linux talks with Macintosh Linux talks with Novell IP Masquerading Web servers, FTP servers, IRC, MUD, mail servers, and much more!
Gain experience with low-level programming Unusual types of networking High-end parallel processing Software RAID Emulation software
Correct hardware performance - work around hardware bugs or deficiencies Improve hardware performance - use all of its potential Dynamically change hardware support - use only what you need when you need it Run without normal hardware like a keyboard or mouse, or even a disk drive
Most software is highly configurable Everything is scriptable When all else fails, do it yourself!
Intel 386+ (of course) with support for ISA, EISA, PCI, VLB, and MCA (and Merced) Alpha (Linux is 64-bit now) Motorola 68030+ Power PC ARM SPARC MIPS SGI (in progress) VAX (in progress) PalmPilot (in progress) 8086-80286 (in progress) And more!
Lots of documentation Enthusiastic volunteers on E-mail, Usenet, IRC, etc. Support directly from the code authors Commercial support available too InfoWorld Best Tech Support of '97
Install on as many computers as you like with one CD Support as many users as you need Sharing with others is encouraged
Every network application you could want More compilers than you can shake a stick at Spreadsheets, databases, scientific simulation and visualization, games, and more!
Winmodems, Winprinters not supported UDMA/33 under development ISA Plug and Play can be complicated (PCI is fine) Some video cards, SCSI cards, and so on Almost always alternatives available
No AOL client, or MSN, or Compuserve, or... Office '97 support took a while No Internet Explorer, most use Netscape
There is a learning curve ...but there are ways to ease the journey You have to look under the hood a bit ...but you will be more productive
Resources
Linux Central, at http://www.linuxcentral.com/. (Operated by Brad Glonka, an MDLUG member!) Linux Systems Labs, at http://www.lsl.com/. Infomagic, at http://www.infomagic.com/. CheapBytes, at http://www.cheapbytes.com. Walnut Creek CDROM, at http://www.cdrom.com/
Resources
http://citv.unl.edu/linux/LinuxPresentation.html is a website made from a presentation on why a university switched from NT to Linux. http://www.unix-vs-nt.org/ is an oft-cited paper by a Microsoft Certified Engineer comparing Linux and Windows NT. http://mercury.chem.pitt.edu/~angel/LinuxFocus/English/May1998/article16.html is an article from LinuxFocus magazine comparing Windows to Linux. http://www.isdmag.com/Editorial/1998/CoverStory9807.html
Remote operation
Because of the fundamental design of Unix, every application can be run on one machine and display its interface on another machine. For graphical applications, you probably want to use a high-speed network like Ethernet, but even a serial connection will work. Programs don't have to be designed to run remotely, they just do. It takes extra effort to write a program that can only be used on one machine. Most Linux users use the X Window system, which is designed to transparently export graphics over a network. A user on machine1 can fire up X-Windows and connect to machine2, and run programs, see files, and so on just as if they were directly in front of machine 2, even if machine1 is in California and machine2 is in Switzerland. Even if all you have is a terminal emulator (e.g. Hyperterminal, Procomm Plus, or one of the many terminal programs for Linux) you can log in remotely and run non-graphical, command-line tools just as if you were at the command line of the remote machine. This is extremely useful for remote administration. If you're a webmaster and your webserver is having problems, you don't have to go in to work, you can dial in to the server from home and do everything that you could do if you were in front of the machine. (Well, okay, you can't swap hardware, but just about everything else.) In the Windows world, these capabilities are imperfectly emulated with things like PC Anywhere or WinFrame. Each of these has limitations and applications that don't work with this model, and requires careful setup, because the applications were never intended to run in such a manner. Also, Windows often needs a reboot for even some trivial changes to take effect, which is in sharp contrast to Linux (see rebooting). Note that there are X systems available that run under Windows, so even Windows boxes on the same network can run Linux programs. At least one X program is free.
Memory Management
Linux is oustanding in the area of memory management. Linux will use every scrap of memory in a system to its full potential. For example: The Linux kernel itself is much smaller and more efficient than the NT kernel. On my 64MB box at work, NT typically takes up about 18MB. On my 64MB box at home, the Linux kernel takes up less than 2MB. That means 16MB of extra memory can be used by applications instead of just holding the OS. Linux uses a copy-on-write scheme. If two or more programs are using the same block of memory, only one copy is actually in RAM, and all the programs read the same block. If one program writes to that block, then a copy is made for just that program. All other programs still share the same memory. When loading things like shared objects, this is a major memory saver. Demand-loading is very useful, as well. Linux only loads into RAM the portions of a program that are actually being used, which reduces overall RAM requirements significantly. At the same time, when swapping is necessary, only portions of programs are swapped out to disk, not entire processes. This helps to greatly enhance multiprocessing performance. Finally, any RAM not being used by the kernel or applications is automatically used as a disk cache. This speeds access to the disk so long as there is unused memory.
Remote Administration
Since Unix was designed to run continuously, for extended periods of time, in mission-critical capacities, with a minimum of downtime, administration was given a lot of attention. Almost any maintenance task can be done remotely on a Unix system. As noted before, essentially all applications can be run remotely from another machine on a network or even over a dialup line. When you consider that almost every feature of Linux and its applications can be configured without rebooting, it's clear why Unix systems are favored by many administrators. Remote maintenance is often not very important to the home user, but to a business user of Linux it can be critical. If the pager goes off in the middle of the night because the file server is full, it's nice to be able to just dial in and take care of it from home instead of having to drive in to work to sit down in front of the machine. Using kernel modules, even relatively major upgrades can be done remotely. About the only things that can't be done remotely are hardware updgrades and full kernel upgrades. (Actually, even kernel upgrades can be done remotely if you're confident that nothing will go wrong...)
Solid Security
Viruses are unknown in Linux
Linux is a very secure operating system, much more so than Windows 9x, and at least the equal of Windows NT. So far as anyone has been able to tell, exactly one virus has ever been written for Unix platforms. And as viruses go, it's pretty anemic. It's worth it to examine why this is the case. To do so, we have to take a quick look at how viruses work. A virus spreads when an infected application is run. The virus then looks for other running applications, or for applications on disk, and copies its own code into the other applications, thereby infecting them. When the newly-infected applications are run, they will try to infect other applications, and so on. Both of these avenues of infection are severely limited or impossible under Linux. Since each application runs in its own protected memory space, it is not possible for a virus to infect another application running in memory. And Linux implements a file permission structure that greatly limits the damage that a virus can do. In Unix systems, there are three main kind of permission for a file - read, write, and execute. There are three kinds of users this can apply to - the file's owner, users in the same group as the owner, and "others". In practical terms, when a user runs a program infected with a virus, the virus can only infect the applications that the user has permission to write to. In the typical Linux system, this is very few applicaitons, and none of them are critical to the operation of the system. There is one type of virus that can infect a Linux system - a boot-sector virus. This kind of virus does not use an operating system at all, but instead runs using the BIOS. When the boot-sector virus runs, Linux isn't even running yet, so it can't intercept it. However, no known boot-sector virus is written to work with Linux, and so as soon the machine is infected with such a virus, it probably won't boot. At this point, all you need to do is boot from a Linux floppy and erase the virus. In this sense, Linux is a great virus-detector!
Linux is less prone to these sorts of attacks than most operating systems. This is partly because of its design and partly because of the open-source nature of Linux development. For example, Linux is designed so that the "sechole.exe" program (which gives any user Administrator access under Windows NT) is not possible - at least, by that method. The permissions structure described above means that even if a bug in one process is found, it does not affect other processes. Very few services run with a lot of permissions, and most of the bugs in those services have been found and removed. (Remember, Unix has been around for almost 30 years - performance and security problems have been continuously addressed that entire time.) And because Linux is open-source, security bugs are fixed quickly, often within hours. Having the source open is a lot like having thousands of programmers audit the security of the system continuously. Denial-of-service (DOS) attacks are also more limited under Linux. If you give users write permission to a share under Windows NT, those users can fill up the entire disk if they like, which can cause NT to become unstable. Linux supports disk quotas, which limit the amount of space a malicious or mistaken user can take up. Linux also supports limits on other resources, to prevent users running too many processes, or opening too many network connections, or whatever. For more information, check out the Linux Security HOWTO. In the way of a testimonial, check out this story about an ISP that upgraded to Linux to improve security.
Commercial Development
If you develop a program that runs under Linux, even if you use the free, high-performance GNU compilers (also under the GPL), you don't have to make it open-source, too. Just because you use the services of the kernel doesn't mean you have to be under the same license as the kernel. There are a wide variety of programs and applications available for Linux, under a wide variety of licenses. These range from public domain to postcard-ware to shareware to commercial, with all sorts of combinations, too.
Commercial Applications
Many commercial vendors either have released or are developing applications for Linux, including: G Corel
G G G G G
Informix Oracle Netscape Even Microsoft is porting the Windows Media Player to Liunx
And more! Recently Intel announced that it was working on a Uniform Driver Interface so that all Unix variants on Intel platforms would use the same driver model. To quote direct from the horse's mouth: "Linux will be, said Quick, key to the adoption of the UDI initiative. A reference platform will be distibributed as freeware for Linux, and the Project UDI members will be counting on the Linux community to work on device drivers." In other words, Intel is basing a key business plan on Linux and the Linux development community. Plenty of Linux games exist. Notably, over half the Quake servers in the world run under Linux. The Linux Games site has plenty of up-to-date information on games for Linux.
Linux In Business
A large number of business are using Linux (see this link for an incomplete list) in a wide variety of fields, ranging from ISP to manufacturing to government to retailers and more. (It seems that an amazing 25% of ISP's use Linux!) Because of Linux's 24/7 reliability, scalability, performance, and configurability, it can make a powerful IT resource for any company. When you consider Linux's low cost (zero per-user license fees are just one exmple) Linux systems are even more attractive. A partial list of Linux business resources is maintained at http://www.linux.org/business/index.html, and is a good place to look for more information. A recent example in the press is Total Travel Management, in Troy, Michigan. You can read about their conversion to Linux here.
Advantages of Linux
The system has been stable over more than 1 year. (always several weeks between reboots - caused by config changes the wrong direction) I needed the keyboard and monitor just about 3 or 4 times to recover from serious disk problems (disk is gone...hope same with the problems) durcing that long time. So what, take NT to get fun...., get Linux to get the functions Regards, Michael A 486 system is even more powerful. On my 486-100, I can websurf, serve files, compile code, edit files, read mail, transfer files, and more, all at the same time. At the same time, my wife can surf the web on her Windows 3.11 PC through my Internet connection. Because the operating system is so efficient, I can do things on the 486 that are impossible under Windows. I can play full-stereo, 44.1KHz .mp3 files on my 486 and read mail at the same time. Under Windows, you can't play full .mp3's on a 486 at all. Imagine what you can do with a more modern PC...
Novell? No Problem!
Linux speaks IPX just fine, and can act as an IPX router, as well as an NCP client, so you can get files from a Novell server and print to Novell print queues, and/or an NCP server, and serve files to Novell workstations. Again, Linux can talk to Windows, Mac, and Novell clients all at the same time.
G G
SCSI - if you want high speed networking, there's just about nothing faster. Great for Beowulf supercomputers. AX25 - TCP/IP over ham radio. Often used for automatic GPS position reporting. Skin - Research on wearable computers and information transfer by skin contact uses Linux.
A single Linux box can use all of these network devices, as well as more traditional ones, and route between them. (Linux boxes make great routers, especially boxes considered obsolete by other operating systems.) For more information, check out the Linux Networking Overview HOWTO.
You Can Make A Supercomputer From The Things You Find At Home!
Using Linux, NASA developed software that allows ordinary PCs, networked together, to form a real supercomputer capable of delivering impressive performance for a rock-bottom price. The software is named Beowulf, and has been turned into a product called Extreme Linux, distributed by Red Hat Software. This concept has been used by many universities and corporations, due to the spectacular price-performance ratio. Other type of compute farms have been established using Linux, including one used to generate much of the special effects used in the movie Titanic. This idea has been taken to something of an extreme in the CHAOS project. CHAOS stands for "CHeap Array of Obsolete Systems", and involves a man who built a parallel-processing array of 386 boxes. While not terribly practical, it certainly illustrates the flexibility and scalability of Linux.
http://www.gnome.org/screenshots/gnome-apr28-2.jpg http://www.labs.redhat.com/themes.shtml
Here is a website devoted to making and distributing theme files for X Windows. And here's a page that shows how flexible KDE is.
Everything Is Scriptable
With Linux, you're not limited to simple BAT files to get things done. In addition to supporting powerful scripting languages like Perl and Python, the "shell" (the Unix equivalent of COMMAND.COM) has a full programming language built in with decisions, loops, and much, much more. Most applications provide ways to script themselves automatically. For example, PPPD, the program most people use to contact an ISP and hook up to the Internet, automatically calls a script, "ip-up", when the connection is up. I personally use this script to synchronize my time with the Navy's atomic clock, download any email on the server, get my IP address and update my web page with it so others can contact my system, and more. The 'find' function in Unix is astoundingly flexible, and among other things you can find all files of a particular type that were modified today and have a size greater than 53K and execute a script to process them in some way. In addition to being a full programming environment, the shell offers ways to make 'aliases'. If I type "alias ls='ls --color=auto'", every time I execute the "ls" command (list files, like DIR in DOS), it will automatically colorize the files based on type. Of course I can customize the colors used.
Everything is documented
In addition to the open source code, there are active efforts to provide documentation suitable for novices and advanced users. One of the best examples are the dozens of HOWTOs, which contain detailed information on common and uncommon tasks, such as getting Linux and Windows to dual-boot, or setting up a home Ethernet, or setting up a software RAID system. The Linux Documentation Project develops documentation for all aspects of Linux, from installation to administration to development, and also contains links to other documentation such as references books, development guides, and more. There is no need in the Linux community for a book like "Undocumented Windows", because the documentation is open, the developers are open, and the source is open.
No License Fees!
It's important to emphasize that most Linux software does not impose license fees. You can install and run as many copies as you like, on as many computers as you want. You can give copies to your friends and let them do full installs. There are no arbitrary limits on the number of simultaneous users. There are no registration codes. There are no expiration times. The only restriction for most software is the same as the GPL, if you make changes you have to make those changes available. This is in sharp contrast to most commercial operating systems, where you buy one license for each user of the software. The price for a 25-user version of Windows NT is more than five times the price of a 5-user version. Of course, some Linux software does have limitations of one form or another. Some software is free for personal or educational use, but you have to pay to use it in a business. And some software (for example, most office suites) is commercial and is licensed like most Windows software. (The StarOffice office suite, however, is free for personal use!)
work to learn this new approach, though not as much as you might think. And when you have learned it, you can apply it to anything in the Unix world.