|
Smalltalk
Community
Versions
All Versions
Smalltalk Standard Extending Smalltalk Squeak Smalltalk GNU Smalltalk Little Smalltalk Java Smalltalk PDST MicroSeeker PIC/Smalltalk Sharp #Smalltalk Pocket Smalltalk Talks2 Smalltalk F-Script Squat Smalltalk Smalltalk/X StrongTalk Ambrai Smalltalk VisualWorks ObjectStudio VisualAge Smalltalk Dolphin Smalltalk Smalltalk MT S# Smallscript Smalltalk/JVM OOVM Embedded Gemstone/S LSW Vision-Smalltalk Slate Smalltalk Zoku Smalltalk VSE Smalltalk Smalltalk Express Smalltalk/V286 Smalltalk/VMac Smalltalk/V Smalltalk-80 |
OOVM/Resilient Embedded Smalltalk by OOVM A/S and Esmertec
OOVM A/S (Object Oriented Virtual Machines) which develop a unique and advanced
software development platform. OOVM develops the next generation software platform
for embedded systems to dramatically improve productivity, serviceability, and reliability. The OOVM platform is based on a small object-oriented virtual machine, which runs directly on hardware without the need for an operating system. All software components are compiled to safe, ultra compact bytecodes and executed on top of the virtual machine. The compactness makes it possible to fit the virtual machine, core libraries, device drivers, TCP/IP networking stack, and user applications in less than 128KB of memory. The OOVM platform supports pure object-oriented programming. Programmers familiar with object-oriented programming can take advantage of their skills and immediately start developing for embedded devices. Object-orientation enables software reuse. Since bytecodes are independent of the underlying hardware, software components can be reused across different hardware architectures.
"If you have say, a small router or a dishwasher you can upgrade the code while
it's running, no reboot is required," [Lars] Bak told us today. "If you have a device,
and you have more than one component it doesn't make sense to shut down the system." Register article
Embedded software today is written in C, linked with libraries and run on top of an RTOS.
You put a binary image on a flash memory, and then debug with printf statements or In-Circuit Emulators.
The development goes on slowly and uses an unsafe programming language;
also there's no way to fix bugs in the deployed product.
Modern systems have embedded software everywhere, even hi-fi systems and digital speakers might be connected by FireWire: Bang & Olufsen uses them and wants to update software and debug/fix potential problems at the customer's site via the Internet. The embedded industry is requesting increased reliability and rapid development cycles, and also to do quick and cheap dynamic software updates in the field (especially for things like cell phones). Is embedded Java (J2ME) the solution? The problem is that it has a very complicated virtual machine specification, and the bytecodes are not designed for speed and compactness. It also does not support changing methods and continuing execution on the fly after debugging (you might need to recompute all vtables when adding a single method). There is finally the issues of big libraries that come together with Java, requiring up to 1MB of ROM. What could be better? It would be nice to use a safe language with dynamic capabilities, that could support a development environment directly connected to the running system, and that could do dynamic software updates. Lars [Bak] has been implementing object-oriented virtual machines for 18 years, including Beta, Self, Strongtalk, HotSpot for Java (150 million downloads), and then a small HotSpot for cell phones, and now he started his own company called OOVM. OOVM produces a Smalltalk for embedded systems which is a bit different from standard Smalltalk: reflection is only available in the development VM, there is an atomic test and store statement for synchronization, namespaces are supported, and blocks can optionally be typed and LIFO for performance. Pool variables and class-instance variables were removed. The OOVM embedded platform executes platform independent bytecodes directly on the bare metal, without any underlying RTOS nor C library and with a small memory footprint. The programming environment connects to a running program, supporting true incremental development and full serviceability of running application. Resources OOVM A/S Esmertec INCUBA OOVM A/S OOVM article by Lars Bak (quoted above). . Esmertec to acquire OOVM Esmertec acquires OOVM Smalltalk/VM allows code modification on the fly OSNews article. Smalltalk Powers Forward by James Robertson In depth review of OOVM in the article Resilient - Making Embedded Systems in Smalltalk by James Robertson A course in the Design and Implementation of Object-Oriented Virtual Machines provides multiple PDF files that explore the topic in depth.
This course focuses on how to design and implement virtual machines for
object oriented languages. First part of the course discusses the designs
behind some of today's high performance virtual machines. A simple virtual
machine is introduced as a platform for testing the implementation techniques
covered by this part of the course. The second part of the course is project
based: participants are expected to enhance or implement a virtual machine.
The result is a report that describes the implementation and any experiences.
To widen the perspective, virtual machines for functional languages will
be contrasted to object-oriented virtual machines." High Performance Virtual Machines [PDF] slide presentation.
What is a high performance virtual machine? It is a virtual machine that applies
an array of optimizations while preserving the illusion that it executes
byte codes.
A slide presentation Resilient: Making Embedded Systems Serviceable [PDF] by Lars Bak.
To present a new compact and fast embedded object-oriented system that provides product serviceability.
A variant of the Smalltalk language.
Copyright 2006 by Smalltalk.org, All Rights Reserved. |
July 24 2008
lingoize.me
naturally with ease aiming for fluid fluency. |