From owner-freebsd-hackers Fri Oct 8 16:14:28 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from majordomo2.umd.edu (majordomo2.umd.edu [128.8.10.7]) by hub.freebsd.org (Postfix) with ESMTP id 578FA14FA1 for ; Fri, 8 Oct 1999 16:14:24 -0700 (PDT) (envelope-from howardjp@wam.umd.edu) Received: from rac9.wam.umd.edu (root@rac9.wam.umd.edu [128.8.10.149]) by majordomo2.umd.edu (8.9.3/8.9.3) with ESMTP id TAA27828 for ; Fri, 8 Oct 1999 19:14:14 -0400 (EDT) Received: from rac9.wam.umd.edu (sendmail@localhost [127.0.0.1]) by rac9.wam.umd.edu (8.9.3/8.9.3) with SMTP id TAA21032 for ; Fri, 8 Oct 1999 19:14:18 -0400 (EDT) Received: from localhost (howardjp@localhost) by rac9.wam.umd.edu (8.9.3/8.9.3) with ESMTP id TAA21028 for ; Fri, 8 Oct 1999 19:14:17 -0400 (EDT) X-Authentication-Warning: rac9.wam.umd.edu: howardjp owned process doing -bs Date: Fri, 8 Oct 1999 19:14:17 -0400 (EDT) From: James Howard To: freebsd-hackers@freebsd.org Subject: KLDs Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Slashdot, in a discussion regarding QNX, someone described it with the following: Under QNX, if your driver crashes, the kernel just restarts it. After reading it, I became more interested in KLDs. My only prior experiece was installing the Linux KLD and that was done by a port. Anyway, in an effort to learn, I decided to KLD-ify EXT2FS support. It took about 20 minutes and works great, but I still do not know how KLDs work. :) (I submitted the patch in kern/14217, if someone could look at it, that would be swell. I've been able to mount, read, write and umount without any problems) I also managed to get IPX KLD-ified in about 15 minutes, I can load it and now NCP loads but I have no way to test it. It also panics the kernel on unload. Anyway, back to the point, if it is this so simple (is it?), how much of the kernel can be KLDs? It would be interesting to see a kernel so small that all it had was KLD support in it and everything else was a module. I could upgrade my TCP/IP stack or filesystem code without a reboot. Imagine the uptime? Has anyone else thought about this? Is this a good idea? Is this a bad idea? How fundamentally different would this be from a microkernel? Could things be done in such a way that like QNX, it can kill and restart a misbehaving driver? What other cool things can be done? Thanks, Jamie To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message