[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

What's in store for Linux v2.2 (fwd)



Hi Blinuxers,

this announcement of Linux 2.2 just came in.
It hold interesting news for a user who is blind 
like the possibility to redirect kernel messages 
to a serial device.  See number 10) of the list.

A real impressive announcement about an operating system
build by free time hackers.


Enjoy!
Hans

---------- Forwarded message ----------
Date: Wed, 29 Jul 1998 11:37:04 -0500 (CDT)
From: Dave Whitinger <dave@whitinger.net>
To: linux-news-sw@threepoint.com
Subject: What's in store for Linux v2.2
Resent-Date: Wed, 29 Jul 1998 11:38:19 -0500
Resent-From: linux-news-sw@threepoint.com

The Wonderful World of Linux 2.2
--------------------------------

As any kernel developer can surely tell you, the advent of Linux 2.2 is nigh. 
Linux 2.1 is approaching near astronomical version numbers in its slow march
to completeness, 2.1.111 as of this writing, and all eyes are looking towards
the day when 2.2.0 will ship standard in the various distributions. Even if
you don't actually follow the Linux kernel version by version, 2.2 is an
important milestone to understand. So, submitted for your approval, my take on
the Linux Kernel Developments of late, with some significant bias towards x86
which is the Linux that I use most often at home.

Please note that this document does not cover all the new hardware that Linux
supports. Many devices, such as scanners and printers, are handled exclusively
in user space. Other devices, such as video cards and mice, are handled by a
combination of user and kernel drivers.  If you don't see a device class that
you are interested in listed in this document, it is quite likely that Linux
2.2 supports it-- just not necessarily using the kernel to do so. 

1) Chips Galore

The world of Intel chips is a fast and interesting thing to follow, if you
have nothing better to do. Merced, Celeron, MMX... the names of Intel
technologies float past to be replaced by new cutting-edge technology.
(Whether or not these technologies are worthwhile is a matter that I'm not
even going to begin to try and debate.) In addition, AMD, Cyrix, and other
companies have become solid competitors in the market and each have their own
little optimizations, quirks, and bugs.  It's a mess, to say the least. 

Linux 2.2 will be the first stable Linux to support optimizations for kernel
configuration tool for even better fine-tuning. Perhaps even more importantly,
Linux 2.2 (and later revisions of 2.0 for obvious reasons) supports bugfixes
and workarounds for widespread processor bugs including the infamous F00F
Pentium bug. Other bugs that can't be worked around, such as several AMD K6
bugs, are reported during startup. 

Merced hasn't arrived yet and probably isn't immediately forthcoming, but
Linux 2.2 has already been ported to Sparc64, Alpha, and other 64-bit
platforms so the infrastructure for a 64-bit native kernel is already happily
in place. (There are, of course, other obstacles that would have to be
overcome before Linux/Merced could be released but having a 64-bit ready
kernel is an important step.) 

Multiple-Processor machines now will operate much more efficiently than they
did in Linux 2.0 with issues such as the global spinlock removed. Up to 16
processors are supported (the same as with 2.0) but the performance difference
should still be amazing. Also, there is now greater support for the IO-APIC on
Intel boards that will make SMP generally better supported. 

In terms of other ports, Linux 2.2 will feature improved support for a large
number of 'mainframe' machines such as Sparc, Sparc64, and Alpha machines. As
for 'desktop' machines, Linux 2.2 has been ported to both m68k and PPC flavors
of the Macintosh with varying degrees of hardware support. (You can expect
that support will only get better as we approach 2.4 or whatever comes next.) 
Linux is also moving to processors, such as ARM, that are increasingly popular
for embedded systems.

On somewhat of a tangent, there is continuing work to support a subset of the
Linux kernel on 8086, 8088, 80186, and 80286 machines. Likely this will not be
usable in time for 2.2, but it is something to look for in the future.

And on a sadder note, the number of new features that have been added to Linux
2.2 have made it swell to require an inordinate amount of memory.  One can
only hope that, eventually, we are given kernel options to not compile in
unneeded features to get the memory requirements down to a reasonable level. 
Thus, I am sad to report that the absolute minimum amount of RAM to have on a
working, text-based, Linux machine is now 5-megs. (Up from slightly less than
4 with Linux 2.0) To get a reasonable amount of use however without swapping
still requires at least approximately 8-megs. On the bright side, if you are
blessed with more, Linux 2.2 will take much better advantage of having more
memory than ever before with several advanced caching features and other
optimizations to make your box sing. 

