Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 14 years ago

Closed 10 years ago

Last modified 10 years ago

#60 closed enhancement (fixed)

Driver for ext4 filesystem

Reported by: Martin Decky Owned by: Frantisek Princ
Priority: minor Milestone: 0.6.0
Component: helenos/fs/other Version: mainline
Keywords: fs, suggestion, gsoc10 Cc: jakub@…
Blocker for: Depends on:
See also:

Description (last modified by Martin Decky)

Implement a native HelenOS driver for the ext4 file system.

Details
The new driver should be realized as a standalone server process which plugs itself into the HelenOS VFS framework and implements the VFS and libfs interfaces in the ext4 specific way.

The implementation can proceed in several phases. In the first phase, read-only support for ext4 should be implemented. In the following phases, write features corresponding to specific compatibility levels (plain ext2, ext2 with large files, ext2 with hashed B-trees, ext2 with sparse superblocks, ext3 with journaling, ext4 with extends) can be incrementally added.

What Gains and Benefits will this bring?
The only persistent file system supported by HelenOS so far has been FAT16. This file system has some inconvenient limitations such as the 8.3 file names and, which is more important, does not force VFS to provide interfaces for writing back the superblock. On the other hand, ext4 is a reasonably advanced file system commonly used on the Linux platform and its implementation will lead to adding needed abstractions to the VFS protocol. This will benefit future additions of other persistent file systems.
Difficulty
medium (read-only ext4) to hard (full ext4 write support)
Required skills
A successful applicant will have good skills of programming in the C language and also the ability to program in a multi-server environment, which includes communicating using HelenOS IPC.
Documentation
Possible mentors
HelenOS Core Team, Jakub Jermar, Martin Decky

Change History (22)

comment:1 Changed 14 years ago by Jakub Jermář

Cc: jakub@… added
Keywords: fs added

comment:2 Changed 13 years ago by Jakub Jermář

Component: unspecified
Summary: Implement "real" filesystem driverImplement ext2 filesystem driver

Changing the Summary in order to be specific.

comment:3 Changed 13 years ago by Jakub Jermář

Keywords: suggestion added

comment:4 Changed 13 years ago by Jakub Jermář

Component: unspecifiedfs/other

comment:5 Changed 13 years ago by Jakub Jermář

Description: modified (diff)
Keywords: gsoc added

comment:6 Changed 13 years ago by Jakub Jermář

Description: modified (diff)
Summary: Implement ext2 filesystem driverEXT2 filesystem driver

comment:7 Changed 13 years ago by Jakub Jermář

Description: modified (diff)
Summary: EXT2 filesystem driverext2 filesystem driver

comment:8 Changed 13 years ago by Jakub Jermář

Description: modified (diff)

comment:9 Changed 13 years ago by Martin Decky

Description: modified (diff)
Summary: ext2 filesystem driverext4 filesystem driver

comment:10 Changed 13 years ago by Jakub Jermář

Description: modified (diff)

comment:11 Changed 13 years ago by Jakub Jermář

Description: modified (diff)

comment:12 Changed 13 years ago by Jakub Jermář

Summary: ext4 filesystem driverDriver for ext4 filesystem

comment:13 Changed 13 years ago by Jakub Jermář

Description: modified (diff)

comment:14 Changed 13 years ago by Jakub Jermář

Description: modified (diff)

comment:15 Changed 13 years ago by Jakub Jermář

Description: modified (diff)

comment:16 Changed 13 years ago by Martin Decky

Description: modified (diff)

comment:17 Changed 13 years ago by Martin Decky

Description: modified (diff)

comment:18 Changed 12 years ago by Jakub Jermář

Keywords: gsoc10 added; gsoc removed

comment:19 Changed 12 years ago by Jakub Jermář

In mainline,1005, read-only support for Ext2 was merged.

comment:20 Changed 11 years ago by Frantisek Princ

Owner: set to Frantisek Princ
Status: newaccepted

comment:21 Changed 10 years ago by Jakub Jermář

Resolution: fixed
Status: acceptedclosed

Merged in mainline,1590.

comment:22 Changed 10 years ago by Jakub Jermář

Milestone: 0.5.1
Note: See TracTickets for help on using tickets.