The Future of QNX

Hi,

I’m a little bit surprised about the articles we can read about Photon
and PhAB.
These articles make me a little bit upset about what QSSL plan to do
with QRTP.
Some weeks ago, we first noticed a silence about pdb, until
understanding, without any prior informations from QSSL, that pdb was
dropped out.
Of course, after many questions from me and some others, QSSL people end
to admit it!!!
The problem is that QSSL decided that without giving real alternative.
As DDD is only usable with qwerty keyboards, as QSSL don’t give any
solution to use other keyboards (although some solutions exist!), as
QSSL seems not be very disposed to continue the developments on XPhoton,
as QSSL don’t give any information about a future debugger, we can think
that QSSL don’t really want that QRTP continues its life as a
development platform.
This reflexion is enforced with what happens with PhAB.
DO YOU PLAN FOR PHAB THE SAME FUTURE AS PDB ?!?.

I had a meeting yesterday with a supplier which is going to sell us some
motherboards and other electronic cards with neutrino embedded.
They told me about many of problems with your tools to create system
images, to flash the image, …, and about their difficulties to have
the informations they need.
It seems that all these low level tools don’t work correctly. Some don’t
work at all.
It seems that neutrino only exists to start on a PC.
Did you forget that Neutrino is, first, an industrial operating system,
and not a desktop system ??
What do you want now? To be on the Windows or Linux market? To leave the
embedded market?

I don’t understand how many time you waste to develop so many new
functionnalities before trying to solve all existing important bugs and
missing features as name server, for example, which is a big hole in
your network transparency!!
Cron, which is a system utility, and don’t work at all, is maybe more
crucial than a set of backdrops!
I’m not going to give a complete list, I think you have an idea about
the problem, and I guess that some other guys will give you their
opinion about it if it’s necessary!

We don’t care about RealPlayer, Quake, CD reader, Mpeg player until the
operating system works correctly, the network works correctly, the
graphical interface works correctly, and all other basic
functionnalities works correctly.
Of course, we will always meet some guys who want to change the Photon
look and feel but, seriously, I think that the majority of QRTP users
will understand other priorities.

I’m convinced that QRTP (to talk about neutrino and all the components)
is a very good product. I think that everybody agrees to say that what
is done is clear and well done. We are developpers like you, and we
can’t blame you about existing bugs (If you try to solve them). But, I
have the impression that you are in a race to a maximum number of
applications, and I’ d like to say, unfortunately, often for
embelishment, what, from my point of view, damage the product.

Please help us in our developments by envolving the usefull tools, I
think it will be better for your and our success (I mean, in the long
term), than to try to smash the downloads record with embelishments.

Best regards,
Alain.

Previously, Alain Bonnefoy wrote in qdn.public.qnxrtp.advocacy:

QSSL seems not be very disposed to continue the developments on XPhoton,
as QSSL don’t give any information about a future debugger, we can think
that QSSL don’t really want that QRTP continues its life as a
development platform.

What are you babbling about? The GUI of choice for QNX is Photon, the
only reason that XPhoton exists is to assist in porting applications
to QNX. I personally have not seen any of the problems that folks have
reported with XPhoton, then again, I haven’t tried to just plain run
some bizzare Xapp with it. It runs my corporate X-based tools perfectly
well, and in the case of bringing an app to QNX, well… if it has some
deficiencies, then that just helps to encourage the next phase of
porting that appliation to QNX, that of replacing the X interface with a
photon interface. Think about it, it just DOES NOT make sense to rely
on anything in X for an embedded environment does it? XPhoton issues
aside, the resources for X are simply too large. The benefits of
porting the GUI portion of an application to photon are huge.

In that perspective, QSSL is providing a very STRONG direction for the
future of development on QNX… NATIVE development, which is exactly
what they should be doing.

Put on a “business” hat, and you will quickly see that X isn’t a product
that represents any significant revenue for an embedded OS, while Photon
represents exactly that.

I had a meeting yesterday with a supplier which is going to sell us some
motherboards and other electronic cards with neutrino embedded.
They told me about many of problems with your tools to create system
images, to flash the image, …, and about their difficulties to have
the informations they need.
It seems that all these low level tools don’t work correctly. Some don’t
work at all.

This is not surprising, have you ever WORKED for an electronics
manufacturer? Their expertise is in making their hardware work, and NOT
in making every OS in the world work on it. Their test engineers
typically use DOS/Windows-based test equipment, and that is the primary
concern for a motherboard manufacturer. To get QNX working on an
embedded device requires significant training, and extensive knowledge
of QNX, this is not something that typically provides a sizable return
for the hardware manufacturer. This makes perfect sense, take someone
like Asus, they manufacture MILLIONS of PC motherboards, and I’ll go out
on a limb and guess that fewer than 1% of them ever wind up runing QNX.
The investment (to train personelle) is simple much, much larger than
the return. In fact, there is a higher chance that the personelle you
train would leave the company long before you got a return on the
investment, and then you’d literally have to start over.

With that said, it is not surprising that a manufacturer would complain
about QNX’s tools. The problem [I’ll wager] is not that the tools are
bad or broken, I think they are, but that the PEOPLE trying to use them
simply are untrained or inadequately trained to use them. Think of an
airplane, to me (an untrained & inexperience user) they seem
overwhelming, far too complex and impossible to understand and use. To
a properly trained and experienced pilot, they are not. This is the
same case.

