荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Lg (创造人生的传奇), 信区: Linux
标  题: The Wonderful World of Linux 2.2
发信站: BBS 荔园晨风站 (Tue Jan 26 05:41:24 1999), 站内信件 (WWW POST)

The Wonderful World of Linux 2.2
  Oct 19th, 10:45:34

 by Joseph Pranevich

       As any kernel developer can surely tell you, the advent of Linux
       2.2 is nigh. Linux 2.1 is gone, to be replaced by a new (and
       shorter) wave of 2.2-pre kernels, 2.2.0-pre9 (final) as of this
       writing. All eyes are looking towards next Monday (1/25/99) when
       the Big Day is expected to finally arrive. It is reasonable to
       expect that the assorted distributions will begin to ship the
       new 2.2 kernels by March. 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, here is my take
       on the Linux Kernel Developments of late, with some significant
       bias towards Linux/i386 which is the Linux that I use most often
       at home. -- Joseph Pranevich

 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 options for the
 various non-Intel processors in the kernel configuration tool. 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 an AMD K6 sig11 bug, 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 be amazing. Also, there is now greater support for the
 IO-APIC on Intel boards that will make SMP generally better supported. And
 finally, it is now possible to specify a multi-processor configuration
 without ever leaving the kernel configuration tool.

 In terms of other ports, Linux 2.2 will feature improved support for a
 large number of 'workstation' machines such as Sparc, Sparc64, and Alpha
 machines. As for 'desktop' machines, Linux 2.2 has been ported to
 Motorola's m68k and PPC processors and now can be expected to run on many
 of these platforms, including the Macintosh. (with varying degrees of
 hardware support, of course.) 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. This project
 will never integrate itself with Linux-proper but will provide an
 alternative Linux-subset operating system for these machines.

 In terms of memory consumption, the average Linux 2.2 setup will require
 more memory than Linux 2.0. (Although a larger number of components can
 now be modularized or compiled-out to allow a system administrator more
 flexibility if memory is tight.) There is some debate as to what is the
 lower limit in terms of functionality with a text-only system but it
 should still be possible to have only 4 megs of RAM in many situations. (8
 megs are still recommended.) On the bright side, Linux 2.2 includes a
 number of new optimizations that should actually improve the performance
 of machines with at least 16 megs of RAM. The more, the merrier.

 2) System Busses and Assorted Ilk

 Although somewhat less crucial and cutting edge, Linux 2.2 will support a
 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. The PCI
 subsystem, 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.

 Laptops and many workstations can also benefit from improved support for
 power management, including workarounds for a number of incompatible BIOS
 implementations. Also new in 2.2 is the ability to use some functions of
 an APM BIOS on multi-processor systems.

 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.

 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 here.

 PCMCIA adapters (or PC-card slots, as they are called now) are not
  supported in the standard Linux 2.2 but are supported by an external
 module provider. Thus, while not in the kernel, PCMCIA support will be
 included in most distributions.

 IRDA support has also been added to the kernel although many controllers
 are not supported. As this features was added only in the closing days of
 Linux 2.1 development, it may not be as generally usable as other, more
 mature, portions of the kernel.

 Alas, there is some bad news here. Despite ongoing efforts by several
 parties to finish USB support, no support was included in time for a Linux
 2.2 release. Several prominent developers, including Alan Cox, have looked
 at USB support and it is likely that there will be some support before we
 get too far into Linux 2.2.x. (Alternatively, USB support could be
 provided through an external source in the same way that PCMCIA support is
 now.)

 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 (and most IDE drives use
 SCSI-over-ATA, the SCSI-emulation driver). With other rewritable CD-ROMs,
 your mileage may vary.

 Floppies are working as well 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. 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 three versions: SCSI,
 ATAPI (IDE), and Parallel. Under SCSI and ATAPI, 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 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
 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 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 many Linux applications have not been
 designed to take advantage of this feature.)

 Additionally, several other input devices are now supported under Linux
 2.2 including some digitizer pads. If your devices emulates 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
 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 less
 retarded cousins.

 12) Amateur Radio people are Linux people, too.

 Since before Linux 2.0, Linux has been one of the few desktop OSes to
 include native 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 adds support for NetROM and ROSE amateur radio
 protocols. The basic AX.25 layer has also been materially enhanced.

 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 FAT32 drives (also used by some later versions
 of Windows 95). Linux 2.2 also understands Microsoft's Joliet 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 MFS (ancient floppy format) 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 complete overhaul that some were hoping for.

 If there are any Amiga users left (and there are), they will be pleased to
 know that the FFS driver has undergone some minor updates since 2.0. This
 is especially useful as the new generation of PPC Amigas will continue to
 support this 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 has very minimal 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) Not Everyone Speaks English.

 Linux 2.0 is 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) Unix98: The Next Generation

 Linux 2.2 will be a more 'standard' UNIX in a number of ways. The most
 pronounced of these ways to the end user will be the addition of
 UNIX98-style Pty devices using a new filesystem (devpts) and a cloning
 device to provide the functionality.

 17) 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.

 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 smaller all-kernel solution called 'kmod'.

 Thank you, and Good Night.

 About the author: Joseph Pranevich is a consummate Linux geek who is
 currently coding full-time for the Wine project. When not working for
 Lycos, he tends to do a lot of Linux-related writing and documentation.

 This article will almost certainly be updated at least one more time in
 the near future. We'll announce to the Linux Today Home Page in the event
 of an update. -lt ed

            Mail this story

            Printer version


Return to today's headlines.

--
☆ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 210.39.0.47]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店