mirror of
https://github.com/psankar/simplefs.git
synced 2025-07-23 05:54:39 +02:00
A simple filesystem to understand things. This is a Work In Progress. Do not use this yet. The source files are licensed under Creative Commons Zero License. More information at: http://creativecommons.org/publicdomain/zero/1.0/ Full license text at: http://creativecommons.org/publicdomain/zero/1.0/legalcode To compile: ------------ install linux kernel sources and run make from the checkedout directory. To test: --------- psankar@linux-9dni:~/src/simplefs> make psankar@linux-9dni:~/src/simplefs> dd bs=4096 count=100 if=/dev/zero of=image 100+0 records in 100+0 records out 409600 bytes (410 kB) copied, 0.00106827 s, 383 MB/s psankar@linux-9dni:~/src/simplefs> ./mkfs-simplefs image Super block written succesfully root directory inode written succesfully welcomefile inode written succesfully inode store padding bytes (after the two inodes) written sucessfully root directory datablocks (name+inode_no pair for welcomefile) written succesfully padding after the rootdirectory children written succesfully welcomefilebody has been written succesfully psankar@linux-9dni:~/src/simplefs> Now as root: linux-9dni:/home/psankar/src/simplefs # insmod simplefs.ko ; mount -o loop -t simplefs image /home/psankar/src/simplefs/mount/ ; dmesg [ 7064.752268] Sucessfully registered simplefs [ 7064.756404] The magic number obtained in disk is: [268640275] [ 7064.756410] simplefs filesystem of version [1] formatted with a block size of [4096] detected in the device. [ 7064.756457] simplefs is succesfully mounted on [/dev/loop10] linux-9dni:/home/psankar/src/simplefs # cd mount/ linux-9dni:/home/psankar/src/simplefs/mount # cat vanakkam Love is God. God is Love. Anbe Murugan. linux-9dni:/home/psankar/src/simplefs/mount # cp vanakkam hello linux-9dni:/home/psankar/src/simplefs/mount # cat hello Love is God. God is Love. Anbe Murugan. linux-9dni:/home/psankar/src/simplefs/mount # echo "Let there be files :-)" > hello linux-9dni:/home/psankar/src/simplefs/mount # cat hello Let there be files :-) linux-9dni:/home/psankar/src/simplefs/mount # touch world linux-9dni:/home/psankar/src/simplefs/mount # cat world linux-9dni:/home/psankar/src/simplefs/mount # echo "Hello World" > world linux-9dni:/home/psankar/src/simplefs/mount # cat world Hello World linux-9dni:/home/psankar/src/simplefs/mount # .. linux-9dni:/home/psankar/src/simplefs # umount mount ; rmmod simplefs.ko linux-9dni:/home/psankar/src/simplefs # insmod simplefs.ko ; mount -o loop -t simplefs image /home/psankar/src/simplefs/mount/ linux-9dni:/home/psankar/src/simplefs # cd mount/ linux-9dni:/home/psankar/src/simplefs/mount # cat world Hello World linux-9dni:/home/psankar/src/simplefs/mount # cat hello Let there be files :-) linux-9dni:/home/psankar/src/simplefs/mount # .. linux-9dni:/home/psankar/src/simplefs # umount mount ; rmmod simplefs.ko ; dmesg -c [ 7064.752268] Sucessfully registered simplefs [ 7064.756404] The magic number obtained in disk is: [268640275] [ 7064.756410] simplefs filesystem of version [1] formatted with a block size of [4096] detected in the device. [ 7064.756457] simplefs is succesfully mounted on [/dev/loop10] [ 7070.816973] Read request for file of size: [41] [ 7081.274818] No inode found for the filename [hello] [ 7081.274835] No inode found for the filename [hello] [ 7081.274853] No inode found for the filename [hello] [ 7081.274874] simplefs create fs object is called [ 7081.274888] Got new unique inode number [10] [ 7081.274890] New file creation request [ 7081.275037] Returning success after creating the file/directory [ 7081.275050] Read request for file of size: [41] [ 7081.275054] file size write begins [ 7081.275067] The new filesize that is written is: [41] and len was: [41] [ 7083.645271] Read request for file of size: [41] [ 7118.672573] file size write begins [ 7118.672655] The new filesize that is written is: [23] and len was: [23] [ 7120.387921] Read request for file of size: [23] [ 7129.434414] No inode found for the filename [world] [ 7129.434424] simplefs create fs object is called [ 7129.434429] Got new unique inode number [11] [ 7129.434430] New file creation request [ 7129.434568] Returning success after creating the file/directory [ 7131.279727] Read request for file of size: [0] [ 7140.382962] file size write begins [ 7140.383083] The new filesize that is written is: [12] and len was: [12] [ 7142.150113] Read request for file of size: [12] [ 7153.773088] simplefs superblock is destroyed. Unmount succesful. [ 7153.778315] Sucessfully unregistered simplefs [ 7163.614771] Sucessfully registered simplefs [ 7163.618539] The magic number obtained in disk is: [268640275] [ 7163.618546] simplefs filesystem of version [1] formatted with a block size of [4096] detected in the device. [ 7163.618587] simplefs is succesfully mounted on [/dev/loop11] [ 7173.341241] Read request for file of size: [12] [ 7181.062284] Read request for file of size: [23] [ 7195.867825] simplefs superblock is destroyed. Unmount succesful. [ 7195.872485] Sucessfully unregistered simplefs linux-9dni:/home/psankar/src/simplefs #
Description
Languages
C
92.7%
Shell
6.5%
Makefile
0.8%