Schoen, man darf beim Basteln und Herumdoktorn nur keine falsche Zurueckhaltung ueben
Soweit ich mich auskenne, will ich deinen Wissensdurst zu stillen versuchen:
tmpfs wird dynamisch alloziert (d. h. es belegt nicht immer die angeforderte Groesze, sondern gerade nur so viel Platz im RAM, wie die Daten (plus Metadaten) auf der Ramdisk gerade brauchen) und ist pageable, kann im Bedarfsfall also auf Swapspace ausgelagert werden.
Ramfs ist eine alte Variante eines aehnlichen Konzepts, aber nicht pageable. Darueberhinaus gibt es sicher noch einige Unterschiede, aber die kann ich dir nicht aus dem Stand benennen.
Tmpfs hat, wie die meisten Dateisysteme, andere Charakteristika als alle anderen
Waehrend ich dir zwar keine speziellen Eigenschaften von tmpfs nennen kann (ich schaetze mal, es ist auf das temporaere Ablegen von Files spezialisiert, und komplexe Algorithmen wie z. B. zur Fragmentationsvermeidung werden sich darin eher nicht finden lassen, weil der Hauptspeicher ja eh Zugriffszeiten jenseits von gut und boese hat), unterstuetzt ext2 z. B. POSIX-ACLs, extended attributes, damit dann auch SELinux Security Labels, und ein paar andere ganz interessante Flags fuer Files, wie z. B. Immutability. Das kann ein Filesystem speziell fuer temporaer zu lagernden Kram wohl nicht, weil es das einfach nicht muss.
Der Ramdisk-Treiber macht (Warnung: Educated Guess - ich habe nich in den Source geschaut und bin auch sonst nicht mit dem Teil vertraut, aber soweit meine Systemprogrammierungskenntnisse gehen, scheint mir das die logischste Variante einer moeglichen Erklaerung) vermutlich nicht viel mehr als einen bestimmten Bereich des Speichers zu allozieren (wohl mittels malloc, bzw. eines Kernel-internen workalike), und fuer diesen reservierten Speicher ioctls zu exportieren, die ihn wie ein stinknormales Blockdevice aussehen lassen. Sag ich einmal. *g*
Hoffe, ein wenig geholfen zu haben.
Viel Erfolg und Freude noch beim Forschen und Experimentieren!