The LKL-based Haiku driver has progressed well in the last few weeks.
The set of features already implemented: mounting and unmounting ext3, ext4 disk images*, both read-only and read-write listing file system attributes (read-only/read-write, file system size, number of files created, number of files remaining to be created, etc.) browsing the contents of any folder on the file system listing file permissions, owner, group, type (directory, symlink, regular file, etc.
Porting LKL to Haiku's kernel API may not have been very hard, but convincing Haiku to load a properly built LKL-based add-on has presented some interesting and challenging problems. ELF segments The first thing Haiku does when it encounters something that resembles a file system driver is to load it and inspect the list of modules provided. Normally, loading a Haiku add-on means identifying three program headers from the ELF add-on image: the ones corresponding to the .
The first milestone in this GSoC journey to building a generic file system driver based on Linux kernel code is booting LKL (Linux Kernel Library) inside Haiku. For the short attention span: it works :) ... KERN: KDiskDeviceManager::_AddDiskSystem() done: No error KERN: file system: file_systems/iso9660/v1 KERN: KDiskDeviceManager::_AddDiskSystem(file_systems/iso9660/v1) KERN: KDiskDeviceManager::_AddDiskSystem() done: No error KERN: lklhaikufs: unhandled pheader type 0x4 KERN: file system: file_systems/lklhaikufs/v1 KERN: KDiskDeviceManager::_AddDiskSystem(file_systems/lklhaikufs/v1) KERN: khaiku_env_timer:: LKL_TIMER_INIT KERN: [lkl-console] Linux version 2.
Haiku has great support for its own file system, but most others are only available read-only or not accessible. Providing reliable read-write support to one such file system is a complex task, and needs to be repeated for each type of file system. Linux contains state of the art, full featured implementations for a large number of file systems. lkl-haiku-fsd is a generic driver based on the Linux kernel library (LKL), reusing Linux' optimized and debugged file system implementations.