Re: Lisa filesystem

From: tommoni <tommoni_at_email.domain.hidden>
Date: Fri, 29 Jul 2016 07:21:10 +0200

Wow, wow, WOW !

I don't have words for such a perfect engineering work with knowledge, diligence and perseverance.
All the time, you must have spent to get this project completed, this all, all alone !!!

Usually no advertizing is here allowed in the LisaList, but I take the liberty to request that the title of Natalias book will be announced as soon as it is published, because I'm keen to get supportet with more information about this huge project. And I will buy one a.s.a.p. and some more to have a gift for friends.

my greatest respect: Tom from Bavaria, the center of Europe, the country of the Alps, the marvellous castles of Koenig Ludwig and last but not least: The original Octoberfest in Munich

Am 29.07.2016 um 04:10 schrieb Natalia Portillo:

> Hello friends,
>
> Some of you know that a couple of years ago I started reverse
> engineering the Lisa filesystem in my spare time.
>
> So wait no more, it is done.
>
> Indeed V3 was done more than a year ago, it's just that I tried to
> make
> my DiscImageChef tool something more usable for that.
>
> And this time has come.
>
> https://github.com/claunia/DiscImageChef/releases/tag/v3.1.0
>
> Here you have a pre-release of DiscImageChef with full support for
> Lisa
> filesystem, V1, V2 and V3.
>
> The code also contains a fully documented, heavily commented, list of
> all the structures that make the filesystem.
>
> I have reverse engineered it looking not a single confidential file
> (which I do not have) or source file (which I neither have) but purely
> experimenting with disks. Indeed I'm writing a book on how I made it.
>
> Some field names I took from the Lisa OS public programming interfaces
> while some others I invented they myself.
>
> It has read any single disk and its contents I have been able to throw
> to it with the following caveats:
>
> - Disks must be in DiskCopy 4.2, DART is not supported at all.
> - Disks must contain sector tags. While my code can be changed to work
> without them, Lisa OS doesn't, so not so much of a problem.
> - Corrupt disks. However it is able to recover information from
> disks so
> corrupt that crash Lisa OS scavenging.
> - Lisa Office folders are ignored. They are a lie, all files are
> stored
> in the root directory, and the folders name and structure are
> stored in
> a file calle {!CATALOG}. This is the same as Mac OS' Finder does on
> MFS
> disks.
> - Lisa OS 3 supports subdirectories. They are currently ignored. You
> mostly never used them (unless you created a file with path
> -#11-subdirectory-File.TEXT, you didn't use it :p). However if you
> did,
> just tell me, and I'll add support.
> - Lisa Office filenames are ignored. They are a lie also, stored in
> the
> LisaInfo structure, that's extracted by my tool, so just check it
> there.
> - LisaTest, LisaMonitor, Lyrix and LisaXENIX disks. They do not use
> Lisa
> filesystem, so their filesystem needs to be added separately
> (thankfully
> it is documented, so if you need it just tell me and I'll make it a
> priority).
>
> It wholly supports Twiggies, Profiles, Widgest, IDEFiles, etc,
> anything
> you can throw in DiskCopy 4.2. I have not tested Priam disks, but
> if you
> got a DiskCopy 4.2 image of them, send me!
>
> In a nutshell, to debunk all misinformation about the filesystem:
>
> Every disk starts with the boot file (shown as $Boot by DiscImageChef)
> that contains code to load the OS loader (shown as $Loader). The OS
> Loader is next block in floppies but 8 blocks farther away in all hard
> disk images. Next to the $Loader resides the MDDF (shown as $MDDF),
> like
> the Lisa filesystem superblock, it contains information describing the
> volume. Next to the MDDF resides the volume usage bitmap (shown as
> $Bitmap), and pointed by it (usually next to it) the S-Records file
> (shown as $S-Records).
>
> The $S-Records contain a hashtable of entries, where the hash is the
> file id, and the entry contains a pointer to the Extents File to that
> file id, as well as the file size in bytes.
>
> The Extents File (2 sectors in V1, 1 sector in V2 and V3) contains all
> information, including the LisaInfo structure, for a file, plus the
> extents to read them (extents = pointer + length), and dates (epoch
> is 1
> January 1901, 3 years before Mac OS epoch).
>
> In V1 and V2, the root (and only) catalog is a file whose Extents File
> is pointed by the S-Records file, containing the filenames and file
> IDs
> only.
>
> In V3 the catalogs are 4-sector blocks that connect using a
> double-linked (before and after pointers) structure.
>
> While seems that the only public information until today about Lisa FS
> has veen that v1 uses a simple table catalog, v2 a hash table one
> and v3
> a B-Tree one, for me doesn't seem the case. But note, that looking at
> the raw data, as I've done it, I can't be sure that v3 is not a B-Tree
> (it may be a simple B-Tree that's readable as a double-linked
> list), and
> for me, v2 and v1 catalogs are identically structured (and read
> flawlessly with the same code). It may also be referring to an on-
> memory
> structure for the OS.
>
> So, that's all, thanks for waiting for me all this years :p
>
> Regards,
> Natalia Portillo
>
> --
> --
> -----
> You received this message because you are a member of the LisaList
> group.
> The group FAQ is at http://lowendmac.com/lists/lisa.html
> To post to this group, send email to lisalist_at_email.domain.hidden
> To leave this group, send email to lisalist
> +unsubscribe_at_email.domain.hidden
> For more options, visit this group at http://groups.google.com/
> group/lisalist
> ---
> You received this message because you are subscribed to the Google
> Groups "LisaList" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to lisalist+unsubscribe_at_googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
-- 
-----
You received this message because you are a member of the LisaList group.
The group FAQ is at http://lowendmac.com/lists/lisa.html
To post to this group, send email to lisalist_at_email.domain.hidden
To leave this group, send email to lisalist+unsubscribe_at_email.domain.hidden
For more options, visit this group at http://groups.google.com/group/lisalist
--- 
You received this message because you are subscribed to the Google Groups "LisaList" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisalist+unsubscribe_at_googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Received on 2016-07-29 10:22:59

This archive was generated by hypermail 2.4.0 : 2020-01-13 12:15:16 EST