You are here: http://dunne.yenn.ulegend.net//exe.linux.html
Go to: index | blog | contact
This article first appeared in .EXE magazine, March 1995
© Paul Dunne 1995
Linux is a Unix clone, originally developed for the 386-based PC but now ported to a variety of hardware platforms. It looks like Unix, it works like Unix, but it is not like other Unices. It is unique in being a free product, developed by the collaboration of a host of programmers worldwide communicating on the Internet, and available from many ftp sites. It is free, but not in the public domain - it is protected by the GNU Public Licence, a legal instrument that requires those who pass on a program to include the rights to use, modify, and redistribute the code.
Linux is the creation of a Finish computer science undergraduate named Linus Torvalds, who, dissatisfied with his Minix system, wrote the first version, 0.01, in 1991. In those days before its christening, "Linus' Minix" was a bare kernel and not much else. As interest grew, Linux ceased to be merely Linus' personal hobby, and became more and more the work of a host of volunteer programmers worldwide, who devote time and effort gratis to the extension and improvement of Linux.
Linux was officially in Beta testing until the release of version 1.0 on 14th March, 1994. At the time of writing, two quite different versions of the kernel are available: the "1.2" series, which is the stable, production release, and the "1.3" series, which is at the cutting edge of development, a real hacker's kernel still. Linus remains in charge of kernel development. Linux has grown into a modern, stable operating system that used as a for "real life" applications by both commercial and non-profit educational instituitions. It now has even its own magazine, the "Linux Journal" .
Linus's kernel, though written to conform to POSIX specifications, and thus to be like Unix, is without the years of accumulated stuff that other Unices have often to carry about with them. Linus in 1991 started from a clean slate, with nothing but the Unix system calls as a restriction.
Linux memory management is (or, in the light of the many porting efforts now in progress, was) heavily based on the capabilities on the Intel 80386 processor. Paging is supported, of course. Up to 256 megabytes of swap space can be allocated on disk, and when the system requires more physical memory, it will swap out inactive pages to disk. The page size is 4K. The Linux kernel supports demand-paged loaded executables. That is, only those segments of a program which are actually used are read into memory from disk. Also, copy-on-write pages are shared among executables, meaning that if several instances of a program are running at once, they will share pages in physical memory, reducing overall memory usage. The kernel also implements a unified memory pool for user programs and disk cache. Cache size is dynamic: all free memory is used for caching, and the cache is reduced when running large programs.
Linux uses dynamically linked shared libraries, meaning that programs share common library code in a single library file (similar to Sun's shared library mechanism). This allows binaries to occupy much less space on disk. Use of the shared libraries is not mandatory: there are also statically-linked libraries for those who wish to use object debugging or who need their application to run even if shared libraries are not available. Linux shared libraries are dynamically linked at run-time, allowing the programmer to replace modules of the libraries with their own routines.
These are parts of the kernel wich are not linked directly to it. They are loaded only when required (typically on system start-up by an rc script).
Linux will happily co-exist on its own partition alongside one or more other OSes. Which one of them is loaded at bootup is controlled by "lilo", the Linux boot manager. Further, Linux can actually be installed and run on a DOS partition , using the UMSDOS file sytstem - the neat little package "mini-linux" works this way.
The most common file system in use on Linux systems is the "ext2", or extended 2" file system. This is a modern, sophisticated file system offering support for file names up to 254 characters long, variable disk block size, and crash recovery. File systems up to 4TB in size, Support for other file systems is extensive: iso9660 (CDROM), MSDOS (full reading and writing), OS/2 HPFS (read-only), NT HPFS ( read-only), Xenix, Minix, SCO.
Support for UNIX System Laboratory's ELF (Executable Loading and Linking) format for executable files is now included in the kernel, and the standard Linux C compiler, GCC, can now product ELF binaries. this gives Linux developers a much easier time when developing shared libraries and implementing dynamic loading.
Wrong! Linux will run happily on today's entry-level PCs.
Most PCs will run Linux, as it includes support for MFM, RLL, IDE, and many SCSI controllers; ISA, PCI and VESA buses; many common proprietary CD-ROM interfaces; Soundblaster cards and compatibles ... the list goes on. Work is in progress on a port to the Alpha chip architecture, to the Power PC, MIPS chip, even the Mac. In this article, I will concentrate of Linux as it runs on a PC, as that is the platform am most familiar with.
Linux can run on a 386SX sysetm with 2Mb RAM and a single high-density floppy drive. Such a configuration cannot do much, but it is a cheap and cheeful way of finding out if Linux likes your hardware, before commiting yourself to the repartioning of the disk! Indeed, one of the nice things about Linux is its scalability: it likes lots and lots of everything, but it will still work with much less: add a 40Mb hard drive to the above minimal system and you do have a working system. The laptop I use when I'm out and about has a 386SL, 4Mb RAM, and an 80Mb HD, and I manage quite nicely on it, thank you!
In practice, at least 4Mb of RAM is desirable - and as with any modern operating system, the more the better. How much hard drive you will need depends completely on your requirements; typical Linux set-ups consume between 60 and 200 Mb of space. With less than 16Mb of RAM, a swap partition on the bard drive is well worth while. Indeed, I always like to have as much swap sapce as physical RAM - so the machine I am writing this on has 16Mb of SIMMs and another 16Mb in a swap partition.
You can do anything with Linux that you might contemplate doing with Unix. That's a broad claim, and I know that there are those who are sceptical of the stability and security of an OS that's given away. Lets take a look at some of the things people are actually doing with Linux.
The use of Linux in all areas of Internet service provision has exploded over the past year. The maintainer of the best FAQ on being an ISP (Internet Service Provider, natch) speaks: "My present system networks a 85mhz Sun clone with my Linux PC; the Linux PC is connected to the Internet through a 28.8kbps SLIP connection. Although it wasn't frightfully easy to connect, everything is now working surprisingly well, with little trouble. Even after over a year of operation, the system has successfully withstood quite heavy loads ... the system stayed up for 47 days without crashing". (David H. Dennis — latest version of his fascinating introduction to the world of an ISP is at http://www.amazing.com).
Linux is ideal for academic institutions, offering them a cheap way of exposing their students to the code of a real operating system.
Harald T. Alvestrand in Norway compiles statistics on the use of Linux worldwide. In his own words, as of 1st February 1995 "There are 11,398 registered Linux users. I estimate this as being between 0.2 and 5% of the total number of Linux users, giving the total community size something between 227,960 and 5,699,000 members." I recommend his web page at http://domen.uninett.no/~hta/linux/counter.html
The user of more traditional versions of Unix will naturally have caveats. What about support?, they cry. And security?
Most card manufacturers in the PC Unix market are concentrating on Linux and SCO. This is one area where the distributed nature of Linux development is a major plus; as long as someone, somewhere has the card, a Linux driver is probably being written. This means that hardware maufacturers' support for Linux, at least on the PC platform, may well be ahead of their support for other OSs!
Technical assistance is readily available nowadays. The Linux newsgroups on USENET will usually provide friendly answers with good information within hours of posting a question. If more help is needed, then there are more and more companies springing up around the UK who will be glad to help.
Security one of the primary concerns wiht any operating system. With Linux, the concern is emphasized - it doesn't spring from the box ready-configured, the onus is on the system administrator to make the system secure. That said, given a competent sysadmin, there is no reason to think that Linux is any less secure than any other Unix.
The main issue in Linux stability is the hardware it runs on. Like any Unix, it is much less tolerant of imperfection than dozy old DOS. Given due care in the selection of components (there are now companies that provide readly to run Linux boxes), a production Linux kernel can be relied on to run for weeks and weeks without rebooting. According to the Linux "Info Sheet", "One site had a computer running version 0.97 patchlevel 1 (dating from the summer of 1992) for over 136 days without an error or crash. (It would have been longer if the backhoe operator hadn't mistaken a main power transformer for a dumpster...) Others have posted uptimes in excess of a year." Many of the software tools available with a Linux system have been developed by the Free Software Foundation as part of its GNU project. Some of these tools, in particular the GCC compiler, have been featured in EXE. In a survey of Unix tools, the GNU set were found to be up to 40% more reliable in use, in terms of not crashing, not dying on bad input, and son on. EXE readers will probably not share the DP manager's distrut of anything that doesn't make a substantial hole in one's budget, but even so the quality of the GNU projgrams surpasses many commercial products. A (full copy of this report is at Ftp to grilled.cs.wisc.edu/technical_papers/fuzz-revisited.ps.Z).
Unix-heads have traditionally poured scorn on the limited hardware of the PC world. Historically, this attitude had much to commend it; of late, however, PC hardware has been improving: faster chips (Pentium), better motherboards (PCI), cheaper and better SCSI, bigger and cheaper disks. A Unix workstation can be built from PC components and use Linux as its OS, and compare on favourable terms with a similarly-priced Sun workstation.
Linux is the most exciting thing to happen in computing since the invention of the personal computer. It offers the technically-minded user access to what other sytems keep hidden. Those in the business of providing computer solutions for business are increasingly realising the advantages of an OS where everything is out in the open, since it gives them more scope for providing their customers with exactly what they want.
The primary Linux documentation is on-line. The e-books of the Linux Documentation Project, a plethora of "how-to" files, and lots of other stuff. This year has seen a deluge of Linux books from the publishers.
Linux is distributed by its author only as a kernel. Others have put packaged the bare kernel with oddles of supporting software to make distributions. It is in this form that Linux is commonly obtained on CD or from the 'Net. There are a number of distributions commonly available; Slackware is reputed to be among the best.
This page was brought to you by ksh, vi, m4, sed & make,
courtesy of openbsd.
Last changed: Tue Nov 8 17:32:19 CET 2016