init.app/getty.app/login.app/gemsh.app

authors: Ulrich Kaiser (U_Kaiser@t-online.de)
         Holger Kleinschmidt

state: freeware, no warranty, use at your own risk


introduction:
-------------
Mit Hilfe von GEM-init  kann  man  sich  unter  GEM  einloggen und als z.B. 
non-root arbeiten.  Die  Environmentvariable  $HOME  wird  entsprechend des 
gerade eingeloggten Benutzers gesetzt.


installation:
-------------
Experten knnen die folgenden Zeilen berspringen:

Zuerst sollte eine einigermaen	 UNIX-hnliche Verzeichnisstruktur angelegt
werden. Zu diesem Zweck kopieren Sie einfach die Verzeichnisse

bin
usr
etc
var
home

aus	dem	GEM-init-Archiv	 in	 das  Wurzelverzeichnis	 eines Laufwerkes Ihrer
Wahl (am besten eine Minixfs-Partition), nennen wir es einmal Laufwerk m:

SOLLTEN	DIESE  VERZEICHNISSE  UND  AUCH	 DARIN	BEFINDLICHE	 DATEIEN  SCHON
VORHANDEN SEIN,	 SO	 ERGNZEN  SIE	DIE	 NOCH  FEHLENDEN  VERZEICHNISSE	UND
DATEIEN STCK UM STCK, OHNE DATEIEN ZU BERSCHREIBEN.

Sodann mssen diese	 Verzeichnisse	auch  im  Laufwerk	u: erscheinen. Dies
geschieht durch Einfgen folgender Zeilen in MINT.CNF:

# m: is assumed to be a Minixfs partition
echo setting symbolic links...
sln m:\bin u:\bin
sln m:\usr u:\usr
sln m:\home u:\home
sln m:\etc u:\etc
sln m:\var u:\var

und	anschlieendem Booten.	Wenn  Sie  alles  richtig gemacht haben, sollte
also   z.B.	  die	 Datei	 ...irgendwo...\GEM-init\usr\sbin\init.app	 in
u:\usr\sbin\init.app liegen.

Die Verzeichnisse  boot,  doc  und  misc  aus  dem  Archiv  brauchen  nicht 
"installiert" werden. Sie knnen erst einmal dort bleiben, wo sie sind.

KGMD User brauchen nur die Dateien in die entsprechenden KGMD-Verzeichnisse 
kopieren, da /bin, /usr usw. ja dort schon vorhanden sein sollten.

Vollstndigen  Pfad  des  Desktops  (natrlich  Thing:-)  in $HOME/.desktop 
eintragen. Alternativ kann der vollstndige  Pfad des Desktops in gemsh.rsc 
(freierString    "DESKTOP")     eingetragen     werden     (Voreinstellung: 
u:\usr\sbin\desktop.app).

Unter N.AES  1.1.7,  1.0.0  und  1.1.0  mu  allerdings  der  Desktop  samt 
notwendiger Dateien nach u:\usr\bin\GEM  kopiert  oder gelinkt werden. Dann 
sollte auch der Pfad  zum  Desktop  in  ~/.desktop  an obigen Pfad angepat 
werden.

Eine korrekte /etc/passwd und /etc/group Datei mu vorhanden sein.

Sicherheitshalber sollte man  init.app  und  boot.app  immer  mit gesetztem 
s-Bit (chmod +s  init.app)  installieren,  falls  GEM  nicht  von  der root 
gestartet wird. Dann:

a) SingleAES:
   boot.app als GEM-AUTO-Start-Programm anmelden:
   #Z 01 U:\USR\SBIN\BOOT.APP@ in NEWDESK.INF

   in MINT.CNF Eintrge fr INIT= und GEM= wegkommentieren
   im AUTO-Ordner _keinesfalls_ MINT.PRG, sondern MINTNP.PRG aktivieren

b) ATARI AES 4.x:
   boot.app mit nachfolgender Zeile in GEM.CNF als Shell anmelden:
   shell u:\usr\sbin\boot.app

   NICHT ALS GEM AUTO START PROGRAMM ANMELDEN!   

   darauf achten, da in MINT.CNF in der Zeile mit GEM= der vollstndige
   Pfad zu AES 4.x steht; die Zeile mit INIT= wegkommentieren