There are a few companies, that work predominently in the embedded
market manufacturing hardware that do support QNX, and they support it
well. The one that comes to mind is Arcom (
http://www.arcomcontrols.com ). They had QNX RTP running on their
hardware in a fairly short time. How did they manage that? Well, the
most important is that Arcom has taken the time to train their engineers
on QNX (and other OSs that are popular in the embedded world). They
have sent them on the FULL training courses from QSSL, they have formed
official partnerships with QSSL, and they send those same engineers to
tradeshows. The other reason why a company like Arcom can actually
benefit from doing this is that manufacturing SBC’s is not their only
business. They also have a large business actually building and
programming embedded systems for clients, which means they can use QNX
for more than just supporting their hardware, they actually build
products that require an OS like QNX.

In the embedded world, choosing a vendor is an important step, you can
find one that is cheap, but that can offer little to no techical support
for the OS you are using. You can also select a vendor that CAN provide
that level of support and that has partnerships with your OS vendor to
work through some of the deep issues that you would never want to get
into (like making an IPL or BIOS).

I’d reccomend Arcom, go talk to them. Give Frank P. a call, tell him I
sent you, and tell him what you want/need with QNX. I know they can
help you and I know that they won’t have the issues you are complaining
about.


-+> It seems that neutrino only exists to start on a PC.

Absolutely. Again, there is only one platform that is used for
self-hosted development, and that is x86 on a desktop PC. This is not
very different than all the other RTOSs out there. The HUGE difference
is that all the other RTOSs are not self-hosted on anything, you still
have to use an x86 desktop PC for cross-compiling and downloading into
the target hardware. You have to download & reboot the target hardware
to test ANYTHING. That is NOT the case with QNX. You can develop and
test everything from an x86 desktop without even having the target
hardware. That’s a huge advantage.

Quite simply, your expectation that just because QNX can do this on x86,
that it should also do it on every board and every CPU supported is
simply unrealistic. There is no “common” hardware platform for those
other CPU’s which is why this is not possible. QNX does not make the
hardware, so this is not their fault, nor is it their responsibility.


Did you forget that Neutrino is, first, an industrial operating system,
and not a desktop system ??

No one has forgotten that, except perhaps you. You’ve just complained
that it doesn’t provide desktop services on your “industrial” hardware.
Make up your mind what you want.

What do you want now? To be on the Windows or Linux market? To leave the
embedded market?

Not at all, the self-hosted development environment runs on the same
hardware that the lion’s share of Linux developers use. That makes it
trivial for those developers to install and run QNX and learn to develop
for QNX as well. There is no desire for QNX to enter the “linux
market” (hey, it’s all “free” in that market, which doesn’t make it a
very profitable market at all, which is apparant with what is happening
to all those linux companies with the current economy). In contrast,
QSSL is going strong, and its advantages make it MORE attractive given
the current economy.

I don’t understand how many time you waste to develop so many new
functionnalities before trying to solve all existing important bugs and
missing features as name server, for example, which is a big hole in
your network transparency!!

What the hell are you talking about? QNX has the most transparent
network available in the industry today. It is mature on QNX4, and is
in beta on QNX6. I have no doubt that the official release (ie.
non-beta) of QNET will be very stable and will provide the same
transparency that we have in QNX4.

Cron, which is a system utility, and don’t work at all, is maybe more
crucial than a set of backdrops!

Cron works fine, you’re doing something wrong. RTFM, and then fix what
you are doing wrong. If there is an actual problem, then report the bug
and work with QSSL to resolve it. I’ve had years (some would say eons)
of experience working with QSSL, they are INCREDIBLY responsive, they DO
listen, and they DO fix things. Go grab an IRC client (
http://www.joher.com/phirc ) and join the #qnx channel on irc.joher.com
& irc.qnxstart.com where you will be able to talk with many QSSL
developers to help resolve your problems. At least you’ve found these
newsgroups, which is the other useful area.

We don’t care about RealPlayer, Quake, CD reader, Mpeg player until the
operating system works correctly, the network works correctly, the
graphical interface works correctly, and all other basic
functionnalities works correctly.

You are over reacting. The OS does work correctly, and unless you’ve
been living in a cave without net access, you’d also know that those
thing you mention as not required for YOUR appliation, are in large
demand for many of the new embedded devices such as game consoles,
internet appliances, PDAs, personal music systems, and such. As for
Quake, well… that’s just to give those Linux developers one less
reason to reboot back into another OS.


Of course, we will always meet some guys who want to change the Photon
look and feel but, seriously
, I think that the majority of QRTP users
will understand other priorities.

I’m convinced that QRTP (to talk about neutrino and all the components)
is a very good product. I think that everybody agrees to say that what
is done is clear and well done. We are developpers like you, and we
can’t blame you about existing bugs (If you try to solve them). But, I
have the impression that you are in a race to a maximum number of
applications, and I’ d like to say, unfortunately, often for
embelishment, what, from my point of view, damage the product.

Please help us in our developments by envolving the usefull tools, I
think it will be better for your and our success (I mean, in the long
term), than to try to smash the downloads record with embelishments.

Best regards,
Alain.


Martin Zimmerman camz@passageway.com
Camz Software Enterprises www.passageway.com/camz/qnx/
QNX Programming & Consulting

Sorry, I hit send by mistake.

Previously, Alain Bonnefoy wrote in qdn.public.qnxrtp.advocacy:
[ … quote for 1st part of resonse removed, see previous message … ]



We don’t care about RealPlayer, Quake, CD reader, Mpeg player until the
operating system works correctly, the network works correctly, the
graphical interface works correctly, and all other basic
functionnalities works correctly.

You are over reacting. The OS does work correctly, and unless you’ve
been living in a cave without net access, you’d also know that those
thing you mention as not required for YOUR appliation, are in large
demand for many of the new embedded devices such as game consoles,
internet appliances, PDAs, personal music systems, and such. As for
Quake, well… that’s just to give those Linux developers one less
reason to reboot back into another OS.

I’ve seen rants like yours before and every single time, the cause of
the rant was frustration over one single issue, they were obsessing and
then venting. Chill, relax, stop over reacting.

Please help us in our developments by envolving the usefull tools, I
think it will be better for your and our success (I mean, in the long
term), than to try to smash the downloads record with embelishments.

Think about this for a bit. QSSL develops more than the OS. They too
are dependant upon the same development and debugging tools as you are.
They need them do debug and develop things like photon, device drivers,
network drivers, etc. They have an even BIGGER interest in seeing those
tools evolve as you are. This has to be a priority for them, since
better tools not only improve the productivity of their developers but
they also reduce the amount of time required to get a product
improvement or bug fix to YOU.

You don’t have anything to worry about, you just need to talk to the
right people.

Cheers,
Camz.


Martin Zimmerman camz@passageway.com
Camz Software Enterprises www.passageway.com/camz/qnx/
QNX Programming & Consulting

Martin Zimmerman wrote:

Previously, Alain Bonnefoy wrote in qdn.public.qnxrtp.advocacy:
QSSL seems not be very disposed to continue the developments on XPhoton,
as QSSL don’t give any information about a future debugger, we can think
that QSSL don’t really want that QRTP continues its life as a
development platform.

What are you babbling about?

You are over reacting!

The GUI of choice for QNX is Photon,

I’m not convienced …
Qt embedded seems to be also a very good choice!

the
only reason that XPhoton exists is to assist in porting applications
to QNX. I personally have not seen any of the problems that folks have
reported with XPhoton, then again, I haven’t tried to just plain run
some bizzare Xapp with it.

DDD has big problems with Xphoton.
Do you believe that e.g. DDD is a bizarre application?

It runs my corporate X-based tools perfectly
well, and in the case of bringing an app to QNX, well… if it has some
deficiencies, then that just helps to encourage the next phase of
porting that appliation to QNX, that of replacing the X interface with a
photon interface.

Will not be so simple if the app is written in C++ …

Think about it, it just DOES NOT make sense to rely
on anything in X for an embedded environment does it? XPhoton issues
aside, the resources for X are simply too large. The benefits of
porting the GUI portion of an application to photon are huge.

May be you are dreaming?
… Xfree86 3.3.6 consumes less memory than Photon!

In that perspective, QSSL is providing a very STRONG direction for the
future of development on QNX… NATIVE development, which is exactly
what they should be doing.

Nice that you are recognizing a ‘STRONG direction for the future of
development’ :slight_smile:

Please let us know what you see … would be interesting to know
what compiler/libs we will get after Watcom, gcc, Metrowerks,
Metaware …

[ clip …]

What the hell are you talking about? QNX has the most transparent
network available in the industry today. It is mature on QNX4, and is
in beta on QNX6.

Do you mean QNET is really in Beta state??
Do you have already worked with it ?

I have no doubt that the official release (ie.
non-beta) of QNET will be very stable and will provide the same
transparency that we have in QNX4.

I cross my fingers …

Cron, which is a system utility, and don’t work at all, is maybe more
crucial than a set of backdrops!

Cron works fine, you’re doing something wrong. RTFM, and then fix what
you are doing wrong. If there is an actual problem, then report the bug
and work with QSSL to resolve it. I’ve had years (some would say eons)
of experience working with QSSL, they are INCREDIBLY responsive, they DO
listen, and they DO fix things. Go grab an IRC client (
http://www.joher.com/phirc > ) and join the #qnx channel on irc.joher.com
& irc.qnxstart.com where you will be able to talk with many QSSL
developers to help resolve your problems. At least you’ve found these
newsgroups, which is the other useful area.

We don’t care about RealPlayer, Quake, CD reader, Mpeg player until the
operating system works correctly, the network works correctly, the
graphical interface works correctly, and all other basic
functionnalities works correctly.

You are over reacting. The OS does work correctly,

The OS works correctly so far
… but you need more than the OS and Qed :slight_smile:

Fact is that e.g. Photon 2.0 is still very unstable …
and it’s impossible to realize a stable 24/7 application.

and unless you’ve
been living in a cave without net access, you’d also know that those
thing you mention as not required for YOUR appliation, are in large
demand for many of the new embedded devices such as game consoles,
internet appliances, PDAs, personal music systems, and such. As for
Quake, well… that’s just to give those Linux developers one less
reason to reboot back into another OS.

Must be fun to develop multi threaded GUI apps with the
non-thread-safe Photon library.

Armin

The HUGE difference
is that all the other RTOSs are not self-hosted on anything, you still
have to use an x86 desktop PC for cross-compiling and downloading into
the target hardware.

Please stick to the facts, you sound like a merketing guy. :slight_smile:
I’ve come close to only two RTOS’es in my life, LynxOS and QNX RTP.
They are both self hosted.


Mats

Fact is that e.g. Photon 2.0 is still very unstable …
and it’s impossible to realize a stable 24/7 application.

It is not impossible to realize a stable 24/7 application in Photon. There
might be certain applications that aren’t stable in Photon, and it isn’t as
stable as 1.14 on QNX 4 yet, but the statement above is a massive
overstatement.

Must be fun to develop multi threaded GUI apps with the
non-thread-safe Photon library.

Threads and Photon don’t go well together, OTOH, I have written dozens of
non-trivial applications in Photon, and I have never a the slightest twinge
of desire to write a multi-threaded GUI client application. So just maybe
it just ain’t that big a deal…

Previously, Armin Steinhoff wrote in qdn.public.qnxrtp.advocacy:

Martin Zimmerman wrote:

DDD has big problems with Xphoton.
Do you believe that e.g. DDD is a bizarre application?

Never used nit. I’ve used gdb and other than getting acquainted with it,
it seemed to work quite well.

porting that appliation to QNX, that of replacing the X interface with a
photon interface.

Will not be so simple if the app is written in C++ …

C++ is, well… I think your comment has more to say about C++ than it
has to say about porting to QNX.

May be you are dreaming?
… Xfree86 3.3.6 consumes less memory than Photon!

Make sure you are comparing apples to apples, most X apps I have seen
rely on so many additional libraries, that it painlessly exceeds the
memory requirements of photon. Remember too that in an embedded environment,
it is very easy to scale photon down to meet your exact requirements, the end
result it quite small.

Please let us know what you see … would be interesting to know
what compiler/libs we will get after Watcom, gcc, Metrowerks,
Metaware …

Support for gcc has been consistent, Metrowerks actually used gcc at
some point in time, which meant that it was primarily providing an IDE.

Do you mean QNET is really in Beta state??
Do you have already worked with it ?

Yes, where the heck have you been? Qnet was available in beta form
since AT LEAST the January (AKA patch A) release. The stability was
improved in patch B, and should be even better when the next full beta
release is available.

QSSL has already done significant testing, from what I have heard, the
performance of Qnet is capable of remote DVD playback (ie. physical DVD
in one node on the LAN, playback on another).

The OS works correctly so far
… but you need more than the OS and Qed > :slight_smile:

Heh heh, actually, I don’t use qed, I’ve seen multiple releases of VIM,
including gvim, I have seen the same become part of the official
vim/gvim distro, and I have seen significant development occuring on the
native OS from many people. We’ve seen a couple commercial products
launched (3Com’s Audrey and Audio Request). I’ve heard that QNX6 &
Photon 2.0 have even made pre-alpha appearances on Compaq’s iPAQ PDA
platform within the confines of QSSL’s R&D labs. We’ve seen the release
of 802.11 wireless lan drivers from a 3rd party, and 802.11 @ 11MBps on
Orinoco cards within the R&D labs.

There is some serious development happening, and the fact that there are
now some commercial products shipping with QNX6 is proof that the
stability is there. You REALLY need to differenciate stability in a
development environment from the product/production environment.
Developers are the cause of most, if not all instability in their
development environments, and the fact that most developers also tend to
have root and often mistakenly run things as root adds to an appearance
of some instability. That’s all it is though, an appearance, the truth
is that the OS is very stable for basing product off of, and the tools
and support (look at all the DDK’s released recently, not to mention the
CVS repositories).

Go have a look on http://www.qnxstart.com and several other websites.
There are already multiple sites that not only have many packages
available, several sites have even taken the extra effort to make them
into official packages that the package manager and fs-pkg can work
with.

Fact is that e.g. Photon 2.0 is still very unstable …
and it’s impossible to realize a stable 24/7 application.

Naw, the only thing that I have seen that is unstable in Photon 2.0 is
shelf, and that is strictly for a developer desktop. I can’t see shelf
being used in a commercial, shipping product, so it really doesn’t
matter. Are you perhaps running on the QNX’2000 CD release? There have
been 3 other releases since then, upgrade, and if you had any ligitimate
concerns about stability, I’ll wager they are now gone.

Must be fun to develop multi threaded GUI apps with the
non-thread-safe Photon library.

Actually, I’ve done it, there are functions available that lock and
unlock the Photon library so that it can safely be used within a
multi-threaded application, and there is even an excellent article on
QDN explaining it’s use, complete with an example.

Really, come out of that cave and get with the program.

Cheers,
Camz.


Martin Zimmerman camz@passageway.com
Camz Software Enterprises www.passageway.com/camz/qnx/
QNX Programming & Consulting

Martin Zimmerman wrote:

Previously, Armin Steinhoff wrote in qdn.public.qnxrtp.advocacy:
Martin Zimmerman wrote:

DDD has big problems with Xphoton.
Do you believe that e.g. DDD is a bizarre application?

Never used nit. I’ve used gdb and other than getting acquainted with it,
it seemed to work quite well.

porting that appliation to QNX, that of replacing the X interface with a
photon interface.

Will not be so simple if the app is written in C++ …

C++ is, well… I think your comment has more to say about C++ than it
has to say about porting to QNX.

It has something to say with the lack of C++ support of PhAB …

May be you are dreaming?
… Xfree86 3.3.6 consumes less memory than Photon!

Make sure you are comparing apples to apples, most X apps I have seen
rely on so many additional libraries, that it painlessly exceeds the
memory requirements of photon.

I talked about comparable desktop configurations of Photon and X.

Remember too that in an embedded environment,
it is very easy to scale photon down to meet your exact requirements, the end
result it quite small.

Yes … that’s a big plus for Photon.

Please let us know what you see … would be interesting to know
what compiler/libs we will get after Watcom, gcc, Metrowerks,
Metaware …

Support for gcc has been consistent, Metrowerks actually used gcc at
some point in time, which meant that it was primarily providing an IDE.

I’m just talking about the support of the so called tool chains …
we saw in the past too many broken product lines. I hope we will get
a consistent strategy with the Metaware tools … or is it just only
an additional trial??

Do you mean QNET is really in Beta state??
Do you have already worked with it ?

Yes, where the heck have you been? Qnet was available in beta form
since AT LEAST the January (AKA patch A) release.

I wouldn’t call it beta …

The stability was improved in patch B, and should be even better when the next >full beta release is available.

QNET is unaccapptable for me as long as its concept(?) is so weired.

QSSL has already done significant testing, from what I have heard, the
performance of Qnet is capable of remote DVD playback (ie. physical DVD
in one node on the LAN, playback on another).

I’m also working with QNX6 since several monthes, but the FTP
performance is not so impressive. FTP with QNX4 works much faster :slight_smile:

The OS works correctly so far
… but you need more than the OS and Qed > :slight_smile:

Heh heh, actually, I don’t use qed,
I’ve seen multiple releases of VIM,
including gvim, I have seen the same become part of the official
vim/gvim distro, and I have seen significant development occuring on the
native OS from many people. We’ve seen a couple commercial products
launched (3Com’s Audrey and Audio Request). I’ve heard that QNX6 &
Photon 2.0 have even made pre-alpha appearances on Compaq’s iPAQ PDA
platform within the confines of QSSL’s R&D labs. We’ve seen the release
of 802.11 wireless lan drivers from a 3rd party, and 802.11 @ 11MBps on
Orinoco cards within the R&D labs.

Yes … it’s very positive to see that movement. But what we need is
a stable clean implementation of Photon which fits to the technology
of QNX6! (thread safe libraries, C++ support …)

There is some serious development happening, and the fact that there are
now some commercial products shipping with QNX6 is proof that the
stability is there.

The question is about the used features in such products …
download the Tilcon demo for Photon 2.0 and you will see problems
with off screen drawing and others, but don’t believe that this are
problems of the Tilcon software!

[ clip …]

Go have a look on > http://www.qnxstart.com > and several other websites.

Ditto … if you dig a little bit deeper, then you will find several
interesting QNX6 ports (GDE, PVM …) from me. They have currently a
link to the “pyqnx” (Python/QNX4+6) project at sourceforge. XFree86
will be uploaded to “openqnx” very soon.

There are already multiple sites that not only have many packages
available, several sites have even taken the extra effort to make them
into official packages that the package manager and fs-pkg can work
with.

Fact is that e.g. Photon 2.0 is still very unstable …
and it’s impossible to realize a stable 24/7 application.

Naw, the only thing that I have seen that is unstable in Photon 2.0 is
shelf, and that is strictly for a developer desktop. I can’t see shelf
being used in a commercial, shipping product, so it really doesn’t
matter. Are you perhaps running on the QNX’2000 CD release? There have
been 3 other releases since then, upgrade, and if you had any ligitimate
concerns about stability, I’ll wager they are now gone.

I bet you have never worked with Photon 2.0 …

Must be fun to develop multi threaded GUI apps with the
non-thread-safe Photon library.

Actually, I’ve done it, there are functions available that lock and
unlock the Photon library so that it can safely be used within a
multi-threaded application, and there is even an excellent article on
QDN explaining it’s use, complete with an example.

This is a workaround and not a real solution. Yes … serialize your
application at several critical sections and its performance and
real-time behavior is gone!

Really, come out of that cave and get with the program.

Hmm … what do you call cave?

I’m ‘with the program’ since the early beginning of Neutrino
and we are porting our product line DACHS step by step to QNX6.
E.g. CAN, ASi and LON Drivers/APIs for PC/104, ISA and PCI
boards as well as PPC systems are already working in the field
with QNX6. Developing of prototypes for CAN is done already
under Python with CAN bindings… all running QNX6 :wink:

So, what’s your point?

Armin

I have written many QNX apps. Multi-process, now multi-threaded and with
Photon support. I believe that one probelm many developers have is this:

The Photon app should NOT be the work horse app. All of the applications
that need to be real-time and do the work need to support transaction based
API and not a GUI. The GUI app can then send messages to the workhorse app
to do whatever and receive message when status changes so that it can render
new information onto the screen.

This philosophy has many advantages. The GUI app can be stopped and
restarted without interrupting te work horse app. Also, you can very easily
have several/many instances of the GUI app.


Bill Caroselli - Sattel Global Networks
1-818-709-6201 ext 122



“Rennie Allen” <rennieallen@earthlink.net> wrote in message
news:9b7vo4$mnq$1@inn.qnx.com

Fact is that e.g. Photon 2.0 is still very unstable …
and it’s impossible to realize a stable 24/7 application.

It is not impossible to realize a stable 24/7 application in Photon.
There
might be certain applications that aren’t stable in Photon, and it isn’t
as
stable as 1.14 on QNX 4 yet, but the statement above is a massive
overstatement.

Must be fun to develop multi threaded GUI apps with the
non-thread-safe Photon library.

Threads and Photon don’t go well together, OTOH, I have written dozens of
non-trivial applications in Photon, and I have never a the slightest
twinge
of desire to write a multi-threaded GUI client application. So just maybe
it just ain’t that big a deal…
\

QNET is unaccapptable for me as long as its concept(?) is so weired.

What do you find weird about the concept ? Conceptually, I find Qnet to
be impressive, it is only the implementation that currently leaves me a
little cold.

Previously, Bill Caroselli wrote in qdn.public.qnxrtp.advocacy:

I have written many QNX apps. Multi-process, now multi-threaded
and with Photon support. I believe that one probelm many developers
have is this:

The Photon app should NOT be the work horse app. All of the
applications that need to be real-time and do the work need to
support transaction based API and not a GUI. The GUI app can
then send messages to the workhorse app to do whatever and
receive message when status changes so that it can render
new information onto the screen.

This philosophy has many advantages. The GUI app can be stopped and
restarted without interrupting te work horse app. Also, you can very > easily have several/many instances of the GUI app.

Furthermore, the app can easily have Photon, X, JAVA and/or MS GUI’s as needed.


Bill Caroselli - Sattel Global Networks
1-818-709-6201 ext 122

David L. Hawley D.L. Hawley and Associates

Martin Zimmerman a écrit :

Absolutely. Again, there is only one platform that is used for
self-hosted development, and that is x86 on a desktop PC. This is not
very different than all the other RTOSs out there. The HUGE difference
is that all the other RTOSs are not self-hosted on anything, you still
have to use an x86 desktop PC for cross-compiling and downloading into
the target hardware. You have to download & reboot the target hardware
to test ANYTHING. That is NOT the case with QNX. You can develop and
test everything from an x86 desktop without even having the target
hardware. That’s a huge advantage.

Are you absolutely sure ?
We choosed QNX for this reason, between many other strong points compare to
VxWorks, PSos, …
But recently, I heard talking about that QSSL could prefere cross development
in the future. They don’t really like that a QRTP platform could be used as a
server for several developpers. I can understand that but it’s because I have
some anxiety about PhAB.

Best regards,
Alain.

Alain Bonnefoy wrote:

Martin Zimmerman a écrit :


Absolutely. Again, there is only one platform that is used for
self-hosted development, and that is x86 on a desktop PC. This is not
very different than all the other RTOSs out there. The HUGE difference
is that all the other RTOSs are not self-hosted on anything, you still
have to use an x86 desktop PC for cross-compiling and downloading into
the target hardware. You have to download & reboot the target hardware
to test ANYTHING. That is NOT the case with QNX. You can develop and
test everything from an x86 desktop without even having the target
hardware. That’s a huge advantage.



Are you absolutely sure ?
We choosed QNX for this reason, between many other strong points compare to
VxWorks, PSos, …
But recently, I heard talking about that QSSL could prefere cross development
in the future. They don’t really like that a QRTP platform could be used as a
server for several developpers. I can understand that but it’s because I have
some anxiety about PhAB.

Oh well. Who are ‘they’? You have to learn that whoever ‘they’ might be
they might not be the only ‘interest group’ in QSSL. They might very
well be other groups with different agenda. Who will prevail is question
of time.

In any case, before they ditch self-hosted approach they’d need a
cross-PhAB for every host platform (Windows and Solaris) which I doubt
very much will happen anytime soon. And then why can’t someone use
Solaris as ‘server for several developers’? That concern is rather
ridiculous if true…

  • igor

In any case, before they ditch self-hosted approach they’d need a
cross-PhAB for every host platform (Windows and Solaris) which I doubt
very much will happen anytime soon. And then why can’t someone use
Solaris as ‘server for several developers’? That concern is rather
ridiculous if true…

I don’t think it’s true. QSSL’s business focus has historically been
with runtime licenses, not development seats. I am sure they would
rather have 10 development licenses vs 1, but I think the real issue is
the 50,000 runtime licenses that those 10 developers produce.

Alain Bonnefoy wrote:

[ clip …]
Are you absolutely sure ?
We choosed QNX for this reason, between many other strong points compare to
VxWorks, PSos, …
But recently, I heard talking about that QSSL could prefere cross development
in the future. They don’t really like that a QRTP platform could be used as a
server for several developpers. I can understand that but it’s because I have
some anxiety about PhAB.

From "MetaWare and QNX Team Up … ":

Said Linda Campbell, vice president of strategic alliances at QNX
Software Systems, " … MetaWare has also done a fantastic job of
enhancing their toolset, giving our developers direct visibility
into the QNX RTOS, allowing for more efficient development and
debugging, and faster time to market. …"

The first offical confimation that the development with the popular
command line oriented GNU tool chain is inefficient :slight_smile:

Further …

" … MetaWare’s High C/C++ compiler is available for a wide range
of target processors, including ARM, StrongARM, XScale, MIPS, and
PowerPC."

That compiler works of course in a cross development environment …
I have knocked at the MetaWare home page for information … and was
redirected to a German distributor, who did hear the first time
about QNX :slight_smile:. He asked the European headquarter … nope,QNX
unknown, no x86 support :slight_smile:

I wonder if we will get at all x86 support from MetaWare ???

Armin

Rennie Allen wrote:

In any case, before they ditch self-hosted approach they’d need a
cross-PhAB for every host platform (Windows and Solaris) which I doubt
very much will happen anytime soon. And then why can’t someone use
Solaris as ‘server for several developers’? That concern is rather
ridiculous if true…

I don’t think it’s true. QSSL’s business focus has historically been
with runtime licenses, not development seats. I am sure they would
rather have 10 development licenses vs 1, but I think the real issue is
the 50,000 runtime licenses that those 10 developers produce.

Well … the stupid thing is that the software for these 50,000
runtimes must be developed … and the development tools are the key
for the acceptance of the runtime environment.

So you have to convience at first the developers …

Armin

Igor Kovalenko a écrit :

Alain Bonnefoy wrote:

Martin Zimmerman a écrit :


Absolutely. Again, there is only one platform that is used for
self-hosted development, and that is x86 on a desktop PC. This is not
very different than all the other RTOSs out there. The HUGE difference
is that all the other RTOSs are not self-hosted on anything, you still
have to use an x86 desktop PC for cross-compiling and downloading into
the target hardware. You have to download & reboot the target hardware
to test ANYTHING. That is NOT the case with QNX. You can develop and
test everything from an x86 desktop without even having the target
hardware. That’s a huge advantage.



Are you absolutely sure ?
We choosed QNX for this reason, between many other strong points compare to
VxWorks, PSos, …
But recently, I heard talking about that QSSL could prefere cross development
in the future. They don’t really like that a QRTP platform could be used as a
server for several developpers. I can understand that but it’s because I have
some anxiety about PhAB.

Oh well. Who are ‘they’? You have to learn that whoever ‘they’ might be
they might not be the only ‘interest group’ in QSSL. They might very
well be other groups with different agenda. Who will prevail is question
of time.

In any case, before they ditch self-hosted approach they’d need a
cross-PhAB for every host platform (Windows and Solaris) which I doubt
very much will happen anytime soon. And then why can’t someone use
Solaris as ‘server for several developers’? That concern is rather
ridiculous if true…

  • igor

No doubt…, cross-PhAB will be!

Alain.

Armin Steinhoff a écrit :

Alain Bonnefoy wrote:

[ clip …]
Are you absolutely sure ?
We choosed QNX for this reason, between many other strong points compare to
VxWorks, PSos, …
But recently, I heard talking about that QSSL could prefere cross development
in the future. They don’t really like that a QRTP platform could be used as a
server for several developpers. I can understand that but it’s because I have
some anxiety about PhAB.

From "MetaWare and QNX Team Up … ":

Said Linda Campbell, vice president of strategic alliances at QNX
Software Systems, " … MetaWare has also done a fantastic job of
enhancing their toolset, giving our developers direct visibility
into the QNX RTOS, allowing for more efficient development and
debugging, and faster time to market. …"

The first offical confimation that the development with the popular
command line oriented GNU tool chain is inefficient > :slight_smile:

Further …

" … MetaWare’s High C/C++ compiler is available for a wide range
of target processors, including ARM, StrongARM, XScale, MIPS, and
PowerPC."

That compiler works of course in a cross development environment …
I have knocked at the MetaWare home page for information … and was
redirected to a German distributor, who did hear the first time
about QNX > :slight_smile:> . He asked the European headquarter … nope,QNX
unknown, no x86 support > :slight_smile:

I wonder if we will get at all x86 support from MetaWare ???

Armin

We will see, but it’s because a cross PhAB will exist soon, that’s sure, they
cannot do so many efforts to have cross development tools (first Metrowerks, now
MetaWare) and forget a cross-PhAB!

Alain.

Previously, Armin Steinhoff wrote in qdn.public.qnxrtp.advocacy:

It has something to say with the lack of C++ support of PhAB …

Actually, it says that C++ support in PhAB has generated enough interest
for QSSL to work on it. You can develop apps perfectly fine in C and
PhAB, and there are other things on the “to do” list that have higher
priority. Your preference for development is C++, that is not the case
for everyone.

I talked about comparable desktop configurations of Photon and X.

The “desktop” is only supported for development environments, that is
the entire context that it exists in. There are MANY different
assumptions made when refering to a developer desktop vs. a user
desktop. You need to keep that in mind.

I’m just talking about the support of the so called tool chains …
we saw in the past too many broken product lines. I hope we will get
a consistent strategy with the Metaware tools … or is it just only
an additional trial??

What are you talking about? QSSL has always been very consistent in
it’s tool support. In QNX2 we had QNX’s own compiler, which was
supported until QNX2 was no longer sold. In QNX4 we have the Watcom
compiler, it has been supported by QSSL and STILL IS supported by
them, even though Watcom no longer provides any support or updates.
QSSL is STILL supporting it and updating the libs as required.
Metrowerks was only ever offered as an ALTERNATIVE development
environment, the primary or baseline development environment of Watcom
was NEVER abandoned. In QNX6, we have had gcc, consistenly throughout
it’s life. In Neutrino 1 (aka QNX5), gcc was supported on QNX4 to build
Neutrino 1 binaries in a cross-development mode. It continued to have
support as Neutrino 2 again in cross-development mode on QNX4. With
Neutrio 2.1 the development environment was “upgraded” once again to be
self-hosted.

No where in there do I see ANY evidence of a broken product line.
I’ve been developing on and using QNX for significantly longer than you.
If there had been a break in the development environment support, I’d
have noticed it. It simply has NEVER happened.

QNET is unaccapptable for me as long as its concept(?) is so weired.

I don’t understand what you think is weird about QNET. You mention that
you have used QNX4, well… the concepts in QNET are identical to those
in FLEET. The only thing that might be considered different is how
“names” are resolved in QNX6 vs. QNX4. I agree that the resmgr
approach, although excellent makes this more confusing. QSSL has
already begun to resolve that, if you check your docs you will find the
equivalent of the qnx_name_attach() and qnx_name_locate() functions. I
beleive (this is my opinion and not the official direction of QSSL) that
the resmgr model & docs will be “upgraded” to use these type of calls,
or to provide an additional name_attach() type call that communicates
with a /dev/nameloc set of resmgr’s to provide a global name registry.
With that in place, ALL the concepts of QNX4’d FLEET will be the same.

Here is how I envision this happening…

QNX4 server: qnx_name_attach( “/mine/whatever” )
QNX4 client: qnx_name_locate()

QNX6 server: …normal resmgr stuff
qnx_name_attach( “/mine/whatever” )
QNX6 client: open( qnx_name_locate( “/mine/whatever” ) )

The amazing thing is that using the QNX6 resmgr functionality, you could
build your own nameloc type service fairly easily.

I’m also working with QNX6 since several monthes, but the FTP
performance is not so impressive. FTP with QNX4 works much faster > :slight_smile:

There are two stacks, each of which, I imagine perform at different
slightly different levels. The actual interaction of io-net,
ttcpip/tcpip, and the NIC drivers are quite different on QNX6 than on
QNX4. We are still quite early on in the evolution of the tcpip stacks
on QNX6, I’d expect improvements over the next while.

Yes … it’s very positive to see that movement. But what we need is
a stable clean implementation of Photon which fits to the technology
of QNX6! (thread safe libraries, C++ support …)

Actually, QNX (all of them: QNX2, QNX4, and QNX6) provide many of the
benefits of C++ classes and inheritance through the use of resmgrs. In
fact, they provide more benefits, since they are MMU protected and can
be distributed. You need to remember that OO development isn’t about
your choice of language, it’s about how you approach and solve the
design problem. I’ve been developing OO solutions in QNX for over a
decade, and I have never used C++ to accomplish it.

As for threads, they can be a huge assistance, but they also DEMAND
incredible attention to detail. It is possible to write programs that
use threads, it is essential that they always use semaphores & mutexes
where required, most programmers are not well trained in doing this.
This is what makes threads difficult, not the absence of a 100% thread
safe library. I think if you examine all other OS’s you’ll be hard
pressed to find one with 100% thread-safe libs. Be thankful that the
QNX6 library docs actually TELL YOU which functions are safe and which
are not. This is not a restriction, but just a reminder that you need
to pay very careful attention to what is being done in your threads. The fact
that you are forced to pay attention, and that the library docs remind you to
check that you are, is a Good Thing, not a Bad Thing.

The question is about the used features in such products …
download the Tilcon demo for Photon 2.0 and you will see problems
with off screen drawing and others, but don’t believe that this are
problems of the Tilcon software!

Heh heh… I’d wager they ARE problems with the Tilcnon software. I’ve
seen that tool chain evolve from it’s early days, it’s always had
issues. Admitedly, they have improved it, but it needed LOTS of
improvement. Tilcon is attempting to do something very difficult, that
of providing a consistent API across multiple platforms. The end result
is typically that the majority of functions work well on all platforms,
and the remaining percentage work well on some, but not all, or
potentially only on one platform. Those functions wind up being made
available on the other platforms as best as they can, when compared to
the primary platform for that feature, it probably performs poorly.

That should not be a huge surprise. If you want the BEST performance
from any platform, you need to use the native tools rather than an
additional abstraction layer. I’m confident that you could acheive the
same results that you desire, without the problems, if you used Photon
natively. In fact, there was a recent QDN article on exactly that…
the use of on & off screen frame buffers. Go read it, try the sample
code. I’m sure you will be pleased with the results.

I bet you have never worked with Photon 2.0 …

I have indeed, and it is quite a delight, much better than 1.14 although
I do prefer the pdm on 1.14 over shelf. Based on your earlier comments
on Tilcon, I’d guess that you are using Tilcon on Photon 2.0, and the
root of your problems is more likely a result of the port of that tool
from 1.14 to 2.0. I’m sure Tilcon will improve their implementation as
they become more familiar with the new capabilities of 2.0.

This is a workaround and not a real solution. Yes … serialize your
application at several critical sections and its performance and
real-time behavior is gone!

Actually, I agree with Bill on this one, and if you talk to the folks at
QSSL they too will give the same advice. DON’T RELY ON REALTIME CODE
WITHIN THE GUI. The GUI is very capable, and can be very fast, but
the requirements of a GUI are contradictory to that of a realtime app.
You should ALWAYS seperate your realtime app from it’s GUI. Use a
resmgr for the realtime portion, then have your GUI communicate with it.
Not only will that simplify your GUI, but it will place the GUI and
realtime portions in seperate MMU protected spaces, which is a big
benfit for your realtime app. As Bill mentions, that allows the GUI to
start & stop without impacting the realtime bits. In fact, it even
allows you to more easily provide multiple GUIs or even “on demand”
GUI’s via phrelay on systems that don’t have graphical hardware present.

Cheers,
Camz.


Martin Zimmerman camz@passageway.com
Camz Software Enterprises www.passageway.com/camz/qnx/
QNX Programming & Consulting

This is classical dialog of a blind and a deaf, LOL :slight_smile:

Armin seems to be so unsatisfied with QNX that can’t see how anyone can
be satisfied (I’m wondering why he’s still doing any business with it
though).

Camz seems to be so satisfied that he can’t hear anything critical about
it at all (he must be living in an ideal world where customers are so
happy with QNX they just keep buying licenses and don’t even want to
hear about anything else).

I must say, Camz position is a lot more enjoyable, it’s almost unfair.
‘Ignorance is a bliss’, I want it too :wink:

Now I said enough to spice up this flame and shall prepare to get flamed
by both men.

  • Igor
    ‘Those increasing knowledge increase grief’ [Ecclesiastes]

Martin Zimmerman wrote:

Previously, Armin Steinhoff wrote in qdn.public.qnxrtp.advocacy:
It has something to say with the lack of C++ support of PhAB …

Actually, it says that C++ support in PhAB has generated enough interest
for QSSL to work on it. You can develop apps perfectly fine in C and
PhAB, and there are other things on the “to do” list that have higher
priority. Your preference for development is C++, that is not the case
for everyone.

I talked about comparable desktop configurations of Photon and X.

The “desktop” is only supported for development environments, that is
the entire context that it exists in. There are MANY different
assumptions made when refering to a developer desktop vs. a user
desktop. You need to keep that in mind.

I’m just talking about the support of the so called tool chains …
we saw in the past too many broken product lines. I hope we will get
a consistent strategy with the Metaware tools … or is it just only
an additional trial??

What are you talking about? QSSL has always been very consistent in
it’s tool support. In QNX2 we had QNX’s own compiler, which was
supported until QNX2 was no longer sold. In QNX4 we have the Watcom
compiler, it has been supported by QSSL and STILL IS supported by
them, even though Watcom no longer provides any support or updates.
QSSL is STILL supporting it and updating the libs as required.
Metrowerks was only ever offered as an ALTERNATIVE development
environment, the primary or baseline development environment of Watcom
was NEVER abandoned. In QNX6, we have had gcc, consistenly throughout
it’s life. In Neutrino 1 (aka QNX5), gcc was supported on QNX4 to build
Neutrino 1 binaries in a cross-development mode. It continued to have
support as Neutrino 2 again in cross-development mode on QNX4. With
Neutrio 2.1 the development environment was “upgraded” once again to be
self-hosted.

No where in there do I see ANY evidence of a broken product line.
I’ve been developing on and using QNX for significantly longer than you.
If there had been a break in the development environment support, I’d
have noticed it. It simply has NEVER happened.

QNET is unaccapptable for me as long as its concept(?) is so weired.

I don’t understand what you think is weird about QNET. You mention that
you have used QNX4, well… the concepts in QNET are identical to those
in FLEET. The only thing that might be considered different is how
“names” are resolved in QNX6 vs. QNX4. I agree that the resmgr
approach, although excellent makes this more confusing. QSSL has
already begun to resolve that, if you check your docs you will find the
equivalent of the qnx_name_attach() and qnx_name_locate() functions. I
beleive (this is my opinion and not the official direction of QSSL) that
the resmgr model & docs will be “upgraded” to use these type of calls,
or to provide an additional name_attach() type call that communicates
with a /dev/nameloc set of resmgr’s to provide a global name registry.
With that in place, ALL the concepts of QNX4’d FLEET will be the same.

Here is how I envision this happening…

QNX4 server: qnx_name_attach( “/mine/whatever” )
QNX4 client: qnx_name_locate()

QNX6 server: …normal resmgr stuff
qnx_name_attach( “/mine/whatever” )
QNX6 client: open( qnx_name_locate( “/mine/whatever” ) )

The amazing thing is that using the QNX6 resmgr functionality, you could
build your own nameloc type service fairly easily.

I’m also working with QNX6 since several monthes, but the FTP
performance is not so impressive. FTP with QNX4 works much faster > :slight_smile:

There are two stacks, each of which, I imagine perform at different
slightly different levels. The actual interaction of io-net,
ttcpip/tcpip, and the NIC drivers are quite different on QNX6 than on
QNX4. We are still quite early on in the evolution of the tcpip stacks
on QNX6, I’d expect improvements over the next while.

Yes … it’s very positive to see that movement. But what we need is
a stable clean implementation of Photon which fits to the technology
of QNX6! (thread safe libraries, C++ support …)

Actually, QNX (all of them: QNX2, QNX4, and QNX6) provide many of the
benefits of C++ classes and inheritance through the use of resmgrs. In
fact, they provide more benefits, since they are MMU protected and can
be distributed. You need to remember that OO development isn’t about
your choice of language, it’s about how you approach and solve the
design problem. I’ve been developing OO solutions in QNX for over a
decade, and I have never used C++ to accomplish it.

As for threads, they can be a huge assistance, but they also DEMAND
incredible attention to detail. It is possible to write programs that
use threads, it is essential that they always use semaphores & mutexes
where required, most programmers are not well trained in doing this.
This is what makes threads difficult, not the absence of a 100% thread
safe library. I think if you examine all other OS’s you’ll be hard
pressed to find one with 100% thread-safe libs. Be thankful that the
QNX6 library docs actually TELL YOU which functions are safe and which
are not. This is not a restriction, but just a reminder that you need
to pay very careful attention to what is being done in your threads. The fact
that you are forced to pay attention, and that the library docs remind you to
check that you are, is a Good Thing, not a Bad Thing.

The question is about the used features in such products …
download the Tilcon demo for Photon 2.0 and you will see problems
with off screen drawing and others, but don’t believe that this are
problems of the Tilcon software!

Heh heh… I’d wager they ARE problems with the Tilcnon software. I’ve
seen that tool chain evolve from it’s early days, it’s always had
issues. Admitedly, they have improved it, but it needed LOTS of
improvement. Tilcon is attempting to do something very difficult, that
of providing a consistent API across multiple platforms. The end result
is typically that the majority of functions work well on all platforms,
and the remaining percentage work well on some, but not all, or
potentially only on one platform. Those functions wind up being made
available on the other platforms as best as they can, when compared to
the primary platform for that feature, it probably performs poorly.

That should not be a huge surprise. If you want the BEST performance
from any platform, you need to use the native tools rather than an
additional abstraction layer. I’m confident that you could acheive the
same results that you desire, without the problems, if you used Photon
natively. In fact, there was a recent QDN article on exactly that…
the use of on & off screen frame buffers. Go read it, try the sample
code. I’m sure you will be pleased with the results.

I bet you have never worked with Photon 2.0 …

I have indeed, and it is quite a delight, much better than 1.14 although
I do prefer the pdm on 1.14 over shelf. Based on your earlier comments
on Tilcon, I’d guess that you are using Tilcon on Photon 2.0, and the
root of your problems is more likely a result of the port of that tool
from 1.14 to 2.0. I’m sure Tilcon will improve their implementation as
they become more familiar with the new capabilities of 2.0.

This is a workaround and not a real solution. Yes … serialize your
application at several critical sections and its performance and
real-time behavior is gone!

Actually, I agree with Bill on this one, and if you talk to the folks at
QSSL they too will give the same advice. DON’T RELY ON REALTIME CODE
WITHIN THE GUI. The GUI is very capable, and can be very fast, but
the requirements of a GUI are contradictory to that of a realtime app.
You should ALWAYS seperate your realtime app from it’s GUI. Use a
resmgr for the realtime portion, then have your GUI communicate with it.
Not only will that simplify your GUI, but it will place the GUI and
realtime portions in seperate MMU protected spaces, which is a big
benfit for your realtime app. As Bill mentions, that allows the GUI to
start & stop without impacting the realtime bits. In fact, it even
allows you to more easily provide multiple GUIs or even “on demand”
GUI’s via phrelay on systems that don’t have graphical hardware present.

Cheers,
Camz.


Martin Zimmerman > camz@passageway.com
Camz Software Enterprises > www.passageway.com/camz/qnx/
QNX Programming & Consulting