Skip to content

AI221/ext2cc

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

ext2cc

An "Ext2-like" filesystem for CC. Primarily for having a single filesystem across multiple floppy drives, or for OSes.

How it works

Abstraction layers

Inodes

Ext2CC Ext2 CC uses inodes(https://en.wikipedia.org/wiki/Inode) to store metadata, what blocks the file is on, and what directorieS, yes, that S was no accident. One file can be in multiple directories. Do note that the file's contents themselves are NOT stored in the inode. Those are stored in blocks.

Blocks

Blocks in Ext2CC share little in common with real-world blocks. First of all, each block is actually just a file on CC's actual file system(same for the inode), second of all, they are dynamically spaced, and third of all, 1 partition can have blocks on multiple drives. They are to real life blocks as lua tables are to C arrays.

Directories

Directories are rather simple. They're a table that look like this:

{

    [".yournotsosecretfile"] = 3,

    ["folder"] = 4,

    ["Folder"] = 5,

}

(yes, Ext2CC is case sensative)

So, what that is is the file name associated with the inode number. So when I go to look for "/folder/file", Ext2CC starts off looking in the root file(which is always at inode #2), finds that "folder"'s inode is 4, looks in folder, and then finds that file's inode number is 6. Note that the file contents are NOT stored in the inode, they are in the blocks. I simplified a bit.

Clarification/misc

The root folder is at_inode_2, not block 2.

File names are_not_stored in the inode.

To find a file, you must always start at the root folder and find the next folder leading to the file, till you're at the file

Folders are files.

Inode & folders are saved as a serialized table

License

See the file called LICENSE at the root of this git.

About

An "Ext2-like" filesystem for CC. Primarily for having a single filesystem across multiple floppy drives

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published