Edge Rewrite
// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a44d21effe1fc235

Jump to content

Draft:Ul2fs

From Wikipedia, the free encyclopedia
  • Comment: Zero independent sources that discus UL2FS; no indication of meeting Wikipedia's notability criteria. Helpful Raccoon (talk) 05:29, 3 October 2026 (UTC)

UL2FS
Full nameUnix friendly Linked List File System[1]
IntroducedSeptember 17, 2026; 16 days ago (2026-09-17)[2] with FUSE driver
Partition IDsEFI: Linux System Partition
Structures
Directory contentsTable
File allocationLinked list
Bad blocksNot implemented
Bootableyes[3]
Limits
Min volume size1408 bytes with 128 byte blocks, 28672 bytes with 4KiB blocks
Max volume size1 EiB for 4kiB blocks, 16EiB for 64KiB blocks, 2^112 bytes for 16EiB blocks
Max file size18,446,744,073,709,551,999 bytes (16 EiB-1)
File size granularity1 byte
Max no. of files4,294,967,294 (inodes)
Max filename length122 or 123 bytes
Max dirname lengthImplementation dependent
Max directory depthunlimited
Allowed filename
characters
any byte except 0x0 or /
Features
Dates recorded
  • Modified timestamp, creation timestamp
Date range1970-01-01 to 2106-02-07 (36812-02-20 if using extra fields in the inode)
Date resolution1 second
Attributeslink count
File system
permissions
POSIX bits + UID + GID
Transparent
compression
only at the block level
Transparent
encryption
only at the block level
Copy-on-writeno
Other
Supported
operating systems
Hardcore Linux (replaced ext4 in September 28, 2026; 5 days ago (2026-09-28)[4])
Websitehttps://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

Structure [6]

[edit]

Boot sector

[edit]

UL2FS reserves the first block to the Superblock, which contains all informations to mount and use the filesystem.

Superblock
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]

Inode
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.

Directory 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]

Design of the FAT file system

Unix filesystem

References

[edit]
  1. ↑ https://github.com/AMAZING2545/HardcoreLinux/issues/6
  2. ↑ https://github.com/AMAZING2545/HardcoreLinux/commit/9530fe1b978e88791d6ad9fd42988c93cff40ec2
  3. ↑ the superblock only occupies 76 bytes according to the reference implementation
  4. ↑ https://github.com/AMAZING2545/HardcoreLinux/releases/tag/v1.3.1
  5. ↑ 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)
  6. 1 2 "Spec.md". Github.{{cite web}}: CS1 maint: url-status (link)
  7. ↑ https://support.arm.com/documentation/den0013/0400/Introduction-to-Assembly-Language/The-ARM-instruction-sets
  8. ↑ like FAT12/16/32/ex ul2fs uses the same fundamental linked list structure
  9. ↑ Tanenbaum, Andrew (2008). Modern Operating Systems, 3rd edition (3rd ed.). Pearson Education.
  10. ↑ there are not enough fields in the inode to store such info.
  11. ↑ the source code is plain POSIX C and depends only on libfuse
  12. ↑ AMAZING2545. "Release 1.3.1 · AMAZING2545/HardcoreLinux". GitHub. Retrieved 2026-10-01.{{cite web}}: CS1 maint: numeric names: authors list (link)