Messages in this thread | | | Date | Sat, 25 Feb 1995 19:34:18 -0500 (EST) | From | <> | Subject | [semi-offtopic] Linux 2.2 change summary |
| |
Hello,
Well, I've been away from the Linux world for a while and I found myself with some free time. In that free time, I wrote a little 2.2 changes summary (certainly redundant, I know. But what else was I to do?)
If anyone would be so kind as to read this, I would appreciate comments and suggestions. I don't exactly know what I'll do with it when it is done, maybe Linux Journal would like it or something. But, it was better than twiddling my thumbs.
And a word of caution, I wrote this completely from memory and wiothout access to any Linux machine or documentation. It has a definate bias towards the sections that I have worked on and used and almost no information about some things. I would appreciate it if someone would be so kind as to fill in some of my gaps but I'm not going to listen much if all you would like to do is complain.
And, without further adieu, my text. Please send your replies to myself personally so as not to choke up this list with further posts about this. (Please use my knight@baltimore.wwaves.com address, thanks.)
Joe Pranevich
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.108 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.
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 each of these chips and a selection for the processor vendor in the 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 so the infrastructure for a 64-bit native kernel is already happily in place.
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, ARM, 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.)
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.
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 of hundreds of minor patches to the bus system including many new PCI device names (PCI provides a vendor and product code that the kernel translates into a longform product name.), the PCI device reporting interface has been changed and moved around.
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 IDE and SCSI are concerned, there aren't many changes since Linux 2.0. The IDE driver has been happily modularized for easy loading and unloading, it also gives you the ability to load IDE interfaces off of PnP devices.
Elsewhere in the IDE world, parallel port IDE devices have become more common and are now supported by Linux for the most part. 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.
SCSI's main improvement has 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 however, there is little change.
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. 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.)
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.
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 so-called ATAPI floppies already have a driver.
Zip disks and Zip controllers are now supported in the kernel and I have been told that they are working rather well. I'm not really qualified here.
(I honestly don't know much about Linux support for DVD or any other emerging standards. Ah well.)
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 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!
(I have no experience in this regard, sorry. Anyone care to make a suggestion?)
9) Joysticks, Mouse, and Input Devices
Joysticks will be 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 far as I can tell.) My only complaint here is that Microsoft mice with the little spinning wheel have no real support, not even to use the wheel as a third button. No big problems though.
(I've had no experience with pen computing or anything else... Sorry.)
10) Bits and pieces
The loopback driver has been improved to support better encryption although there may be issues here with silly US laws. Support is now provided for 'initial ramdisks' to allow a Linux user or distribution to boot a kernel with *no* hardware support compiled in and load the required device drivers from a small ramdisk. This is especially useful for systems with Plug-and-Play devices that can't be accessed until after a user-mode configuration program is run.
11) Filesystems for the World
Linux 2.2 has a wide array of new filesystems and partition types for interconnectivity. 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 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, which allows Mac SCSI disks can be mounted natively.
In other news, NFS has been rewritten once again and support for the old 'extended' filesystem has been removed. A special 'romfs' has been written for the express purpose of initial ramdisks with little overhead. BSD drives are better supported now, as well. In fact, there's no many other new additions in this area that I won't even bother to try; Isn't Linux wonderful?
12) 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 kludgy 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 new 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, my I'm going to hold judgement until we see exactly how far Linus and the developers decide to take this feature.
13) Amateur Radio people are Linux people, too.
(I actually have no clue about this one.)
14) 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.
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.
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 someday these pesky devils will be supported like their more usable cousins.
15) 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, an alternate version of IPX is new, as well. DDP, the protocol of choice for AppleTalk networking has also been added. 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...
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' and a ton more. It's just amazing. I wish I could keep track of it all. (But, who am I kidding?)
16) And, finally...
There's quite a lot that honestly doesn't fit into any of the categories above...
Firstly, the old system of loading in and out drivers (called 'modules') has been replaced with a system that doesn't require a separate daemon and allows for a smaller memory footprint. This is the 'kmod' system (replacing the 'kerneld' system and I have to say that I think this is a good thing.
And secondly, the old inode-based access to filesystems has been replaced by the 'dcache' system, which may be the fastest virtual filesystem for any OS currently on the market. It makes you proud to support Linux.
------------
And, in conclusion, I would like to ask that anyone with corrections to this document please mail me (knight@baltimore.wwaves.com) so that I can correct it. I wrote this document entirely from memory of the Linux system and without actually being able to access one; there are definitely going to be mistakes and things that should have been included. Corrections on my English are welcome, too. Maybe a suggestion on how to make this more readable would be nice?
Thank you, and Good Night.
Joseph Pranevich
| |