c) Geneva:
   boot.app mit nachfolgender Zeile in GEM.CNF als Shell anmelden:
   shell u:\usr\sbin\boot.app

   NICHT ALS GEM AUTO START PROGRAMM ANMELDEN!   

   darauf achten, da in MINT.CNF in der Zeile mit INIT= der vollstndige
   Pfad zu Geneva steht; die Zeile mit GEM= wegkommentieren

d) N.AES 1.0.0 und 1.1.0:
   1. in MINT.CNF irgendwo folgende Zeilen einfgen:
      exec u:\bin\rm -v u:\usr\bin\GEM\desktop.app
      exec u:\bin\cp -v u:\usr\sbin\boot.app u:\usr\bin\GEM\desktop.app

      darauf achten, da in MINT.CNF in der Zeile mit GEM= der vollstndige
      Pfad zu N.AES steht; die Zeile mit INIT= wegkommentieren

   2. temporren Desktop u:\usr\bin\GEM\desktop.app in N_AES.CNF als shell 
      anmelden:
      shell u:\usr\bin\GEM\desktop.app

e) N.AES 1.1.7 (auch 2.0 genannt):
   zur Zeit gleiche Vorgehensweise wie bei d)

f) XaAES:
   boot.app mit folgender Zeile in XAAES.CNF starten:
   run u:\usr\sbin\boot.app

g) oAESis:
   boot.app mit	nachfolgender Zeile in OAESIS.CNF als Shell anmelden:
   shell u:\usr\sbin\boot.app

h) MagiC: boot.app mit nachfolgender Zeile in MAGX.INF als Shell anmelden:
   #_SHL u:\usr\sbin\boot.app
   und   zwar noch vor  der   Zeile mit #_CTR   (Kontrollfeld-Eintrge)
   (allerdings bentigen Sie hier entweder   eine  MagiC-Version   fr den
   Einsatz unter MiNT bzw. es reicht u.U ein Desktop, der unter MagiC+MiNT
   Programme starten kann (z.B. Thing), oder eine MiNT-Version fr den
   Einsatz unter MagiC oder eine MagiC-Version, welche alle relevanten
   MiNT-Aufrufe beherrscht, oder ein passendes Patch-Programm...)

Fr	Fortgeschrittene: natrlich	kann  man  in  MINT.CNF	 auch  etwas in	die
Zeile mit INIT=	hineinschreiben.  Um  aber	ins	 GEM  und damit	GEM-init zu
gelangen, mu das "INIT="-Programm entweder	beendbar sein oder man kann	von
dort aus (ggf. mittels spezieller GEM-Start-Programme) AES hochfahren.

Fr	noch weiter	fortgeschrittene (KGMD-) User,	deren Rechner ppig	mit	RAM
ausgestattet ist: selbstverstndlich  kann	die	 KGMD-Konfiguration, in	der
AES	4.x	in /etc/ttytab ber execmtos auf der console hochgefahren wird:

console "/usr/etc/execmtos"	st52 on	secure

beibehalten	werden.	Man	kehrt beim	Ausloggen  unter GEM-init aber nicht zu
(KGMD-)init, sondern nur zu	GEM-init.app  zurck  (es sei denn,	man	schafft
es, AES sauber zu beenden).

ACHTUNG: init.app ist ZWINGEND auf die Datei /etc/ttytab.gem angewiesen. In 
ttytab.gem  wird  festgelegt,  welches  Programm  fr  welche Schnittstelle 
zustndig ist. Es sollte mindestens ein Eintrag fr die console existieren:

console "/usr/etc/getty.app console" vt52 on secure

Fr die console  ist  also  /usr/etc/getty.app  zustndig,  fr die anderen 
Schnittstellen z.B. /usr/etc/getty aus der  KGMD. Der Parameter vt52 sollte 
- wenn alles korrekt abluft - in der Environmentvariable $TERM erscheinen. 
Es kann  dort  auch  etwas  anderes  stehen,  z.B.  tt52  oder  vt100. Aber 
eigentlich ist es Aufgabe des Terminalfensters, $TERM selber auf einen Wert 
mit dem es zurecht kommt zu setzen.  MiniWin scheint irgendwie tw, tw52 und 
st52 zu setzen oder auszuwerten.  Unter  N.AES  kann statt der console auch 
gemcon eingetragen werden:

gemcon "/usr/etc/getty.app gemcon" tw52 on secure

Die Vorteile sind unklar. Der  Nachteil  ist zumindest, da /etc/motd nicht 
mehr im messages-Fenster erscheint.

