Driver Model 2 Proposal - Linux Kernel Performance v Usability

From: James Clark (jimwclark_at_ntlworld.com)
Date: 09/03/03

  • Next message: Larry McVoy: "Re: Scaling noise"
    To: linux-kernel@vger.kernel.org
    Date:	Wed, 3 Sep 2003 18:53:01 +0100
    
    

    Following my initial post yesterday please find attached my proposal for a
    binary 'plugin' interface:

    This is not an attempt to have a Microkernel, or any move away from GNU/OSS
    software. I believe that sometimes the ultimate goals of stability and
    portability get lost in the debate on OSS and desire to allow anyone to
    contribute. It is worth remembering that for every Kernel hacker there must
    be 1000's of plain users. I believe this proposal would lead to better
    software and more people using it.

    Proposal
    -----------
    1. Implement binary kernel 'plugin' interface
    2. Over time remove most existing kernel 'drivers' to use new interface - This
    is NOT a Microkernel.
    3. Design 'plugin' interface to be extensible as possible and then rarely
    remove support from interface. Extending interface is fine but should be done
    in a considered way to avoid interface bloat. Suggest interface supports
    dependant 'plugins'
    4. Allow 'plugins' to be bypassed at boot - perhaps a minimal 'known good'
    list
    5. Ultimately, even FS 'plugins' could be created although IPL would be
    required to load these.
    6. Code for Kernel, Interface and 'plugins' would still be GPL. This would not
    prevent the 'tainted' system idea.

    Expected Outcomes
    ------------------------

    1. Make Linux easier to use
    2. The ability to replace even very core Kernel components without a restart.
    3. Allow faulty 'plugins' to be fixed/replaced in isolation. No other system
    impact.
    4. 'Plugins' could create their own interfaces as load time. This would remove
    the need to pre-populate /dev.
    5. Remove need for joe soap user to often recompile Kernel.
    6. Remove link between specific module versions and Kernel versions.
    7. Reduce need for major Kernel releases. Allow effort to concentrate on
    improving Kernel not maintaining ever increasing Kernel source that includes
    support for the 'Kitchen Sink'
    8. Make core Kernel more stable. Less releases and less changes mean less
    bugs. It would be easy to identify offending 'plugin' by simply starting up
    the Kernel with it disabled.
    9. Remove need for modules to be maintained in sync with each Kernel thus
    freeing 'module' developers to add improved features or work on new projects.

    James

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Larry McVoy: "Re: Scaling noise"

    Relevant Pages

    • Re: reiser4 plugins
      ... "Plugins" is a bad word. ... We now have a standard disk format plugin, ... I see no problems with providing at least as consistent an EA interface ... Only, zip files aren't just compression, so ...
      (Linux-Kernel)
    • Re: Email clients
      ... presumably this isn't a bug in Mail after all. ... but filters not that good (why don't they just license dspam or some ... totally sufficient, and the interface to them is very, very good). ... plugins are basically hacks against a "private" ...
      (uk.comp.sys.mac)
    • Re: modular application
      ... >> Do your plugins inherit from IPlugin or do the implement it? ... > Sometimes the plugins implement a plugin-specific interface, e.g., ... isn't the Type of MyPlugin actually MyPlugin? ...
      (microsoft.public.dotnet.languages.csharp)
    • Re: Cross-appdomain communication
      ... reference to that assembly in order to get the interface type, ... that object to talk to the other appdomain? ... I have an app that searches for plugins at ... >> while I want to create a list of plugins, I don't want those assemblies to ...
      (microsoft.public.dotnet.framework.remoting)
    • Re: The argument for fs assistance in handling archives
      ... Plugins are kernel-space. ... in the kernel is uncool. ... Maybe there ought to be a general-purpose userland plugin interface? ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)