Discussion:
Assigns (was: Amiga-Plattform: Wird da noch was entwickelt?)
(zu alt für eine Antwort)
M***@p14.f4001.n248.z2
2004-11-04 00:02:58 UTC
Permalink
Hallo Peter!
Also doch Rechte? ;-)
PH> Ja, aber keine Userverwaltung zur Laufzeit. Die Rechtevergabe wird ja
PH> nur über ein Paar Flags geregelt.

PH> Mit Abgrenzen meine ich, daß es ein Systemverzeichnis geben muß, in dem
PH> _nur_ die Daten/Programme drin sind, die zum originalen System dazu
PH> gehören. Diese Struktur ist dann absolut abzuschotten, z.B. mit einem
PH> Mechanismus wie ENV: und Prefs:ENV-Archive, bei dem Letzteres dann nur
PH> ausgelesen werden dürfte.

PH> Beim Amiga hatte ich das mal so eingerichtet, daß in sys: nur die
PH> OS-Bestandteile waren. Auf work: hatte ich die gleiche Struktur
PH> nochmal, nur für die 3rd-Party-Sachen. Per "assign c: work:c add" und so
PH> weiter hatte ich die dann angehängt. Das war natürlich nur mit
PH> Handarbeit sauber durchzuhalten.

Wenn Du die Reihenfolge der Assigns umgedreht hättest, wäre Deine
Handarbeit erheblich zu reduzieren gewesen.

Bei Dir wäre also anstatt einem

assign c: work:c add

was wegen dem /deinem "add" und dem vorherigen system eigenen Boot
assigns auf ein

assign c: sys:c work:c

hinausläuft, ein:

assign c: work:c sys:c

die vorteilhaftere Wahl gewesen.



Bei mir läuft also zum Beispiel NICHT:

assign libs: sys:libs sys:classes

bzw nicht:

assign libs: sys:libs sys:classes sys:libsnew

sondern:

assign libs: sys:libsnew sys:libs sys:classes

Das "extra" Assign Verzeichnis (hier libsnew) muss also an erster
Stelle stehen und hier auch noch ohne _add_, damit das assign wirklich
neu angelegt, nicht nur ergänzt wird!

Das schöne beim Schreibzugriff auf ein assign ist, das dieser nur in
das erste assignierte Verzeichnis geht! Sorgst Du nun durch die
passende assign Reihenfolge dafür das Dein extra Verzeichniss (hier
libsnew) immer als erstes in der Reihe steht, überschreibt Dir kein
Installer mehr (originale) Libs in sys:libs, sondern legt dir diese
schön brav in libsnew ab!

(Vergleichbares läuft hier hier seit zig Jahren für mehrere System
Verzeichnisse, Fonts/Libs etc.)

Neu installierte Libs (etc) werden aber trotzdem genutzt, da sie beim
Lesezugriff auf das assign (weil zuerst) gefunden werden! Nur ein
nicht extra zu assignierendes Libs Verzeichniss unter Progdir:libs hat
dann richtigerweise dem gegenüber dann immer noch Vorrang!

So und das beste zum Schluss: Hat Dir wieder mal irgend ein mistig
geschriebenes Installscript ungefragt /ungeprüft eine fehlerhafte
(defekte oder eine mit niedriger Versionsnummer als die vorher
vorhandene) Komponente installiert, was bei Standard assignierung
gewöhnlicherweise zum Verlusst der originalen bzw. auch aktuelleren
bereits vorhandenen Komponente wegen Überschreiben führt) brauchst Du
bei Problemen nach der Installation nur mal kurz in die ...new
Verzeinisse zu schauen und dort auftauchende Übeltäter zu entfernen.
Anschliesend landet das System wieder schön bei der immer noch
vorhandenen alten /originalen Komponenten!

Wenn keine Probleme auftauchen, verschiebe ich dann nach einiger Zeit
ab und zu mal zum Beispiel erprobte neue Libs aus libsnew zu libs. So
das in Libs immer nur originale oder hinreichend getestete neuere,
stabile Versionen drine stehen, die mir nun dort wieder kein Installer
mehr ungefragt überschreiben wird!