Falls noch nicht  vorhanden,  sollten  zwei	 zunchst  leere Dateien namens
/etc/utmp  und	/var/adm/wtmp  angelegt	 werden,  sonst	 funktionieren	die
UNIX-Programme who, ac und last nicht.

In der  Datei  /etc/hostname  sollten  Sie  den  "Kosenamen" Ihres Rechners 
hinterlegen.

Weiterhin sollte sich im  Verzeichnis  /bin	 eine  UNIX-Shell  mit Namen sh
befinden.

Falls (unter SingleAES) das Starten  von sog. Overlays (Desktop "auslagern" 
o..) untersttzt  werden  soll,  mu  der  Desktop  unbedingt unter seinem 
originalem Namen  vorhanden  sein.  So  mu  z.B.  der  Name  von Ease 4.00 
unbedingt EASE.PRG lauten und gro geschrieben sein.

Man	kann sich das Umbenennen  des  Desktops	in desktop.app oder	den	Eintrag
in gemsh.rsc auch sparen. In diesem	 Fall  erscheint dann ein Alert	und	man
kann ber " ffne... ^O " per Fileselektor den Desktop "von Hand" starten.


working:
--------
init.app startet  ber  getty.app  in  einer  Endlosschleife  immer  wieder 
login.app.   login.app   liest   /etc/passwd   ein   und   vergleicht   die 
Dialogeingaben mit den Eintrgen  in  /etc/passwd. Nach erfolgreichem login 
wird  $HOME  gesetzt,  die  login  shell  und  danach  gemsh.app gestartet. 
gemsh.app startet dann den Desktop. Nach Beenden des Desktops kann sich der 
nchste User einloggen. Das ganze Prozedere graphisch dargestellt:

    root: init
           |
   ------->|
  |        |
  | root: fork()----------
  |        |              |
  | root: wait()  root: exec(/usr/etc/getty.app) (->/etc/ttytab.gem)
  |        |              |
  | root: wait()  root: exec(/usr/bin/login.app)
  |        |              |
  | root: wait()  root: setsid()
  |        |              |
  | root: wait()  root: setgid()
  |        |              |
  | root: wait()  root: setuid()
  |        |              |
  | root: wait()  user: spawn(WAIT,login shell,~/.gemlogin) *)
  |        |              |
  | root: wait()  user: exec(/bin/gemsh.app)
  |        |              |
  | root: wait()  user: spawn(WAIT,desktop) *)
  |        |              |
  | root: wait()  user: exec(/bin/GEM/logout.app)
  |        |              |
  | root: wait()  user: spawn(WAIT,login shell,~/.gemlogout)
  |        |              |
  |        |<-------------
  |        |
   --------

*) Unter AES 4.x wird hier  die  login  shell parallel gestartet. Dies kann 
einmal ber beiliegendes /bin/loginsh geschehen:
             
             |
   user: shel_write(/bin/loginsh)
             |             |
             |     user: fork()----------
             |             |             |
             |                  user: exec(login shell)
             |                                   |
   user: shel_write(desktop)                     |
             |         |                         |

Oder ber /bin/loginsh.app (umbenanntes  tw-call.app  von TosWin 2.x (CF)). 
Dabei geniet /bin/loginsh Vorrang  gegenber /bin/loginsh.app, falls beide 
Dateien existieren.  -  Unter  AES  4.x  wird  der  Desktop  mit  Hilfe von 
shel_write() gestartet.

Zudem versucht init.app unter AES 4.x ein Console-Fenster (messages window) 
zu  starten.  Die  Suche  nach  dem  einzurichtenden  messages  luft  nach 
folgender Prioritt ab:

1. /bin/terminal.app mit Parameter "u:\bin\messages":
   messages (= CONSOLE.TTP) luft im Fenster von terminal.app, wobei 
   terminal.app z.B. eine speziell umbenannte Kopie von MiniWin.App sein 
   kann

2. /bin/messages.app: messages bringt sein eigenes Fenster mit
                      a) T-CON.APP in messages.app umbenannt oder
                      b) tw-call.app (in Zusammenhang mit xconout.xdd) in 
                         messages.app umbenannt; hierbei im Optionen-Men 
                         von TOSWIN2 unbedingt den Menpunkt "  Console 
                         autom. ffnen" aktivieren

3. /bin/messages: messages (= CONSOLE.TTP) luft im TOSRUN - Programm