2) System Busses and Assorted Ilk

Although somewhat less crucial and cutting edge, Linux 2.2 will support a much
larger percent of the existing x86 computers with the addition of complete
support for the Microchannel bus found on some PS/2s and older machines. 

In addition to hundreds of minor patches to the bus system (including many new
PCI device names), larger improvements have taken place. PCI, in particular,
has undergone several major changes. Firstly, the PCI device reporting
interface has been changed and moved to allow for easier addition of new
information fields. This particular change doesn't spell much of a difference
for an end user but it makes the lives of developers much easier. 
Additionally, it is now possible to choose whether you want to scan your PCI
bus using your compatible PCI BIOS or through direct access. This allows Linux
2.2 to work on a larger set of machines as several PCI BIOSes were
incompatible with the standards and caused booting problems.

Sadly, there is still little kernel support for Plug-and-Play ISA devices. 
While that would be a great addition, there are some problems with the
currently proposed systems that will need to be resolved sometime in 2.3
before inclusion. Fortunately enough, there happens to be a great user-level
utility, isapnp, for setting up PnP devices that requires just a tad more work
than we'd like but gets the job done in true Linux fashion.

3) IDE, and SCSI, and USB... Oh my! 

As far as Linux IDE is concerned, not much obvious has changed for Linux 2.2. 
The most obvious change is that it is now possible to load and unload the IDE
subsystem as a module, just like SCSI. (This also has the added bonus of
allowing one to use a PnP-based IDE controller.) For less bleeding-edge
machines, the updated IDE driver now supports older MFM and RLL disks and
controllers without having to load an older version of the driver. Linux 2.2
now also has the ability to detect and configure all PCI-based IDE cards
automatically, including the activation of DMA bus-mastering to reduce CPU
overhead and improve performance. And finally, more drivers have been
developed for controllers that are buggy or simply different. It's amazing how
even excellent things can continue to get better.

Elsewhere in the IDE world, parallel port IDE devices have become more common
and are now supported by Linux 2.2, for the most part. It is a good assumption
that many devices that are not supported currently will be added as 2.2
progresses.

Unfortunately for devices such as rewritable CD-ROMs, there are still
instances where you need to use the newly added SCSI emulation driver as a
kludge for support. I don't like it, but I have no real opinion that counts. 
This limitation may be removed in future versions of the CD-ROM driver but
will likely still be present when 2.2.0 ships.

The SCSI subsystem's main improvements have been the addition of many new
drivers for many new cards and chipsets. Too many, in fact, to even begin to
name. 

Alas, there is some bad news here. There is an ongoing effort to support USB
and USB devices but so far any progress that has been made along this front
has not been included in a Linux 2.1 release. This could change before the
official 2.2 release, but it is unlikely that such a large feature would be
included this close to release. 

4) Ports: Parallel and Serial

Nothing much new on this front, Linux has always had incredible support for
these basic building blocks. The parallel port driver has been rewritten with
cross-platform issues in mind and thus what was once just a 'Parallel Port' is
now a 'PC-Style Parallel Port' Functionality-wise, the only obvious change is
that you can now effortlessly share a single parallel port device with
multiple device drivers. (Note however that the naming convention used to
label parallel ports has changed so you may find that your lp1 has become your
lp0. Distributions should allow for this change automatically however.)

Serial support is chugging along as well as it always has but with one notable
difference. Previously, a serial device such as a modem involved two devices,
one for call-in and one for call-out. (ttyS and cua respectively) As of Linux
2.2, the two are combined in one device (ttyS) and accessing the cua devices
now prints a warning message to the kernel log. On the bright side, Linux 2.2
includes support for having more than 4 serial ports, it allows serial devices
to share interrupts, and it includes a number of drivers for non-standard
ports and multi-port cards.  My only complaint with serial support is its lack
of support for the standard methods for modules to pass device parameters at
module- load time via the modules.conf file and kmod. (Instead, these
parameters are set using the 'setserial' command. Somewhat yuck.)

It should also be mentioned that Linux 2.2 will support newer UART chips than
2.0 which may translate into higher transfer rates using newer modems.

5) CD-ROMs, Floppies, and removable media

Thankfully, the hodge-podge of hundreds of CD-ROM standards has solidified
behind the 'standard' of ATAPI CD-ROMs. This reprieve has given developers
time to completely rewrite the CD-ROM driver system to be more standardized in
terms of support. Small, quirky differences between the individual drivers
have now all been fixed for better support. 

