DM (windowing system)

DM (Display Manager) was the windowing system used by Apollo Computer Inc. for its Apollo/Domain line of workstations running the AEGIS operating system, later renamed Domain/OS.

DM
Developer(s)Apollo Computer
Initial release1981 (1981)
Operating systemAEGIS, Domain/OS
TypeWindowing system

Overview

Apollo's DM, first shipped in 1981, was the first commercially successful general purpose window system. It preceded systems from Sun Microsystems, X, Apple, and Microsoft, and contained some features that are still not found in similar systems today.

The DM contained two built-in functions, an editor and a transcript, which is a kind of virtual terminal. Additional functions could be added by user programs. One of the unique features of the DM was "universal editing". All text in any of the built-in windows could be edited using the same editing language. This included the history displayed in a transcript window, although that text was read-only. In addition, the history was unbounded. It started from the birth of the process to which it was attached, and older history was never deleted, as it is in all virtual terminals today. Another interesting feature was that each transcript was attached to a mini-input window where the process input could be edited using the same editing language used elsewhere.

The DM suffered from the fact that it was not portable, and was tightly coupled to the Apollo operating system. Eventually all of the Apollo software, including the DM, was phased out after Apollo was bought by Hewlett-Packard in 1989. The X Window System ultimately became the dominant window system for Unix (and later Linux) systems.

gollark: It's a fork of https://guihacker.com with extra features.
gollark: Oh, THIS one. https://osmarks.tk/errors/403.html
gollark: Interesting project idea: a thing which generates minified incomprehensible code in different languages.
gollark: It doesn't *do* anything. It just looks cool because of the syntax highlighting.
gollark: ```lualocal a="potato"local function b(c)return fs.combine(c,"")end;local function d(c)if b(c)==""then return{}end;local e,f={},c;repeat table.insert(e,1,fs.getName(f))f=fs.getDir(f)until f==""return e end;local function g(h,i,j)return{table.unpack(h,i,j)}end;local function k(l)local m=type(l)if m=="number"then return tostring(l)elseif m=="string"then return textutils.serialise(l)elseif m=="table"then local n="{"for o,p in pairs(l)do n=n..string.format("[%s]=%s,",k(o),k(p))end;return n.."}"elseif m=="boolean"then return tostring(l)else error("Unsupported type "..m)end end;local function q(m)local r=g(m)local s=#r;local p=r[s]r[s]=nil;return r,p end;local t=".crane-persistent/"..a;local function u(v,w)return string.sub(v,1,#w)==w end;local function x(v,w)return string.sub(v,-#w,-1)==w end;local function y(v,z)return string.find(v,z)~=nil end;local function A(B)return function(C)local D={}for E,F in pairs(B)do local l=C[F]if type(l)=="table"thenl=copy(l)end;D[F]=l end;return D end end;local function G(H,c)local I=H;local c=c;if type(c)=="string"then c=d(c)end;for E,J in pairs(c)do if type(I)~="table"then error("Path segment "..J.." is nonexistent or not a directory; full path "..k(c))end;I=I[J]end;return I end;local function K(H,c)local L,M=q(d(c))local N=G(H,L)or H;return N,M end;local function O(P)local m={}local function Q(R)table.insert(m,R)return""end;Q(P:gsub("(.-)\r?\n",Q))return m end;local function S(T,U)local O=O(T)local V={}local R=0;function V.close()end;if not U then function V.readLine()R=R+1;return O[R]end;function V.readAll()return T end else local W=T;function V.read()local X=string.byte(W:sub(1,1))W=W:sub(2)return X end end;return V end;local function Y(Z,U)local V={}function V.close()end;function V.flush()end;if not U then function V.write(m)return Z(m)end;function V.writeLine(m)return Z(m.."\n")end else function V.write(_)return Z(string.char(_))end end;return V end;local function a0(a1)local a2=a1.options;local H=a1.tree;local a3=A{"getName",```

See also

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.