TRIX (system operacyjny)
Deweloper | Laboratorium Informatyki MIT (LCS) |
---|---|
Rodzina OS | Uniksopodobny |
Stan roboczy | Historyczny |
Model źródłowy | Otwarte źródło |
Pierwsze wydanie | 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:
- działał tylko na „niejasnym, drogim urządzeniu 68000 ” i dlatego wymagałby przeniesienia na inne architektury , oraz
- zdecydowano, że mikrojądro Mach jest lepszym projektem bazowym dla systemu operacyjnego opartego na serwerze. [ potrzebne źródło ] Ta druga próba przekształciła się w GNU Hurd .
Zobacz też
Dalsza lektura
- Ward, SA TRIX: sieciowy system operacyjny. COMPCON, wiosna 1980, s. 344–349.
Linki zewnętrzne
- Kod źródłowy jądra TRIX (można również przeglądać online )
- Historia Hurda na stronie Projektu GNU