Experiences with VxWorks compared to QNX

New thread time.

“Robert Krten” <> nospam90@parse.com> > wrote in message
news:a44mlj$h6f$> 1@inn.qnx.com> …

it’s sad that the “product” turned out by our universities and
commercial
institutions doesn’t realize that “vi” and “make” and the “printf
debugger”
are just about all you need. I blame government cutbacks > :slight_smile:

What!

I have to disagree on this point, and it’s a fair few years since I turned

out of university. A good IDE, and begrudgingly I must admit to liking MS
Visual Studio, can save much development time. The ability to single step
through a complicated section of code and have the state of pertinent
variables automatically presented (in red if recently changed) is
priceless for ensuring your logic is working as intended or as an aid for
understanding another person’s code.

David Robb

Comet Scientific Software Ltd.
80 Northfield Road, Ringwood, Hampshire, UK. BH24 1ST
Tel: +44 1425 477912
Fax: +44 1425 461495
mailto:DavidRobb@comsci.co.uk
Web: http://www.comsci.co.uk/

In article <3C608575.1070305@csical.com>, rallen@csical.com (Rennie Allen)
wrote:

Chris Rose wrote:


My question is: Does anyone here have experience with both operating
systems? If so can you give me an unbiased opinion of both OS’s?

I have used both, but the fact that I hang out on the QNX groups

obviously shows my preference.

I too have used both OS’s now. VxWorks for the past year or so and QNX 4
before that.

I was facing a very similar decision 5 years ago when choosing an RTOS for
the control of an instrumentation radar. I chose QNX over VxWorks because
of the cheap hardware available (something PC compatible), network
transparency and the excellent Photon GUI. Now having used VxWorks for a
different client, I know I made the right choice. :wink:

Whichever, OS you choose don’t expect the development environment to be as
well polished or up to date as when developing for the Desktop. Also,
hardware has to be chosen carefully to get the best compatibility and
performance. Tread carefully when using later language developments such
as the STL or C++ exceptions. The implementation of these tend to be buggy

The only areas I would give VxWorks the edge over QNX are:-

Brand awareness

More diversified hardware support ( Not an issue if you can choose your
hardware)

Better cross development environment (VxSimulator is quite good for
developing without any target hardware)

Rennie Allen has highlighted most of the areas where QNX is better.

Now, if only I could find a client that would pay me to develop a solution
using QNX RTP :slight_smile: There seem to be a number of well qualified QNX
consultants currently looking for work :frowning:. I’m currently retraining to
use C# and .NET (not in a real time environment). OK I’ll get my coat
(preferably asbestos :slight_smile:)


David Robb

Comet Scientific Software Ltd.
80 Northfield Road, Ringwood, Hampshire, UK. BH24 1ST
Tel: +44 1425 477912
Fax: +44 1425 461495
mailto:DavidRobb@comsci.co.uk
Web: http://www.comsci.co.uk/

“David Robb” <DavidRobb@comsci.co.uk> wrote in message
news:memo.20020212172357.58689B@comet.compulink.co.uk

In article <> 3C608575.1070305@csical.com> >, > rallen@csical.com > (Rennie Allen)
wrote:

Chris Rose wrote:


My question is: Does anyone here have experience with both operating
systems? If so can you give me an unbiased opinion of both OS’s?

I have used both, but the fact that I hang out on the QNX groups

obviously shows my preference.



I too have used both OS’s now. VxWorks for the past year or so and QNX 4
before that.

I was facing a very similar decision 5 years ago when choosing an RTOS for
the control of an instrumentation radar. I chose QNX over VxWorks because
of the cheap hardware available (something PC compatible), network
transparency and the excellent Photon GUI. Now having used VxWorks for a
different client, I know I made the right choice. > :wink:

Whichever, OS you choose don’t expect the development environment to be as
well polished or up to date as when developing for the Desktop. Also,
hardware has to be chosen carefully to get the best compatibility and
performance. Tread carefully when using later language developments such
as the STL or C++ exceptions. The implementation of these tend to be buggy
.

The only areas I would give VxWorks the edge over QNX are:-

Brand awareness