(Ausser irgend ein Idiot würde irgend wann mal auf die "Idee" kommen,
eine Installeranweisung nicht mehr auf Libs, sondern direkt auf sys:libs
loszulassen. Aber für solche und andere extreme Fehlleistungen von
Soft (und auch Hardware) gibt es ja dann noch Backups, welche beim
Amiga ja immer schon auch durch ein einfaches

Copy SYS: Backup:

(oder alternativ per Drag n Drop auf der Workbench)

erledig bar ist.

Wenn man die Partition Backup möglichst auch noch auf eine andere
Platte legt, ist selbst der totale Crash einer kompletten Platte (mit
allen Partionen) keinerlei Beinbruch. (Bis auf den Kauf einer neuen
Platte und anschliesenden Re-Copy des Backups).

Meine von AOS1.x bis 3.9BB2 _gewachsene_ Amiga System Partition hat
auch dank obiger Massnahmen incl. Backups jedenfalls nicht nur
tausende Installationen von Programmen, mehrere Amiga Rechner, sondern
auch mehrere totale Platten Crash überlebt (erst der einer 10 oder 20
MB RLL, später einer 100MB, dann einer 500MB, zuletzt einer 2GB).
Mein(e) Amiga (Systempartition) (über)lebte so also bereits einiges
mehr als ein dutzend Jahre. Noch jemand mit noch so einem "uralten"
System hier?


So long Mario
Peter Huyoff
2004-11-04 16:15:28 UTC
Permalink
Post by M***@p14.f4001.n248.z2
PH> Beim Amiga hatte ich das mal so eingerichtet, daß in sys: nur die
PH> OS-Bestandteile waren. Auf work: hatte ich die gleiche Struktur
PH> nochmal, nur für die 3rd-Party-Sachen. Per "assign c: work:c add"
und so PH> weiter hatte ich die dann angehängt. Das war natürlich nur
mit PH> Handarbeit sauber durchzuhalten.
Wenn Du die Reihenfolge der Assigns umgedreht hättest, wäre Deine
Handarbeit erheblich zu reduzieren gewesen.
Richtig, aber das ist lange her gewesen und ich habe das auch nicht
durchgehalten.
Post by M***@p14.f4001.n248.z2
assign libs: sys:libs sys:classes
assign libs: sys:libs sys:classes sys:libsnew
assign libs: sys:libsnew sys:libs sys:classes
Das "extra" Assign Verzeichnis (hier libsnew) muss also an erster
Stelle stehen und hier auch noch ohne _add_, damit das assign wirklich
neu angelegt, nicht nur ergänzt wird!
So tief habe ich das nicht mehr analysiert. Es war auch nur als
Illustration für meine Aussage zur Trennung von OS- und anderen Daten
im Dateisystem gemeint. ;^)
Post by M***@p14.f4001.n248.z2
Das schöne beim Schreibzugriff auf ein assign ist, das dieser nur in
das erste assignierte Verzeichnis geht!
Das ist einer der wirklich hilfreichen Tips, die man dann anschließend
wieder vergesst! ;^) Ich sollte mir wirklich mal eine Sammlung
anlegen...
Post by M***@p14.f4001.n248.z2
Sorgst Du nun durch die
passende assign Reihenfolge dafür das Dein extra Verzeichniss (hier
libsnew) immer als erstes in der Reihe steht, überschreibt Dir kein
Installer mehr (originale) Libs in sys:libs, sondern legt dir diese
schön brav in libsnew ab!
Allerdings, aber ist das so wirklich dokumentiert oder nur ein
angenehmer Seiteneffekt?

Grüße, Peter
Gunther Nikl
2004-11-04 17:17:12 UTC
Permalink
Post by Peter Huyoff
Post by M***@p14.f4001.n248.z2
libsnew) immer als erstes in der Reihe steht, überschreibt Dir kein
Installer mehr (originale) Libs in sys:libs, sondern legt dir diese
schön brav in libsnew ab!
Allerdings, aber ist das so wirklich dokumentiert oder nur ein
angenehmer Seiteneffekt?
Das ist so dokumentiert ;-)
Open("libs:datei", MODE_NEWFILE) erzeugt die Datei im ersten Verzeichnis
des Libs-Assigns. Mittels Lock("LIBS":) bekommst Du auch immer nur das
erste(!) Verzeichnis auf das ein Assign zeigt. Wenn Du die Liste
durchwandern willst, muß Du GetDeviceProc verwenden.

Gunther
--
Linux is only free if your time has no value
- Jamie Zawinski
Joerg Kollmann
2004-11-04 17:14:50 UTC
Permalink
Post by M***@p14.f4001.n248.z2
Mein(e) Amiga (Systempartition) (über)lebte so also bereits einiges
mehr als ein dutzend Jahre. Noch jemand mit noch so einem "uralten"
System hier?
So mutig war ich nicht, ich hab mit 2.0 neu angefangen um das ganze
vorher angesammelte Erweiterungsgeruempel loszuwerden und dann nach
und nach geguckt, ob sie unter 2.0 noch noetig waren und ob es fuer
2.0 angepasste Versionen gab. Dafuer hatte ich seit meiner ersten
Festplatte (ca.89/90) noch keinen einzigen Plattencrash.

<Assigns>

Sowas hab ich auf anderen Systemen schon schmerzhaft vermisst, aber
ausser dem Workaround, Pfadaufzaehlungen in Umgebungsvariablen wie
PATH, LIBPATH, MANPATH abzulegen, was natuerlich wesentlich weniger
leistungsfaehig ist, scheint es sowas nirgens zu geben. Nerkwuerdig
dass das von keinem uebernommen wurde.
Das einzige stoerende war, dass diverse Programme eigentlich
ueberfluessige eigene Assigns eingerichtet haben, so daß die Liste
in Requestern immer laenger wurde und Requester (zumindest bis 3.1)
immer gross gezogen werden mussten, statt sich mal die letzte Groesse
zu merken.
--
Joerg
Uwe Seifert
2004-11-05 18:30:10 UTC
Permalink
Post by Joerg Kollmann
<Assigns>
Sowas hab ich auf anderen Systemen schon schmerzhaft vermisst, aber
ausser dem Workaround, Pfadaufzaehlungen in Umgebungsvariablen wie
PATH, LIBPATH, MANPATH abzulegen, was natuerlich wesentlich weniger
leistungsfaehig ist, scheint es sowas nirgens zu geben. Nerkwuerdig
dass das von keinem uebernommen wurde.
Das einzige stoerende war, dass diverse Programme eigentlich
ueberfluessige eigene Assigns eingerichtet haben, so daß die Liste
in Requestern immer laenger wurde und Requester (zumindest bis 3.1)
immer gross gezogen werden mussten, statt sich mal die letzte Groesse
zu merken.
Ich habe einen Großteil der (selten benutzten) Assigns per "DEFER"
zunächst aus den Requestern verbannt. Sie erscheinen dann erst,
nachdem sie das erste mal während einer Sitzung benutzt wurden.
Ist IMHO die einfachste und systemkonformste Lösung. Assign-Wedge
und ähnliche Dinge sind natürlich eine zusätzliche Hilfe.
--
Uwe Seifert

Wirkliche EMail-Adresse: "***@nowhere.invalid", dabei
bitte "nowhere" durch "arcor" und "invalid" durch "de" ersetzen!
Loading...