II.7.4.3.1. Système d'exploitation : cible et source
logicielle pour le ciblage :
Les systèmes d'exploitation ont un statu particulier
dans les flots de ciblage car ils peuvent être à la fois vus comme
une partie logicielle à cibler pour une architecture matérielle
et comme paramètre d'un ciblage pour faire fonctionner une application
pour cette architecture.
Un flot de ciblage complet devrait être capable de
prendre en comte ces deux vues du système d'exploitation : il devrait
être capable de générer ou de choisir le système
d'exploitation avec les bons paramètres pour faire fonctionner
l'application, et il devrait être capable de cibler ce même
système d'exploitation pour l'architecture matérielle.
II.7.4.3.2. Apport de l'utilisation d'un système
d'exploitation pour le ciblage logiciel :
Nous verrons dans le paragraphe II.8.1.1 qu'un système
d'exploitation peut être vu comme une abstraction du matériel qui
soulage le programmeur de la programmation des détails
spécifiques à l'architecture cible. L'utilisation d'un
système d'exploitation peut donc grandement simplifier le ciblage
logiciel. Il faut par contre que, pour chaque architecture, il existe un
système d'exploitation capable de la gérer. Nous avons vu que ce
n'était pas le cas : il est très souvent nécessaire
d'adapter un système d'exploitation plus ou moins
générique à une architecture donnée.
Chaque système d'exploitation fournit une API pour
l'application logicielle. C'est cette API qui représente les contraintes
pour la programmation de l'application. L'avantage est qu'une API ne fournit
pas de contraintes pour le style de programmation, comme cela peut être
le cas pour les logiciels de synthèse de haut niveau, mais seulement des
contraintes pour les points de communication et de synchronisation qui doivent
être des fonctions du système d'exploitation.
Ces fonctions système peuvent être très
générales, mais elles manquent alors d'efficacité, ou
elles peuvent être plus spécifiques à l'architecture cible
ou au système d'exploitation. Dès lors, si
Chapitre II conception des logiciels embarqués
l'application logicielle doit être ciblée pour une
autre architecture ou si un autre système d'exploitation doit être
utilisé, il faut changer son code. Ce dernier point n'est pas
souhaitable.
|