Proposal

9 views
Skip to first unread message

love4b...@yahoo.com

unread,
Nov 1, 2009, 11:53:20 AM11/1/09
to Rosetta
Hi.

I've read about Rosetta and have asked Joel about it, who was kind
enough to point me to the group. I'm a hobby OS developer, part of the
OSDev.org community. Over the years we've seen many cross-platform
driver interfaces, such as EDI, CDI and the most promising, UDI. UDI
was developed so that it is source code compatible across CPU
architectures and binary comaptible across OSes for the same
architecture.

UDI was developed many years ago by several industry big players (HP,
Caldera - later SCO, Intel, Sun, IBM, Compaq, and a few others).
Unfortunately it was never widely adopted, mainly because of the fact
that the FSF was against it. Partly because of this and other
philosophical concerns, it was never adopted in Linux - a lot of us
think this was a huge mistake. Since the death of the UNIX industry
people forgot about UDI but as Kurt Gollhardt, one of the core
developers said, "If there had been one shrewd business person truly
committed to it, it probably would be commonplace today. (No, I'm not
bitter. :-) )". Please don't think UDI is tied to UNIX in any way
cause it's not - it's not even tied to a specific kernel architecture.

I've been in touch with a couple of the old UDI folks and we were
thinking about reviving the project as a non-profit organization.
Although it was defined nearly 10 years ago it fixes a lot of the
current industry problems and is designed for security, scalability
and good performance. Also, it avoids all the stupid locking issues
I've seen in other interfaces. Rather than having dozens of interfaces
perhaps we could all join forces and continue UDI? I invite everyone
to read the specifications ( http://udi.certek.com/f-specs-1.01.html
including the USB metalanguage at http://www.usb.org/developers/devclass_docs/usbdi10.pdf
). The USB stack has been implemented in the reference implementation
as well. There's also a reference implementation available at
http://projectudi.sourceforge.net/ - I suggest you look at HEAD, not
the release since that's *way* out of date. An interesting guide on
writing UDI drivers has been written by SCO: http://uw714doc.sco.com/en/UDI_dwg/CONTENTS.html
.

After defining new processor interfaces we need new metalanguages for
graphics - we already have people working on it, audio, HID (though
I've heard some of the work here has already been done) and then we'd
like to have a huge driver repository. What do you think.

Cheers,
Bogdan

Robert Lipe

unread,
Nov 3, 2009, 6:03:30 PM11/3/09
to Rosetta


On Nov 1, 10:53 am, "love4boob...@yahoo.com" <love4boob...@yahoo.com>
wrote:
> ). The USB stack has been implemented in the reference implementation
> as well.

Actually, the USB stack was not part of the reference implementation.

Bogdan

unread,
Nov 3, 2009, 6:05:13 PM11/3/09
to roset...@googlegroups.com
Not by you guys ;)

Cheers,
Bogdan

Joel Sherrill

unread,
Nov 4, 2009, 6:42:48 AM11/4/09
to roset...@googlegroups.com
What OSes the reference UDI implementation has been used on?

What is the history of the code? Ported to UDI from some OS? Written
from scratch?

What's the license?

Just trying to gauge the pedigree of the reference implementation.
Is this the original UDI project code Robert worked on made FOSS and
enhanced?


--joel

Bogdan

unread,
Nov 4, 2009, 6:53:22 AM11/4/09
to roset...@googlegroups.com
UDI environments are available for Darwin, Linux, FreeBSD, SCO's OSR5 (Unix), POSIX, Solaris, UnixWare, and more recently several hobby OSes that you probably won't care about. I have no clue how out-of-date these environments are, I only worked on my own.

I forgot to mention that some work has been done recently on the UDI reference implementation; I can't give you any link for the new repository since I'm currently away and only have my laptop with me. There's a separate repository for drivers only but we didn't submit anything there yet except for the original UDI reference implementation :-)

Joel Sherrill