Rewritable CD-ROMs aren't supported nearly as well as one would like,
unfortunately. SCSI CD-ROMs are well done but IDE drives may require the
SCSI-emulation kludge driver. This limitation may be removed in a future
version of the CD-ROM subsystem but is something that we will have to cope
with for now.

Floppies are working as great as ever. There are new developments in terms of
large volume floppies and it remains to be seen whether or not all of these
will be supported although those devices that communicate using ATAPI (a large
number of them, actually) are already supported to some degree. 

IOMEGA's zip drive, an increasingly popular storage solution, is fairly well
supported under Linux 2.2. These beasts come in two versions: SCSI and
Parallel. Under SCSI, the Zip drives are supported just as any other disk
would be. The parallel version of these drives actually use a sort of
SCSI-over-parallel protocol that is also supported in Linux 2.2. (Other IOMEGA
solutions such as DITTO drives may also be supported using the ftape drivers.)

DVD drives are already supported, to some degree, under Linux as they
represent themselves largely as ATAPI drives. (SCSI DVD drives may not, but
they will probably work using only the excellent SCSI CD-ROM driver.)
Unfortunately, this does not necessarily mean that all will be rosy in the
Linux/DVD world as Linux does not currently support any DVD-centric
filesystems that have been proposed nor are any user-space tools developed to
display DVD movies and etc. Once the standards stabilize a bit, it is highly
likely that the requisite parts will be added to the Linux kernel sometime
during the 2.2.x cycle, following the initial release.

Other removable media may or may not be supported under Linux 2.2. If the
questionable device connects through the parallel port, it is possible that it
is supported using one of the Parallel Port IDE device protocol modules that
are included in the kernel.

6) Glorious Sounds! 

At long last, the sound code has been partially rewritten to be completely
modular from start to finish. Distributions will be able to more easily
include generic sound support out-of-the-box for their users as well as making
it easier for the rest of us to load and configure sound devices. (Especially
pesky Plug-and-Play ones.) Lots of new sound devices are supported as well and
it looks like this is one area where Linux will really improve in the next
year.

One very notable defect here is the remaining lack of support for the PC
internal speaker, if only for completeness. Then again, Windows 95/98 doesn't
do it either so who am I to judge?

7) Video4Linux

Linux 2.2 now has amazing support for a growing number of TV and radio tuner
cards and digital cameras. This is a truly bleeding edge addition to 2.1's
roster so there may still be some outstanding issues but it is reasonable to
assume that they will be fixed in time. In my humble opinion, this is just an
amazing area for Linux to be in at all. 

8) Back me up, Scotty! 

Linux 2.2's backup and tape device subsystem has not changed much since the
2.0 release. More drivers for devices have been written, of course and
substantial improvement has been made for backup devices that work off of the
floppy disk controller (including the IOMEGA DITTO). 

Rewritable CD-ROMs have become a popular solution for backing up data and they
are supported under Linux 2.2 (either natively or using the SCSI emulation
driver.) There are still outstanding issues in this regard, see my note above
on CD-ROMs for details. 

9) Joysticks, Mouse, and Input Devices

Joysticks are better supported in 2.2 including a large number of new
joysticks and joysticks with an inordinate numbers of buttons. Likely, your
joystick will work under Linux 2.2.

Mice in 2.2 aren't really different from mice in 2.0. (As in 2.0, there are
some inconsistencies regarding mouse support that will be addressed in the
future. For the most part, mouse control is provided through a daemon external
to the kernel. Some mouse drivers however deliberately emulate a Microsoft
standard mouse. The reasoning behind this is obvious but it would be nice if
it was decided on in one way or the other.) It should be noted that, while not
solely a kernel issue, mice with Microsoft's spinning wheel extension are
supported in recent versions of the XFree86, Linux's most popular GUI. 
(However most Linux applications have not been designed to take advantage of
this feature-- yet.)

Additionally, several other input devices are now supported under Linux 2.2
including some digitizer pads. If your devices emulate a mouse (as many do) 
then it is already supported by Linux 2.2 (and, in fact, Linux 2.0.)

10) Video

Perhaps the most surprising and cutting-edge addition to the Linux kernel for
inclusion in version 2.2 is what is called the 'frame-buffer console' driver
(or 'fbcon', for short.) 

Previously, the Linux kernel (for Intel-based machines) only understood and
manipulated the video devices in text mode. Graphical support was to be
provided by two other systems: 'svgalib' for console-based graphics, and a
specialized X Server for window-based graphics. This kludgey system often
required configuration information to be repeated and each system supported
only a limited slice of the myriad of video devices in common use. 

