TRIX (system operacyjny)

TRIX
Deweloper Laboratorium Informatyki MIT (LCS)
Rodzina OS Uniksopodobny
Stan roboczy Historyczny
Model źródłowy Otwarte źródło
Pierwsze wydanie 1986 ; 37 lat temu ( 1986 )
Dostępne w język angielski
Platformy NuMachine
Typ jądra Jądro monolityczne

Domyślny interfejs użytkownika
Interfejs linii komend

TRIX to zorientowany na sieć badawczy system operacyjny opracowany pod koniec lat 70. XX wieku w Laboratorium Informatyki (LCS) MIT przez profesora Steve'a Warda i jego grupę badawczą. Działał na NuMachine i miał wbudowaną funkcję zdalnego wywoływania procedur w swoim jądrze , ale poza tym był podobny do Uniksa w wersji 7 .

Projektowanie i wdrażanie

Podczas uruchamiania NuMachine ładował ten sam program na każdym procesorze w systemie, przekazując każdej instancji numeryczny identyfikator procesora, na którym był uruchomiony. TRIX polegał na tym projekcie, aby pierwszy procesor skonfigurował globalne struktury danych, a następnie ustawił flagę sygnalizującą, że inicjalizacja została zakończona. Następnie każda instancja jądra miała dostęp do danych globalnych. System obsługiwał również dane prywatne dla każdego procesora. Dostęp do systemu plików zapewniał program w przestrzeni użytkownika .

Jądro obsługiwało nienazwane wątki działające w domenach. Domena była odpowiednikiem procesu uniksowego bez wskaźnika stosu (każdy wątek w domenie miał wskaźnik stosu). Wątek mógłby zmieniać domeny, a program planujący system migrowałby wątki między procesorami, aby wszystkie procesory były zajęte. Wątki miały dostęp do jednego prymitywnego rodzaju wzajemnego wykluczania i jednego z siedmiu priorytetów. Harmonogram został zaprojektowany tak, aby uniknąć odwrócenia priorytetów . Programy przestrzeni użytkownika mogą tworzyć wątki poprzez odradzania .

Garbage collector okresowo identyfikował i zwalniał nieużywane domeny.

Model pamięci współdzielonej używany do koordynowania pracy między różnymi procesorami powodował rywalizację o magistralę pamięci i był znany jako źródło nieefektywności. Projektanci byli świadomi projektów, które złagodziłyby spór. Rzeczywiście, oryginalny projekt TRIX wykorzystywał nieblokujący mechanizm przekazywania wiadomości, ale „stwierdzono, że ta implementacja ma wady często pomijane w literaturze”, w tym słabą wydajność.

Chociaż system operacyjny TRIX został po raz pierwszy zaimplementowany na NuMachine, było to spowodowane dostępnością NuMachine w MIT, a nie jakąkolwiek cechą architektury. System został zaprojektowany tak, aby był łatwy do przenoszenia. Został zaimplementowany głównie w C z niewielkim kodem asemblera. Prymityw wzajemnego wykluczania można przenieść na dowolną architekturę z testem atomowym i zestawem instrukcji .

Próba użycia przez Projekt GNU

Richard Stallman wspomina w Manifeście GNU z 1985 r. , że „istnieje początkowe jądro” dla systemu operacyjnego GNU , „ale do emulacji Uniksa potrzeba znacznie więcej funkcji”. Było to odniesienie do jądra TRIX, które autorzy TRIX postanowili rozpowszechniać jako wolne oprogramowanie .

W przemówieniu wygłoszonym w październiku 1986 roku Stallman wyjaśnił, że „jądro TRIX działa i ma pewną ograniczoną kompatybilność z Unixem, ale potrzebuje dużo więcej. Obecnie ma system plików, który używa tej samej struktury na dysku, co starożytny System plików Unix tak. Ułatwiło to debugowanie, ponieważ mogli skonfigurować pliki w systemie Unix, a następnie mogli uruchomić TRIX, ale ten system plików nie ma żadnej z funkcji, które moim zdaniem są niezbędne. Funkcje, które Stallman chciał dodać (wersjonowanie plików, przywracanie danych, informacje o tym, kiedy, jak i gdzie plik został zarchiwizowany na taśmie, atomowe aktualizacje plików) nie były na ogół kojarzone z Uniksem.

W grudniu 1986 programiści użyli jądra TRIX jako podstawy w swojej pierwszej próbie stworzenia jądra dla GNU. Ostatecznie zdecydowali, że Trix jest bezużyteczny jako punkt wyjścia, głównie dlatego, że:

Zobacz też

Dalsza lektura

  • Ward, SA TRIX: sieciowy system operacyjny. COMPCON, wiosna 1980, s. 344–349.

Linki zewnętrzne