[nos-bbs] NOS, CYGWIN, WIN32, DJGPP, and future porting issues ...

Maiko Langelaar (ve4klm) maiko at pcs.mb.ca
Thu Sep 14 13:00:31 EDT 2006


Comments encouraged and welcomed. This is serious stuff !

Well I did a bit of research and I have to conclude that until JNOS
and any other NOS get's converted to using THREADS, CYGWIN will just
not be an option right now. AND if I have to go that far - which is
inevitable - then I might as well just go directly to native WIN32
at some point. When ? I have no idea when and how I'll tackle that.

As GCC and GLIB progress (if you want to really call it that), the
powers to be are making it alot more difficult for NOS to continue
to use the SETJMP and LONGJMP calls. The latest GCC and GLIB do not
support the SETJMP and LONGJMP (in that it's hidden from the programmer

The CONTEXT functions seem to still be there, but here's a clincher. The
CYGWIN project of course needs to keep up with the latest GCC and GLIB,
so CYGWIN also no longer supports the SETJMP and LONGJMP calls. Older 
versions might, and at one time Brian Lantz got TNOS to work with CYGWIN,
problem is that the latest version of CYGWIN has followed FC5 style and
completely hidden the JMPBUF internals from the user, so any TNOS 3 users
that decide to upgrade their CYGWIN will be out of luck by the looks of

The CONTEXT support for CYGWIN apparently does not work, so it's not an 
option either. If anyone knows otherwise, I'd be more than happy to hear
from you.

So sorry to say, JNOS under CYGWIN will not be an option if we take into
account the future direction of where all this stuff is going. I'm not so
sure it's worth the effort for me to make JNOS compilable and workable on
older versions of CYGWIN.

It's clear to me that at some point, JNOS (linux) and other NOS (linux)
flavours will simply have to abandon the use of JMPBUF and CONTEXT stuff,
and move on to native O/S threads. That probably makes most sense anyways,
since it's kinda wastefull really for NOS to use context switching when
it's running on an O/S that already does that anyways.

I'm not so sure I want to spend time porting to DJGPP. Is there any
benefit other than it *might* be easier to port to DJGPP then to a
general WIN32 (console app) environment ?

So there you have it, some challenges for NOS in general, as operating
systems progress further and further, and system internals are more
and more hidden from the programmer as time goes on ...

Maiko Langelaar / VE4KLM

More information about the nos-bbs mailing list