No matter what version of Linux you use, the piece of code common to all is the Linux kernel. Although the kernel can be modified to include support for the features you want, every Linux kernel can offer the following features:
· Multiuser — Not only can you have many user accounts available on a Linux system, you can also have multiple users logged in and working on the system at the same time. Users can have their own environments arranged the way they want: their own home directory for storing files and their own desktop interface (with icons, menus, and applications arranged to suit them).
· Multitasking — In Linux, it is possible to have many programs running at the same time, which means that not only can you have many programs going at once, but that Linux, itself, can have programs running in the background. Many of these system processes make it possible for Linux to work as a server, with these background processes listening to the network for requests to log in to your system, view a Web page, print a document, or copy a file. These background processes are referred to as daemons.
· Graphical User Interface (X Window System) — The powerful framework for working with graphical applications in Linux is referred to as the X Window System (or simply X). X handles the functions of opening X−based GUI applications and displaying them on an X server process (the process that manages your screen, mouse, and keyboard). On top of X, you use an X−based desktop environment to provide a desktop metaphor and window manager to provide the specific look−and−feel of your GUI (icons, window frames, menus, and colors). There are several desktop environments and dozens of desktop managers to choose from. (Red Hat provides several desktop managers, but focuses on Gnome and KDE desktop environments.)
· Hardware support — You can configure support for almost every type of hardware that can be connected to a computer. There is support for floppy disk drives, CD−ROMs, removable disks (such as Zip drives), sound cards, tape devices, video cards, and most anything else you can think of. Note Not every hardware manufacturer provides Linux drivers with their peripheral devices and adapter cards. Although most popular hardware will be supported eventually in Linux, it can sometimes take a while for a member of the Linux community to write a driver.
· Networking connectivity — To connect your Linux system to a network, Linux offers support for a variety of Local Area Network (LAN) boards, modems, and serial devices. In addition to LAN protocols, such as Ethernet and Token Ring protocols, all the most popular upper−level networking protocols can be built−in. The most popular of these protocols is TCP/IP (used to connect to the Internet). Other protocols, such as IPX (for Novell networks) and X.25 (a packet−switching network type that is popular in Europe), are also available.
· Network servers — Providing networking services to the client computers on the LAN or to the entire Internet is what Linux does best. A variety of software packages are available that enable you to use Linux as a print server, file server, FTP server, mail server, Web server, news server, or workgroup (bootp or NIS) server.
· Application support — Because of compatibility with POSIX and several different application programming interfaces (APIs), a wide range of freeware and shareware software is available for Linux. Most GNU software from the Free Software Foundation will run in Linux.