Messages in this thread | | | Subject | Re: toplevel Makefile bug and simple fix | From | Michael Poole <> | Date | 08 Nov 1999 09:26:26 -0500 |
| |
Raul Miller <moth@magenta.com> writes:
> > P.S. And we really *have* to be able to support stand-alone source > > distribution of drivers. The Linux kernel sources are still growing > > expenontially, with a time constant of roughly 18 months. This is > > mostly due to new drivers. Sooner or later, we will need to address > > the question of how to distribute drivers independently of the kernel, > > in source form at the very least. > > XFree86 seems to manage. > > [Yeah, I know, xfree86 isn't bttv... but I think what you're talking > about here is a layering problem as much as anything. Or is that too > obvious of a comment?]
There are a few sorts of examples that illustrate the difference between XFree86 and the kernel (it mostly boils down to driver complexity versus number of drivers supported):
- How do you know whether or not you want to include support for a subsystem? Many people do not have ATM cards; many people do not have I2O subsystems in their computers; soon, many new computers will not have an ISA bus. There is very little benefit for these computers to have kernel sources that include support for all those devices (unless they're developing binary distributions of the kernel).
- How do you know which devices supported by that subsystem should be compiled, and whether into the kernel or as modules? The number of SCSI and network drivers is huge -- and growing very often. Most people don't need more than one of each of those, and the number of people who need more than two is vanishingly small. It would be nice if people who didn't need all the drivers didn't need to download them.
Let's take a case study: linux-2.3.26 (freshly unpacked) on my machine. It's an SMP Pentium II with a BusLogic SCSI controller, an EEPro100 NIC, some USB peripherals, an ISA sound card, an IDE floppy, and probably a few other things I've forgotten.
linux/arch has 10573 KB of files; the i386 tree is only 1113 KB of this. linux/drivers is 39157 KB; of this, I only care about: about 737 KB of the 2047 KB block directory; about 575 KB of the 4920 KB char directory; the misc directory (26 KB); the 64 KB EEPro100 driver and 108 KB generic network drivers; parts of the 189 KB parport directory; the 100 KB pci directory; the 82 KB pnp directory; about 263 KB for the BusLogic driver, and 629 KB for the generic SCSI layer; about 290 KB of the sound directory; and the 815 KB usb directory; this totals 3878 KB. linux/fs likewise has a lot of things I don't compile and will never need linux/net also has many things I do not need support for
So in linux/arch, this rough calculation yields 10.5% of the arch directory necessary; in linux/drivers, it's just over 9.9%. fs and net are probably more utilized (maybe 30% to 40% on my machine), and the remaining top-level directories in linux/ are all needed.
There are, of course, technical difficulties in trying to distribute hardware-specific files separately from the kernel (dependency detection, hardware detection, patches from one version to another), and developmental difficulties in ensuring enough people check to make sure things compile with various subsets of the extension packages, but "it sure would be nice" to download a .tar.bz2 that's about 5 MB and have it fetch another few megabytes of drivers automatically once I configure the kernel I want to build.
-- Michael
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |