File system prototyping

What are some guidelines for prototyping a file system?

I had a try in Python using fusepy , and now I'm curious:

  • In the long run, if a respectable file system implementation be in C? Will there be portability in C hamper or, ultimately, performance problems?
  • Are there other implementations like FUSE?
  • Obviously, the kernel file system technology is moving slowly (fat32, ext3, ntfs, everything else is a small fish), what debugging methods are used?
  • What is the overall development of the course file system, which achieves a highly optimized, fully supported implementation in major operating systems?
+3
source share
4 answers

In the long run, if a respectable file system implementation be in C? Will there be portability in C hamper or, ultimately, performance problems?

It is not necessary that there are many executable languages ​​other than C (O'Caml, C ++ are the first ones that come to mind.) In fact, I expect NTFS to be written in C ++. The point is that you seem to come from a Linux background, and since the Linux kernel is written in C, any file system that hopes to be integrated with the kernel must also be written in C.

Are there other implementations like FUSE?

Windows, http://code.google.com/p/winflux/ http://dokan-dev.net/en/

, (fat32, ext3, ntfs, - ), ?

, Windows, Solaris ZFS, Linux ext4 btrfs. , , .

, ?

, , , , , .

+2

, ( FUSE Mac), , ​​ , , (, , C). , , ( ) " ", . , Linux Minix ( CS, , Linus - Linus, , , ; -.)

- , , , "" - , Python, C ( -, FUSE, , Python). .

+4

mock object API- . mmap 'd . :

  • FS unit test .
  • / .
  • .
  • , .
+1

Dear file systems will be fast and efficient. For Linux, this basically means writing to C, because you will not be serious if you do not spread with the kernel.

As for other tools like Fuse, there is MacFUSE , which will allow you to use the same code on macs as well as linux.

0
source

Source: https://habr.com/ru/post/1756687/


All Articles