aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2026-09-02docs: add additional brief and guide draftsFelix Morgner5-2/+1049
2026-09-02docs: update thesis opportunitiesFelix Morgner1-23/+56
2026-09-01kernel: fix broken readme symlinkFelix Morgner1-1/+1
2026-09-01docs: update facet dispatch briefFelix Morgner1-4/+4
2026-09-01chore: clean up facet idsFelix Morgner15-51/+58
2026-08-31docs: add brief regarding facet dispatchingFelix Morgner1-0/+430
2026-08-31docs: update documentation structureFelix Morgner6-4/+27
2026-08-31ide: update toolchainFelix Morgner2-6/+14
2026-08-31chore: fix poetry configurationFelix Morgner2-590/+496
2026-08-31docs: prepare for pages deploymentFelix Morgner22-271/+122
2026-08-31ide: switch to MS C/C++ Tools extensionFelix Morgner3-4/+6
2026-08-31doc: fix x86_64 commit exampleFelix Morgner1-1/+1
2026-08-31doc: add additional contributor guidelinesFelix Morgner1-40/+117
2026-08-31doc: replace codestyle with contributingFelix Morgner2-491/+531
2026-08-31chore: minor stylistic cleanupsFelix Morgner13-40/+44
2026-08-30kapi/gdb: extend pretty printersFelix Morgner5-0/+98
2026-08-30kstd/gdb: add flat_map printerFelix Morgner2-0/+52
2026-08-30kstd/gdb: add error_code and result printersFelix Morgner3-3/+124
2026-08-30kstd/gdb: add pretty printers for unitsFelix Morgner2-0/+36
2026-08-30ide: load symbols as symbol file onlyFelix Morgner1-1/+1
2026-08-30doc: clean up and move code style docsFelix Morgner1-149/+142
2026-08-30ide: replace todo tree extensionFelix Morgner1-1/+1
2026-08-29kstd: make UDL operators constevalFelix Morgner1-8/+8
2026-08-29chore: normalize panic messagesFelix Morgner40-112/+610
2026-08-29chore: apply stylistic cleanupsFelix Morgner45-244/+252
2026-08-29build: improve test failure reporting in CIFelix Morgner1-0/+1
2026-08-28kernel/vfs: implement read_directory fixups.Felix Morgner6-2/+134
POSIX requires that the data returned by the readdir() function shows the inode number of the root of a mounted filesystem for its mount point. Additionally, the inode number of the '..' reference in the mounted filesystem must show the inode number of the mount point. We perform this fixup when computing the entries during read_directory on the fly. The implementation of the upward fixup will need to be revised once the kernel supports bind mounts.
2026-08-28kernel/fs: devfs: fix inode encodingFelix Morgner1-2/+1
2026-08-28Merge branch 'fmorgner/vfs-mount-initialization' into 'develop'Felix Morgner14-130/+146
kernel/vfs: rework boot initialization See merge request teachos/kernel!57
2026-08-28fixup! kernel/fs: ext2: fix block allocation on 1 KiB fsFelix Morgner3-7/+12
2026-08-28fixup! kernel/vfs: add identity based mount removalFelix Morgner1-1/+1
2026-08-28kernel/vfs: implement root swivel and mount moveFelix Morgner9-71/+92
Previously, the device filesystem (devfs) was simply grafted on each root filesystem during boot. This caused the existence of an unreachable, dead devfs mount after the VFS instance had been initialized. This changeset implements the ability to relocate an active mount from one mount point to another. That way, no second devfs mount needs to be created. Instead, the existing devfs mount is relocated to a mount point in the persistent root filesystem that get mounted during initialization. Secondly, this changeset also alters the VFS initialization flow, so that only one root mount exists after initialization finishes.
2026-08-28fixup! kernel/vfs: mount: resolve return type todoFelix Morgner1-2/+2
2026-08-28kernel/fs: ext2: fix block allocation on 1 KiB fsFelix Morgner1-2/+2
When computing the actual block numbers for a filesystem, care must be taken to account for which block is the actual first data block. For 1 KiB block size filesystems, that block is actually block 1, not 0. This is because the first 1 KiB on any ext2 volume is reserved for bootloader data. Complicating matters, the bitmaps don't take this into account. They essentially reflect a logical view, describing which data blocks are already allocated. On a 1 KiB filesystem, this effectively means that bit 0 of the allocation bitmap references physical block 1. Luckily, we don't need to make that determination based on the block size at all. The superblock already carries the number of the first data block. That means one can simply add that number, which is 1 in the 1 KiB block size case and 0 otherwise, to the found block index. Interestingly, this was already caught by accident when locating the authoritative block group descriptor (BGD) table. A factor of two was multiplied into the calculation in the case of a 1 KiB block size. This factor arises because the primary BGD table follows the primary superblock. Since the superblock is located in physical block 0 in all cases except for a 1 KiB block size, the BGD table generally lands in block 1. This implies an offset of 1 block size from the volume start. In the 1 KiB case, the BGD table lands in block number 2, effectively at an offset of 2 blocks from the start of the volume. This changeset makes that calculation explicit in the BGD table locator code as well. This clarifies the previously obscure factor of 2.
2026-08-28kernel/vfs: add identity based mount removalFelix Morgner2-1/+17
2026-08-28kernel/vfs: mount: resolve return type todoFelix Morgner4-47/+21
2026-08-28kernel/vfs: replace owning_mount with driver_stateFelix Morgner23-239/+297
2026-08-27kernel/fs: devfs: inject . and .. entriesFelix Morgner2-23/+69
2026-08-27kernel: add 'ls' style demoFelix Morgner1-21/+56
2026-08-27kstd: units: improve formatterFelix Morgner1-1/+4
2026-08-27kernel/fs: devfs: implement basic statFelix Morgner2-1/+14
2026-08-27kernel: add directory listing to demo.Felix Morgner1-0/+26
2026-08-27kapi/fs: implement read_directoryFelix Morgner24-153/+83
This change also replaces the kernel internal directory_listing_cursor and directory_listing_entry with the kapi types directory_cursor and directory_entry.
2026-08-26kapi/fs: add stub implementation of read_directoryFelix Morgner2-0/+20
2026-08-26kapi/fs: introduce read_directory APIFelix Morgner3-0/+58
2026-08-26build: expand presets with release testsFelix Morgner1-1/+62
2026-08-26kernel: split vfs and filesystem driversFelix Morgner117-1719/+1718
2026-08-26kernel/fs: vfs: make file descriptor polymorphicFelix Morgner12-235/+590
2026-08-26kernel/fs: rootfs: implement read_directoryFelix Morgner2-0/+16
2026-08-26kernel/fs: ext2: add missing iterator type aliasFelix Morgner1-0/+1