http://web.archive.org/web/20100711055535/http://cs.anu.edu.au/students/comp3300/ass2.php
That's an old assignment from my uni. It should get you across the
basics of filesystem implementation if you work through it ;)
On Tue, Nov 8, 2011 at 11:12 PM, Alexandru Juncu [off-list ref] wrote:
On Tue, Nov 8, 2011 at 1:56 PM, Dan Luedtke [off-list ref] wrote:
quoted
Hallo,
On Tue, Nov 8, 2011 at 12:27 PM, Stephen Gream [off-list ref] wrote:
quoted
Once you have the device registered (on /sys or /dev), register a read
callback on the file and use copy_to_user to output the data
I read that article you referred to, but I don't think it addresses my
problem, as I may have been more clear on what I want to achieve
before. Sorry for that!
I want to eventually implement a file system, and therefore I am
studying the kernel sources to get an idea about all that.
Here is my general understanding on how thinks may work :)
virtual file system (VFS) <-[1]-> my file system implementation
<-[2]-> a block device
As I understood, all these subsystems are running in kernel mode.
For [1] I read vfs.txt and learned about the VFS-API
For [2] I have no idea where I can find the API documentation, however
there were some hints on the book "Linux Driver Development" from
O'Reilly in chapter "block devices". Nothing really helpful, as they
were talking about registering new block devices. I want to use
already present devices where I expect my filesystem to be present on.
To check that, I have to read the first 512 bytes.
The userspace implementation I was talking about previously is
something like a mkfs.myfilesystem, that's why i referred to fopen()
there.
Thank you!
Greetings,
While in the kernel you would be able to read the blocks from a device
without using a file path (you don't need to open a file and read from
it). You will need to interact with the IO System.
I would redirect you to learn about struct gendisk and struct bio.