Seeking Operating System abstraction Layer

hi,

I am seeking an Operating System Abstraction Layer which will easily let me port my code to Windows, Linux and VxWorks. It should preferably be free, or at least cheap.

After lots of goggling, the only thing that looks anywhere near it to it is the old NASA OSAL, but that is incomplete and seems to be abandoned (even email is bouncing) .

Does anyone know of anything which fits the bill, or nearly so? Even if it handles 2 out of 3, I suppose I could port the other.

Any pointers to websites, books, etc. gratefully received.,

Thanks in advance for any help.

Reply to
Baron Samedi
Loading thread data ...

Why not use a high level programming language with ports to all those platforms, such as Java? There's sure to be a language somewhere that will do what you want.

If you want it for a specific language (C, etc) you'll have to tell us what language, and what sort of libraries you want to use.

Jack

Bar> hi,

Reply to
Jack Scott

Try just programming in ISO standard C. Some useful references about C:

(C-faq) (comp.lang.c) (C99) (C99, txt) (C-library}

The text version of N869 is the standard compressed by bzip2. You can discuss the language on comp.lang.c.

--
 [mail]: Chuck F (cbfalconer at maineline dot net) 
 [page]: 
            Try the download section.
Reply to
CBFalconer

I think POSIX compliance is along the lines of what you're looking for.

--Gene

Reply to
Gene S. Berkowitz

Have you looked at Simple DirectMedia Layer?

formatting link

SDL allows you to write your applications once. It supports Linux, Windows, and many other unix and unix-like OSes (BSD, IRIX, Solaris, QNX). But, I don't see VxWorks listed... It was inteded for multimedia, but you can even write applications that approach OSes in complexity for it. MAME, DOSBOX, and ScummVM have been ported to it.

Wikipedia's description of SDL:

formatting link

Rod Pemberton

Reply to
Rod Pemberton

...because for some reason I read this as

"seeking an Operating System Abstraction LAWYER".

Sean_Q_

Reply to
Sean

Look out for "Apache Portable Runtime" (apr) which is developed by the Apache Web Server guys, and offers a very nice interface over most common needs.

Bruno

Reply to
Bruno Richard

This depends entirely on the sort of OS services you want to use, and the sort of system you are talking about. If you want to use a gui, look at something like wxWidgets, or SDL. If your system is big enough, look at a high-level language such as Python. If you are doing C++ programming, consider the boost libraries. If you are doing unix-style development, look at posix (windows is partly posix compliant, and can be made more so with cygwin).

Reply to
David Brown

The nicest way to do this is to use a programming language that abstracts the machine. I have had excellent luck doing this with Ada. If you're dealing with real time constraints and are not building a GUI interface I think using Ada is a good way to go.

If you want to build GUI's then I would suggest looking at C# or Java.

If you're stuck with C, then I would suggest looking at Posix OS interface, which is supported to some degree by each of these systems.

It's interesting that VxWorks is in the list when you are looking for something cheap.

Another couple of acronyms you might try looking for for common interfaces are: RTEID and ORKID.

Regards, Steve

Reply to
Steve

Good point, sorry. It's for C and C++

Reply to
Baron Samedi

=A0 =A0 =A0 =A0 =A0 =A0 (C-faq)

C-library}

The point is that the processes need to send and receive messages, plus lots morer o/s specific stuff. And windows, linux and vxworks all have different function calls to do that.

So, an absctraction layer is needed.

at it's simplest, it could just be something liek (not real code)

#defin os_send-msg(x, y) \ #ifdef windows wm_send_msg(x, y) #else #ifdef linux ....

etc

of, course it is much more complex than that :-)

Reply to
Baron Samedi

I woudl agree, but those three o/s are not all completely posix compliant :-(

Reply to
Baron Samedi

ly

ows,

I

even

X,

edia_Layer

Thanks, Rod.

In a crunch, I could code the vxworks part myself, I guess. I will look into it.

Reply to
Baron Samedi

Sorry, I should ahve said - it's embedded stuff. So, no gui, just message send/receive, task spawn/kill, timers, mutex, semepahore...

Reply to
Baron Samedi

I thought it was probably embedded, and possibly real-time, given the newsgroups you posted to, but then you mentioned windows! Embedded systems are often connected to PC's to provide a non-critical gui, so it was worth checking.

From what I've read from your other posts, it does sound like posix may be your best bet. Since posix is a standard, and everyone likes to implement different bits of standards in different ways, you'll have to find a common subset that is reasonably consistent across your OS's, but it could be a workable starting point.

Reply to
David Brown

,

Why would you expect that ?

Take a look of some OS independent API, try to port it to all your required operating systems using their native primitives.

If there are features that do not _readily_ map into _all_ OS platforms, just advice application programmers that these features should not be used if possible.

Paul

Reply to
Paul Keinanen

Then Ada would suit just fine -- we regularly port the same code base between Windows, Linux, Solaris, Mac OS X, VxWorks.

All these can be had for free (with a bit of digging) bar VxWorks. A powerpc-wrs-vxworks compiler and support for GCC GNAT Ada is available at a cost which makes more sense if there are several of you and you need support. People like Green Hills, Aonix support VxWorks for fewer bucks. I believe a free GNAT is available for MaRTE OS,

formatting link

Reply to
Simon Wright

abandoned?

OSAL had a release in Oct 2007. The whole idea of open source is that others contribute to make it better. If you or your company can't contribute, then it is best to purchase a commercial product.

Reply to
Marco

I would recommend looking into ACE. ACE has a built in hardware abstraction layer that should be useful.

ACE can be found at:

formatting link

-- EventStudio 4.0 -

formatting link
Sequence diagram based embedded system design tool

Reply to
EventHelix.com

Reply to
Bruce Scherzinger

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.