Strategie für die Zerlegung eines Puppysystems

Message
Author
der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

Strategie für die Zerlegung eines Puppysystems

#1 Post by der-schutzhund »

Hallo liebe Leute,

beim Schmökern in den Beiträgen ist mir mal wieder aufgefallen, dass es hier immer sehr sachlich und höflich zugeht! Da das nicht für jedes Forum gilt, an dieser Stelle zunächst mal ein dickes Lob an alle!!!;-)

Nun zum Thema:
Inzwischen laufen erste Testversion von meinem Pupspuppy (kleiner Scherz) in meinem Technikraum.
Als Basis verwende ich das 4.3.1-de weil es auf der meisten Hardware läuft und auch sonst einen guten Eindruck macht (auch was das Remastern angeht).
Dann: wine, cncsimulator, eine Frässimulation, eine Drehsimulation, Hilfetexte für die Fräs- und Drehsimulation, openoffice 3.2 de, QCAD + Hilfetext
weiterhin habe ich testweise verschiedene Software für den Bereich Elektronik / Programmierung eingebaut.
Inzwischen funktioniert das alles schon recht gut. Die ganze Software kann über Icons auf dem Desktop gestartet werden.

Wenn ich jetzt allerdings die ganzen Programme in ein einziges Puppy einbaue, dann bekomme ich ein Problem, dass der Arbeitsspeicher der Rechner nicht mehr ausreicht. Wie kann ich am einfachsten das Kernpuppy starten und dann evtl. aus einem Menü ein Modul auswählen, mit dem dann gearbeitet werden kann:
Als Beispiel hätte ich dann drei "Module":

1. OpenOffice (allgemein Textbearbeitung + Mindmapping)
2. CADCAM (CAD-Programm und CNC-Programme)
3. Elektronik (Schaltplanerstellung und Programmierung)

Im einfachsten Fall könnte ich natürlich drei verschiedene Pupspuppy machen und die dann im Bootmanager auswählen, aber geht es vielleicht noch anders?

Viele Grüße

Wolfgang

User avatar
RetroTechGuy
Posts: 2947
Joined: Tue 15 Dec 2009, 17:20
Location: USA

Re: Strategie für die Zerlegung eines Puppysystems

#2 Post by RetroTechGuy »

der-schutzhund wrote:Hallo liebe Leute,

beim Schmökern in den Beiträgen ist mir mal wieder aufgefallen, dass es hier immer sehr sachlich und höflich zugeht! Da das nicht für jedes Forum gilt, an dieser Stelle zunächst mal ein dickes Lob an alle!!!;-)

Nun zum Thema:
Inzwischen laufen erste Testversion von meinem Pupspuppy (kleiner Scherz) in meinem Technikraum.
Als Basis verwende ich das 4.3.1-de weil es auf der meisten Hardware läuft und auch sonst einen guten Eindruck macht (auch was das Remastern angeht).
Dann: wine, cncsimulator, eine Frässimulation, eine Drehsimulation, Hilfetexte für die Fräs- und Drehsimulation, openoffice 3.2 de, QCAD + Hilfetext
weiterhin habe ich testweise verschiedene Software für den Bereich Elektronik / Programmierung eingebaut.
Inzwischen funktioniert das alles schon recht gut. Die ganze Software kann über Icons auf dem Desktop gestartet werden.

Wenn ich jetzt allerdings die ganzen Programme in ein einziges Puppy einbaue, dann bekomme ich ein Problem, dass der Arbeitsspeicher der Rechner nicht mehr ausreicht. Wie kann ich am einfachsten das Kernpuppy starten und dann evtl. aus einem Menü ein Modul auswählen, mit dem dann gearbeitet werden kann:
Als Beispiel hätte ich dann drei "Module":

1. OpenOffice (allgemein Textbearbeitung + Mindmapping)
2. CADCAM (CAD-Programm und CNC-Programme)
3. Elektronik (Schaltplanerstellung und Programmierung)

Im einfachsten Fall könnte ich natürlich drei verschiedene Pupspuppy machen und die dann im Bootmanager auswählen, aber geht es vielleicht noch anders?

Viele Grüße

Wolfgang
Hi Wolfgang,

(well, I used babelfish to translate this, as my German is really weak -- but I think I have the gist of your post)

I think what you want is for these packages to be built as .sfs packages (Open Office already exists as such), which can be linked:

http://puppylinux.org/wikka/openoffice

I haven't tried installing Eagle under Puppy, but I always liked it in the past (I used it under Debian):

http://www.cadsoftusa.com/

I suspect that the installation could configured to store the majority of files outside of the pupsave -- it is mostly libraries and scripts taking up space.

