Menedżer - ManaGeR

ManaGeR lub MGR był wczesnym systemem okienkowym pierwotnie zaprojektowanym i opracowanym dla komputerów Sun w 1984 roku przez Stephena A. Uhlera , a następnie w Bellcore .

MGR zawierało nakładające się, asynchroniczne okna i interfejs aplikacji, który był niezależny zarówno od komputera, jak i sieci.

Każde okno MGR wspierało zarówno operacje na terminalach znakowych, jak i podstawowe operacje graficzne. Była kontrolowana za pomocą myszy w wyskakujących menu, interakcji z klawiaturą oraz za pomocą sekwencji specjalnych zapisanych na pseudoterminaliach przez oprogramowanie klienckie.

System został zaprezentowany na IV Warsztatach Grafiki Komputerowej USENIX w 1987 roku jako "MGR - system okienkowy dla UNIX". Cały kod źródłowy MGR został wysłany na grupę dyskusyjną comp.sources.unix Usenet , tom 17, wydanie 1, w styczniu 1989 roku.

Wewnętrznie MGR wymawiano jako munger w odniesieniu do mung , chociaż użytkownicy wymawiali każdą literę.

funkcje

Firma MGR dostarczyła do każdego okna klienta:

  • funkcje kontroli terminala w stylu termcap , podstawowe elementy graficzne, takie jak rysowanie linii i okręgów;
  • Operacje rysowania wektorowego mogą być wykonywane z bezwzględnymi (na podstawie pikseli) lub ustalonymi względnymi współrzędnymi. Ten ostatni pozwalał na skalowanie zawartości okna, gdy okno było zmieniane bez ponownego obliczania współrzędnych.
  • ułatwienia do manipulowania bitmapami, czcionkami , ikonami i wyskakującymi menu ;
  • polecenia zmiany kształtu i położenia okien; oraz narzędzie do przekazywania komunikatów umożliwiające programom klienckim łączenie się i wymianę komunikatów. Programy klienckie mogą prosić o powiadomienie, gdy nastąpi zmiana w systemie okien, taka jak zmiana kształtu okna, naciśnięcie przycisku myszy lub wiadomość wysłana z innego programu klienckiego. Te zmiany nazywają się wydarzeniami . MGR powiadamia program klienta o zdarzeniu, wysyłając mu ciąg znaków ASCII w formacie określonym przez program klienta. Istniejące aplikacje można zintegrować ze środowiskiem okienkowym bez modyfikacji, ponieważ MGR imituje naciśnięcia klawiszy w odpowiedzi na wybory menu zdefiniowane przez użytkownika lub inne zdarzenia.

Wszystkie te funkcje działały równie dobrze, jeśli program klienta był wykonywany na tym samym komputerze co serwer MGR lub jeśli klient był uruchamiany na komputerze zdalnym. Rodzaj połączenia był nieistotny. Równie dobrze możesz na przykład użyć telnetu przez TCP/IP lub modemu. Bitmapy jednak przedstawiały problemy na połączeniach o mniejszej przepustowości. Aby użyć bitmapy, musiała zostać pobrana do menedżera okien przez kanał komunikacyjny. Aplikacje z dużą ilością bitmap często pobierały mapy bitowe do użycia podczas uruchamiania aplikacji, co mogło sprawić, że aplikacja wyglądała, jakby była zawieszona. Ponieważ aplikacje wykorzystywały strumienie wejściowe i wyjściowe, mogą wystąpić problemy, gdy nadejdą nieoczekiwane dane wejściowe, na przykład z powodu szumu linii lub komunikatu systemowego.

Programy zewnętrzne, takie jak własny MTX Stephena Uhlera i rmgr Howarda Chu, umożliwiły multipleksowanie kilku okien za pomocą pojedynczego połączenia ze zdalnym hostem, nawet przy użyciu normalnego połączenia modemowego.

Późniejsza funkcja, $HOME MOVIE, umożliwiła nagrywanie interakcji użytkownika w celu późniejszego wyświetlenia.

Porty

MGR działał przynajmniej na tych systemach: SunOS na stacjach roboczych Sun (oryginalna platforma programistyczna), Apple Macintosh , Unix System V na AT&T UNIX PC , Ultrix na DECstation 3100 , MiNT na Atari ST , OS-9 , Coherent , Linux , FreeBSD i VSTa .

Początkowy port Macintosh został wykonany na komputerze Macintosh Plus przy użyciu kompilatora Lightspeed C. Był to port hybrydowy, ponieważ wiele operacji niskopoziomowych zostało przekazanych do QuickDraw zamiast używania wewnętrznego kodu bitmapowego. Aplikacja nie była zgodna z wytycznymi dotyczącymi interfejsu użytkownika systemu Macintosh, ponieważ zajmowała cały ekran. Wersja początkowa wykorzystywała dowolny dostępny port szeregowy jako kanał komunikacyjny. Późniejsza aktualizacja portu może wykorzystywać komunikację Ethernet lub szeregową.

Zobacz też

Bibliografia

Linki zewnętrzne