Port SquashFuse To The FreeBSD Kernel

Project description

SquashFS is a read-only file system that lets you compress whole file systems or single directories, write them to other devices/partitions or to ordinary files, and then mount them directly.

When creating tiny-sized and embedded systems, every byte of the storage device (floppy, flash disk, etc.) is very important, so compression is used everywhere possible. Also, compressed file systems are frequently needed for archiving purposes. For huge public archives, as well as for personal media archives, this is essential.

The goal of this project is to add SquashFS support for the FreeBSD kernel, with the aim of being able to boot FreeBSD from an in-memory SquashFS file system.

Approach to solving the problem

Since writing file system driver to the kernel is a large task I will divide the project into various small goals, which include:

These goals could again be broken down into small steps like first reading files without compression and then with compression.

Deliverables

This list is not concrete and might change as the project progresses.

Basic SquashFS functionality

Extra SquashFS features

Milestones

This list is not concrete and could change after a discussion with my mentor.

Buffer weeks are allocated to ensure progress is on the right track even if somehow milestones aren't met as per schedule.

Test Plan

Testing for file system performance will be done in two steps :

Weekly progress

Email archive

Week 1 - 2

Week 3 - 4

Week 5

Week 6

Week 7

Week 8 - 9

Week 10 - 12

The Code

https://github.com/Mashijams/freebsd-src/tree/gsoc/squashfs

Notes

Currently, the driver is compatible with the 13.2 FreeBSD release.

SquashFuse Implementation

Linux SquashFS Implementation

SquashFS description and features

SummerOfCode2023Projects/PortSquashFuseToTheFreeBSDKernel (last edited 2023-08-25T16:39:37+0000 by RaghavSharma)