|< Day Day Up >|
The developers of Linux included features from BSD, System V, and Sun Microsystems' Solaris, as well as new features in their operating system. Although most of the tools found on UNIX exist for Linux, in many cases these tools have been replaced by more modern counterparts. The following sections describe many of the popular tools and features available under Linux.
Guis: Graphical User Interfaces
The X Window System (also called X) was developed in part by researchers at the Massachusetts Institute of Technology and provides the foundation for the GUIs available with Linux. Given a terminal or workstation screen that supports X, a user can interact with the computer through multiple windows on the screen, display graphical information, or use special-purpose applications to draw pictures, monitor processes, or preview formatted output. X is an across-the-network protocol that allows a user to open a window on a workstation or computer system that is remote from the CPU generating the window.
Usually two layers run under X: a desktop manager and a window manager. A desktop manager is a picture-oriented user interface that enables you to interact with system programs by manipulating icons instead of typing the corresponding commands to a shell. GNOME (www.gnome.org) and KDE (www.kde.org) are the most popular desktop managers.
A window manager is a program that runs under the desktop manager and allows you to open and close windows, start programs running, and set up a mouse so it does different things depending on how and where you click. The window manager also gives the screen its personality. Microsoft Windows allows you to change the color of key elements in a window, but a window manager under X allows you to change the overall look and feel of your screen: change the way a window looks and works (by giving it different borders, buttons, and scrollbars), set up virtual desktops, create menus, and more.
Several popular window managers run under X and Linux, including Metacity (default under GNOME) and kwin (default under KDE). Other window managers, such as Sawfish and WindowMaker, are also available.
Linux network support includes many valuable utilities that enable you to access remote systems over a variety of networks. In addition to sending email to users on other systems, you can access files on disks mounted on other computers as if they were located on the local system, make your files available to other systems in a similar manner, copy files back and forth, run programs on remote systems while displaying the results on the local system, and perform many other operations across local area networks (LANs) and wide area networks (WANs), including the Internet.
Layered on top of this network access are a wide range of application programs that extend the computer's resources around the globe. You can carry on conversations with people throughout the world, gather information on a wide variety of subjects, and download new software over the Internet quickly and reliably.
One of Linux's major strengths is its rich software development environment. You can find compilers and interpreters for many computer languages. Besides C and C++, languages available for Linux include Ada, Fortran, Java, Lisp, Pascal, Perl, and Python among many others. The bison utility generates parsing code that makes it easier to write programs to build compilers (tools that parse files containing structured information). The flex utility generates scanners, or code that recognizes lexical patterns in text. The make utility and GNU's automatic configuration utility (configure) make it easy to manage complex development projects. Source code management systems, such as CVS, simplify version control. Several debuggers, including ups and gdb, help in tracking down and repairing software defects. The GNU C compiler (gcc) works with the gprof profiling utility to help programmers identify potential bottlenecks in a program's performance. The C compiler includes options to perform extensive checking of C code that can make the code more portable and reduce debugging time.
|< Day Day Up >|