From owner-freebsd-hackers Fri Jul 28 13:37:25 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.11/8.6.6) id NAA02451 for hackers-outgoing; Fri, 28 Jul 1995 13:37:25 -0700 Received: from time.cdrom.com (time.cdrom.com [192.216.222.226]) by freefall.cdrom.com (8.6.11/8.6.6) with ESMTP id NAA02445 for ; Fri, 28 Jul 1995 13:37:21 -0700 Received: from localhost (localhost [127.0.0.1]) by time.cdrom.com (8.6.11/8.6.9) with SMTP id NAA08797; Fri, 28 Jul 1995 13:36:19 -0700 To: dennis@et.htp.com (dennis) cc: hackers@freebsd.org Subject: Re: In-reply-to: Your message of "Fri, 28 Jul 1995 12:36:08 EDT." <199507281636.MAA19530@mail.htp.com> Date: Fri, 28 Jul 1995 13:36:19 -0700 Message-ID: <8795.806963779@time.cdrom.com> From: "Jordan K. Hubbard" Sender: hackers-owner@freebsd.org Precedence: bulk > UNIX is an abortion. All O/Ss are abortions. There is no clean way to design Well, yes, but now we're expanding the topic a little too widely.. :-) > it to do. The wost thing is if you have to redesign the internal structures > every time something > new comes along. ioctls() allow you to design portable interfaces without > having to change the O/S. Oh YUCK, no they don't! You still need to hack the OS to get the whatever driver it is you're working on to see the new ioctl, and then you need to beat on the header files to get the new ioctl() define registered in user space. That's one of the reasons I hate the whole mechanism - it's crude! There is a better way, and it's called the Object model.. No, I'm not a C++ or Smalltalk fanatic, and I think that the whole OOP thing has actually been considerably over-hyped, but this is one instance where the fundamental tennets of object orientation are quite sound. Files should be objects with extensible, inheritable behaviors. Instead of ioctl()'ing them, you should send them messages which propagate up the inheritance chain as necessary. You should also be able to have arbitrary properties that can be associated with them as necessary, thus ending the "suffix bodge" once and for all. I haven't played with OS/2 extensively enough to really class myself as an advocate, but on the surface it looks like they've essentially done something very much like this and it looks pretty neat. Jordan