Oh, yes. That’s true. Everybody “loves” VxWorks. This creates an illusion
that someone might take a bunch of 3rd party libs, integrate them together
and, magically the system will work. When someone attempts to integrate 3rd
party staff, components “fight” each other and the whole system fails. The
memory protection might be a solution for that.

More diversified hardware support ( Not an issue if you can choose your
hardware)

Better cross development environment (VxSimulator is quite good for
developing without any target hardware)

VxSim that comes with Tornado is the Lite version w/o TCP/IP capabilities.
As result it doesn’t allow you to simulate multi-card shelf as bunch of PC’s
pretending to be cards. If you’d like to simulate your shelf then you have
to pay big $ for the “complete” VxSim. To save some manny a lot of companies
(mostly start-ups :slight_smile: build an abstraction layer of OS primitieves in two
flavours VxWorks and Windows, and use two dev.env. MS Studio and Tornado.
There are even comercial products doing that. The trick is expected to
provide a smooth transition from Win to Vxworks but aparently the OS
abstraction layer is very limited due to thread/sync/scheduling/IPC and
other differences. Differences in compilers and 3rd party libs
implementation also contribute to project’s delay/failure.

Anyway it’s hard to find an advantage of windows-based simulation over
execution under the target/native OS, even though on different then target
CPU :wink:

Rennie Allen has highlighted most of the areas where QNX is better.

Now, if only I could find a client that would pay me to develop a solution
using QNX RTP > :slight_smile: > There seem to be a number of well qualified QNX
consultants currently looking for work > :frowning:> . I’m currently retraining to
use C# and .NET (not in a real time environment). OK I’ll get my coat
(preferably asbestos > :slight_smile:> )


David Robb

Comet Scientific Software Ltd.
80 Northfield Road, Ringwood, Hampshire, UK. BH24 1ST
Tel: +44 1425 477912
Fax: +44 1425 461495
mailto:> DavidRobb@comsci.co.uk
Web: > http://www.comsci.co.uk/

I don’t know if any of you know Richard Stallman (wrote a few thing like gcc
and emacs, head of the Free Software Foundation) but he’s a pretty good
programmer, regardless of what you think of his politics. I read an
interview with him once upon a time and he was asked if he had any advice
for programmers out there. He said, “Get the code into a visual debugger as
soon as you can”. Since I read that, I tried to use debuggers more and it
has saved me untold amounts of time. Sure there’s a few cases where I was
barking up the wrong tree but mostly, debuggers make one’s life a lot
easier.

cheers,

Kris
“David Robb” <DavidRobb@comsci.co.uk> wrote in message
news:memo.20020212172355.58689A@comet.compulink.co.uk

New thread time.

“Robert Krten” <> nospam90@parse.com> > wrote in message
news:a44mlj$h6f$> 1@inn.qnx.com> …

it’s sad that the “product” turned out by our universities and
commercial
institutions doesn’t realize that “vi” and “make” and the “printf
debugger”
are just about all you need. I blame government cutbacks > :slight_smile:

What!

I have to disagree on this point, and it’s a fair few years since I turned
out of university. A good IDE, and begrudgingly I must admit to liking MS
Visual Studio, can save much development time. The ability to single step
through a complicated section of code and have the state of pertinent
variables automatically presented (in red if recently changed) is
priceless for ensuring your logic is working as intended or as an aid for
understanding another person’s code.

David Robb

Comet Scientific Software Ltd.
80 Northfield Road, Ringwood, Hampshire, UK. BH24 1ST
Tel: +44 1425 477912
Fax: +44 1425 461495
mailto:> DavidRobb@comsci.co.uk
Web: > http://www.comsci.co.uk/

VxSim that comes with Tornado is the Lite version w/o TCP/IP capabilities.
As result it doesn’t allow you to simulate multi-card shelf as bunch of
PC’s
pretending to be cards. If you’d like to simulate your shelf then you have
to pay big $ for the “complete” VxSim. To save some manny a lot of
companies
(mostly start-ups > :slight_smile: > build an abstraction layer of OS primitieves in two
flavours VxWorks and Windows, and use two dev.env. MS Studio and Tornado.
There are even comercial products doing that. The trick is expected to
provide a smooth transition from Win to Vxworks but aparently the OS
abstraction layer is very limited due to thread/sync/scheduling/IPC and
other differences. Differences in compilers and 3rd party libs
implementation also contribute to project’s delay/failure.

Anyway it’s hard to find an advantage of windows-based simulation over
execution under the target/native OS, even though on different then target
CPU > :wink:

Hey Dmitri,

I’m very interested in your views of this abstraction layer stuff. I’m
working with a defense comapny and they are trying to force this what they
call an “OE” layer on us and I’m having difficulty figuring out a good
reason why they are doing it. If what you say is true, then this is the
main reason it is being done. And its a crappy reason at that.

It seems that they really like vxworks, but want to run their systems on NT
before they port them to the target platform, I never could understand why,
but your recent post makes it a bit more clear.
I wish to explore this as much as I can so I can articulate why or why not
it should be done. I need to make it clear that a lot of time and money is
wasted in the development effort by going this route.

Kevin

Rennie Allen has highlighted most of the areas where QNX is better.

Now, if only I could find a client that would pay me to develop a
solution
using QNX RTP > :slight_smile: > There seem to be a number of well qualified QNX
consultants currently looking for work > :frowning:> . I’m currently retraining to
use C# and .NET (not in a real time environment). OK I’ll get my coat
(preferably asbestos > :slight_smile:> )


David Robb

Comet Scientific Software Ltd.
80 Northfield Road, Ringwood, Hampshire, UK. BH24 1ST
Tel: +44 1425 477912
Fax: +44 1425 461495
mailto:> DavidRobb@comsci.co.uk
Web: > http://www.comsci.co.uk/

Kris Warkentin wrote:

I don’t know if any of you know Richard Stallman (wrote a few thing like gcc
and emacs, head of the Free Software Foundation) but he’s a pretty good
programmer, regardless of what you think of his politics. I read an
interview with him once upon a time and he was asked if he had any advice
for programmers out there. He said, “Get the code into a visual debugger as
soon as you can”. Since I read that, I tried to use debuggers more and it
has saved me untold amounts of time. Sure there’s a few cases where I was
barking up the wrong tree but mostly, debuggers make one’s life a lot
easier.

I agree on getting the code into a debugger as soon as possible. I try
to always run new code first in the debugger to make sure it is doing
what I expect (of course this technique is useless for real-time code).
I’m not sure what a “visual debugger” is; I use command line gdb, and I
find it is much more productive than something like ddd.

Kris Warkentin <kewarken@qnx.com> wrote:

I don’t know if any of you know Richard Stallman (wrote a few thing like gcc
and emacs, head of the Free Software Foundation) but he’s a pretty good
programmer, regardless of what you think of his politics. I read an

Damn! You had to say that whole “regardless” thing, eh? :slight_smile: :slight_smile:

Cheers,
-RK

interview with him once upon a time and he was asked if he had any advice
for programmers out there. He said, “Get the code into a visual debugger as
soon as you can”. Since I read that, I tried to use debuggers more and it
has saved me untold amounts of time. Sure there’s a few cases where I was
barking up the wrong tree but mostly, debuggers make one’s life a lot
easier.

cheers,

Kris
“David Robb” <> DavidRobb@comsci.co.uk> > wrote in message
news:> memo.20020212172355.58689A@comet.compulink.co.uk> …
New thread time.

“Robert Krten” <> nospam90@parse.com> > wrote in message
news:a44mlj$h6f$> 1@inn.qnx.com> …

it’s sad that the “product” turned out by our universities and
commercial
institutions doesn’t realize that “vi” and “make” and the “printf
debugger”
are just about all you need. I blame government cutbacks > :slight_smile:

What!

I have to disagree on this point, and it’s a fair few years since I turned
out of university. A good IDE, and begrudgingly I must admit to liking MS
Visual Studio, can save much development time. The ability to single step
through a complicated section of code and have the state of pertinent
variables automatically presented (in red if recently changed) is
priceless for ensuring your logic is working as intended or as an aid for
understanding another person’s code.

David Robb

Comet Scientific Software Ltd.
80 Northfield Road, Ringwood, Hampshire, UK. BH24 1ST
Tel: +44 1425 477912
Fax: +44 1425 461495
mailto:> DavidRobb@comsci.co.uk
Web: > http://www.comsci.co.uk/


Robert Krten, PARSE Software Devices +1 613 599 8316.
Realtime Systems Architecture, Books, Video-based and Instructor-led
Training and Consulting at www.parse.com.
Email my initials at parse dot com.

I’m assuming he meant gdb since he was responsible for most of the gnu
toolchain - I may be misquoting him but I remember noticing that odd
phrasing at the time. Maybe gdb is visual in his books…who knows what
they were using back in the pdp11 days. :wink:

Kris
“Rennie Allen” <rallen@csical.com> wrote in message
news:3C698BE3.9060004@csical.com

Kris Warkentin wrote:

I don’t know if any of you know Richard Stallman (wrote a few thing like
gcc
and emacs, head of the Free Software Foundation) but he’s a pretty good
programmer, regardless of what you think of his politics. I read an
interview with him once upon a time and he was asked if he had any
advice
for programmers out there. He said, “Get the code into a visual
debugger as
soon as you can”. Since I read that, I tried to use debuggers more and
it
has saved me untold amounts of time. Sure there’s a few cases where I
was
barking up the wrong tree but mostly, debuggers make one’s life a lot
easier.



I agree on getting the code into a debugger as soon as possible. I try
to always run new code first in the debugger to make sure it is doing
what I expect (of course this technique is useless for real-time code).
I’m not sure what a “visual debugger” is; I use command line gdb, and I
find it is much more productive than something like ddd.

Well, he IS quite mad you know…:wink: Who was it who said that madness and
genius are but opposite sides of the same coin?

Kris

“Robert Krten” <nospam90@parse.com> wrote in message
news:a4c4bf$stu$1@inn.qnx.com

Kris Warkentin <> kewarken@qnx.com> > wrote:
I don’t know if any of you know Richard Stallman (wrote a few thing like
gcc
and emacs, head of the Free Software Foundation) but he’s a pretty good
programmer, regardless of what you think of his politics. I read an

Damn! You had to say that whole “regardless” thing, eh? > :slight_smile: > > :slight_smile:

Cheers,
-RK

interview with him once upon a time and he was asked if he had any
advice
for programmers out there. He said, “Get the code into a visual
debugger as
soon as you can”. Since I read that, I tried to use debuggers more and
it
has saved me untold amounts of time. Sure there’s a few cases where I
was
barking up the wrong tree but mostly, debuggers make one’s life a lot
easier.

cheers,

Kris
“David Robb” <> DavidRobb@comsci.co.uk> > wrote in message
news:> memo.20020212172355.58689A@comet.compulink.co.uk> …
New thread time.

“Robert Krten” <> nospam90@parse.com> > wrote in message
news:a44mlj$h6f$> 1@inn.qnx.com> …

it’s sad that the “product” turned out by our universities and
commercial
institutions doesn’t realize that “vi” and “make” and the “printf
debugger”
are just about all you need. I blame government cutbacks > :slight_smile:

What!

I have to disagree on this point, and it’s a fair few years since I
turned
out of university. A good IDE, and begrudgingly I must admit to liking
MS
Visual Studio, can save much development time. The ability to single
step
through a complicated section of code and have the state of pertinent
variables automatically presented (in red if recently changed) is
priceless for ensuring your logic is working as intended or as an aid
for
understanding another person’s code.

David Robb

Comet Scientific Software Ltd.
80 Northfield Road, Ringwood, Hampshire, UK. BH24 1ST
Tel: +44 1425 477912
Fax: +44 1425 461495
mailto:> DavidRobb@comsci.co.uk
Web: > http://www.comsci.co.uk/



\

Robert Krten, PARSE Software Devices +1 613 599 8316.
Realtime Systems Architecture, Books, Video-based and Instructor-led
Training and Consulting at > www.parse.com> .
Email my initials at parse dot com.

Kris Warkentin <kewarken@qnx.com> wrote:
: Well, he IS quite mad you know…:wink: Who was it who said that madness and
: genius are but opposite sides of the same coin?

Great wits are sure to madness near allied,
And thin partitions do their bounds divide.

John Dryden (1631-1700)

I knew that book of quotations would come in handy some day…


Steve Reid stever@qnx.com
TechPubs (Technical Publications)
QNX Software Systems

Rennie Allen <rallen@csical.com> wrote in
news:3C698BE3.9060004@csical.com:

I agree on getting the code into a debugger as soon as possible. I try
to always run new code first in the debugger to make sure it is doing
what I expect (of course this technique is useless for real-time code).
I’m not sure what a “visual debugger” is; I use command line gdb, and I
find it is much more productive than something like ddd.

I’m on the opposite side of the fence. Some of the hardest bugs can’t be
seen using a debugger. I prefer to examine the code, reason a hypothesis,
then use the right tool to either prove/disprove said hypothesis. Repeat
as needed.

It’s funny how Brian Kernighan also sits on this side of the fence (no
debugger until later, if needed). Just to make myself clear, I’m not
saying using a debugger upfront is bad idea, but try not to make it a
crutch you can’t live without.


\

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>

Adam Mallory wrote:

Rennie Allen <> rallen@csical.com> > wrote in
news:> 3C698BE3.9060004@csical.com> :


I agree on getting the code into a debugger as soon as possible. I try
to always run new code first in the debugger to make sure it is doing
what I expect (of course this technique is useless for real-time code).
I’m not sure what a “visual debugger” is; I use command line gdb, and I
find it is much more productive than something like ddd.


I’m on the opposite side of the fence. Some of the hardest bugs can’t be
seen using a debugger. I prefer to examine the code, reason a hypothesis,
then use the right tool to either prove/disprove said hypothesis. Repeat
as needed.

It’s funny how Brian Kernighan also sits on this side of the fence (no
debugger until later, if needed). Just to make myself clear, I’m not
saying using a debugger upfront is bad idea, but try not to make it a
crutch you can’t live without.

The debugger up-front is a low level design → implementation
verification tool. I try to always use it on code where it can be
done. Of course, if you can’t get by without it you’ll have trouble
writing real-time code :wink:

Rennie Allen wrote:

Kris Warkentin wrote:

I don’t know if any of you know Richard Stallman (wrote a few thing
like gcc
and emacs, head of the Free Software Foundation) but he’s a pretty good
programmer, regardless of what you think of his politics. I read an
interview with him once upon a time and he was asked if he had any advice
for programmers out there. He said, “Get the code into a visual
debugger as
soon as you can”. Since I read that, I tried to use debuggers more
and it
has saved me untold amounts of time. Sure there’s a few cases where I
was
barking up the wrong tree but mostly, debuggers make one’s life a lot
easier.




I agree on getting the code into a debugger as soon as possible. I try
to always run new code first in the debugger to make sure it is doing
what I expect (of course this technique is useless for real-time code).
I’m not sure what a “visual debugger” is; I use command line gdb, and I
find it is much more productive than something like ddd.

WRT debuggers it seems to me that QNX has gone downhill since QNX2. The
CI debugger was really easy to use - a lot of single key functions that
were very easy to use and did just what you wanted. Watcom’s debugger
may have been more powerful, but it sure wasn’t intuitive. I have yet to
get DDD to work - need to get the latest version I think. Another tool I
used a lot was called Instant-C, an incremental compiler, editor and
debugger. I ran under DOS - but used so much memory that Rational
Systems (author) created the DPMI stuff which allowed you to run in
protected mode and use all the memory you needed. I always thought that
QSSL and Rational should get together back when QSSL was doing DOS
emulation… Instant-C was really cool. You could load a 3rd party lib
and call it from the interperter. You could also do io and play with
drivers for new hardware. Complicated calling convention - no problem,
just create a #define foo horridLib(horrid args ) and use foo to call
it. The system tested all array/pointer access for out -of bounds
conditions (plus protected memory exceptions). It was really cool to go
into a company - load their working code and find serious memory access
bugs in the first few lines of their program. It was also great for
hashing out a new coding technique. You didn’t need to make much of a
harness to test it. Likewise a new program - one could easily work at
high and low levels.

It’s really sort of amazing to me that tools of this level are no longer
made. Of course C++ is a bit harder, and fast computers/compilers make
them somewhat less necessary, but then there’s gcc as a counter argument.

Dave

Well since everyone seems to have their own 2 cents about this,
I think I should throw in mine. I used to like debuggers.
I’ve even written a special case one once. The question with
a good debugger is, how long will it be useful. I’ve gone through
at least half a dozen over the past two decades, including ones for both
QNX and Windows. Learning a debugger well is no small task.
Using a debugger that you don’t know well is often more time consuming
than using printf’s. So I mostly use printf’s. Sometimes with QNX
I invent something special just to see what all my processes are doing
at the same time.

I’ve learned to do over the years is write code very
carefully. It’s not that I don’t have bugs, or logic
errors. I just somehow know how to code things so that they
are easy to find. I don’t even know how to explain this.
Just many years of experience.

I don’t pretend this will work for everyone. I think a good debugger
can be a great learning tool. You can find out all sorts of things
about code generation, etc.

Mitchell Schoenbrun --------- maschoen@pobox.com

“Rennie Allen” <rallen@csical.com> wrote in message
news:3C698BE3.9060004@csical.com

I agree on getting the code into a debugger as soon as possible. I try
to always run new code first in the debugger to make sure it is doing
what I expect (of course this technique is useless for real-time code).

Since most of the code that I work on is real-time code, this is why I have
have had to develope my own run time tools for traceing through a program.


Bill Caroselli – 1(626) 824-7983
Q-TPS Consulting
QTPS@EarthLink.net

“Mitchell Schoenbrun” <maschoen@pobox.com> wrote in message

I don’t pretend this will work for everyone. I think a good debugger
can be a great learning tool. You can find out all sorts of things
about code generation, etc.

BINGO! That’s when debuggers come in most useful. To find bugs in code

generation.

(Damn compilers! - Give me hit switches or give me death!)


Bill Caroselli – 1(626) 824-7983
Q-TPS Consulting
QTPS@EarthLink.net

Bill Caroselli wrote:

“Mitchell Schoenbrun” <> maschoen@pobox.com> > wrote in message

I don’t pretend this will work for everyone. I think a good debugger
can be a great learning tool. You can find out all sorts of things
about code generation, etc.

BINGO! That’s when debuggers come in most useful. To find bugs in code
generation.

(Damn compilers! - Give me hit switches or give me death!)

You mean like Altair 8800’s or PDP-8’s???
Be careful what you wish for!

Phil Olynyk
OBT Software Corp.


Bill Caroselli – 1(626) 824-7983
Q-TPS Consulting
QTPS@EarthLink.net

Mitchell Schoenbrun <maschoen@pobox.com> wrote:

Well since everyone seems to have their own 2 cents about this,
I think I should throw in mine. I used to like debuggers.
I’ve even written a special case one once. The question with
a good debugger is, how long will it be useful. I’ve gone through
at least half a dozen over the past two decades, including ones for both
QNX and Windows. Learning a debugger well is no small task.
Using a debugger that you don’t know well is often more time consuming
than using printf’s. So I mostly use printf’s. Sometimes with QNX
I invent something special just to see what all my processes are doing
at the same time.

I’ve learned to do over the years is write code very
carefully. It’s not that I don’t have bugs, or logic
errors. I just somehow know how to code things so that they
are easy to find. I don’t even know how to explain this.
Just many years of experience.

I don’t pretend this will work for everyone. I think a good debugger
can be a great learning tool. You can find out all sorts of things
about code generation, etc.

Most of the time, a debugger is also the quickest way to find out why
your code crashes. But if my code seems to be doing the right thing,
I usually can think of better ways of making sure that it indeed is
correct than running it under a debugger…

\

Wojtek Lerch QNX Software Systems Ltd.

Wojtek Lerch wrote:


Most of the time, a debugger is also the quickest way to find out why
your code crashes. But if my code seems to be doing the right thing,
I usually can think of better ways of making sure that it indeed is
correct than running it under a debugger…

Unless your code is safety critical control software, in which case you
must know that it is doing the right thing, regardless of what black
box testing implies that it is doing. That said, most of the software
that falls into this category can’t be stepped through with a debugger
anyway…

Previously, Wojtek Lerch wrote in qdn.public.qnxrtp.advocacy:

Most of the time, a debugger is also the quickest way to find out why
your code crashes.

Back in the not so distant past, I would record the address that
a program was crashing at, look up the location in the link map.
I guess doing it with a debugger is about as quick.


Mitchell Schoenbrun --------- maschoen@pobox.com