In article <1992Aug11.203828.11554@crd.ge.com> davidsen@crd.ge.com (bill davidsen) writes:
>
> Just one last thought. Linux has really taken to doing the hard stuff
>first, like virtual memory. Work is going on right now to look at
>improving the shared libraries, when most other systems don't even
>/have/ shared libraries.
>
Most AT&T variants do. No BSD flavor I know of has shared libraries.
> It would be really great to have loadable device drivers. More to the
>point, it would allow people to add devices without generating a new
>kernel, something I believe most users would like to see. Nice a it is
>to have source, I lose an evening of use of my system every time I
>recompile the kernel.
>
Loadable device drivers are bad because you need to relocate them
at load time. Loadable device drivers may be impractical - for
instance, if your disk driver is on the root disk which you can't
read, you are SOL. I don't like loadable device drivers - you
don't really gain anything significant that you don't get with a
good config utility.
It takes me ~45 seconds to add a new SCSI driver into my development
kernel. I have automatically generated make files and something
like the BSD ioconf.c, table.c. When I change the configuration
file, table.c gets recompiled, and nothing but the new files that
were'nt built before.
Linux needs this - users can then recompile just the new parts that
weren't in their kernel before.
> This also allows people to install to unsupported devices, by loading
People can install new devices by recompiling the kernel. If we
get a decent config program, people can install new devices by relinking
the thing.
>the driver from a floppy at boot from floppy time. It has been done by a
>commercial vendor, I see no reason why it couldn't be in Linux.
Assuming you run in kernel space :
1. You will have to allocate more kernel memory. This is a sloppy operation,
because currently everything assumes that kernel memory is
identity mapped. You may have to swap things arround for
other processes just to get a large enough chunk of contigous
physical memory in the right place. Messy.
2. You need to relocate the drivers at run time if you run them in kernel
space, writing something like LD to load them.
Assuming you run in user space :
1. You will be VERY, VERY, slow. Anything that accesses the device
will incur extra context switches.
2. You will need to do nasty things to access kmem.
Get a decent config program, it will accomplish the same thing
(except you have to reboot to use the new device driver),
without all of the negative side effects.
--
Microsoft is responsible for propogating the evils it calls DOS and Windows,
IBM for AIX (appropriately called Aches by those having to administer it), but neither is as bad as AT&T. Boycott AT&T, and let them know how you feel.