Expresso possède un noyau complètement préemptif qui peut gérer un maximum de 64 tâches avec des priorités uniques. Le noyau
offre un système déterministe avec un ordonnanceur simple et efficace qui exécute en permanence la tâche de plus haute
priorité exécutable. L'ensemble du système est configurable pour diminuer la taille de mémoire utilisée tant au niveau du code que
des données.
Deux mécanismes de communication entre tâches sont disponibles. Les sémaphores avec les primitives habituelles "wait" et "signal",
l'opération "wait" peut être assortie d'un délai maximum pour faciliter le respect de certaines contraintes. Les files de messages
permettent d'envoyer et de recevoir des messages dans une zone de mémoire partagée, les opérations de reception peuvent aussi
être assorties d'un délai maximum.
Une tâche peut se temporiser durant un certain délai, donné en battements d'horloge ou en secondes. Lorsqu'une tâche
est temporisée, elle est mise en attente et d'autres tâches de priorité plus basses peuvent s'exécuter. L'interruption d'horloge
est déclenchée toutes les 100 ms mais il est possible de modifier cette valeur et de configurer la fréquence de cette interruption.
Le système d'exploitation est portable sur différents types d'architecture. La partie dépendante du matériel est organisée en
trois parties qui permettent de facilement porter Expresso sur différents processeurs d'une même architecture ou sur des machines
différentes utilisant le même processeur. Pour l'instant, Expresso est disponible pour l'architecture Motorola 68000 sans unité de
gestion de mémoire dans trois versions de processeurs et sur trois modèles de Palm. La seule exigence point de vue matériel est de
disposer d'une pile adressable et de pouvoir effectuer le changement de contexte entre deux tâches. Cette exigence est remplie par
la majorité des processeurs actuels.
Dans le développement d'application temps-réel, les interruptions jouent un rôle fondamental car elles permettent de réagir très
rapidement à certains évènements. Expresso a mis en oeuvre un mécanisme de gestion d'interruptions évolué qui permet à
l'utilisateur de créer, installer, supprimer, activer et désactiver des routines d'interruptions très facilement et sans avoir besoin
de travailler en assembleur ni se soucier de la sauvegarde des registres, etc. Il est toujours possible pour des opérations très
critiques de créer une routine très efficace, sans utiliser l'interface fournie par Expresso.
Le Palm offre tout une série de périphériques de communication. Expresso permet d'utiliser certains de ces périphériques. Il est
possible d'écrire des caractères et de dessiner sur l'écran LCD, un mode console est aussi prévu pour simplier l'affichage de message
à l'écran. Expresso permet aussi d'utiliser le port série du Palm (UART) et l'écran tactile (digitizer).
Le système d'exploitation temps-réel Expresso associé à un Palm fournit un environnement fiable, mobile et à un coût très
intéressant qui permet la réalisation d'applications temps-réels avec une machine de la taille d'un paquet de cigarette. Ce duo permet
d'envisager une multitude d'applications pour l'industrie et la recherche scientifique.