unread,
Nov 4, 2009, 7:26:58 AM11/4/09
to roset...@googlegroups.com
On Wed, Nov 4, 2009 at 5:53 AM, Bogdan <love4b...@yahoo.com> wrote:
>
> UDI environments are available for Darwin, Linux, FreeBSD, SCO's OSR5 (Unix), POSIX, Solaris, UnixWare, and more recently several hobby OSes that you probably won't care about. I have no clue how out-of-date these environments are, I only worked on my own.

Actually the hobby OSes may be of interest since we are single
process, multi-threaded and
the other OSes you list are full up Unices. :)

Can you give some general buzzwords like IPV6, USB, file systems, etc.
to give us an idea
of how much code is there?

And... always the sticking point... what's the license? RTEMS is
statically linked with applications
so licensing is always an issue for us.

> I forgot to mention that some work has been done recently on the UDI reference implementation; I can't give you any link for the new repository since I'm currently away and only have my laptop with me. There's a separate repository for drivers only but we didn't submit anything there yet except for the original UDI reference implementation :-)

It's OK. I am about to leave town myself. :-D

When you get back email the list a URL and I will try to take a look
at what is required to
provide a UDI layer for RTEMS.

Thanks.

--joel

Bogdan

unread,
Nov 4, 2009, 7:44:28 AM11/4/09
to roset...@googlegroups.com
The license is a BSD-style license. You can browse the original implementation here: http://projectudi.cvs.sourceforge.net/viewvc/projectudi/udiref/ . That will hopefully answer both your questions. Note: you don't actually *need* to use the reference implementation so even if the license doesn't fit you (although I doubt it's the case), a different implementation can be written under any license.

Robert Lipe

unread,
Nov 5, 2009, 7:15:52 PM11/5/09
to Rosetta
Project UDI's goal was to produce a specification. Of course, the
IETF's requirement of "one working implementation" wasn't lost on us
and we knew that to prove it was implementable, we had to implement
it. We did that in an open source, BSD-licensed rerference
implementation for a bucket load of OSes. You can implement UDI
without using any of that code if you like.

When I speak of the reference implementation, I mean Project UDI's
reference implementation and there is not a USB stack in that tree.
A USB stack could be written to work with that implementation (I'm
confident of that...) but please don't call some other effort the
reference implementation.

UDI itself is a framework in which drivers can be written. Perhaps
unsurprisingly, the initial focus was on NIC and HBA drivers and those
were solved very well. Protocol stacks and filesystems were never
formally defined and shared, though there was much discussion on
them. But don't think that the reference implementation of the core
spec is going to be a shopping list of all your OS internals...

RJL

On Nov 4, 6:44 am, Bogdan <love4boob...@yahoo.com> wrote:
> The license is a BSD-style license. You can browse the original implementation here:http://projectudi.cvs.sourceforge.net/viewvc/projectudi/udiref/. That will hopefully answer both your questions. Note: you don't actually *need* to use the reference implementation so even if the license doesn't fit you (although I doubt it's the case), a different implementation can be written under any license.
>
> Cheers,
> Bogdan
>
> ----- Original Message ----
> From: Joel Sherrill <joel.sherr...@gmail.com>
> To: roset...@googlegroups.com
> Sent: Wed, November 4, 2009 2:26:58 PM
> Subject: Re: Proposal
>

Bruce Korb

unread,
Nov 5, 2009, 7:36:27 PM11/5/09
to roset...@googlegroups.com
Hi Robert,

Been a _really_ long time! I hope you don't mind my
dragging up your UDI stuff at a little chat session I attended
at Google a couple weeks ago... :)

Cheers - Bruce

On Thu, Nov 5, 2009 at 4:15 PM, Robert Lipe <rober...@gmail.com>
wrote:[......]

Bogdan

unread,
Nov 5, 2009, 8:29:35 PM11/5/09
to roset...@googlegroups.com
The work is based on the reference implementation. I'm sorry for miselading anyone.

Cheers,
Bogdan


----- Original Message ----
From: Robert Lipe <rober...@gmail.com>
To: Rosetta <roset...@googlegroups.com>

Reply all
Reply to author
Forward
0 new messages