Files
oldlinux-files/docs/Install-Guide/install-guide-2.2.2/node11.html
2024-02-19 00:23:35 -05:00

152 lines
7.8 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML 2.0//EN">
<!Converted with LaTeX2HTML 95.1 (Fri Jan 20 1995) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds >
<HEAD>
<TITLE>1.3 System Features</TITLE>
</HEAD>
<BODY>
<meta name="description" value="1.3 System Features">
<meta name="keywords" value="gs">
<meta name="resource-type" value="document">
<meta name="distribution" value="global">
<P>
<BR> <HR><A NAME=tex2html1790 HREF="node12.html"><IMG ALIGN=BOTTOM ALT="next" SRC="next_motif.gif"></A> <A NAME=tex2html1788 HREF="node8.html"><IMG ALIGN=BOTTOM ALT="up" SRC="up_motif.gif"></A> <A NAME=tex2html1782 HREF="node10.html"><IMG ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif"></A> <A NAME=tex2html1792 HREF="node1.html"><IMG ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif"></A> <A NAME=tex2html1793 HREF="node250.html"><IMG ALIGN=BOTTOM ALT="index" SRC="index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME=tex2html1791 HREF="node12.html">1.4 Software Features</A>
<B>Up:</B> <A NAME=tex2html1789 HREF="node8.html">1 Introduction to Linux</A>
<B> Previous:</B> <A NAME=tex2html1783 HREF="node10.html">1.2 A Brief History </A>
<BR> <HR> <P>
<H1><A NAME=SECTION00330000000000000000>1.3 System Features</A></H1>
<P>
Linux supports most of the features found in other implementations of UNIX,
plus quite a few that aren't found elsewhere. This section is a nickel tour
of the Linux kernel features.
<A NAME=172>&#160;</A>
<A NAME=173>&#160;</A>
<A NAME=174>&#160;</A>
<A NAME=175>&#160;</A>
<P>
Linux is a complete multitasking, multiuser operating system (just like
all other versions of UNIX). This means that many users can be logged
into the same machine at once, running multiple programs simultaneously.
<A NAME=176>&#160;</A>
<P>
The Linux system is mostly compatible with a number of UNIX standards (inasmuch
as UNIX has standards) on the source level, including IEEE POSIX.1, System V,
and BSD features.
<A NAME=177>&#160;</A>
<A NAME=178>&#160;</A>
It was developed with source portability in mind:
therefore, you are most likely to find commonly-used features in the Linux
system which are shared across multiple implementations. A great deal of
free UNIX software available on the Internet and elsewhere compiles on
Linux out of the box. In addition, all source code for the Linux system,
including the kernel, device drivers, libraries, user programs, and
development tools, is freely distributable.
<P>
Other specific internal features of Linux include POSIX job control (used
by shells such as <tt>csh</tt> and <tt>bash</tt>),
<A NAME=181>&#160;</A>
pseudoterminals (<tt>pty</tt>
devices), and support for national or customized keyboards using
dynamically-loadable keyboard drivers. Linux also supports <b>virtual
consoles</b>,
<A NAME=184>&#160;</A>
which allow you to switch between multiple login sessions from
the system console in text mode. Users of the ``<tt>screen</tt>'' program
will find the Linux virtual console implementation familiar.
<P>
The kernel is able to emulate 387-FPU instructions itself, so that systems
without a math coprocessor can run programs that require floating-point
math instructions.
<A NAME=186>&#160;</A>
<P>
Linux supports various filesystem types for storing data. Various filesystems,
such as the <em>ext2fs</em> filesystem, have been developed specifically
for Linux.
<A NAME=188>&#160;</A>
Other filesystem types, such as the Minix-1 and Xenix filesystems,
are also supported. The MS-DOS filesystem has been implemented as well,
allowing you to access MS-DOS files on hard drive or floppy directly.
The ISO 9660 CD-ROM filesystem type,
which reads all standard formats of CD-ROMs, is also supported.
We'll talk more about filesystems in Chapters <A HREF="node50.html#chapinstallnum">2</A>
and <A HREF="node155.html#chapsysadmnum">4</A>.
<P>
Linux provides a complete implementation of TCP/IP networking. This includes
device drivers for many popular Ethernet cards, SLIP (Serial Line Internet
Protocol, allowing you to access a TCP/IP network via a serial connection),
PLIP (Parallel Line Internet Protocol), PPP (Point-to-Point Protocol),
NFS (Network File System), and so on.
The complete range of TCP/IP clients and services is supported,
such as FTP, <tt>telnet</tt>, NNTP, and SMTP. We'll talk more about
networking in Chapter <A HREF="node197.html#chapadvanced">5</A>.
<A NAME=193>&#160;</A>
<A NAME=194>&#160;</A>
<A NAME=195>&#160;</A>
<A NAME=196>&#160;</A>
<P>
The Linux kernel is developed to use the special protected-mode features
of the Intel 80386 and 80486 processors.
<A NAME=197>&#160;</A>
In particular, Linux makes use of
the protected-mode descriptor-based memory management paradigm and many of
the other advanced features of these processors. Anyone familiar with 80386
protected-mode programming knows that this chip was designed for a
multitasking system such as UNIX (or, actually, Multics). Linux exploits
this functionality.
<P>
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.
<A NAME=198>&#160;</A>
<P>
In order to increase the amount of available memory, Linux also implements
disk paging: that is, up to 256 megabytes of ``swap space''<A NAME=tex2html27 HREF="footnode.html#199"><IMG ALIGN=BOTTOM ALT="gif" SRC="foot_motif.gif"></A> can be allocated
on disk. When the system requires more physical memory, it will swap out
inactive pages to disk, thus allowing you to run larger applications and
support more users at once. However, swap is no substitute for physical
RAM---it is much slower due to drive access latency times.
<A NAME=200>&#160;</A>
<P>
The kernel also implements a unified memory pool for user programs and
disk cache. In this way, all free memory is used for caching, and the
cache is reduced when running large programs.
<P>
Executables use dynamically linked shared libraries,
<A NAME=201>&#160;</A>
meaning that
executables share common library code in a single library file found on disk,
not unlike the SunOS shared library mechanism. This allows executable files to
occupy much less space on disk, especially those that use many library
functions. There are also statically-linked libraries for those who wish to
use object debugging or maintain ``complete'' executables without the need
for shared libraries to be in place. Linux shared libraries are dynamically
linked at run-time, allowing the programmer to replace modules of the
libraries with their own routines.
<P>
To facilitate debugging, the Linux kernel does core dumps for
post-mortem analysis. Using a core dump and an executable linked with
debugging support, it is possible to determine what caused a program to
crash.
<A NAME=202>&#160;</A>
<A NAME=203>&#160;</A>
<A NAME=204>&#160;</A>
<P>
<A NAME=205>&#160;</A>
<A NAME=206>&#160;</A>
<A NAME=207>&#160;</A>
<A NAME=208>&#160;</A>
<P>
<BR> <HR><A NAME=tex2html1790 HREF="node12.html"><IMG ALIGN=BOTTOM ALT="next" SRC="next_motif.gif"></A> <A NAME=tex2html1788 HREF="node8.html"><IMG ALIGN=BOTTOM ALT="up" SRC="up_motif.gif"></A> <A NAME=tex2html1782 HREF="node10.html"><IMG ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif"></A> <A NAME=tex2html1792 HREF="node1.html"><IMG ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif"></A> <A NAME=tex2html1793 HREF="node250.html"><IMG ALIGN=BOTTOM ALT="index" SRC="index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME=tex2html1791 HREF="node12.html">1.4 Software Features</A>
<B>Up:</B> <A NAME=tex2html1789 HREF="node8.html">1 Introduction to Linux</A>
<B> Previous:</B> <A NAME=tex2html1783 HREF="node10.html">1.2 A Brief History </A>
<BR> <HR> <P>
<BR> <HR>
<P><ADDRESS>
<I>Matt Welsh <BR>
mdw@sunsite.unc.edu</I>
</ADDRESS>
</BODY>