public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* ANNOUNCE: Linux Kernel ORB: kORBit
@ 2000-12-08 23:10 Chris Lattner
  2000-12-09  4:45 ` Ben Ford
  0 siblings, 1 reply; 106+ messages in thread
From: Chris Lattner @ 2000-12-08 23:10 UTC (permalink / raw)
  To: linux-kernel, orbit-list; +Cc: korbit-cvs


This email is here to announce the availability of a port of ORBit (the
GNOME ORB) to the Linux kernel.  This ORB, named kORBit, is available from
our sourceforge web site (http://korbit.sourceforge.net/).  A kernel ORB
allows you to write kernel extensions in CORBA and have the kernel call
into them, or to call into the kernel through CORBA.  This opens the door
to a wide range of experiments/hacks:

* We can now write device drivers in perl, and let them run on the iMAC
  across the hall from you. :)
* Through the use of a LD_PRELOAD'd syscall wrapper library, you can
  forward system calls through CORBA to an arbitrary local/remote machine.
* CORBA servers are implemented as Linux kernel modules, so they may be
  dynamically loaded or unloaded from a running system at any time.  CORBA
  servers expose their IOR's through a /proc/corba filesystem.
* Filesystems may be implemented as remote CORBA objects and mounted on
  the local machine, by using 'mount -t corbafs -o IOR:... none /mnt/corba'

This are just some of the features available _RIGHT_NOW_ that are
supported by kORBit.  I'm sure that YOU can think of many more.

Implementation:
We implemented this port by providing a user->kernel mapping layer that
consists of providing standard system header files for the "user" code to
#include.  In these header files, we do the mapping required.  For
example, we implement a <stdio.h> that #defines printf to printk (as a
trivial example).  Only user level code sees or uses these wrappers... all
of our modifications to the Linux kernel are contained within the
linux/net/korbit subdirectory.  

This is currently implemented with a 2.4.0test10 kernel, although forward
porting should be very easy.  This project was implemented as a cs423
semester project by Chris Lattner, Fredrik Vraalsen, Andy Reitz, and Keith
Wessel at the University of Illinois @ Urbana Champaign.

Unresolved issues:
* Our poll model is not optimial.  Currently we actually do a real poll on
  a (struct socket *) set.  This causes relatively high latencies (on the
  order 1 second, worst case) for CORBA requests.  Our waitqueues are not
  working quite as well as they should.  :)
* Security is completely unimplemented.  Someone could use corba
  interfaces to read any file on your system, for example (if the
  CORBA-FileServer module is installed).  Thus, this is really more for
  prototyping and development than actual real world use. :)

If you have any questions or comments, please feel free to contact us at:

Chris Lattner, Fredrik Vraalsen, Andy Reitz, Keith Wessel
<korbit-cvs@lists.sourceforge.net>

btw, yes we are quite crazy, but what good is it to be normal and
conformist afterall?  :)




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

^ permalink raw reply	[flat|nested] 106+ messages in thread
* Re: ANNOUNCE: Linux Kernel ORB: kORBit
@ 2000-12-09  0:49 Bernd Eckenfels
  0 siblings, 0 replies; 106+ messages in thread
From: Bernd Eckenfels @ 2000-12-09  0:49 UTC (permalink / raw)
  To: linux-kernel

In article <Pine.LNX.4.21.0012081626140.7741-100000@www.nondot.org> you wrote:
> This email is here to announce the availability of a port of ORBit (the
> GNOME ORB) to the Linux kernel.

OMG you guys are so cool :)

Hey, this is real craftsmanship (not sure if it useful :)

Does this revamp the Micro Kernel Discussin? ONLY KIDDING :)

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

^ permalink raw reply	[flat|nested] 106+ messages in thread
* Re: ANNOUNCE: Linux Kernel ORB: kORBit
@ 2000-12-10  7:56 Bernd Eckenfels
  0 siblings, 0 replies; 106+ messages in thread
From: Bernd Eckenfels @ 2000-12-10  7:56 UTC (permalink / raw)
  To: linux-kernel

In article <3A31B8CC.7030604@kalifornia.com> you wrote:
> Why would you *ever* want to write a device driver in perl???

Actually there is kind of device driver in perl, and besides it's
performance I think it proofed that a High-Level Language can do good for
rapid prototyping.

http://www.inter-mezzo.org - a distributed file system

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

^ permalink raw reply	[flat|nested] 106+ messages in thread
* Re: ANNOUNCE: Linux Kernel ORB: kORBit
@ 2000-12-14 17:24 Chris Lattner
  0 siblings, 0 replies; 106+ messages in thread
From: Chris Lattner @ 2000-12-14 17:24 UTC (permalink / raw)
  To: David_Feuer
  Cc: Alan Cox, Alexander Viro, linux-kernel, orbit-list, korbit-cvs


> >that is not transparently hidden to the user.  Why can't I just open
> >/dev/net0 and get the first network device?  Because we have so many
> >inconsistent, poorly design, inextensible interfaces laying around, thats
> >why.

> This is a bad example, but a (perhaps?) good point.  It seems it should be 
> possible to implement an unlimited number of TCP/IP devices, each 

Part of my argument is that although every kernel interface boils down to
something as simple as ioctl (where you have lots of api's multiplexed
onto one data sink, int 0x80 is another example, kORBit is another), some
ways of doing this multiplexing are better than others.  I look at it as a
hierarchy:

1. CORBA/kORBit
2. int 80/lcall
3. ioctl

Each level is more structured than those below it.  Each interface is also
"cleaner" than those below it.  I don't think that anyone would argue that
we should replace int 80 and friends with an interface in the spirit of
ioctl (even though it would be functionally identical).

> representing a connection, and each connected, disconnected, etc. by 
> ioctls...  Of course, I could be way wrong about this....

ioctl's... they come up again.  Everytime that I look at the beautiful,
clean, abstract interface that Unix exposes... it makes me happy.  But
unfortunately, if you look closer, you realize that the Unix API isn't
really clean or nice at all... there is this dumping ground for odds and
ends that don't fit into the standard model.  So when you show someone the
standard model, it looks clean and pretty... but someone always forgets to
mention ioctl.

I would claim that ioctl is one of the biggest reasons that kORBit needs
to exist.  See below.

> >I can't do ls /dev/*net* and get all the network
> >devices either.  Actually, one of the very cool things about CORBA is that

> Different network devices are _very_ different...  You can't broadcast on a 
> modem, for instance, nor can you use promiscuous mode on a modem... You 
> also can't do byte-by-byte raw mode on an ethernet...

Precisely.  But they do all have very common interfaces.  For example, the
standard network interface would probably have "transmit/receive
block" and "getstatus" commands.  This does not mean that they cannot
implement other interfaces, however.

Imagine this situation for writing your packet sniffer:

1. You open up /dev/net0 and get the Network interface
2. You query the network interface to see if it has an implementation
   of the promiscuous interface.
3. If not, you bail, because it doesn't support it.
4. If, you go ahead and use it.

Contrast that to:

1. Survey all the different interfaces that are known (at development time
   of course) to have promiscuous interfaces.
2. Find out which ones are active.
3. Depending on what kind of interface it is, load a library that can
   understand the byte format comming off the device.
4. Use that library.

The problems with the second (currently used) approach is that the
APPLICATION writer has to keep up with new hardware developments and new
interfaces.  They have to understand and code parsers for the bytestreams
coming from each device, which (as you mentioned) are all different,
because they all support different (although overlapping) extensions.

All of these calls that currently get dumped into ioctl (because they are
not important enough to warrant an API function at the top level) suddenly
become well structure and well designed interfaces.  For example, if your
device doesn't support the terminal handling ioctls the system has to
basically figure that out and report errors on it.  With CORBA/kORBit, you
would just not implement that interface... so if someone asked for it,
they would get a null pointer to the interface, which they check for and
realize that it's impossible to do terminal stuff on.

isatty (an example of an IOCTL wrapper) suddenly becomes implicit and the
API is cleaner...

I have no problem with the "unix way", but I do think that it can be
augmented in some ways...

-Chris

http://www.nondot.org/~sabre/os/
http://www.nondot.org/MagicStats/
http://korbit.sourceforge.net/










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

^ permalink raw reply	[flat|nested] 106+ messages in thread

end of thread, other threads:[~2000-12-19 10:02 UTC | newest]

Thread overview: 106+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-12-08 23:10 ANNOUNCE: Linux Kernel ORB: kORBit Chris Lattner
2000-12-09  4:45 ` Ben Ford
2000-12-09  5:00   ` Mohammad A. Haque
2000-12-09  5:39     ` Alexander Viro
2000-12-09 10:34       ` Jamie Lokier
2000-12-14  0:21         ` Chris Lattner
2000-12-14  1:11           ` Alan Cox
2000-12-14  1:48             ` Alexander Viro
2000-12-14  2:53               ` Michael Rothwell
2000-12-14  3:12               ` Chris Lattner
2000-12-14  3:36                 ` Michael Rothwell
2000-12-14 11:46                 ` Michael Livshin
2000-12-14 17:30                   ` Elliot Lee
2000-12-14  4:23               ` Chip Salzenberg
2000-12-14  4:28                 ` Alexander Viro
2000-12-14  4:42                   ` Chip Salzenberg
2000-12-14  4:47                     ` Alexander Viro
2000-12-14  4:52                       ` Chip Salzenberg
2000-12-14  5:15                         ` Alexander Viro
2000-12-14  9:23                           ` Oystein Viggen
2000-12-14  5:22                         ` David Feuer
2000-12-14  8:04                 ` josef höök
2000-12-14  8:09                   ` Alexander Viro
2000-12-14 13:53                     ` josef höök
2000-12-14  2:42             ` [Korbit-cvs] " Chris Lattner
2000-12-14  3:08               ` Alexander Viro
2000-12-14  3:19                 ` Chris Lattner
2000-12-14  3:42                   ` Alexander Viro
2000-12-14  3:52                     ` Chris Lattner
2000-12-14  4:24                       ` Alexander Viro
2000-12-14  4:41                         ` CORBA vs 9P Chris Lattner
2000-12-14  4:57                           ` Alexander Viro
2000-12-14  5:04                             ` Chris Lattner
2000-12-14 10:02               ` [Korbit-cvs] Re: ANNOUNCE: Linux Kernel ORB: kORBit Alan Cox
2000-12-14 10:10                 ` Larry McVoy
2000-12-14 17:38                   ` Chris Lattner
2000-12-14 17:33                 ` Chris Lattner
2000-12-14  2:06           ` Alexander Viro
2000-12-14  2:53             ` Chris Lattner
2000-12-14  3:29               ` Alexander Viro
2000-12-14  3:42                 ` Chris Lattner
2000-12-14  4:05                   ` Alexander Viro
2000-12-14  4:14                     ` Chris Lattner
2000-12-14  4:45                       ` Alexander Viro
2000-12-14  5:00                         ` Chris Lattner
2000-12-14  5:56                           ` Alexander Viro
2000-12-14  6:23                             ` [Korbit-cvs] " Chris Lattner
2000-12-14  7:23                               ` Alexander Viro
2000-12-14 18:03                                 ` Chris Lattner
2000-12-14 19:11                                   ` Alexander Viro
2000-12-14 22:10                                     ` [Korbit-cvs] Re: ANNOUNCE: Linux Kernel ORB: kORBit (and ioctl must die!) Mike Coleman
2000-12-14  9:23                   ` ANNOUNCE: Linux Kernel ORB: kORBit josef höök
2000-12-14  9:30                     ` Larry McVoy
2000-12-14 20:02               ` Pavel Machek
2000-12-15 10:25                 ` josef höök
2000-12-15 15:54                 ` Chris Lattner
2000-12-15 20:10                 ` Mikulas Patocka
2000-12-15 20:26                   ` Pavel Machek
2000-12-15 20:37                     ` Mikulas Patocka
2000-12-15 22:19                   ` Alan Cox
2000-12-16  0:19                     ` Mikulas Patocka
2000-12-18 20:29                       ` Rik van Riel
2000-12-18 20:42                         ` Andrea Arcangeli
2000-12-18 20:48                           ` Rik van Riel
2000-12-18 21:57                             ` Mikulas Patocka
2000-12-19  0:27                               ` Andrea Arcangeli
2000-12-19  8:42                                 ` Mikulas Patocka
2000-12-19  9:30                                   ` Andrea Arcangeli
2000-12-18 21:46                         ` Mikulas Patocka
2000-12-18 22:02                           ` Alan Cox
2000-12-18 22:13                             ` Mikulas Patocka
2000-12-18  8:27                   ` David Ford
2000-12-14 16:34             ` Jamie Lokier
2000-12-14 16:45           ` Rik van Riel
2000-12-14 16:49             ` Chris Lattner
2000-12-14 17:23             ` [Korbit-cvs] " Fredrik Vraalsen
2000-12-14 17:34               ` Jamie Lokier
2000-12-17 23:42               ` Pavel Machek
2000-12-18 20:39                 ` Chris Lattner
2000-12-09 11:59       ` Alan Cox
2000-12-09 12:29         ` Alexander Viro
2000-12-09 15:50           ` Dietmar Kling
2000-12-09 20:59             ` Alan Cox
2000-12-10  2:18               ` Alexander Viro
2000-12-10  2:58                 ` Dietmar Kling
2000-12-10  3:22                   ` David Ford
2000-12-11 13:38                   ` Martin Dalecki
2000-12-11 13:47                     ` J . A . Magallon
2000-12-11 17:48                       ` ANNOUNCE: Linux Kernel ORB: kORBit ( getting off topic) Matthew D. Pitts
2000-12-11 17:18                     ` ANNOUNCE: Linux Kernel ORB: kORBit Alexander Viro
2000-12-11 17:50                       ` Dietmar Kling
2000-12-11 18:53                         ` Alexander Viro
2000-12-11 19:00                           ` Dietmar Kling
2000-12-11 20:21                             ` Alexander Viro
2000-12-09 14:16       ` Alexander Viro
2000-12-12 23:26     ` Chris Lattner
2000-12-13  9:42       ` David Woodhouse
2000-12-14 19:42       ` Pavel Machek
2000-12-09  5:51   ` David Ford
2000-12-10 22:33   ` Pavel Machek
2000-12-11 22:42   ` Michael Rothwell
2000-12-12 15:05     ` josef höök
2000-12-12 15:18       ` Michael Rothwell
  -- strict thread matches above, loose matches on Subject: below --
2000-12-09  0:49 Bernd Eckenfels
2000-12-10  7:56 Bernd Eckenfels
2000-12-14 17:24 Chris Lattner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox