# ChorusOS

ChorusOS ist ein Betriebssystem, das Aufgaben in extrem kurzer Zeit erledigen muss. Es ist so konzipiert, dass sich damit offene, verteilte und anpassungsfähige Systeme bauen lassen. Die Grundstruktur von ChorusOS verbindet die Eigenschaften verteilter, adaptiver Systeme und strukturierter Chaosforschung. Das bedeutet, dass das System auch in unvorhergesehenen Situationen stabil bleibt. Der Kern des Betriebssystems stellt Systemprogrammierern Echtzeitdienste zur Verfügung. Dank seiner modularen Bauweise kann ChorusOS flexibel an verschiedene Anforderungen angepasst und während des Betriebs verändert werden.

## Geschichte

In den 1960er Jahren führte der Börseneinbruch des französischen Computerherstellers Bull zur Übernahme durch das US-Unternehmen General Electric. Angesichts der Schwierigkeiten der französischen Elektronikindustrie auf internationaler Ebene fasste die Regierung von General de Gaulle den Beschluss, ihre Industrie für einen Zeitraum von fünf Jahren zu unterstützen. Es war geprägt von der Fusion mehrerer Unternehmen zur International Computing Company (CII). Dieser französische Champion profitierte anschließend von der Unterstützung der von IRIA durchgeführten Forschung. Gemeinsam produzierten sie mehrere Computer und Prototypen. Die siebziger Jahre waren hin- und hergerissen zwischen reifenden Projekten und verpassten Gelegenheiten. Starrheiten und fehlende Ressourcen verlangsamten den Fortschritt von Projekten. Letztere wucherten jedoch wie das Spartacus-Programm, das darauf abzielte, ein Gerät zur Autonomie von Tetraplegikern zu entwickeln, das aber letztendlich zu einem innovativen Roboter für die Industrie führte. Der Ruf von IRIA war grenzüberschreitend, insbesondere dank der Innovationen, die aus dem CYCLADES-Projekt resultierten. Deren Forscher erfanden die paketvermittelte Datenübertragung, eines der Pionierprinzipien des Internets. Ein entscheidendes Jahr war: 1979. Damals drohte IRIA ein möglicher Umzug nach Sophia Antipolis oder eine Fusion mit IRISA in Rennes. Das Institut wurde schließlich dank der Entschlossenheit seines damaligen Direktors Jacques-Louis Lions in Rocquencourt aufrechterhalten. Im selben Jahr erhielt IRIA seinen Adelsbrief und fügte seinem Akronym ein „N“ hinzu, was es zu einem nationalen Institut machte. Aus diesem historischen Moment resultierten Forschung, Innovation, Partnerschaften und Engagements in den digitalen Wissenschaften.
Das sich 1979 am mittlerweile verstaatlichten Institut für Forschung, Informatik und Automatisierung, dem „Institut national de recherche en informatique et en automatique“ die Projektgruppe für Softwareentwicklung gründete, die später federführend bei der Entwicklung von ChorusOS war, hatte ausschließlich politische Gründe, wie Michel Gien in Paris im Interview mit Andrew L. Russel 2012 zugab. Das Projekt CYCLADES versuchte nach und nach durch Standardisierungen zu überleben, aber auf der anderen Seite des Atlantik haben Vinton G. Cerf und ARPA Sachen implementiert, damit es funktioniert und das ist das Wie… Und das andere, was passierte, war mehr oder weniger ein Teil davon: der Aufstieg von Unix und PDP-11, und was mit Unix auch von unten nach oben kam, war das UUCP-Protokoll. Es war nicht wirklich ein Protokoll, sondern sehr „hackendes“ Zeug, aber das arbeitete. Und so nutzten die Leute dies auch in der Forschung. Das war einfacher, weil sie dies nur von Ihren Computern erstellen lassen mussten, und dann sprechen sie einfach mit dem nächsten Computer. Und dann spricht der nächste Computer mit dem anderen nächsten Computer. Und so war es eine Art festes Routing, aber wir könnten es schaffen, dass die Computer auch ohne kommunizieren keine Infrastruktur benötigen, nur über Telefonleitungen. Das war also ein großes Gebäude. Und ich beschloss mich daran zu beteiligen, da Louis Pouzin Ende der 70er Jahre mich bat, ein weiteres Pilotprojekt zu starten, das Sol Project genannt wurde. Und die Idee war zu sagen: „Wir haben Unix, das beginnt, ein wirklich beliebtes Betriebssystem zu werden für die Forschung. Und wir haben nichts in Frankreich.“ Und Unix arbeitete im DEC Rechnern. Und in Frankreich gab es eine Art Verbot von DEC-Computern aus politischen Gründen. Gründe, weil sie nicht die Fabrik gebaut haben, die die Regierung im östlichen Frankreich erwartet hatte oder so etwas <Gelächter> und jemand in der Regierung sagt: „„Kein DEC“ Computer in Frankreich!“ Als öffentliche Forschung konnten wir keinen DEC-Computer kaufen. Und so war Louis Pouzin‘ Idee zu sagen: „Lasst uns ein Betriebssystemprojekt bauen, das Unix nachahmt, aber wir werden es auf einen französischen Computer erstellen.“ Und was wir entschieden haben, das war irgendwie technisch verrückt, aber politisch funktionierte, war zu sagen: „Wir werden moderne Sprachen verwenden, wie Pascal. Wir werden es unter dem Dach von Software-Engineering-Projekten tun, um Software Ingenieuren zu helfen bessere Computerprogramme zu bauen.“ Also hat sich die Regierung darin eingekauft und begann dieses Projekt, das im Wesentlichen darin bestand, die Pascal-Compiler für alle französischen Computer zu bauen. Damals gab es zwei – Mini-Computer, die kamen – den Mitra und den CII-Bull-Honeywell. Honeywell war damals Franzose, Honeywell-Stufe sechs. Und wir bauten die Betriebssysteme, die Unix-Version wären, aber in Pascal. Louis Pouzin hat mich gefragt das zu versuchen. Also habe ich dieses Projekt gestartet, weil ich meinen Hintergrund in Betriebssystemen hatte. Und das erste, was wir gemacht haben, war, den Unix-Code zu nehmen und ihn in C auf dem französischen Computer abzulegen und es dann in Pascal umzuschreiben. Das hat also nicht wirklich was gebracht, aber was es getan hat war, eine große Kultur der Unix-Programmierung und der Systemprogrammierung unter all den Leuten zu schaffen, die an diesem Projekt gearbeitet haben. Aus bildungspolitischer und kultureller Sicht es hat viel gebracht. Viele französische Unternehmen und Personen sind Experten im Netzwerken, wegen CYCLADES und in Betriebssystemen wegen Sol.
Aus dieser Entwicklung ging, unter dem Gesichtspunkt eines Lebenszyklus für Software, später das kommerzielle Produkt ChorusOS hervor.
Ein weiteres Forschungsprojekt, das am staatlichen Institut INRIA lief, war Sol. Dieses Pilotprojekt hatte das Ziel, die Mehrbenutzer-Betriebssystem-Umgebung UNIX, komplett in Pascal auf französischen Computersystemen, einschließlich des HB Level 6, Centre National d’Etudes des Télécommunications SM90 (68000) System umzusetzen. Im Jahre 1984 war die Fusion der Forschungsprojekte zu einem größeren Team: Mitglieder aus dem Forschungsprojekt Sol schlossen sich dem Forschungsprojekt Chorus an und brachten Ihre Erfahrungen hier mit ein. Das Ergebnis der Entwicklung waren drei Versionen, bezeichnet als CHORUS-V0, CHORUS-V1 und CHORUS-V2. In das Projekt Chorus research project gingen Forschungsergebnisse und Systemerfahrungen aus den Projekten CYCLADES und ESOPE ein.

### CHORUS-V0 (1980–1982)

Die erste Version experimentierte mit drei Hauptkonzepten:
* dem des Akteurs, dessen sequentielle und unsichtbare Operationen in Phasen der Ausführung und der Kommunikation verliefen
* der verteilten Anwendung als Ensemble von unabhängigen Akteuren
* dem kleinen Nucleus, ein einfacher und zuverlässiger, leicht an jeden Ort zu verteilender Mikrobaustein

### CHORUS-V1 (1982–1984)

Die zweite Version verschob den Prototyp hin zu einem Echtsystem. Das Design hatte ein paar Änderungen im Vergleich zu CHORUS-V0:
* zum einen die Einführung von strukturierten Nachrichten, um Protokolle einzubetten
* zum anderen das Konzept der aktivierenden Nachricht, deren Dateninhalt der Kontext für eingebettete Berechnungen und der Graph für zukünftige Berechnungen waren

### CHORUS-V2 (1984–1986)

Die Anpassung an das Mehrbenutzer-Betriebssystem zwang zur Umgestaltung der CHORUS Schnittstelle und zur Änderung der System-Akteure. Die Version CHORUS-V2, bot die Möglichkeit an, das Mehrbenutzer-Betriebssystem und die Kernelarchitektur im Gesamten zu überdenken. Mit dem Respekt für die zwei Konzepte:
* Modularität: Aufteilung der Mehrbenutzer-Betriebssystem Dienste in verschiedene, unabhängige Akteure
* Verteilung: Verwaltung der Objekte der System-Akteure, wie Dateien und Prozesse, verteilt über CHORUS als Dienste

### CHORUS-V3 (1987–1997)

Anfang 1987 gründeten Hubert Zimmermann und Michael Gien das französische Unternehmen Chorus Systèmes Société anonyme als eine Aktiengesellschaft nach dem französischen Handelsrecht von 1867. Unter anderem veröffentlichte das kleine Team als Ergebnis dieser Arbeitsphase die Version CHORUS-V3. Im Jahre 1989 folgte dann die Veröffentlichung von Chorus/MIX V3.2. Es handelte sich hierbei um ein verteiltes System mit Unterstützung von Echtzeit und binärer Kompatibilität zu SCO Systemen und Intel basierenden Maschinen.

### ChorusOS

Im Quartalsbericht 10-Q des US-amerikanischen Unternehmens Sun Microsystems aus Kalifornien war die Übernahme der Chorus Systèmes Société anonyme beschrieben. Am 21. Oktober 1997 wechselten alle Aktien und Passiva, sowie alle Niederlassungen für eine Summe von 26,5 Millionen US-Dollar in Bargeld die Besitzerin. Eine Abschreibung von 13 Millionen US-Dollar kam für die Integration, Forschung und Entwicklung hinzu.
Durch die feindliche Übernahme des französischen Unternehmens Chorus Systèmes Société anonyme durch das Unternehmen Sun Microsystems mit Sitz in Kalifornien/USA bekam das Echtzeitbetriebssystem den neuen Produktnamen ChorusOS. Sun Microsystems schloss die feindliche Übernahme im Jahr 2002 mit dem Status EOL für ChorusOS ab. Damit war der Lebenszyklus des Produkts offiziell beendet. Das bedeutete, dass ihm keine weitere Unterstützung mehr zukam. Der letzte Quellenbaum von ChorusOS, die Weiterentwicklung des Release 5.1, hatte seine Veröffentlichung als Chorus Open Source durch Sun Microsystems auf der Website von Sun Microsystems Laboratories Experimental Stuff.
Wirtschaftliche Schwierigkeiten infolge der Dotcom-Blase veranlassten Sun Microsystems, im Jahr 2002 Maßnahmen zur Kostensenkung einzuleiten. Eine Maßnahme war, den Lebenszyklus des Produkts ChorusOS zu beenden. Die Veröffentlichung von Teilen der Quellen des ChorusOS als Open Source erfolgte dann auf der Website von Sun Labs. Ehemalige Mitarbeiter der Chorus Systèmes S.A., die nach der Übernahme durch Sun in der neu entstandenen Abteilung für eingebettete Systemsoftware tätig waren, verließen daraufhin Sun und gründeten noch 2002 das Startup Jaluna S.A.
Das Unternehmen Jaluna hörte mit der Übernahme durch das Unternehmen VirtualLogix auf zu existieren. Mit dem Unternehmen VirtualLogix kam der neue Name VirtualLogix C5 für das ChorusOS hinzu. Um die Chancen von C5 am Markt der Echtzeitbetriebssysteme zu verbessern, gab das Unternehmen VirtualLogix dem C5 die Bezeichnung eingebettetes System unter dem Betriebssystem Linux und dem Echtzeitbetriebssystem ChorusOS, mit der Funktionalität einer Carrier grade class Software-Plattform. Sun Microsystems hatte Carrier-Grade Server mit verschiedenen Betriebssystemen, bis zur feindlichen Übernahme durch Oracle, im Portfolio für seine High-End Systeme. Das Unternehmen VirtualLogix hörte im September 2010 mit der Übernahme durch das Unternehmen Red Band Software auf zu existieren.
Mitgründer der Unternehmen Chorus Systems, Jaluna und Virtual Logix war der Franzose Michel Gien.
Die Veröffentlichung der vollständigen Quellen aus dem Jaluna Projekt war der Release von Jaluna-1. Hier kam dann die Umschreibung hinzu, eine RT-POSIX-Schicht zu sein, die auf FreeBSD 4.1, und der Entwicklungsumgebung CDE basiert.

## Beschreibung

Mit der Zeit änderte sich die Ausrichtung der Entwicklung weg von verteilten Aspekten hin zu Echtzeit und Modularisierung (Komponentisierung). Die Spezifikation des verteilten Betriebssystemkern von Release CHORUS-V3 erfolgte ansatzweise mit der Beschreibungssprache für Ereignisreihenfolgen LOTOS. Eine Beschreibungssprache, die die Internationale Organisation für Normung als Standard ISO 8807:1989 im Jahre 1989 veröffentlicht hatte. Objektiv gesehen kam es zu der Initiative bei der Aktualisierung von CHORUS V2 zu CHORUS V3. Die Entscheidung mit LOTOS zu experimentieren begründet Charles Pecheur als den Test der Adäquanz von LOTOS für die Spezifikation der Betriebssysteme, durch Spezifizierung der Basisstrukturen und Funktionalitäten des verteilten Betriebssystem CHORUS V3. Der Ansatz war von experimenteller Natur, die Validierung des realen Systems war dabei nicht essentiell.

### Beispiel für die Spezifikation

ISO/OSI Sitzungsprotokoll :
| Spezifikation | Figur |
| specification CHORUS_kernel [TSAP,monitor,trap] (…): noexit:= … (* Definition der Datentypen *) behaviour hide transport,IPC,local in ( ( ( ( local_call_dispatcher [trap,IPC,local] (…) (* Empfangen der lokalen Aufrufe, Aufrufe des lokalen Kernel oder Senden der Nachrichten an einen anderen Kernel *) | | | remote_call_dispatcher [IPC,local] (…) ) (* Empfangen der Nachrichten des entfernten Kernel, Aufrufe der lokalen Kernel wenn erforderlich *) |[local]| local_kernel [monitor,IPC,local] (…) ) (* Abhandlung der lokalen CHORUS objects *) |[IPC]| IPC_manager [transport,IPC] (…) ) (* Abhandlung der lokalen Kommunikation, Weiterleitung der Nachrichten zum Netzwerk Manager, wenn das Ziel entfernt liegt *) |[transport]| network_manager [TSAP,transport] (…) ) (* Abhandlung der Kommunikation mit anderen Standorten *) where (* Prozess Definitionen *) endspec | |

### Architektur

Je nach Konfiguration besteht eine vorhandene ChorusOS-Betriebssysteminstanz aus einem Mikrokernel und verschiedenen Akteuren. Die verschiedenen Akteure tragen zur Umsetzung der ausgewählten Dienste bei. ChorusOS selbst ist dabei in zwei unterschiedliche Schichten unterteilt, wobei eine dritte Schicht mit den Anwendungen kommuniziert.

### Mikrokernel