Since this addition is rather new, it remains to be seen whether it will truly
replace the previous and long-standing duality. Unfortunately, it could be
nearly a year after Linux 2.2 ships before this new system could be robust
enough to support the cards and technologies that we already take for granted
as working. My personal opinion is that this is the right idea, but I'm going
to withhold judgment until we see exactly how far Linus and the developers
decide to take this feature.

As an added side-effect of this new feature, primitive multi-heading has been
added into the kernel for some devices. Currently, this is limited to some
text-mode output but it is reasonable to assume that this very new addition to
the Linux kernel will mature somewhat during the 2.2.x and 2.3.x cycles.

It should also be mentioned that it is now possible to remove support for
'virtual' terminals as provided by the kernel. This allows very
memory-conscious people to save just a tad more.

Although unimaginable to the desktop user, Linux can now work even better on
systems that do not actually include any sort of video device. In addition to
being able to log in over serial or networked lines, as Linux 2.0 and previous
Linuxes allowed, it is now possible to redirect all the kernel messages
(usually sent to the console directly before any hardware was initialized) to
a serial device. 

11) Networking: Ethernet, ISDN, and the lowly modem. 

I don't have a huge amount of experience here; I've been using the same
network cards in all my machines for several years. But, it doesn't take an
Alan Cox to see that the number of supported Ethernet and ISDN devices
supported in Linux 2.2 has risen sharply. I have been told that newer
solutions such as cable modems are supported, also.

My only gripe in this regard is the continued non-support of so-called
'Winmodems.' Not that I blame Linux for their absence, making modems that are
80% software is just a dumb idea anyway, but the idealist in me hopes that
some day these pesky devils will be supported like their more usable cousins. 

12) Amateur Radio people are Linux people, too. 

Since before Linux 2.0, Linux has been one of the few desktop OSes to natively
include support for computer-based amateur radio people. (Not that I actually
know what that entails but it seems to be a more popular option outside the
US.) Linux 2.2 includes a large number of enhancements to this subsystem,
including the ability to *network* several machines over radio waves, but this
isn't personally my forte.

Suggestions and additions for this category would be very appreciated. 

13) Filesystems for the World

Linux 2.2 has a wide array of new filesystems and partition types for
interconnectivity. In addition, many of Linux's supported filesystems
(including those I haven't listed here) have been updated with a new caching
system to markedly improve performance. (In fact, not updating the drivers
wasn't even an option if one wanted them included in Linux 2.2.)

For the Microsoft nut, Linux will now read (and maybe write) NTFS (Windows NT) 
drives and Windows 98's (and some later editions of Windows 95's) FAT32
drives. Linux 2.2 also understands Microsoft's Joilet system for long
filenames on CD-ROMs. And finally, Linux also understands a new type of
extended partition that Microsoft invented. Drivers to read and write
Microsoft and Stacker compressed drives are being developed but not yet
included in the kernel.

For Mac connectivity, a HFS driver for reading and writing Mac disks has been
included. HFS+ and older Mac filesystems are not yet supported. Macintosh
partition tables can now also be read by the kernel; this allows Mac SCSI
disks to be mounted natively. 

Sadly, OS/2 users will still not be able to write to their HPFS drives.  Some
updates have been made to the HPFS driver to support the new 'dcache' system
but not the overhaul that some were hoping for.

If there are any Amiga users left, they will be pleased to know that the FFS
driver has undergone some minor updates since 2.0. This may be especially
useful if the new generation of PPC Amigas use the same disk format.

For connectivity to other UNIXes, Linux 2.2 has come forward in leaps and
bounds. Linux 2.2 still includes the UFS filesystem which is used on BSD
derived systems, including Solaris and the free versions of BSD. Linux 2.2 can
now also read the partition table formats used by FreeBSD, SunOS, and Solaris. 
For SysV-style UNIXs, Linux 2.2 features a somewhat updated version of SysVFS. 
Linux 2.2 can also read the Acorn's RiscOS disks. And finally, Linux 2.2
features a somewhat updated version of the ever-popular Minix filesystem,
which can be used for small drives and floppies on most UNIXes. With so many
incompatible formats (and Linux 2.2 reading so many of them), it's amazing
anyone ever got any work done.

In other news, support for 'extended' drives (the format used by much older
versions of Linux) has been removed in favor of the 'second extended'
filesystem. (This shouldn't matter to many people, 'ext2' is far superior to
its predecessor.) With the increased support of initial ramdisks, a 'romfs'
has been created which requires a very minimal amount of overhead. 

While not quite a filesystem, Linux 2.2 includes enhanced support for
stretching a filesystem, across several disks transparently. At present, this
support can be used in RAID 0, 1, 4, and 5 modes as well as a simple linear
mode. 
 
14) Networking II: Under the Hood