What packages have you used? And did you try moving the package outside, and then symbolically link it back into Puppy?
[url=http://murga-linux.com/puppy/viewtopic.php?t=58615]Add swapfile[/url]
[url=http://wellminded.net63.net/]WellMinded Search[/url]
[url=http://puppylinux.us/psearch.html]PuppyLinux.US Search[/url]

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

Re: Strategie für die Zerlegung eines Puppysystems

#3 Post by der-schutzhund »

RetroTechGuy wrote:
der-schutzhund wrote:Hallo liebe Leute,

http://puppylinux.org/wikka/openoffice

I haven't tried installing Eagle under Puppy, but I always liked it in the past (I used it under Debian):

http://www.cadsoftusa.com/

I suspect that the installation could configured to store the majority of files outside of the pupsave -- it is mostly libraries and scripts taking up space.

What packages have you used? And did you try moving the package outside, and then symbolically link it back into Puppy?
Aus dieser Quelle habe ich openoffice als pet installiert!

So weit ich Eagle getestet habe läuft es gut in puppy!
Was meinst du mit package?

Bisher habe ich kein package nach außen verschoben um es dann symbolically zu linken!

oui

#4 Post by oui »

Hallo Wolfgang

Hochinteressant!

ich habe es sofort, als ich es sah, übersetzt und hier in frz. veröffentlicht!

ich war soeben parallel zu Deinen Überlegungen auf ähnliche Feststellungen gekommen als ich hier und hier schrieb (der frz. Aufsatz ist noch neuer): eine Segmentierung wäre von Nöte!

Je nachdem, um welche Programme es sich handelt (Linux-Programme oder Windows-Programme für Wine) würde ich wege sehen:

man kann auslagern:

- Seamonkey (Linux-Version) beispielsweise start auch aus einer anderen Partition!

- Wine-Programme kann man in der /mnt/home-Partition fest abspeichern. Das setzt viel RAM-Kapazität frei!

- OO kann man durch die weniger Hungrige Abiword, Gnumeric, Magic Point (Presentation) und didiwiki-Dokumente (in Puppy) oder Zim-Dokumente (SliTaz) ersetzen.

ausserdem stelle ich beim Suchen für Dich vor einigen Wochen (habe vergessen davon zu sprechen), dass ein grosser Puplet-Meister von Puppy, big_bass, bei allen grossen Diskussionen über Steuerungen und Steuerungstechnik mitmischt! er war der Autor, wenn ich mich genau erinnere, der legendären 'fatfree-Puppies 2.16, 2.17, 3.0 und 3.1' und ist ein der besten Systemkenner von Puppy!

sprich ihn doch an!

wünsche Dir noch mehr Erfolg!

salut

User avatar
RetroTechGuy
Posts: 2947
Joined: Tue 15 Dec 2009, 17:20
Location: USA

Re: Strategie für die Zerlegung eines Puppysystems

#5 Post by RetroTechGuy »

der-schutzhund wrote:
RetroTechGuy wrote:
der-schutzhund wrote:Hallo liebe Leute,

http://puppylinux.org/wikka/openoffice

I haven't tried installing Eagle under Puppy, but I always liked it in the past (I used it under Debian):

http://www.cadsoftusa.com/

I suspect that the installation could configured to store the majority of files outside of the pupsave -- it is mostly libraries and scripts taking up space.

What packages have you used? And did you try moving the package outside, and then symbolically link it back into Puppy?
Aus dieser Quelle habe ich openoffice als pet installiert!
I'm not positive, but I believe that you can alternatively use the .sfs (which doesn't install the package "inside" the pupsave). Though the page doesn't show a German version... Open Office is a HUGE package...
So weit ich Eagle getestet habe läuft es gut in puppy!
Nice, I'll have to try it!
Was meinst du mit package?

Bisher habe ich kein package nach außen verschoben um es dann symbolically zu linken!
You can take large files or folders, which reside inside Puppy, and move them onto another drive, or outside of the pupsave (for example, into /mnt/home/). Then you drag the file or folder back (pretending that you are moving or copying it back), but instead instruct Puppy to symbolically link the file.

In this way. Puppy "thinks" that the file is sitting at the place where the symbolic link resides, but the file(s) are actually sitting elsewhere.

These work much like a "shortcut" under Microsoft Windows (except that they work better).
[url=http://murga-linux.com/puppy/viewtopic.php?t=58615]Add swapfile[/url]
[url=http://wellminded.net63.net/]WellMinded Search[/url]
[url=http://puppylinux.us/psearch.html]PuppyLinux.US Search[/url]

User avatar
RetroTechGuy
Posts: 2947
Joined: Tue 15 Dec 2009, 17:20
Location: USA

#6 Post by RetroTechGuy »

oui wrote: - Seamonkey (Linux-Version) beispielsweise start auch aus einer anderen Partition!
The current Firefox .pet actually installs itself in /mnt/home/ (linking back, or keeping only a few needed files).

http://www.puppylinux.org/wikka/FireFox
- OO kann man durch die weniger Hungrige Abiword, Gnumeric, Magic Point (Presentation) und didiwiki-Dokumente (in Puppy) oder Zim-Dokumente (SliTaz) ersetzen.
I use Gnumeric for most of my spreadsheet operations. It seems to work better than Excel, in some ways (more controls, more stable).

By storing as much as possible outside of my pupsave, my pupsave is still less than 512MB (and I have about 100 MB free inside).
[url=http://murga-linux.com/puppy/viewtopic.php?t=58615]Add swapfile[/url]
[url=http://wellminded.net63.net/]WellMinded Search[/url]
[url=http://puppylinux.us/psearch.html]PuppyLinux.US Search[/url]

emil
Posts: 633
Joined: Tue 10 Nov 2009, 08:36
Location: Austria
Contact:

Zerlegung eines Puppy Systems

#7 Post by emil »

Hallo Wolfgang,

einige Anmerkungen zu Deinem Anliegen ein Puppy zu "zerlegen".

"Pet" Packete kannst Du auch während des "laufende Betriebes" installieren und wieder wegschalten. Das Problem ist meist nur die kleine Pet-Größe und die vielen verschiedenen pets. Mann kann natürlich pet pakete "von Hand" zusammenlegen (*,pet in *.tar.gz umbenennen, entpacken, dann manuell zusammkopieren, die pet information im Verzeichnis editieren, wieder als tar.gz packen und zum Schluss wieder in .pet umbenennen).

Eigentlich ist aber für größere Pakete das "sfs" Format gedacht. Ein sfs zu erstellen ist im Prinzip einfach. Zum Beispiel kannst Du ein Pet Paket wie folgt in ein sfs umwandlen:
Pet umbenennen und entpacken wie oben, dann Package information im Verzeichnis löschen, dann cd .. , mksquashfs Verzeichnis Name.sfs - voila!

Optimal wäre es Wenn du deine Zusatzsoftware in verschiedenen sfs modulen zusammenfassen kannst, dann kannst Du die gewünschten Programmteile über den Bootmanager zu- und wieder wegschalten. Der Nachteil ist, dass dazu immer neu gebootet werden muss. Der Vorteil ist, dass das pupsave file nicht angefüllt wird und normalerweise werden die sfs Module auch nicht gleichzeitig ins Ram geladen wenn der Platz knapp ist.

Vor einiger Zeit gab es zusätzlich dazu einen interessanten Ansatz, Choicepup.
http://puppylinuxnews.org/puplets/choic ... fs-galore/. Ich glaube die letzte Choicepup Version basierte auf Puppy 4.30.

Üblichwerweise werden sfs Module während des bootens im "Layered Filesystem" eingebunden. Choicepup mounted die SFS ausserhalb und erstellt nur "symbolic links" zu allen Files an den originalen Stellen im Verzeichnisbaum. Mit dieser Technik können sfs files theoretisch "on the fly" ein- und ausgeschaltet werden. Wenn du obigem link folgst findest du auch einen "sfs-linker.pet", d.h das sind die choicepup-scripts die du theoretisch auch im Standart puppy 431 verwenden kannst um diese Technik anzuwenden. Ich selbst habe mich zu wenig damit beschäftigt um zu sagen: es funktioniert 100%, aber vielleicht ist es einen Versuch wert.

Falls wirklich ab und zu Speicherkanppheiten auftreten kann eventuell ein vorbeugend angelegtes swapfile helfen http://puppylinux.org/wikka/SwapFile.
Vor kurzem habe ich dazu auch eine kleine GTK application gesehen - swapfile manager: http://www.murga-linux.com/puppy/viewtopic.php?t=58615
Wichtig ist dass swapfiles nur für gelegentliche Probleme, etwa um einen Absturz zu vermeiden, interessant sind, da die Performance doch stark leidet.

Vielleicht bringt auch noch Folgendes eine Verbesserung:
Ich habe vor einiger Zeit ein Puppy mit einem größeren Programmumfang basierend auf 431 remastered. Dabie ist ein bug in der Speicherverwaltung aufgefallen (siehe
http://bkhome.org/blog/?viewDetailed=01408)
Vielleicht hilft es schon etwas wenn Du die originale initrd.gz durch die folgende ersetzt
http://boxen.math.washington.edu/home/e ... /initrd.gz

Ich hoffe es war vielleicht ein brauchbarer Tip dabei, auf jeden Fall viel Glück und
"keep us posted"
Emil

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

Re: Zerlegung eines Puppy Systems

#8 Post by der-schutzhund »

Hallo emil,

sehr interessanter Beitrag!

- pets
Weil ich dabei hauptsächlich an die Arbeit meiner Schüler denke, sind mir die pets zu nah am System. Sie würden vermutlich alles Mögliche deinstallieren und installieren.
Vorteil wäre sicher, dass man damit auch gleich Menüeinträge erzeugen könnte!!

- sfs
Wenn ich es richtig verstanden habe, dann werden damit Verzeichnisse + Dateien installiert. Die automatische Erzeugung von Icons auf dem Desktop ist nicht möglich. Oder ist das falsch?
Diese Starticons muss ich aber auf jeden Fall haben. Die Kinder müssten ja sonst mit dem Dateimanager die ausführbaren Dateien von Hand starten und das geht nicht!

- Choicepup
Wenn ich das alles so richtig verstanden habe, soll hiermit genau das erreicht werden: Verzeichnisse + Dateien installieren und automatisch Starticons erzeugen. Weiterhin die Möglichkeit, alles wieder mit einem Click zu löschen.
Leider bin ich praktisch aber nicht so richtig durchgestiegen. Mit der Standard ISO von choicepup ebenso wie mit dem 4.3.1.de, womit es eigentlich laufen müsste.
Da sind zu viele Pets und mir ist nicht klar, welche man wofür braucht und in 4.3.1.de laden muss.

- bug in der Speicherverwaltung
Muss ich mir noch ansehen...
Mir ist nur aufgefallen, dass nach dem Remastern von 4.3.1-de das Puppybildchen beim Booten nicht mehr angezeigt wird und die Taste F2 das System hängen lässt.

Grundsätzlich gäbe es mehrere mögliche Ansätze:
1. Ansatz mit mehreren .2fs wovon beim Start eine Version ausgewählt wird.

2. Ein komplettes System wird inkl. aller Programme und Starticons zusammengestellt, wobei die dicken Progs. am Ende aber nicht mit remastert werden. Vermutlich müsste man dann diese Dateien noch von Hand auf den Zielrechner in die passenden Verzeichnisse kopiert werden. Evtl. könnte das vermutlich ein Script übernehmen.

3. Ein Ansatz mit dynamischer Einbindung der sfs … wenns funktionieren würde.

Auch dieses Thema könnte ein eigener Bereich in einem deutschen Forum sein...;-)

Grüße Wolfgang

emil wrote:Hallo Wolfgang,

einige Anmerkungen zu Deinem Anliegen ein Puppy zu "zerlegen".

"Pet" Packete kannst Du auch während des "laufende Betriebes" installieren und wieder wegschalten. Das Problem ist meist nur die kleine Pet-Größe und die vielen verschiedenen pets. Mann kann natürlich pet pakete "von Hand" zusammenlegen (*,pet in *.tar.gz umbenennen, entpacken, dann manuell zusammkopieren, die pet information im Verzeichnis editieren, wieder als tar.gz packen und zum Schluss wieder in .pet umbenennen).

Eigentlich ist aber für größere Pakete das "sfs" Format gedacht. Ein sfs zu erstellen ist im Prinzip einfach. Zum Beispiel kannst Du ein Pet Paket wie folgt in ein sfs umwandlen:
Pet umbenennen und entpacken wie oben, dann Package information im Verzeichnis löschen, dann cd .. , mksquashfs Verzeichnis Name.sfs - voila!

Optimal wäre es Wenn du deine Zusatzsoftware in verschiedenen sfs modulen zusammenfassen kannst, dann kannst Du die gewünschten Programmteile über den Bootmanager zu- und wieder wegschalten. Der Nachteil ist, dass dazu immer neu gebootet werden muss. Der Vorteil ist, dass das pupsave file nicht angefüllt wird und normalerweise werden die sfs Module auch nicht gleichzeitig ins Ram geladen wenn der Platz knapp ist.

Vor einiger Zeit gab es zusätzlich dazu einen interessanten Ansatz, Choicepup.
http://puppylinuxnews.org/puplets/choic ... fs-galore/. Ich glaube die letzte Choicepup Version basierte auf Puppy 4.30.

Üblichwerweise werden sfs Module während des bootens im "Layered Filesystem" eingebunden. Choicepup mounted die SFS ausserhalb und erstellt nur "symbolic links" zu allen Files an den originalen Stellen im Verzeichnisbaum. Mit dieser Technik können sfs files theoretisch "on the fly" ein- und ausgeschaltet werden. Wenn du obigem link folgst findest du auch einen "sfs-linker.pet", d.h das sind die choicepup-scripts die du theoretisch auch im Standart puppy 431 verwenden kannst um diese Technik anzuwenden. Ich selbst habe mich zu wenig damit beschäftigt um zu sagen: es funktioniert 100%, aber vielleicht ist es einen Versuch wert.

Falls wirklich ab und zu Speicherkanppheiten auftreten kann eventuell ein vorbeugend angelegtes swapfile helfen http://puppylinux.org/wikka/SwapFile.
Vor kurzem habe ich dazu auch eine kleine GTK application gesehen - swapfile manager: http://www.murga-linux.com/puppy/viewtopic.php?t=58615
Wichtig ist dass swapfiles nur für gelegentliche Probleme, etwa um einen Absturz zu vermeiden, interessant sind, da die Performance doch stark leidet.

Vielleicht bringt auch noch Folgendes eine Verbesserung:
Ich habe vor einiger Zeit ein Puppy mit einem größeren Programmumfang basierend auf 431 remastered. Dabie ist ein bug in der Speicherverwaltung aufgefallen (siehe
http://bkhome.org/blog/?viewDetailed=01408)
Vielleicht hilft es schon etwas wenn Du die originale initrd.gz durch die folgende ersetzt
http://boxen.math.washington.edu/home/e ... /initrd.gz

Ich hoffe es war vielleicht ein brauchbarer Tip dabei, auf jeden Fall viel Glück und
"keep us posted"
Emil

emil
Posts: 633
Joined: Tue 10 Nov 2009, 08:36
Location: Austria
Contact:

Zerlegung, Packete und Icons

#9 Post by emil »

Hallo Wolfgang,

es gibt sowohl bei Pets als auch bei sfs die Möglichkeit Desktop Icons und Menüeinträge zu generieren. Im inneren Aufbau sind die beiden Formate auch nicht so unterschiedlich. Der Hauptunterschied ist die Art der Datenkomprimierung und wie die Dateien während des Bootvorgangs in das "layered Filesystem"* eingebunden werden.

Ich würde dir vorschlagen zum Experimentieren einmal jeweils ein pet und ein sfs Paket zu entpacken. Dazu ist es empfehlenswert direkt auf der Festplatte, also z.B auf /mnt/home oder /mnt/sda1 zu arbeiten, da ansonsten das Pupsavefile sehr schnell angefüllt wird (bei frugal install). Falls man im Verzeichnis eines Pets (z.b. Pet-Name.pet) ein Terminal öffnet kann man das mit folgenden Befehlen durchführen:

Code: Select all

cp Pet-Name.pet /mnt/home
cd /mnt/home
pet2tgz Pet-Name.pet                 
tar xzfv Pet-Name.tar.gz              
cd Pet-Name                             
ls -l -a 


Man befindet sich nun im "Pet-Stammverzeichnis" (/mnt/home/Pet-Name)und sieht den Verzeichnisbaum der Paket Datei, zusätzlich noch ein File pet.specs (dieses kann man mit einem Texteditor anschauen, es enthält ganz grundlegende Informationen die z.B. vom Puppy Packetmanager verwendet werden). Zusätzlich könnten im Stammverzeichnis auch noch ein Install bzw Deinstall script vorhanden sein (sehr viele Pakete kommen aber ohne solche Scripte aus).
Wichtig ist, dass beim Installieren des pets die Files ausgehend vom "/ Verzeichnis" genauso in den Verzeichnisbaum "gemounted" werden wie im pet (ausgehend vom Pet-Stammverzeichnis) vorgegeben. Zum Beispiel findet sich /mnt/home/Pet-Name/bin/executable später einfach unter /bin/executable.

Nun führen wir das gleiche mit eine sfs Paket durch. Im Gegensatz zum gz Format ist sfs ein komprimiertes Filesystem, d.h. Puppy Linux kann sfs files auch unabhängig vom Bootmanager mounten. Wir verwenden das Entwicklungspaket devx_431.sfs als Beispiel. Falls du es noch nicht im Bootmanager eingebunden hast kannst du ganz einfach auf das File klicken. Es müsste sich ein ROX Fenster öffnen mit dem Inhalt des sfs Files. Wenn man aber hier direkt etwas zu ändern versucht kommt eine Fehlermeldung (Error:read only Filesystem) - ganz klar, das sfs paket wird für die Änderung nicht aufgeschnürt! Man kann aber ein Arbeitsverzeichnis machen (in /mnt/home ein neues Verzeichnis devx_431 erstellen, alle Dateien und Folder im sfs Verzeichnis markieren und hinüberkopieren. Das Gleiche erreicht man alternativ mit dem Befehl unsquashfs, also wieder mittels Komandozeile:

Code: Select all

cp devx_431.sfs /mnt/home
unsquashfs devx_431.sfs
cd squashfs-root
ls -l -a
Ist bei unsquashfs nur 1 Parameter (Filename) angegeben so wird ein sfs-Stammverzeichnis mit Standartnamen squashfs-root erstellt. Wir hätten hier auch einen eigenen Verzeichnisnamen (mittels Kommandozeilenoption -d und einem 2. Parameter) angeben können.

In den Verzeichnissen kann nun der Inhalt der Pakete geändert werden. Vor allem können nicht benötigte Teile gelöscht werden (z.b. Dokumentation oder Sprachpakete, Header/Entwicklungsdateien). Man kann aber auch zum Beispiel 2 Pakete vereinigen, indem man die entsprechenden Verzeichnisse zusammenkopiert ("merge"). Einen Beitrag zu Menüeinträgen und Desktopicons will ich noch folgen lassen, aber im Prinzip geht es auch hier nur um Files die im Paket hinzugefügt werden (oder geändert werden).

Um wieder ein Pet file mit den durchgeführten Änderungen zu erstellen genügt es den dir2pet script zu starten, für den Anfang kann man bei den Fragen Return zu drücken. (Achtung: falls man das alte Pet nicht überschreiben will sollte man vorher das Verzeichnis umbenennen z.B. in Neuer-Pet-Name)

Code: Select all

cd /mnt/home
mv Pet-Name Neuer-Pet-Name
dir2pet Neuer-Pet-Name
Das sfs-verzeichnis kann mit den folgenden Befehlen neu gepackt werden:

Code: Select all

cd /mnt/home
mksquashfs squashfs-root devx_431_neu.sfs
Nehmen wir an wir wollen das Pet in ein sfs umwandlen so würden wir folgendermaßen vorgehen:

Code: Select all

cd /mnt/home/Neuer-Pet-Name
rm pet.specs
cd ..
mksquashfs Neuer-Pet-Name Neuer-Pet-Name.sfs
Ich möchte hier noch anmerken, dass das Hauptfile eines Puppy Linux Systems ebenfalls ein sfs File ist. Im Falle von Version 4.31 glaube ich pup-431.sfs. Um eine eigene Puppy zu "remastern" kann man dieses File nach oben genannter Methode entpacken, die Änderungen gezielt durchführen und dann wieder neu einpacken - dies ist meine bevorzugte Methode gegenüber den verschiedenen "remasterscripts" falls nur einige kleine Änderungen zu machen sind.

Die grundlegenden Techniken zum Auf- und Zuschnüren von Puppy Paketen habe ich damit erklärt (hoffentlich verständlich und nicht zu weitschweifig). Weitere Informationen (english) gibt es zum Beispiel von Technosaurus hier.

Emil


* How puppy works, vor allem Architecture Overview über das mehrlagige Filesystem ist empfehlenswert:
Last edited by emil on Sun 07 Nov 2010, 20:21, edited 1 time in total.

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#10 Post by der-schutzhund »

Hallo emil,

besten Dank für die Doku zum Thema!
Vielleicht kannst du das zur Erzeugung von Starticons sowie Deinstallation noch nachschieben;-)

Wenn es um das Einrichten der PCs in meinem PC-Raum geht, dann
ist mir jetzt schon einiges klar geworten.

Ein Puppy mit allen Programmen zusammenstellen, wobei möglichst viele Teile im Bereich mnt/home/meinprog eingebaut werden und Starticon auf dem desktop erzeugen
Remastern und LiveCD erstellen. Die Inhalte von mnt/home/meinprog auf eine weitere CD gebrannt.
Dann zunächst auf dem ZielPC das Kernsystem installieren und anschließend die zusätzlichen Verzeichnisse in die gleichen Verzeichnisse im Zielsystem kopieren.

Man könnte doch aber auch von Hand diese Dateien beim Remastern mit einbinden. Dann würde das ISO viel größer werden aber der erforderliche RAM dürfte sich dadurch doch eigentlich nicht erhöhen und man könnte sich viel Handarbeit bei der Installation ersparen.

Wie ist das eigentlich mit dem Ram.
Auf meinem aktuellen Notebook sind 2GB vorhanden. Starte ich mit pfix=ram dann wird bei 4.3.1-de unten ein freier Speicher von 2014 MB angezeigt. Lasse ich dann eine persönliche Speicherdatei erzeugen wird nach dem Neustart nur noch ca. 500 MB angezeigt. Der vorhandene Ram wird doch wohl drotzdem noch voll genutzt oder?

Noch eine Frage:
Hast du eine Ahnung wie viel Ram man für die 431-de braucht damit es flüssig läuft? Mit 96MB Ram läuft es sogar mit einigen nachträglich installierten Programmen aber besonders schnell ist das System nicht. Habe zusätzlich noch ein Swap von 98 MB eingerichtet. Hat nur nichts gebracht.
Der PC hat eine 2,5GB HD mit FAT32 und einen Pentium Proz..

Grüße Wolfgang

emil
Posts: 633
Joined: Tue 10 Nov 2009, 08:36
Location: Austria
Contact:

schnelle Antwort

#11 Post by emil »

Hallo Wolfgang,

zum 2 GB notebook:
Das ist ein häufiges Missverständnis der "freien Speicheranzeige". Ohne Safefile wird der freie Ram angezeigt, mit Safefile der restliche Platz im Safefile.
Falls Du unter Utility (Werkzeuge) Persönliche Sicherungsdatei erweitern wählst sollte der angezeigte freie Speicher sich dementsprechend erhöhen.

Eine Aufstellung über das wirklich freie Ram erhältst du z.B über den Kommandozeilenbefehl "free".

zum 96 MB Computer:
96 MB erscheint mir wirklich minimal, ich habe auch keine Erfahrung mit so kleinen Speichern. Beim hochfahren checkt puppy aber den verfügbaren Speicher, falls nicht genügend Platz ist wird z.b. trotz pfix=ram oder pfix=copy nicht alles auf einmal in den Speicher geladen. Durch die notwendigen Zugriffe wird es dann natürlich langsam. Eine Regel für swapspace besagt dass er ca 1 bis 2 mal so groß sein soll wie das installierte Ram, aber kann man sich 96 MB ram nicht z.B 256 MB swapspace gönnen?

Zum deiner Strategie:
Ich würde es einmal mit einem Kernsystem und dann 2 bis 3 weiteren sfs files versuchen (ruhig auch mal alle gemeinsam eingebunden). Ich könnte mir vorstellen dass es funktioniert - natürlich nur wenn die PCs etwas mehr als 96 MB haben.

Menüpunkte und Desktopicons werde ich noch nachschieben, leider schreibe ich schon wieder zu weitschweifig und dann daurts halt...
Emil

emil
Posts: 633
Joined: Tue 10 Nov 2009, 08:36
Location: Austria
Contact:

Zerlegung; Pakete und Icons

#12 Post by emil »

Servus Wolfgang,

im zweiten Teil will ich Deine Fragen nach Menüeinträgen behandeln (zu den Desktopicons wird es noch einen 3. Teil geben). Nun muss ich gleich bekennen, dass ich auf diesen Gebieten kein Experte bin, aber da ich mich in letzter Zeit damit beschäftigt habe will ich meine Erkenntnisse teilen. Meines Wissens gibt es darüber auch kein wirklich umfassendes HOWTO, auch nicht im englischen Forum. Ich habe mir die folgenden Informationen also Stück für Stück zusammentragen müssen.

Grundsätzlich erscheint das Thema am Anfang auch deshalb so unzugänglich, da das System für das Menü zahlreiche Files benutzt die auch noch an unterschiedlichen Orten "verstreut" abgespeichert sind. Zusätzlich sind bei den verschiedenen Puppy Versionen auch verschiedene "Window Manager" im Einsatz, d.h. hier kann es noch einmal Unterschiede geben. Ich spreche im Folgenden über meine Erfahrungen mit JWM, einige Dinge können im deutschen Puppy von deapsea daher abweichen.

Ich beginne mit einer kurzen Übersicht über die hauptsächlich benutzten Verzeichnisse. Die relevanten Files sind entweder einfache Textfiles oder im XML Format geschrieben - diese kann man am besten mit Geany anschauen oder bearbeiten (als Textfile öffnen). Für die Icons ist mpaint am Besten geeignet:

etc/xdg/templates
etc/xdg/menus

Hier befinden sich xml Dateien welche die Menüstruktur festlegen

usr/share/applications
usr/share/desktop-directories

Hier befinden sich Dateien welche den einzelnen Anwendungen zugeordnet sind und die Anwendungen mit der Menüstruktur sowie den Icons verknüpfen

usr/share/pixmaps
usr/local/lib/X11/mini-icons
usr/local/lib/X11/pixmaps

Hier befinden sich die Grafiken für die Icons

Ich versuche zuerst kurz das Prinzip zu erklären und dann einige Anwendungsbeispiele zu geben. Da das Thema komplex ist rate ich zum Verständnis im eigenen Puppy System mitzuschauen und die genannten Files zu öffnen. Zusätzlich ist es vielleicht nützlich die Struktur auf einem Blatt Papier zu skizzieren.

Menüstruktur

Das Menüstruktur wird durch eine Verknüpfung verschiedener Files erzeugt. Es entsteht eine "Art" Baumstruktur. Die Wurzel dieses Baumes ist:
/etc/xdg/templates/_root_.jwmrc
Das ist das Basic Template für die File Struktur. Darin finden sich sie folgenden Zeilen (Ausschnitt):

Code: Select all

...
<RootMenu label="Menu" labeled="false" height="24" onroot="3">

PUPPYMENU jwm-xdgmenu /etc/xdg/menus/puppy-desktop.menu
PUPPYMENU jwm-xdgmenu /etc/xdg/menus/puppy-system.menu
PUPPYMENU jwm-xdgmenu /etc/xdg/menus/puppy-setup.menu
...
Es werden also hier eine Reihe von .menu Files eingebunden, z.B: /etc/xdg/menus/puppy-desktop.menu. In diesen Files finden sich die weitere Menüstruktur beschrieben, im Falle von puppy-desktop.menu (Ausschnitt)

Code: Select all

 ...
  <Menu>
    <Name>DesktopSettings</Name>
    <Directory>Puppy-DesktopSettings.directory</Directory>
    <Include>
      <Category>X-Desktop</Category>
      <Category>DesktopSettings</Category>
      <Category>Screensaver</Category>
      <Category>Accessibility</Category>
    </Include>
  </Menu>

  <Menu>
    <Name>DesktopCountry</Name>
    <Directory>Puppy-DesktopCountry.directory</Directory>
    <Include>
      <Category>X-DesktopCountry</Category>
    </Include>
  </Menu>
...
<Menu> definiert einen Menüeintrag mit internem <Name>. Wichtig sind die Zeilen mit <Directory> und <Category>, sie stellen weitere Verknüpfungen zu Files im Bereich /usr/share her.

<Directory> beschreibt wie der Eintrag im Menü tatsächlich auf dem Bildschirm erscheinen soll. Diese Informationen sind im Verzeichnis /usr/share/desktop-directories gespeichert. Für jeden Menüeintrag sollte hier ein File mit der Endung .desktop vorhanden sein. Puppy-DesktopSettings.directory sieht z.B: so aus:

Code: Select all

[Desktop Entry]
Encoding=UTF-8
Name=Desktop Settings
Name[de]=Desktop Einstellungen
Icon=mini.window3d.xpm
Type=Directory
Man beachte das es hier möglich ist verschiedene Spracheinstellungen zu berücksichtigen.

<Category> bestimmt welche Anwendungen unter diesem Menüpunkt angezeigt werden. Und zwar haben alle Programme die im Menü aufscheinen sollen ein eigenes File im Folder /usr/share/applications mit der Endung .desktop, z.B wallpaper.desktop:

Code: Select all

[Desktop Entry]
Encoding=UTF-8
Name=Wallpaper setter
Name[de]=Hintergrundbild setzen
Name[es]=Selector de Fondo de Pantalla Nathan
Icon=wallpaper.png
Comment=Set backdrop image
Exec=wallpaper
Terminal=false
Type=Application
Categories=DesktopSettings
GenericName=Wallpaper setter
Es ist eigentlich klar was die einzelnen Eintragungen bedeuten. Name erscheint als Text im Menü, man beachte wieder die Möglichkeit für verschieden Spracheinstellungen, Icon wählt ein Grafikfile in einem der möglichen Ordner. Exec gibt an welches Program gestartet wird. Und besonders wichtig: Categories sorgt dafür, dass dieser Eintrag bei allen Menüpunkten erscheint wo dieser Eintrag mit einer <Category> im .menu File übereinstimmt.

Die gesamte Menüstruktur die durch all diese verschiedenen Files vorgegeben ist wird durch den Befehl fixmenus in das file /root/.jwmrc übertragen. Wenn man mit dem ursprünglichen Template (etc/xdg/templates/_root_.jwmrc) vergleicht, sieht man wie Schritt für Schritt aus den verschiedenen Informationen das endgültige Menü zusammengesetzt wird. Sehen kann man den Eintrag dann allerdings immer noch nicht, dazu ist es nötig den Windowmanager neu zu starten mit jwm -restart. Diese Sequenz (fixmenus, jwm -restart) wird z.b. auch vom Puppy Packegemanager immer ausgeführt, deshalb flackert der Bildschirm kurz.

Ob es vielleicht auch weniger kompliziert ginge? Wahrscheinlich, aber nach einiger Zeit findet man sich ganz gut zurecht und das System ist recht flexibel. Es ist z.B. sehr einfach Programm hinzuzufügen oder wegzunehmen, es müssen nur die .desktop Files in /usr/share/applications erzeugt oder gelöscht werden. Die restliche Struktur bleibt davon völlig unberührt.

Führt man den dir2pet script aus hat man die Möglichkeit einen Menüeintrag zu erzeugen. Im Prinzip wird hier nur ein die Menüstruktur /usr/share/applications und ein .desktop File für das Programm erzeugt. D.h man kann einen solchen Menüeintrag auch selbst herstellen, natürlich auch in einem sfs File. Am einfachsten ist es wenn man als Vorlage ein bestehendes .desktop file editiert.

Beispiele:
Wichtig beim Probieren ist, dass man nicht auf die Befehlsequenz fixmenus, jwm -restart vergisst, da man sonst die Änderungen im menü nicht sehen kann. Ausserdem muss man genau auf die Rechtschreibung achten, sonst werden die Einträge nicht zugeordnet.

Beispiel 1: Ein Programm im Menu hinzufügen
wir wollen z.b, dass fixmenus im Desktop Menü erscheint. Fixmenus ist in /usr/sbin, wird also gefunden, aber das Programm hat noch keinen Eintrag in /usr/share/applications. Wir nehmen daher ein Programm als Vorlage das in diesem Menüpunkt aufscheint (z.p wallpaper.desktop) und editieren, z.B:

Code: Select all

[Desktop Entry]
Encoding=UTF-8
Name=Fix Menus
Icon=setup48.png
Exec=fixmenus
Terminal=false
Type=Application
Categories=DesktopSettings
GenericName=Fix Menus
Und speichern als /usr/share/applications/fixmenus.desktop
Um den Eintrag zu sehen müssen wir noch im Terminal fixmenus eingeben - Leider ändert sich im Menu immer noch nichts, man muss zuerst mit jwm -restart den Window manager neu starten - das ist unpraktisch.

Um wirklich einen brauchbaren Menüpunkt zu haben kann man etwa folgenden scrip schreiben:

Code: Select all

#!/bin/sh
fixmenus
jwm -restart
und unter /usr/bin/really_fixmenus abspeichern (Eigenschaften auf ausführbar setzen). Natürlich muss in fixemenus.desktop noch auf Exec=really_fixmenus ändern.
Nun sollte man einen brauchbaren Menüeintrag haben bei dem auf Knopfdruck das Menü aktualisiert wird.


Beispiel 2: Einen neuen Menüpunkt "Schule" anlegen
Dazu editiert man das template _root_.jwmrc (mit Geany öffnen) und fügt folgende Zeile ein (nach <Seperator/>)

Code: Select all

PUPPYMENU jwm-xdgmenu /etc/xdg/menus/puppy-schule.menu
natürlich fehlt dieses .menu file noch, am besten man öffnet die Vorlage /etc/xdg/menus/puppy-SKELETON.menu und editiert es z.B so:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xfdesktop-menu PUBLIC "-//freedesktop//DTD Menu 0.8//EN" "http://www.freedesktop.org/standards/menu-spec/menu-0.8.dtd">
<Menu>
  <Name>Schule</Name>
  <DefaultAppDirs/>
  <DefaultDirectoryDirs/>
  <AppDir>/opt/kde/share/applications/kde</AppDir>
  <Directory>Puppy-Schule.directory</Directory>
  <Include>
    <Category>Schule</Category>
  </Include>
</Menu>
und speichert es unter Puppy-schule.menu.

Nun fehlt noch das entsprechende .directory file. Wir erstellen /usr/share/desktop-directories/Puppy-Schule.directory, etwa folgendermaßen:

Code: Select all

[Desktop Entry]
Encoding=UTF-8
Name=Schule 
Icon=draw24.png
Type=Directory
Nun fehlen nur noch die Programme dafür. Ein Taschenrechner wäre z.B. nicht schlecht. Also ändern wir im File /usr/share/applications/Xcalc-scie...calculator.desktop in der Zeile

Code: Select all

Categories=Calculator
auf

Code: Select all

Categories=Calculator;Schule
!!! wichtig kein Leerzeichen hinter dem ;

Nun müsste dieser Taschenrechner 2 mal im Menü zu finden sein, einmal unter Schule und einmal unter der ursprünglichen Eintragung.

Beispiel 3: Einen Menüeintrag in einem Pet oder sfs File hinzufügen
Nach dem oben genannten Beispielen ist das einfach - in das Paket stammverzeichnis ein /usr/share/applications/programmname.desktop hinzufügen und auf die gewünschte Kategorie achten.

Beispiel 3: Die Menüstruktur in einem Pet oder sfs File ändern
Hier spekuliere ich jetzt ein wenig da ich das noch nicht ausprobiert habe. Ich glaube das die obige Methode mit geänderten Files in der Verzeichnisstruktur der Pakete nicht funktioniert.
Bei sfs-paketen haben geänderte Files keine Auswirkung, da meines Wissens die sfs die unterste schicht des "layered" Filesystems darstellen und von den darüberliegenden originalen Files in der pup-431.sfs einfach überschrieben werden.
Bei pet paketen ist die Anwendung noch problematischer. Das Safefile liegt über der pup-431.sfs, eine geänderte Menüstruktur kann zwar installiert werden, wird das pet jedoch deinstalliert bleiben die Löscheinträge bestehen und die originalen Menüfiles sind "ausmarkiert". Das Menü funktioniert nicht mehr.

Eine Möglichkeit wäre mit install- und uninstallscripten zu arbeiten. Habe ich aber noch nie gemacht. Da man bei Desktopicons etwas ähnliches benötigt spare ich mir einen Versuch für den 3.Teil auf.

Falls jemand wissen sollte wie sowas richtig gemacht wird - wäre sehr interessant ...

emil

emil
Posts: 633
Joined: Tue 10 Nov 2009, 08:36
Location: Austria
Contact:

Zerlegung; Pakete und Icons

#13 Post by emil »

Hallo,

ich muss mich ein wenig kürzer fassen, Sonntag. Im deutschen Puppy wird alles was sich in /root/Desktop befindet als icon angezeigt. (Ich glaube Icewm und Xfce)

Will man nun z.B. für das Openoffice oo320 .. sfs ein desktop Icon miterzeugen kann man folgendermaßen vorgehen. sfs entpacken, dann das File
/squashfs-root/opt/openoffice.org3/program/swriter nach /squashfs/root/Desktop
kopieren.
Damit haben wir einen Desktopeintrag, allerdings ist noch kein schönes Grafikicon verknüpft. Am einfachsten erstellen wir für swriter wieder ein swriter.desktop fil in /usr/share/application, z.B. so

Code: Select all

[Desktop Entry]
Version=1.0
Terminal=false
Icon=openofficeorg3-writer
Type=Application
Categories=None
Exec=openoffice.org3 -writer %U
MimeType=application
Name=OpenOffice.org 3.2 Writer
GenericName=Word Processor
analog kann man für scalc, simpress etc vorgehen.
dann wieder mksquafs squashfs-root oo320_batched_de.sfs

jetzt müsste es Desktopicons für Open Office geben.
Ähnlich für Pets

Anmerkungen zu JWM:
Für JWM/Rox befinden sich die Angaben Bildschirmicons im Folder

/root/Choices/Rox-Filer

Dabei ist PuppyPin für die Position und die Beschriftung zuständig.
globicons stellt die Verknüfung zwischen Icon-Grafik und Answendung her.

Wenn man ein Puppy remastered funktioniert es ganz gut wenn man diese Dateien von Hand editiert.

sfs und pets die eigene Desktop icons erzeugen wollen müssten sich in diese Dateien eintragen. Für sfs habe ich gelesen das eventuell vorhanden PuppyPin automatisch "gemerged" werden, aber ich bin mir nicht sicher ob das noch so funktioniert:

Allerdings habe ich einen alten thread gefunden indem MU eine Lösung präsentiert wie icons zum desktop hinzufügt werden können(mittels XML Befehlen für ROX).

http://www.murga-linux.com/puppy/viewtopic.php?t=46875

Wenn man solchen code mittels pinstall.sh ausführt, müssten in Rox icons erzeugt werden. dann brächte man nur noch eine script zum entfernen der icons für den script puinstall.sh

Emil

eastler_dart
Posts: 32
Joined: Wed 11 Feb 2009, 19:43

#14 Post by eastler_dart »

Hm.

der Thread ist zwar wahnsinnig interessant, aber...

Die Problemstellung heißt doch:
der Zielrechner hat ne 2,5GB-Platte
wie krieg ich das System dort drauf

Der einfachste Weg ist dabei doch, ein Grundsystem zu
erstellen, ganz normal, eine Speicherdatei dazu erstellen,
neu starten, daß sie erstellt wird,
auf Menü-Tools-Speicherdatei vergrößern gehen,
im Text wird angegeben, wieviel Platz noch frei ist,
die Speicherdatei entsprechend vergrößern, bis es
paßt. Sollte das nicht auf einmal gehen, eben mehrmals
neu starten und wiederum die Speicherdatei vergrößern.

Gegenkonrolle wäre, die Puppy-sfs und die Daten.2fs zusammen
sollten annähernd die 2,5GB der Zielplatte haben.
(ggf. abzüglich angelegter Swap-Partition)

Und nun dieses System booten, alles reinspielen, was gebraucht wird,
danach die beiden Dateien auf Zielrechner kopieren
(und zusätzlich sichern - DVD-Brennen?)

Wenns jetzt nicht ausreicht, ist sowieso alles verloren.
Die Festplatte des Zielrechners ist voll. Da ist kein Platz
für andere sfs-Dateien, auch in /mnt/home ist nix mehr frei.

Hoffe, daß ich alles richtig verstanden hatte und meine Tips
weiter helfen

Eastler

deepsea
Posts: 154
Joined: Sat 17 Jan 2009, 21:51
Location: Deutschland

#15 Post by deepsea »

Moin Zusammen
ersmal Danke an emil für seine ausführliche Beschreibung :wink:

Sie gilt auch für den Xfce4 Desktop mit 2 Ausnahmen.
1 Die Menue Beschreibungs Datei ist /etc/xdg/menus/xfce-applications.menu
2 Restart vom X-Server und damit Xfce4 ist nur notwendig wenn man diese Datei anpasst.
Bei zusätzlichen Einträgen im ordner /usr/share/applications wird automatisch aktualisiert.
der-schutzhund wrote: Wenn ich jetzt allerdings die ganzen Programme in ein einziges Puppy einbaue, dann bekomme ich ein Problem, dass der Arbeitsspeicher der Rechner nicht mehr ausreicht. Wie kann ich am einfachsten das Kernpuppy starten und dann evtl. aus einem Menü ein Modul auswählen, mit dem dann gearbeitet werden kann:
Als Beispiel hätte ich dann drei "Module":

1. OpenOffice (allgemein Textbearbeitung + Mindmapping)
2. CADCAM (CAD-Programm und CNC-Programme)
3. Elektronik (Schaltplanerstellung und Programmierung)
Als Anmerkung hast du schon mal den SFS-Linker von hier ausprobiert.
Wenn du 1. 2. und 3 als sfs hast wäre dass ja wohl genau das was du brauchst. :?:

emil
Posts: 633
Joined: Tue 10 Nov 2009, 08:36
Location: Austria
Contact:

Strategie ...

#16 Post by emil »

Hallo,

ich glaube der von deapsea vorgeschlagene Lösungsweg über sfs und sfslinker ist die richtige Strategie für Wolfgang.
@eastler_dart
Falls ich das mit den Paketen, Menüeinträgen und Icons zu langatmig erklärt habe möcht ich mich entschuldigen, ich wollte nur die Grundlagen schaffen, dass man die Pakete und sfs dann auch bearbeiten und geeignet zusammenkopieren kann. Das mit den Menüs und Icons entstand auf folgende Frage von Wolfgang:
- sfs
Wenn ich es richtig verstanden habe, dann werden damit Verzeichnisse + Dateien installiert. Die automatische Erzeugung von Icons auf dem Desktop ist nicht möglich. Oder ist das falsch?
Diese Starticons muss ich aber auf jeden Fall haben. Die Kinder müssten ja sonst mit dem Dateimanager die ausführbaren Dateien von Hand starten und das geht nicht!
Noch eine Idee dazu - bei den Starticons und allen kritischen Teilen evtl. vor dem einpacken die Schreibberechtigung wegnehmen, damit sie nicht unbeabsichtigt gelöscht oder verändert werden können.

Zur Art der Speicher Nutzung: Bei sehr vielen Zusatzprogrammen ist die Installation ins Safefile nicht effizient, da dort die Programme unkomprimiert abgespeichert sind und viel Platz brauchen. Als sfs sind die gleichen Programme in einem komprimierten Dateisystem gepackt. Deshalb die Faustregel: kleine Pakete -> pet, große Pakete -> sfs.

Beispiel: sage (Mathematikpaket) hat ungepackt ca 1.8 GB. Als sfs braucht es nur 480 MB.

emil

eastler_dart
Posts: 32
Joined: Wed 11 Feb 2009, 19:43

#17 Post by eastler_dart »

Hallo alle

@speicherplatzbedarf sfs - 2fs

Würde mich mal interessieren, wie sich das technisch verhält.
Wenn ich Pakete normal installiere, landen diese in der
Daten.2fs. War immer der Meinung, diese ist ebenfalls
gepackt wie die sfs, damit würde also auf der Festplatte
immer der gleiche Platz verbraucht, egal ob Haupt.sfs,
Zusatzs.sfs oder Daten.2fs :roll:
Entsprechend wäre dann ein Auslagern auf /mnt/home
Festplattenplatzverschwendung, da dort nicht gepackt wird.

Und so hatte ich immer angenommen, es ist für den
Festplattenplatz wurscht, ob in der Hauptdatei,
in einer Zusatz.sfs oder on der Daten.2fs gespeichert wird.

Beim Aufruf/Start von Progs landen diese und deren Daten
sowieso ungepackt im Ram, oder??? :roll:
Damit wäre es auch für den Programmablauf immer das
Gleiche, egal woher die Daten kommmen (sfs/2fs),
die ungepackte Größe ist der Arbeitsspeicherbedarf
(klar zuzüglich der zu bearbeitenden Daten) ??? :roll:

Wie ist das eigentlich, beim boot ins Ram?
Nehme an, die Haupt.sfs plus Daten.2fs stehen am Ende
ungepack im Ram, ist das so?
Oder werden die kompletten sfs und 2fs als solche ins Ram
kopiert und im Ram ebenfalls gepackt behandelt,
was ja bedeuten würde, es stehen sfs+2fs im Ram
plus grad gebrauchte Daten/Programm nochmal ungepackt
zum Ausführen??

Weiß da jemand genaueres?

Eastler

emil
Posts: 633
Joined: Tue 10 Nov 2009, 08:36
Location: Austria
Contact:

Filesysteme

#18 Post by emil »

sfs steht abgekürzt für squashed file system (komprimiert)
2fs steht abgekürzt für ext2 file system (Linux ext2 Format, nicht komprimiert)
3fs steht abgekürzt für ext3 file system (Linux ext3 Format, nicht komprimiert)

Also "Hauptdatei" und Zusatz sfs sind komprimiert, Pupsafe File ist nicht komprimiert.

Meines Wissens sind die Programme im RAM unkomprimiert (sonst müssten sie ja für jeden Zugriff entpackt werden).
kernel und initrd.gz werden komplett in den Speicher geladen, pup-431.sfs, Zusatz sfs und Dateien aus dem Safefile nur wenn genügend RAM vorhanden ist, bzw. nach Bedarf. Schau mal auf http://www.puppylinux.com/development/h ... works.html, im speziellen die Darstellungen des "layered Filesystems".
Wenn du in Deinem Puppy den Ordner /initrd öffnest siehst Du genau dieses Schichten.
pup_ro1, pup_ro2, etc ...

Das Laden der komprimierten sfs-Daten in das Ram incl. entpacken ist teilw. schneller als unkomprimiertes Laden ins Ram.

emil

Links:
http://www.murga-linux.com/puppy/viewto ... af11036ec9
http://kerneltrap.org/files/PERFORMANCE.README.txt

eastler_dart
Posts: 32
Joined: Wed 11 Feb 2009, 19:43

#19 Post by eastler_dart »

Hallo an alle,

@emil:
Danke für die Infos, sind wertvoll. Muß jetzt meine Projekte neu überdenken

@der-schutzhund:
Kannst du uns angeben, ob die 2,5GB der Festplatte des Zielrechners ausreichen, um dein gesamtes Puppysystem samt deiner Programme und Daten aufzunehmen?
Bzw. kannst du und die Größe der Puppy-Dateien nennen? (Haupt- und Daten- Dateien)? Dabei müßten wir auch wissen, wieviel Speicherplatz in der Datendatei noch frei ist.

Eastler

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#20 Post by der-schutzhund »

Hallöchen Welpenfreunde,

@deepsea:
@eastler_dart:
@emil:
@RetroTechGuy:

erst mal vielen Dank für so viele tolle Beiträge und Anleitungen!!

@eastler_dart:
Die 2,5 GB werden bei Weitem nicht benötigt! Aktuell ist das ISO ca. 300MB groß. Es geht mir mehr darum, wie ich den Arbeitsspeicher von 96 MB so nutzen kann, dass das System möglichst flott läuft!


Zum Thema Speicher fällt mir da noch etwas ein:
Wenn ich meinen Notebook mit Puppy im RAM laufen lasse wird unten rechts der Speicher mit 2GB angezeigt. Wenn ich dann mit einer Speicherdatei arbeite sind es halt nur noch 450MB. Eigentlich sollte es doch so sein, dass die beiden Speicher addiert werden. Oder wie oder was?? Bedeutet das denn, dass der Arbeitsspeicher nicht voll ausgenutzt wird?

Grüße Wolfgang

Post Reply