Die Beschreibungen des Mikrokernels sind in den veröffentlichten Dokumenten unterschiedlich. Im technischen Bericht „CS/TR-90-25.1, 1990“ wird zum Mikrokernel erklärt, der Chorus Nucleus verwaltet auf der tiefsten Ebene die physikalischen Geräte an einem Ort. Auf der höchsten Ebene stellt er Standort-transparente Kommunikationsmechanismen zwischen den Prozessen bereit. Er ist zusammengesetzt aus vier Hauptkomponenten, die lokale und globale Dienste unterstützen. Die Hauptkomponente in der tiefsten Ebene, der Kontrolleur, „CHORUS supervisor“. Die darauf aufsetzenden zwei Hauptkomponenten, die Echtzeit-Exekutive, „CHORUS real-time executive“ und der Verwalter des virtuellen Speichers, „CHORUS virtual memory manager“. Die Hauptkomponente auf der höchsten Ebene, der Verwalter der Interprozesskommunikation, „CHORUS inter-process communication manager“
Die Dokumentation verwendet an einzelnen Stellen für die Abbildung der Details des Mikrokernels unterschiedliche Darstellungsformen.
Abbildung 1. – The CHORUS Nucleus :
| Real-Time Executive | Real-Time Executive | Communications (Portable) | Communications (Portable) | Memory Management | Memory Management |
| (Portable) | (Portable) | | | (Portable) | (Portable) |
| Supervisor (Machine dependent) | Supervisor (Machine dependent) | Supervisor (Machine dependent) | Supervisor (Machine dependent) | (Machine dependent) | (Machine dependent) |
| Hardware ||||||
Abbildung 2. – The CHORUS Nucleus :
| Real-Time Executive | Real-Time Executive | Communications (Portable) | Communications (Portable) | Memory Management | Memory Management |
| (Thread Scheduling) | (Thread Scheduling) | | | (Linear, segmented or page virtual memory) | (Linear, segmented or page virtual memory) |
| [Portable] | [Portable] | | | [Portable] | [Portable] |
| Supervisor (Interrupts, exeptions and trap handling) [Machine dependent] | Supervisor (Interrupts, exeptions and trap handling) [Machine dependent] | Supervisor (Interrupts, exeptions and trap handling) [Machine dependent] | [Machine dependent] | [Machine dependent] | [Machine dependent] |
In dem Dokument „Programming under ChorusOS“ wird zum Mikrokernel erklärt, die core-executive unterstützt die Basisdienste der tiefsten Ebene, korrespondierend zum KERN Akteur. Bei den Dienstanforderungen der Echtzeit-Anwendungen, der Verwaltung der Akteure, den Zeitabläufen, der Zeitplanung, dem Speicher, der Synchronisation, den Überkreuz Akteuraufrufen (LAPs) und so weiter.

### Implementierung

Als eingebettetes System auf einer Reihe von Prozessor-Architekturen und Hauptplatinen Systeme mit Peripherie:
* Intel Corporation x86 wie i386/i486/Pentium (verschiedene PC/ATs)
* Microsoft Windows NT upgrade, einschließlich POSIX Cygwin tools, Ziele Motorola PowerPC 60x und 750 Prozessor-Familie (ppc60x)
* Motorola PowerPC 60x und 750 Prozessor-Familie (ppc60x)
* MPC8xx (Motorola PowerPC: MPC860, MPC821 und MPC823) Prozessoren
* MPC8xxADS (Motorola SPS: MPC860 FADS, MPC821 FADS und MPC823 FADS) Hauptplatinen Systeme
* MPC8xxADS (Motorola SPS: MPC860 FADS, MPC821 FADS [cpu, flash, quicc-8xx]) Hauptplatinen (integrierte) Peripherie
* MPC8xxADS (Motorola SPS: MPC823 FADS [cpu, flash, quicc-8xx]) Hauptplatinen (integrierte) Peripherie
* Motorola mc68030/mc68360/mc68040 (MVME147S, QUADS, MVME167S)
* Motorola mc88k
* Sun Microsystems UltraSPARC IIi, SPARC (SPARCstation SLC, SPARCstation Classic)
* Transputer T425/T805
* R3000/R4000 (Sony 3410)
* PA-RISC (HP 9000/834 and 9000/720)
* YMP (Cray YMP), Cray T3E

### Funktionalität

Die Funktionalitäten vom ChorusOS waren zu den folgenden Internationalen Standards konform:
* ANSI
* POSIX 1003.1b/.1c und z. B. Vorgängerschnittstellen .4 und .4a. (Die Organisationen IEEE und The Open Group haben seit 2007 die offizielle Zertifizierung der POSIX-Funktionalität übernommen.)
* Unix System V (R3.2 or R4.0)

### Subsysteme

Die Subsysteme vom CHORUS bestanden aus den folgenden Komponenten:
* CHORUS/Micro, sehr kleiner (10K), harte Echtzeit unterstützender eingebetteter Kernel (hard real-time embedded kernel), zum größten Teil (90 %) in C++ implementiert.
* CHORUS/ClassiX, Ziel-System Entwicklungsumgebung (host-target cross-development environment) für die in C++/C geschriebenen Anwendungen, auch C_actors genannt.
* CHORUS/MiX V.4, verteilte, Multi-Server-Implementierung von Unix SVR4, in der Ebene über dem CHORUS Mikrokernel.
* CHORUS/COOL, der CHORUS/C++ Object Oriented Layer. Mit der Bibliothek COOL, einer von Texas Instruments in den Jahren von 1989 bis 1990 entwickelten C++-Bibliothek war die Möglichkeit gegeben, das verteilte Betriebssystem CHORUS um die zusätzliche Funktionalität zu erweitern, objektorientierte Umgebungen zu unterstützen. Diese zusätzliche Funktionalität ist in einer Ebene auf dem Mikrokernel CHORUS V3 Nucleus realisiert. Und eine Erweiterung der CHORUS Schnittstelle um generische Funktionen für das Objekt-Management, wie der Erstellung, der Löschung, der Speicherung, dem Fernzugriff und der Migration. Ein wesentliches Ziel dieser Herangehensweise war es, die Machbarkeit von generellem Objekt-Management auf der Ebene des Mikrokernel mit Unterstützung von mehreren Objektmodellen auf höherer Ebene zu untersuchen. Die Implementierung von COOL sowie die erste Evaluierung dieser Herangehensweise realisierte man mit einer C++-Umgebung, die den COOL Mechanismus unterstützt.
* CHORUS/COOL-ORB, OMG-CORBA kompatibler Object Request Broker.
* CHORUS/JaZZ, ist eine Implementation der Java-Laufzeitumgebung und ausgewählter Komponenten vom JavaOS, die in CHORUS/ClassiX integriert wurden um das Betriebssystem zu personalisieren. Bei Sun Microsystems ist der Einsatz der CVM mit der Java 2 Platform, Micro Edition und dem CDC Profile für die Version ChorusOS 5.0 belegt.
* CHORUS/Harmony, C++/C und eingebettetes C++, Übersetzer und Werkzeugkette aus Assemblern, Linkern, Hilfsprogrammen (assemblers, linkers, utility programs) und Profilern, Laufzeitfehlerprüfern, Simulatoren und Kernel Debuggern (profilers, runtime error checkers, simulators and kernel debuggers).

## Quellen

* A Comparison of Three Microkernels, Andrew S. Tanenbaum, Englisch, The Journal of Supercomputing, vol 9, number 1, ISSN 0920-8542, 1995
* A Comparison of Two Distributed Systems: Amoeba and Sprite, Douglis, F., Kaashoek, M.F., Tanenbaum, A.S., Englisch, Computing Systems, vol. 4, Fall 1991 (sic)
* Architectural Issues in Microkernel-based Operating Systems: the CHORUS Experience, Bricker, A., Glen, M., Guillemont, M., Lipkis, J., Ofr, D., and M. Rozier, Englisch, Computer Communications, Vol 14, No 6, pp 347–357, July 1991
* Architectural issues in microkernel-based operating systems: the CHORUS experience., Bricker. A., M. Gien, M. Guillemont, J. Lipkis. D. Orr, M. Rozier, Englisch, Special Issue of Computer Communications on Platforms for Distributed Applications, Vol. 14 No. 6, July 1992, Pages 347-357
* CHORUS/COOL-ORB Programmer’s Guide, Chorus Systèmes, Englisch, Technical Report CS/TR-96-2.1, Chorus Systèmes, 1996
* COOL: system support for distributed programming, Lea, R., Jacquemot. C., Pillevesse, E., Englisch, Communications of the ACM, Volume 36, Issue 9 Pages: 37 - 46 (September 1993)
* COOL-2: An Object Oriented Support Platform built above the Chorus Micro-Kernel., Lea, R. Amaral. P., Jacquemot. C., Englisch, Proceedings of First International Workshop on Object Orientation in Operating Systems, October 17-18, 1991. Palo Alto, California. IEEE Computer Society Press USA
* Data Movement in Kernelized Systems, R. Dean, F. Armand, Englisch, Proceedings of the USENIX Workshop on Micro-Kernels and Other Kernel Architectures, pp. 243–261, April 1992
* Distributed Systems, Concepts and Design, G. Coulouris, J. Dollimore, T. Kindberg, Englisch, Addison-Wesley, second edition, 1994
* ÉSOPE: une étape de la recherche française en systèmes d’exploitation (1968–1972), Claude Bétourné, Jean Ferrié, Claude Kaiser, Sacha Krakowiak, Jaques Mossière, Englisch/Französisch, Article publié danns les Actes du 9-ème Colloque sur l’histoire de l’informatique et des télécommunications (CHIR 2004), Rennes, 16-18 novembre 2004
* Extending tile Chorus Micro-kernel to Support Continuous Media Applications, Coulson, G., Blair, G.S., Robin, P., Shepherd, D., Englisch, Proc. Fourth International Workshop on Network and Operating System Support for Digital Audio and Video, Lancaster House Hotel, Lancaster, UK, published by Springer Verlag, ISBN 3-540-58404-8, October 93
* Implementing a modular object-oriented operating system on top of Chorus, Lea, R. Amaral. P., Jacquemot, C., Englisch, IEE Distributed Systems Engineering Journal 1(1): 11-18 (1993)
* Modern Operating Systems, Andrew S. Tanenbaum, Englisch, Prentice-Hall, 1992
* Process Management and Resource Sharing in the Multiaccess System ESOPE, Claude Bétourné, Jacques Boulenger, Jacques Ferrié, Claude Kaiser, Sacha Krakowiak, and Jacques Mossière, Englisch, Communications of the ACM, vol. 13, no. 12, (December 1970).
* Programming under ChorusOS, Jean-Marie Rifflet, Englisch, University Paris VII – Denis Diderot, November 14, 2000
* The COOL architecture and abstractions for object-oriented distributed operating systems, Lea, R., Jacquemot. C., Englisch, Proceedings of 5th ACM SIGOPS European Workshop, September 21-23, 1992, Mont St Michel, France
* The CYCLADES Computer Network - Towards Layered Network Architectures, Louis Pouzin et al., Englisch, Monograph Series of the ICCC, 2, Elsevier Publishing Company, Inc, New-York, NY, (1982), 387 p. ISBN 0-444-86482-2
* The Design of a QoS Controlled ATM Based Communications System in Chorus, Coulson, G., Campbell, A., P. Robin, Blair, G.S., Papathomas, M., Shepherd, D., Englisch, IEEE Journal on Selected Areas in Communications, Special issue on ATM LANs, 1994
* The Impact of Operating System Structure on Memory System Performance, J Bradley Chen, Brian N Bershad, Englisch, ACM SIGOPS Dec. '93
* The SOL Operating System, Michel Gien, Englisch, Usenix Summer’83 Conference, Toronto, ON, (July 1983), pp. 75–78.
* Using LOTOS for specyfing the CHORUS Distributed Operating System Kernel, Charles Pecheur, Englisch