On the protocol front, a lot has happened that I simply don't understand
completely. The next generation Internet protocol, IPv6, has made an
appearance. SPX, a compliment to IPX is new, as well. DDP, the protocol of
choice for AppleTalk networking has also been improved. And, just as you would
come to expect by now, the existing protocols have been improved, as well. I
only wish I had the need to use some of this stuff...

On the low-end front, not much has changed. PPP, SLIP, CSLIP, and PLIP are all
still available for use. I guess some things don't need much improvement. 
(Although each of those drivers have been updated in one way or another.) 

The list keeps going, however. Linux 2.2 will have an excellent new networking
core, new tunneling code, a completely new firewalling and routing system
called 'ipchains', support for limiting bandwidth consumption, and a ton more. 
It's just amazing. I wish I could keep track of it all. (But, who am I
kidding?) 

It should be noted that file and printer sharing protocols have also been
improved and markedly enhanced. SMB, the protocol for accessing Windows-based
shared filesystems has been somewhat improved with bugfixes and the like. If
you are a fan of NetWare (doubtful), you'll be happy to know that Linux 2.2
supports a large number of improvements in this area, including access to two
different kinds of NCP long file names. Trusty NFS has also been improved,
both at the server level and the client level. And finally, those eggheads
over at CMU have been hard at work developing the new distributed network
filesystem, Coda. This filesystem supports a large number of highly-requested
features including disconnected operations for laptops, an advanced cache
system, and security improvements. 

On somewhat of a tangent, Linux 2.2 also includes a driver which will allow
one to share (and remotely mount) whole disk images over a network.

15) Wow! There are *people* in Europe? 

Linux 2.0 is surprisingly a very international OS with support for
international keyboards and the like. Linux 2.2 adds to this and other
internationalization features the ability to load some UNICODE codepages for
translating filenames into Linux's native system. (Currently, the only
filesystems that use these UNICODE codepages include Microsoft's VFAT and
Microsoft's Joilet ISO 9660 (CD-ROM filesystem) extension.)

16) And, finally... 

In addition to those noted above, there are a large number of other drivers
and things that just don't fit in anywhere but should still be noted. So, in
no given order, the oddball updates of Linux 2.2:

The loopback driver, which allows disk images to be mounted and manipulated
just like any regular drive, has been improved in a number of ways. Of these
improvements, the most notable difference to users will be its increased
support for encryption and the mounting of encrypted hard disks and disk
images. 

Additionally, support is now provided for 'initial ramdisks' which allow for
increased flexibility in how a linux system can be booted. In particular, an
initial ramdisk allows a distribution to include a kernel with *no* drivers
compiled in and load the required drivers as needed.  (Previously, a driver
for boot media had to be in the kernel so that the drivers for the other
devices could be read from the harddisk.) This is especially useful for people
with Plug-and-Play devices that can't be accessed until after a user-mode
utility is run.

A driver for accessing your computer's CMOS memory has also been provided in
Linux 2.2 which may be useful in some applications. (Sadly, a similar driver
to access your BIOS's flashable RAM did not make it, it will still be
necessary to boot from a DOS floppy to flash your computer's BIOS to a new
version.) 

And finally, in the past, Linux used a half-user/half-kernel method of loading
in and out drivers (called 'modules') called 'kerneld' This method was good
but inefficient. Linux 2.2 has removed kerneld and replaced it with a new
all-kernel solution called 'kmod'. 

------------

This is the 'final' version of this document, unless there are really stupid
mistakes or Linux 2.1 gets a really special new feature. (We're in a feature
freeze... again so that is unlikely.) I would however like to ask for
interested people to continue to send me suggestions and corrections at
knight@baltimore.wwaves.com. 

Thank you all for your support during the writing of this document. 
Unfortunately, in the rush of suggestions and the rash of dozens of people
correcting me on the same items (Alpha as a 64-bit platform, for example), I
completely lost track of contributors. I'm sorry. 

Thank you, and Good Night. 

Joseph Pranevich





--
      Three Point's Linux News --- http://www.threepoint.com


-- 
         To unsubscribe: mail blinux-announce-request@redhat.com with 
                       "unsubscribe" as the Subject.