sound:
------
GEM-init lt ber /usr/local/bin/showaudio  zu verschiedenen Gelegenheiten 
Sounddateien abspielen.  Zugelassene  Dateiextensions  sind:  snd, au, svx, 
avr, iff, hsn, wav, voc,  sam.  Die  Dateiextensions werden berprft, d.h. 
GEM-init  versucht  z.B.  erst  gar  nicht,  eine  Datei  namens ~/login.sh 
abspielen zu lassen.

Nach dem Booten: /etc/boot.*
Nach dem login:  ~/login.*
Nach dem logout: ~/logout.*,  aber  nur wenn /etc/logout.* nicht existiert. 
/etc/logout.* wird etwas spter als ~/logout.* abgespielt.


related files:
--------------
boot.app, init.app, getty.app, login.app,  logout.app und gemsh.app greifen 
auf folgende Dateien zu:

/etc/passwd
/etc/group
/etc/hostname
/etc/utmp
/etc/shells                             geplant
/etc/desktops                           geplant
/etc/rc.gem   
/etc/motd    
/etc/ttytab.gem
/etc/boot.{snd,au,svx,avr,iff,hsn,wav,voc,sam}
/etc/logout.{snd,au,svx,avr,iff,hsn,wav,voc,sam}
/var/adm/wtmp
/var/adm/lastlog                    
/var/spool/mail/*                       (bash: /usr/spool/mail/*)
/dev/console
/dev/tty?                               gem /etc/ttytab.gem
/pipe/log                               geplant
/bin/sh
/bin/terminal.app                       nur unter AES 4.x
/bin/messages                           nur unter AES 4.x
/bin/messages.app                       nur unter AES 4.x
/usr/etc/getty                          gem /etc/ttytab.gem
/usr/share/locale/<country>/RSC/*.rsc
/usr/local/bin/showaudio
~/.gemlogin
~/.gemlogout
~/.desktop        
~/login.{snd,au,svx,avr,iff,hsn,wav,voc,sam}
~/logout.{snd,au,svx,avr,iff,hsn,wav,voc,sam}

Nur zur Information: getty (nicht jedoch getty.app) greift auf folgende
Dateien zu:

/etc/gettytab
/usr/bin/login
/bin/sh


department of rights:
---------------------
Folgende Zugriffsrechte werden empfohlen:

file            owner group mode       comment
----------------------------------------------------------------------
/etc            root  root  drwxrwxr-x
/bin            root  root  drwxrwxr-x
   init.app     root  root  srwx--x--- (srwx--x--x bei beendbarem AES)
   init.rsc     root  root   rw-rw---- ( rw-rw-r-- bei beendbarem AES)
/etc/passwd     root  root   rw-r-----
/etc/group      root  root   rw-r-----
/etc/hostname   root  root   rw-r--r--
/etc/utmp       root  root   rw-rw-rw-
/etc/ttytab.gem root  root   rw-rw-r--
/var/adm/wtmp   root  root   rw-rw-rw-
/etc/rc.gem     root  root   rw-rw----
/etc/desktops   root  root   rw-rw-r--
/etc/shells     root  root   rw-rw-r--
  getty.app     root  root   rwx--x--x
  getty.rsc     root  root   rw-rw-r--
  login.app     root  root   rwx--x--x
  login.rsc     root  root   rw-rw-r--
  gemsh.app     root  root   rwx--x--x
  gemsh.rsc     root  root   rw-rw-r--
desktop.app     root  root   rwx--x--x
desktop.*       root  root   rw-rw-r--
~               user  user  drwx------
~/.gemlogin     user  user   rw-------
~/$SCRAPDIR     user  user  drwx------


environmentals:
---------------
$LINES    in MiNT.Cnf setzen (optional)
$COLUMNS  in MiNT.Cnf setzen (optional)
$ROWS     kann alternativ zu $LINES benutzt werden
$HOME     wird von init.app gem /etc/passwd gesetzt
$PATH     wird z.Zt. von gemsh.app auf feste Werte gesetzt:
          /bin:/usr/bin:/usr/local/bin:/usr/ucb:.
          Das AES-$PATH-Environment wird nicht angetastet
$SHELL    wird von init.app gesetzt und enthlt den Pfad der login shell
$TOSRUN   in GEM.Cnf/N_AES.Cnf setzen, zur Zeit aber nicht genutzt
$UNIXMODE in MiNT.Cnf setzen, beeinflut unix2dos()
$CLIPBRD  wird von gemsh.app gesetzt,  enthlt _benutzerspezifischen_
          GEM-Clipboard-Pfad
$SCRAPDIR s. $CLIPBRD
$HOSTNAME wenn diese Environmentvariable existiert, wird /etc/hostname
          _nicht_ ausgewertet, sondern diese Variable
$LOGNAME  wird von login.app gesetzt, enthlt den login Namen (ist bei
          uid-Dupletten sonst spter nicht mehr ermittelbar)
$USER     entspricht $LOGNAME
$FULLNAME wird von login.app gesetzt, enthlt den vollen Benutzernamen
          gem /etc/passwd (pw_gecos)
$TZ       in MiNT.Cnf setzen (optional)
$TERM     wird von init.app gem /etc/ttytab.gem gesetzt
$NLSPATH  in MiNT.Cnf setzen (optional)

Anders ausgedrckt: die Environmentvariablen

$HOME
$SHELL
$TERM
$FULLNAME
$LOGNAME
$USER

brauchen weder in  MiNT.Cnf	 noch  in  GEM.Cnf/N_AES.Cnf gesetzt werden. Es
schadet	 aber  auch	 nichts,  da   diese  Variablen	 von  GEM-init	sowieso
berschrieben werden.

Achtung:  wird	neben  MiNTnp  noch	  ein	Programm  zum  Setzen  des	GEM
Environments gebootet (Programme  wie  SETENV.PRG  o..),  kann	 es	je nach
Programm und physikalischer	Reihenfolge	 im	 AUTO  Ordner passieren, da in
MiNT.Cnf  gesetzte	Environmentvariablen  ignoriert	 werden.  Abhilfe:	auf
Environment	 Setter	 verzichten	 und   alle	  Variablen	 in	 MiNT.Cnf  bzw.
GEM.Cnf/N_AES.Cnf setzen.


features:
---------
- Untersttzung der aktuellen AES-Sprache in den Fehleralerts, z.Zt.
  Englisch, Deutsch, Franzsisch, Niederlndisch, Schwedisch, Spanisch,
  Italienisch;
  es wird davon ausgegangen, da
  Franzsisch    der AES-Sprache 2 und
  Niederlndisch der AES-Sprache 7 entspricht

- die Lnge der Eingabemaske fr login und password kann per RCS
  vergrert werden, maximal bis 79 Zeichen; in utmp und wtmp werden
  jedoch aus Kompatibilittsgrnden	nur die ersten 7 Zeichen des
  Loginnamens abgelegt; vom password werden nur die ersten acht Zeichen zur
  Verschlsselung benutzt

- falls	/etc/rc.gem	existiert, wird	diese  Datei einmal	nach dem Booten	von
  /bin/sh ausgefhrt (/bin/sh ist nicht in diesem Paket enthalten)

- falls ~/.gemlogin existiert, wird  diese  Datei mit Hilfe der login shell 
  ausgefhrt (nicht unter AES 4.x: dort  sollte man ~/.gemlogin in 
  ~/.profile bzw. ~/.login aufrufen)

- Untersttzung von TOS2GEM unter SingleAES, dabei Untersttzung von $ROWS,
  $LINES und $COLUMNS (zuerst wird nach $LINES gesucht; wird $LINES nicht
  gefunden, wird $ROWS gesucht)

- in ~/.desktop kann der zu startende Desktop angegeben werden. Das Format
  dieser Datei lautet:  
  <TOSRUN_program>;<user_desktop>;<start_dir>
  Beispiel:

/bin/gem/MINIWIN.APP;/usr/sbin/thing.app;u:\usr\sbin\
/bin/gem/MINIWIN.APP;/usr/sbin/EASE.PRG;/usr/sbin/
/bin/gem/tw-call.app;;/
u:\bin\gem\toswin.app;u:\usr\sbin\gemini.app;u:\usr\sbin

  Der Paramter <TOSRUN_program> ist zur Zeit ohne jede Bedeutung und wird 
  wahrscheinlich auch nie Bedeutung gewinnen...

- die Gre des Environments darf maximal 64 kB betragen

- die Tastatutshortcuts von gemsh.rsc knnen verndert werden; man mu
  jedoch dafr Sorge tragen, da der Scancode des Shortcuts auch in dem
  Objektbaum namens SCANCODE eingetragen ist

- unter einem MultiAES werden beim Ausloggen die Accessories vom Bildschirm
  gerumt und ein partieller shutdown durchgefhrt


problems:
---------
- es ist mglich, da der Lieblingsdesktop keine (negativen	oder positiven)
Returncodes	zurckgibt,	falls  er  Probleme	 beim  Start hat (Resourcedatei
nicht gefunden,	etc.). GEMINI 1.A ist  z.B.	ein	solcher	Kandidat. In diesem
Fall gibt es leider	eine  Endlosschleife.  Abhilfe:	 den Autor des Desktops
mit Hilfe einer Geldspende zum Einbau von Returncodes berreden...

- in /etc/passwd wird  der	Pfad  zum  Homedirectory  normalerweise	mit	"/"
geschrieben, z.B. "/home/guest". Das  pat	aber den meisten GEM-Programmen
nicht. Diese erwarten in aller	Regel  einen mit "\" geschriebenen Pfad	zum
Homedirectory, meistens	 dann  auch	 noch  mit	Laufwerksangabe.  Zur  Zeit
wandelt	gemsh vor dem Start	des	Desktops alle  "/" in "\" um und setzt auch
noch "u:" vor den Pfad

- Accessories werden gestartet,	bevor  sich	 der erste User	einloggen kann.
Aus	diesem Grund werden	Accessories, die irgendwelche Dateien in $HOME oder
$PATH suchen, entweder diese Environmentvariablen gar nicht	vorfinden oder,
falls	sie	  auf	MiNT-Ebene	  oder	  in   GEM.CNF	 oder	mit	  einem
GEM-Environment-Setter	gesetzt	 wurden,  nicht	  unbedingt	 die  korrekten
Informationen enthalten. Es	gibt,  auer  bei AES 4.x mittels shel_write(),
auch keine Mglichkeit von init	 aus  ein Environment zu "vererben". Selbst
unter AES 4.x mten dann Accessories vor jedem	entsprechenden Dateizugriff
$PATH und $HOME	neu	einlesen,  da  sie	sich  ja  durch	das	Einloggen eines
anderen	Benutzers  gendert	 haben	knnten...	oder  aber	init killt beim
Ausloggen alle Accessories (appl_search() sollte da	behilflich sein), merkt
sich welche das waren und startet diese per AES 4.x-shel_write() neu

- unter	SingleAES  kann	 es	 passieren,	 da  frisch  nach	dem	Booten oder
Einloggen die Tastenkombination	^Q (i.A.  Beenden) keine Wirkung zeigt.	Der
Grund  ist	darin	zu	 suchen,   da	 dieses	 Kontrollzeichen  von  MiNT
interpretiert wird.	SingleAES  wird	 von  MiNTnp  mit  der	console	im sog.
cooked	mode  gestartet.  AES  4.x	liest  dagegen	seine  Tastendrcke	aus
/dev/AES_BIOS. Als Abhilfe wurde vorgeschlagen,	einfach	die	console	mittels
Fcntl()	in den sog.	raw	mode zu	schalten.  Das hat den Nachteil, da in	von
GEM	gestarteten	TOS/TTP-Programmen ^Q,	^S	usw.  nicht	mehr funktionieren.
Besser ist es, einfach	irgendwelche  anderen  Tasten,	z.B. ^W	zu drcken,
danach sollte ^Q wieder	erkannt	werden.	Weiterhin sollte man sich unbedingt
davor hten, direkt	nach  Start	 von  Thing	 ^C	 zu	 drcken,  um z.B. eine
Auswahl	ins	Klemmbrett zu kopieren.	Abhilfe: zuerst	^W drcken,	dann sollte
^C und ^V funktionieren

- ist 1stGuide	oder  vielleicht  auch	ein	 anderer  Dateiviewer auf *.GEM
angemeldet,	so fhrt ein Doppelklick  auf  /etc/rc.gem zu einem	Absturz, da
1stGuide nicht berprft, ob  es  sich	auch  wirklich	um ein GEM-Metafile
handelt. Abhilfe: entweder aufpassen  oder	/etc/rc.gem	lschen	oder in	der
Programmdatei init.app patchen oder	abwarten,  bis der Pfad	von	/etc/rc.gem
in init.rsc konfigurierbar ist

- whlt	man	unter N.AES	 einen	Applikationsmeneintrag	mit	gedrckem Alt +
Ctrl an, so	wird die Applikation gekillt.  Das gilt	auch, wenn ein non-root
user eingeloggt	ist. Er	kann ohne Weiteres den root-Proze init.app	killen.
Und SIG_KILL kann nicht abgefangen werden...

- wenn man unter single AES  ohne  WINX  bootet, kann es vorkommen, da die 
AES-Funktion shel_find()  rger  bereitet,  wenn  die Verzeichnisattribute, 
insbesondere das x-Flag, nicht  fr  die  aktuellen  group gesetzt sind. Im 
schlimmsten Fall strzt login.app mit einem bus error ab


trouble shooting:
-----------------

Fehlermeldung              mgliche Ursache
---------------------------------------------------------------------------
Diese Anwendung kann das   login.app/login.rsc nicht gefunden
angegebene Objekt nicht    login shell nicht gefunden
finden.                    gemsh.app/gemsh.rsc nicht gefunden
                           init.app hat init.rsc nicht gefunden
                           init.app hat /etc/ttytab.gem nicht gefunden
                           gemsh.app hat /bin/loginsh nicht gefunden
                           gemsh.app hat den Desktop nicht gefunden

Unbekannter Fehler.        Thing hat seine Resourcedatei nicht gefunden

Durch Signal unterbrochen. der Desktop ist abgestrzt
                           login shell wurde mit ^C abgebrochen
                           ein Terminal hat aufgelegt
                           gemsh wurde per Signal terminiert

Ungltige Funktionsnummer. kein MiNT kompatibles System

Zugriff verweigert.        login shell steht z.B. auf rw-rw-rw
                           Desktop steht z.B. auf --x--x---
                           HOME-Verzeichnis hat falsche Zugriffsrechte

Fehler.                    allgemeiner Fehler, z.B. steht desktop.app oder
                           das TOSRUN-Programm (unter AES 4.x per
                           shel_write() gestartet) auf rw-rw-rw statt
                           rwxrwx--x                              
                           unter AES 4.x ls guest eingeloggt und /bin steht
                           auf drwx------ oder /bin/sh auf rwx------

Der Speicherplatz reicht   kein Speicher fr Resourcedatei
fr diese Anwendung nicht. kein Speicher fr Environmentbuffer

Nicht ausfhrbar.          Datei enthlt keinen Programmcode - entspricht
                           dem berchtigten "TOS-Fehler #35"

Datei nicht gefunden.      siehe unter "Diese Anwendung kann das..."

Kein Verzeichnis.          in ~/.desktop wurde ein Startverzeichnis
                           angegeben, das nicht existiert


thanksgiving:
-------------
Eric R. "MiNT" Smith fr sein grandioses Betriebssystem
Stephen "MINTOS" Usher fr sein MINTOS 1.4.1 und Beantwortung meiner Fragen
Holger "HKLib" Kleinschmidt fr seine wunderbare POSIX-Lib, seine Tips zu
               fork+exec, seine Erluterungen zu UNIX sessions und seine
               Bugreports und Bugfixes und, und, und...
Eric "fcrypt" Young fr seine DES-Routinen
Kay "MintNet" Rmer fr sein MiNTNet und seine Hinweise rund um MiNT und
               MiNTNet
Thomas "TOS2GEM" Binder fr sein TOS2GEM, seine Kritik, Bugreports und
               geduldiges Beantworten meiner zahlreichen Fragen und
               natrlich ganz besonders fr die Weiterentwicklung von Thing
Dirk "POVRay" Klemmt fr seine TOS2GEM Library und fr die Einbindung von
               GEM-init in seine WWW-Seiten
Arno "Thing" Welzel fr seinen tollen MiNT-aware Desktop
Jens "N.AES" Hiescher fr sein tolles AES
Mikael "x.gtp" Lundqvist fr sein x.gtp
Alexander "Closure" Lorenz fr seine Hinweise zum AES-shutdown
Guido "xgemtext()" Flohr fr den Hinweis auf den su-Bug, fr seine Tests
               und Anregungen
Christian "qed" Felsch fr sein Versprechen, die MyDials an prop. AES-     
               Fonts anzupassen und fr qed, der unter N.AES mit prop. AES-               
               Fonts ganz gut luft; Dank auch fr seinen Hinweis zu
               CH_EXIT; und zuletzt auch grten Dank fr seine geniale
               TOSWIN-Modifikation
Uwe "lps" Reder fr seine Erlaubnis lps (das leider nicht mp-safe ist)
               beilegen zu drfen
Thomas "CPXE" Maier fr seine tiefgrndigen bug reports
