Ditto … everyone’s favourite missing tool

This week I’m celebrating my nine year anniversary working with QNX.  When I started at QNX the company was in the throes of a major product development effort to bring QNX 6/Neutrino to market as its next generation operating system with full support for processor families other than x86. 

When I started MIPS, PPC ports were well underway with ARM and SH support starting up.   I’m not an expert in any particular processor architecture, so I ended up working through a lot of the general system bugs and polishing some of the rough edges of this new OS.  By necessity this meant spending a lot of time interacting with the very active set of QNX developers, who at that time were steeped in QNX 4 knowledge and trying to migrate their systems and software to this new OS.   There are a lot of basic similarities between QNX 4 and QNX 6 but there are enough differences that migration wasn’t a zero effort affair, despite a fairly comprehensive software migration kit.

About once a month I’d receive a request from QNX4 developers:

“When will ditto be ported to Neutrino?”

Of course, the first time I heard this comment I was intrigued since ditto is not a standard *nix utility, so I thought I’d look into it.  It turned out that porting this particular utility (which provides terminal replication and remote terminal access) to Neutrino was going to take some signficiant work and more or less be an entire re-write since the utility took specific advantage of how QNX 4 character device drivers were written.  Under Neutrino the serial driver code was completely different,  so at the time I turned my focus to other areas where fixes could be made more short term with a plan to come back to do the ditto re-write.

Here we are, nine years later and there are still people asking for ditto for Neutrino. 

Boy do I feel bad about never getting back to that work =;-(

Well since I still haven’t ported ditto yet, the first thing I’m going to do is suggest an alternative that may be a more mainstream solution in these days of Linux fervor.  The GNU Screen utility provides much of the same terminal multiplexing and remote or shared control that ditto did.  The source compiles, with a few minor changes, out of the box for Neutrino. While I haven’t taken it for a full test drive yet, this looks like it might be the best immediate solution and maybe even long term since there are several screen resources available in the community.

However, ditto ain’t totally dead yet.  The other day walking through our source tree on a related project I noticed that one of our aspiring developers has done some work to make some of the ditto remote monitoring (no interaction) capabilities available for Neutrino.  This is still internal goods, and not in the next OS release, but perhaps this article might nudge it along if there is some competition.



6 comments so far

  1. Mario on

    Thanks for the feedback!

  2. hp on

    waiting for the pormissed 2nd part of your previous post: “Fragmentation – meeting rooms and memory allocators” …
    for me: “I grew up with ditto, but that’s not what realy hearts me bad, … as you know”

  3. Kevin on

    My reasons for wanting ditto is to be able to use it with qnet. Don’t have to run a bunch of tcpip stuff to make it work. Just plain-jane ipc.


  4. Mitchell Schoenbrun on

    Yes, I’m still waiting for ditto. It was really handy, and phditto doesn’t always fit the bill. I thought I’d mention that ditto was not just a QNX 4 utility, but a QNX 2 utility.

  5. Ian Cannon on

    ditto is essential to our product for diagnostics and remote technical support to our customers

    We will not port to Neutrino until it is provided.
    Come on guys, “how hard can it be ?”

  6. […] Posted September 12, 2007 A couple of months ago we wrote about the missing QNX4 ditto for Neutrino and while script is an interesting alternative, the comments coming from some of you indicated […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: