Tao Group is a well known name in the embedded systems market, but they became very popular when Amiga, Inc. licensed their products for the next generation of Amiga, AmigaDE. The Tao Development Team answers today a series of questions regarding AmigaDE, Tao’s relationship with Amiga, Inc. and their technology they offer in general. They also clear up some misunderstanding that seem to exist regarding what AmigaDE really is, and they offer to our readers a number of cool screenshots of the platform.1. Please tell us a little about Tao.
Tao Development Team: Tao Group is an intellectual property generator and software engineering company based in the UK. The company was founded in 1992 and currently has around 80 employees. The initial ideas for our technology were
developed in the eighties by Chris Hinsley, who at the time was a well known games programmer, writing such hits as Automania, Pyjamarama and Everyones A Wally, on the Spectrum and 8bit micros, and Onslaught on the Atari St and Amiga. In the early 90’s Francis Charig helped turn those ideas into a business reality, Tao was formed and we have gone from strength to strength.
Our main products include a binary portable, real-time, language independent embedded OS, multimedia libraries, and a small, very fast Java Virtual Machine, Personal Java libraries and MIDP implementation.
We’ve just announced a major investment of almost $20M into the company. Shareholders include Sony, NEC, Motorola and Sharp. We have well known relationships with many other global technology companies.
2. Please explain to us the relationship between Amiga and Tao. What Tao was asked to do for AmigaDE’s plans? And in fact, what these plans are? Is Amiga going to be re-born, an Amiga as the way we knew it or something completely
Tao Development Team: The relationship between Tao and Amiga is fairly simple. Amiga licensed our technology as the basis of its new operating system and environment. We were supportive for several reasons.
Firstly, there are still many Amiga developers out there, probably 40,000 or so. They are skilled at writing low level programming; games, tools, demos, multimedia etc. We felt that the Amiga programmers were going to be a match for Tao’s technology. I was interested to read on your site about the winning demo at Assembly 2001 being an Amiga demo. Those are the sort of programmers we love to have developing content for Tao’s multimedia platform!
Secondly a lot of people here at Tao cut their teeth on the Amiga in the eighties and so the propsect of a ‘new Amiga’ using our technology was appealing.
The Amiga deal also provided a retail channel for Tao’s technology. Tao mainly deals directly with the large consumer electronics companies and we thought it would be great to get the technology into the hands of
small businesses, lone developers and enthusiasts; perhaps even revive the bedroom coding boom of the eighties in some way. In a way it wassomething of a departure from our normal business model, which usually involves us working very closely with the major consumer electronics companies.
Regarding doing work specifically for Amiga DE that wasn’t quite how it worked. Essentially Amiga got a drop of the system, training and technical support and then got on with whatever they wanted to add on top of our system. Apart from our normal policy of continual improvement to our platform we did not develop anything specifically for Amiga,
apart from a few initial demos to get the Boing ball rolling. We still provide technical support and other help when required.
As far as what Amiga’s plans are now and where they go from here, you would have to ask Bill McEwen over at Amiga. Although we have a good relationship with them, it isn’t appropriate for us to discuss their next developments.
3. Please tell us about Intent Media, Elate and your Java technology. Are these three parts separate and when they glue together they can serve as a full GUI OS, or they are mostly separate products for Tao?
Tao Development Team: This is probably best explained by an example. Let’s say you have developed a new device, say a PDA type device. Now you need software on it. At the fundamental level you need an OS and we can provide the Elate RTOS ported to your platform. This provides you with drivers, kernel, platform abstraction and various other special components and key libraries e.g. our ANSI C libraries. Elate RTOS has all the features you would expect from a commercial RTOS, plus a few extras. You could then develop your application in C or VP (Elate’s language) on top of that. However, you most likely want a GUI and multimedia capabilities, so you can optionally license our intent
media libraries. This would give you full GUI capabilities, multimedia, our own font engine technology, sound etc. It’s a very impressive graphics engine, very fast and efficient. Chris Hinsley and our other engineers spent a lot of time minimising overdraw for efficiency on portable devices. So far we are up to about 500k size for everything I’ve mentioned 🙂 At this stage you are all set to whip up some very compelling content. By the way the above includes our own TCP/IP stack so you are Internet ready too!
If you want Java support you can license our intent Java Technology Edition and that gives you a very small, fast Java solution. We provide Personal Java 1.1.3 and Personal Java 1.2 library support at the moment. There will be a version of intent JTE with MIDP 1.0 support available soon. intent JTE would sit on top of Elate and intent media.
Now for a second example. Let’s say you have a device running embedded Linux. If you require a Java engine you could license our intent JTE for Linux which we already have running on embedded Linux. If you just wanted a really capable graphics engine on embedded Linux you could just license intent media for Linux.
To be honest most customers just license the whole lot for a particular platform, but we always try to be flexible for customers so we can meet their specific requirements.
So in answer to your question, yes, the parts can be seamlessly integrated together by our system builder tool, should you require a full GUI OS.
If you just want a fast Java engine or full featured graphics and
streaming engine (intent media) then those can be licensed seperately.
4. Your Java runtime is a big success, even QNX has licensed it from Tao. What are your future plans for the JTE?
Tao Development Team: Yes, intent JTE has been an incredible success story for us. It is certainly our most licensed product. We also believe that over the next few years things are going to get even busier and we are ramping up recruitment to cope with the demand. We have many of the biggest consumer electronics companies in the world banging on our door for licensing deals, training consultancy etc and all this at a time of recession in the industry. I
can’t imagine what it’s going to be like around here when the industry at large picks up!
Well I mentioned our upcoming MIDP support. We continually try to make the engine smaller and faster and evaluate, verify and test our solutions on all supported platforms. We take our status of Sun licensee very seriously and have full TCK support facilities in-house to ensure our compliance with the Sun specs.
Our engineers have done a fantastic job and we are pretty sure that our MIDP solution is going to be about as small and fast as humanly possible and also very extensible should that be required.
5. Please tell us about ElateOS. Do you have plans on deploying your OS products to the desktop market?
Tao Development Team: Elate RTOS is our operating system product to deploy on what we call ‘non-hosted’ platforms. That is platforms that don’t already have an operating system. Elate has always been designed and developed for the
embedded market. That is Tao’s primary focus, so no we don;t have any designs on ousting Microsoft from its desktop throne, we will leave that to someone else.
Having said that our technology can quite happily run on desktop machines. In fact you can get an SDK to run on all win32 platforms and the most popular Linux distros. You could use the intent products on the desktop to provide a graphics engine or fast Java engine, any applications built forthat environment would then work on any intent platform without recompilation. But as I stated the desktop is not our primary focus.
6. What are the best qualities found on ElateOS in your personal opinion? What is that you like about Elate and what is that you would like to change down to OS level?
Tao Development Team: The precursor to Elate was called Taos. ‘Tao’ is Chinese for ‘The way things should be’. The developers of Taos looked at what was around them: DOS, Win3.1, huge, bloated UNIX systems, and in the embedded
market fairly simple products that were little more than kernels. They basically said ‘NO! we are not going to put up with this, we are going to do things the way they _should_ be done!’ The result was Taos and subsequently Elate. Taos was so far ahead of its time in 1992 that people just didn;t actually believe it could do what we said it could do! We used to show people demonstrations of Taos running and they would look under the table for the supercomputer they thought must be hiding there! They would even check network connections to make sure we weren’t really doing something sneaky over the Net 🙂 Remember this was 10 years ago and we have considerably improved our technology since then.
Elate is unique in its internal design and I haven’t really got the space to go into its architecture here. I think the best qualities of it are its speed, efficiency and small size given its capabilities. I’ve been working with the technology for four years and its amazing how you just take for granted its advanced features. The other day
I was working with some complex makefiles on Linux and it struck me that usually I don’t even need to bother with makefiles at all because when you use Elate’s native language the system deals with working out dependencies for you. There’s so many features I like, for example when you write code for what we call a ‘secondary tool’ it is automatically fully shareable by multiple processes and only gets loaded into memory once, regardless of how many processes use it. Obviously this saves memory, which is always important on portable devices. The graphics engine is absolutely superb, very sophisticated. The native programming language of Elate is called VP, which stands for Virtual Processor. The language is a macro assembler language and is really nice to program in. It has inherently high memory efficiency and speed. The language itself is a joy and supports all the familiar high level language constructs and even classes, not bad for an “assembly language”.
One of the extremely important features of Elate is the binary portability. When John Carmack (id Software) released the Doom code in 1997, one of our programmers ported in onto Elate. Without recompiling the game was
running on a number of different customer platforms within an hour 🙂 When I went out to one blue chip to train some of their engineers on Elate I took the Doom demo with me and fired it up on their target platform. The engineers were amazed, the guy in charge said he couldn’t believe it because all they’d seen running on this target were text mode apps. Doom was running around 20 frames per second which wasn’t bad as the target platform had a 40MHz microcontroller with no cache in it 🙂 That was a quick port that took a couple of hours, we hadn’t optimised it at all. Write the code once, run it anywhere was something we were really doing. 🙂
There are many applications running on intent too. One of our partners, Sseyo (www.sseyo.com), wrote a impressive sound and music engine for intent. I also use the Espial web browser running in intent for surfing OS News. 🙂
There are plenty of games and other items to reduce my productivity.
7. What are the differences between WindRiver, QSSL’s RTOS and Elate?
Tao Development Team: Hmmm, tough one 🙂 Well at the base OS level you are comparing three commercial RTOSs and I don’t want to get into the “our mailboxes are better than your mailboxes” debate! The internal architecture
of all three are very different, but the basic RTOS services they provide are similar.
Tao’s technology suite is available across a far wider range of processors and platforms, that is an inherent advantage of our way of doing things. I also haven’t seen anything on the graphics front to rival our intent media engine in the size/speed/functionality stakes. Also, our Java engine is pretty much in a league of its own. The only
thing I personally have seen come close to our Java performance is a JIT and that consumed a hideous amount of memory.
8. It is my understanding that Linux is your development platform for most of your products. Are there plans to make the dev tools self-hosted, pretty much as QNX RtP does?
Tao Development Team: It is true that Linux and Win32 are our main development platforms. However, most of the development tools are actually hosted within intent itself. The main tool that isn’t hosted within intent is our FBUG graphical debugger. You run intent in a window on Linux or Win32 and develop within that intent session. You can also have multiple intent sessions running at the same time. You can also run intent in graphical mode as a window on the dev platform. This is really convenient as you are still aided by all the usual tools that developers normally use on Linux or Windows. I personally develop on Windows, but use the Cygwin utilities and various Windows tools to aid my development. All the compiling, assembling, running is done in the intent window though.
This means you can develop an application in Java, C/C++ or VP from the comfort of Linux or Windows and then deploy it on your embedded target without so much as recompiling it. That really helps customers get products to market quickly.
9. Do you think that .Net and C# may change your business model especially on the impact that may have in the Java market?
Tao Development Team: Well Java is reaching a critical mass, a lot of developers are realising the benefits of Java and it is becoming something of a standard in consumer electronics, which is Tao’s main market. We are committed
to Java and that trend will continue.
However, it should be recognised that Java is one component within our _platform_. We provide a multimedia platform first and foremost. This has been underlined by the support for our technology in Japan. A really significant recent development for us was the creation of the Open Content Platform Association (OCPA). There is some information
about this here.
Basically, many of the most important consumer electronics companies in the world are supporting this technology. The idea is your can write your application for intent and run it across all OCPA devices without recompiling. A mouthwatering prospect for software and hardware developers alike. New OCPA devices will have access to a ready supply of content and software developers will be able to leverage a wide range of platforms with the same
Still, at the end of the day we see .Net and C# as further opportunities, if the market demands it, for us to deploy our unique technology and allow our customers to create compelling interactive content.