#include <infodrom.style>
#include <linux.style>
#include <db.style>
<define-tag maxticker>10</define-tag>

<page title="Linux @ Infodrom">

<define-tag sect endtag=required whitespace=delete>
<colorbox bcolor=<menucolor> bgcolor=<menucolor>>
<b>%body</b>
</colorbox>
</define-tag>

<table width=100% cellpadding=0 cellspacing=0 border=0>
<tr>
<td width=75% valign=top align=left><ifont>

<h1 align=center>Linux 2.4 - Change Report</h1>

<h3 align=center>Linux 2.4 has been released on January 4th</h3>

<p>Read <a href=linux-2.4-mail.php>Linus Torvalds Mail Announcement</a> to linux-kernel.

<p>This page will only give you a rough overview about the changes in
Linux 2.4.0 compared with earlier stable releases 2.2.0 and 2.2.18.

<p>First of all, the increase in size is amazing.  Linux Kernel 2.4.0
is nearly double as <em>fat</em> as version 2.2.0.  While 2.2.0 from
the early days was only 55MB uncompressed, Linux 2.4.0 is now at over
100 megebytes pure sourcecode.  This should give you a first idea
about the amount of improvements and additions.  In terms of sheer
volume of code, Linux is made up of drivers. 

<sect>Statistics</sect>

<p>
<center>
<table cellspacing=0 cellpadding=2 border=0>
<tr bgcolor=<colh>>
<th><ifont>Kernel</ifont></th>
<th><ifont>Size/MB</ifont></th>
<th><ifont>Conf Opts</ifont></th>
<th><ifont>Archs</ifont></th>
<th><ifont>&nbsp;Dirs</ifont></th>
<th><ifont>&nbsp;Files</ifont></th>
</tr>

<define-tag row whitespace=delete>
<preserve version size conf dirs files archs color>
<set-var %attributes>
<tr bgcolor="<get-var color>">
<td><ifont><get-var version></ifont></td>
<td><ifont><get-var size></ifont></td>
<td align=right><ifont><get-var archs></ifont></td>
<td align=right><ifont><get-var conf>&nbsp;</ifont></td>
<td align=right><ifont><get-var dirs></ifont></td>
<td align=right><ifont><get-var files></ifont></td>
</tr>
<restore version size conf dirs files color archs>
</define-tag>

<row	version=2.2.0
	color="<cold>"
	size="10.5/55.4"
	archs=8
	conf="889"
	dirs="229"
	files="4599">
<row	version=2.2.18
	color="<coln>"
	size="15.0/82.9"
	archs=9
	conf="1143"
	dirs="284"
	files="5807">
<row	version=2.4.0
	color="<cold>"
	size="19.6/106.4"
	archs=13
	conf="1446"
	dirs="417"
	files="8187">

</table>
</center>

<blockquote><font size=-2>
Small note: Size was counted as tar.bz and .tar, config options were
measured as <code>grep "^CONFIG_"
Documentation/Configure.help</code>, dirs and files were counted by
using <code>find</find>.
</font></blockquote>

<p>Little after the S/390 architecture was introduced in 2.4.0 it got
backported to late 2.2.x kernels.  Entirely new in 2.4.0 are ia64
alias Itanium or Merced, 64bit MIPS/MIPSel, HP PA-RISC and SuperH.

<sect>Filesystems</sect>

<p>Several problems and flaws in the VFS subsystem (virtual
filesystem) and file caches have been fixed.  The buffer system has
been simplified in 2.4.  Another former limitation of Linux has been
removed.  You are now able to mount filesystems as many times as you
like (instead of only once).

<p>LVM (Logical Volume Manager) has been ported to Linux.  Using this
you get the possibility to resize filesystems, move them onto other
disks, spread them over a whole bunch of disks and take snapshots of
the current content.  All of this is done on-the-fly during regular
run time.  Have you ever thought about how you can increase your /home
filesystems with some of the free gigabytes in /var?  With LVM you
simply hook a new physical volume to the volume group that contains
your /home.

<p>While all kinds of filesystems are supported that are known to DOS,
Windows, OS/2, MacOS as well as BSD disklabel are available under
Linux as well for both reading and writing (for OS/2 this was a long
awaited feature).  Support for the filesystem used for BeOS is not yet
included but expected for later 2.4.x kernels.  Two new filesystems
have been included in Linux 2.4.  The first one is UDF which is widely
used on DVDs and the second one is EFS which was released under a free
license from SGI and which was used on older IRIX boxes.

<p>Journaling filesystems which were long awaited for Linux have not
yet been included in Linux 2.4, even though several projects are close
to providing this functionality (ext3, reiser, xfs).  At least
ReiserFS which is the most mature one is expected to be included in
later 2.4.x kernels.  If you want to use it at the moment (first <b>be
careful!</b>)) you'll have to fetch addtionional patches.

<p>When using large disks (30gb and above) booting Linux can take ages
when a filesytem check is required at boot time.  A well-designed
journaling filesystem can be much more easily restored after a crash
and thus a filesystem check will be a lot faster than before.

<p>When talking about network filesytems, NFS is the choice among Unix
and Unix-like systems.  NFS has been improved in 2.4 as well as moving
from separate NFS servers to a kernel based NFS server.  Linux also
supports NFSv3 which provides much better support for filesystem
synchronization, file locks, and other concepts important to
enterprise environments.

<sect>Architectures</sect>

<p>Linux is the only operating system kernel that runs on such a large
scale of different hardware besides NetBSD (which, in fact, seems to
run on any hardware found on this planet).  The port to the IBM S/390
architecture was pushed by IBM itself and then backported to the
stable kernel version at that time, probably due to the increased
preassure.

<p>The <a href="http://parisc-linux.org/">PA-RISC port</a> looks
promising, even though it is still far from being finished.  Linux
already boots on a large variety of machines, both the toolchain
(binutils, gcc, glibc etc.) and XFree86 should run on those machines.
However, due to the large variety of used hardware by HP a lot of
drivers are still missing.

<p>SuperH is a new architecture from swashing over from asia, normally
tied to to Windows CE and its application.  Included is support for
intels 64bit sucessor of the i386 processror: Itanium, Merced or ia64,
even though the processor is not ready for the masses yet.  On a
related subject, Linux did have issues with processors faster than
2GHz which have been solved a while ago.  Although no such processors
exist yet, they are expected in the near future, given the fact that
1.3GHz are already running.  Speaking of intel hardware, even MMX and
MMX2 technologies are now supported.

<p>While Linux 2.2 only supported IO-APIC (Advanced Programmable
Interrupt Controller) on multiprocessor systems, it now also supports
it on single-processor systems as well as multiple IO-APICs.
Optimizations for speed have been developed for all processor types.
Support for MTRRs (Memory Type Range Registers) has be highly
improved.  This is, for example, most useful if you have a video (VGA)
card on a PCI or AGP bus.  Enabling write-combining allows bus write
transfers to be combined into a larger transfer before bursting over
the PCI/AGP bus. This can increase performance of image write
operations 2.5 times or more.

<sect>Resource Management</sect>

<p>Linux 2.4. is the first kernel that deliveres with a full-featured
resource management subsystem.  While Linux 2.2 didn't contain what
was required to do proper Plug'n'Play with 2.4 this is the case.  The
PCI card database has been revived as well, so that all resources can
have an associated device name, rather than just an associated driver.

<p>The process scheduler has also been improved to be more efficient
on systems with large number of concurrent processes.  Even though
this will only be visible on large boxes Linux has passed the 64k user
limit.  It now supports up to 4.2 billion users and groups.  On a
related issue, on the intel architecture Linux now supports up to 64
gigabytes of RAM, up to 16 Ethernet cards and 10 IDE controllers.
Look at all those nice and heavy Netfinity servers, they will be able
run Linux these days.

<p>Linux 2.4 has included support for the USB (Universal Serial Bus)
which comes with about every new motherboard for intel-based
hardware.  Some laptops even depend on USB for their CD-ROM and Floppy
drives.  With USB you can use any piece of hardware: keyboard, mice,
scanner, video, printers, sound etc.  Even though Linux support is
still in the early stages, it already supports a large percentage of
common USB hardware.

<p>Also supported is Firewire (IEEE1394, or i.Link for Sony) which is
a popular option for high-bandwidth devices.  Like USB it is built in
into many current laptops.

# <font size=-1><p><em>This document is not yet finished but will be worked on during the next few days.</em></font>

<author>Joey</author>

# Newsbox
#</ifont></td><td valign=top><img src=<root_prefix>gifs/imgdot-1x1-transp.gif width=3 height=0 alt="">
</ifont></td><td width=25% valign=top align=right>

#include "links.inc"

#include "newsticker.inc"

</td></tr></table>

</page>

# Local variables:
# mode: indented-text
# end:
