Draft:Ul2fs
Submission declined on 3 October 2026 by Helpful Raccoon (talk).
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
|
Comment: Zero independent sources that discus UL2FS; no indication of meeting Wikipedia's notability criteria. Helpful Raccoon (talk) 05:29, 3 October 2026 (UTC)
| Full name | Unix friendly Linked List File System[1] |
|---|---|
| Introduced | September 17, 2026[2] with FUSE driver |
| Partition IDs | EFI: Linux System Partition |
| Structures | |
| Directory contents | Table |
| File allocation | Linked list |
| Bad blocks | Not implemented |
| Bootable | yes[3] |
| Limits | |
| Min volume size | 1408 bytes with 128 byte blocks, 28672 bytes with 4KiB blocks |
| Max volume size | 1 EiB for 4kiB blocks, 16EiB for 64KiB blocks, 2^112 bytes for 16EiB blocks |
| Max file size | 18,446,744,073,709,551,999 bytes (16 EiB-1) |
| File size granularity | 1 byte |
| Max no. of files | 4,294,967,294 (inodes) |
| Max filename length | 122 or 123 bytes |
| Max dirname length | Implementation dependent |
| Max directory depth | unlimited |
| Allowed filename characters | any byte except 0x0 or / |
| Features | |
| Dates recorded |
|
| Date range | 1970-01-01 to 2106-02-07 (36812-02-20 if using extra fields in the inode) |
| Date resolution | 1 second |
| Attributes | link count |
| File system permissions | POSIX bits + UID + GID |
| Transparent compression | only at the block level |
| Transparent encryption | only at the block level |
| Copy-on-write | no |
| Other | |
| Supported operating systems | Hardcore Linux (replaced ext4 in September 28, 2026[4]) |
| Website | https://github.com/AMAZING2545/HardcoreLinux/ (source at tools/src/axfs) |
UL2FS(Unix friendly Linked List FileSystem) is a FUSE filesystem for Linux and other Unix operating system that support FUSE.
UL2FS was designed to be a simple filesystem that could replace Ext4 in embedded systems, since it has full POSIX permissions, Hard link and Symbolic link support, while having higher metadata density[5]. Its FAT-like design makes it easy to implement in Firmware, which might be appealing for low power devices.
Features
[edit]- Inodes
- POSIX bits
- Low metadata overhead
- Hard links
- Symbolic links
Boot sector
[edit]UL2FS reserves the first block to the Superblock, which contains all informations to mount and use the filesystem.
| parameter | size | comment |
|---|---|---|
| JMP instruction | 8 bytes | X86 needs 3 bytes, RISC architectures generally need more[7] |
| block size | 1 byte | expressed as 2^x |
| volume name | 32 bytes | any byte except 0x0 |
| reserved blocks | 2 bytes | does not include the superblock's block |
| FAT size | 4 bytes | the size of the allocation table in blocks |
| size | 8 bytes | size of the volume in blocks |
| inodes | 4 bytes | amount of inodes in blocks |
| root directory size | 1 byte | deprecated, must be set to zero |
| cylinders | 2 bytes | used only in legacy systems |
| heads | 2 bytes | used only in legacy systems |
| sectors-per-track | 2 bytes | used only in legacy systems |
| extended FAT size | 2 bytes | upper part of FAT size, generally ignored |
| used blocks | 8 bytes | generally ignored |
UL2FS usually keeps only one copy of the superblock, but a implementation can store a copy in a reserved sector.citation needed
File Allocation Table
[edit]main article: Design of the FAT file system#FAT.
UL2FS' FAT region behaves the same as other FAT filesystems, except that it uses 48-bit pointers instead of 28/32-bit of FAT32 or ExFAT. 48 bit pointers allow for very large volumes that can exceed Exabytes and Zettabytes.[8]
UL2FS only uses 0(free block) and -1(end of chain) as reserved entries in the FAT.[6]
Inode Region
[edit]the inode table contains the inodes, which are structures that store file metadata and location on disk.[9]
| name | size | comment |
|---|---|---|
| POSIX bits | 2 bytes | octal POSIX bits |
| user | 2 bytes | owner of the inode |
| group | 2 bytes | group owner of the inode |
| era | 2 bytes | now unused, can be split
in two to extend timestamps |
| created | 4 bytes | unsigned UNIX timestamp |
| modified | 4 bytes | unsigned UNIX timestamp |
| links | 2 bytes | link count |
| size | 8 bytes | file size in bytes |
| start | 6 bytes | first block in the chain |
note: the inode does not store the file type (regular, directory, link).[10]
Directory Table
[edit]Directories are stored as entries in special inodes that do not contain plain data.
each directory has at least two entries:
- "." is a hard link to itself
- ".." is a hard link to the parent (itself if it is the root directory)
each entry is stored in a 128-byte entry.
| name | size | comment |
|---|---|---|
| filename | 123 bytes | any byte except 0x0 and / |
| attributes | 1 byte | 0 = regular, 1 = directory, 2 = symlink |
| inode | 4 bytes | pointer in the inode table |
Data region
[edit]the data region lies after the inode table and contains file data, directories and symlinks.
Performance
[edit]No formal comparison is available right now
As for all FAT-like filesystems random seek is O(n) and sequential seek is O(1)citation needed
Support
[edit]UL2FS can be built from source on any Linux distro that has FUSE support.[11]
UL2FS is the native filesystem of the Hardcore Linux project, as it is a subproject of it[12]
See also
[edit]References
[edit]- ↑ https://github.com/AMAZING2545/HardcoreLinux/issues/6
- ↑ https://github.com/AMAZING2545/HardcoreLinux/commit/9530fe1b978e88791d6ad9fd42988c93cff40ec2
- ↑ the superblock only occupies 76 bytes according to the reference implementation
- ↑ https://github.com/AMAZING2545/HardcoreLinux/releases/tag/v1.3.1
- ↑ UL2FS has 32 byte inodes, while Ext4 uses 128/256 byte inodes. source: https://archive.kernel.org/oldwiki/ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout.html (2016)
- 1 2 "Spec.md". Github.
{{cite web}}: CS1 maint: url-status (link) - ↑ https://support.arm.com/documentation/den0013/0400/Introduction-to-Assembly-Language/The-ARM-instruction-sets
- ↑ like FAT12/16/32/ex ul2fs uses the same fundamental linked list structure
- ↑ Tanenbaum, Andrew (2008). Modern Operating Systems, 3rd edition (3rd ed.). Pearson Education.
- ↑ there are not enough fields in the inode to store such info.
- ↑ the source code is plain POSIX C and depends only on libfuse
- ↑ AMAZING2545. "Release 1.3.1 · AMAZING2545/HardcoreLinux". GitHub. Retrieved 2026-10-01.
{{cite web}}: CS1 maint: numeric names: authors list (link)

- provide significant coverage: discuss the subject in detail, not just brief mentions or routine announcements;
- are reliable: from reputable outlets with editorial oversight;
- are independent: not connected to the subject, such as interviews, press releases, the subject's own website, or sponsored content.
Please add references that meet all three of these criteria. If none exist, the subject is not yet suitable for Wikipedia.