RE: Want to make a filesystem. 12-02-2017, 01:22 AM
#16
(12-02-2017, 12:31 AM)phaz0n Wrote:(12-02-2017, 12:14 AM)phyrrus9 Wrote:(12-02-2017, 12:07 AM)phaz0n Wrote: I'm just saying there is no blockchain in IPFS, and your concept has some non-technical flaws. I would also appreciate if you avoided using subtle ad-hominems in place of an argument against my claim.
The "technical flaws" you refer to are easily solved with engineering. You would incentivize in the same way that bt works. The more blocks you are willing to store, the more likely another will be willing to store your blocks, and balance the table so that you store a minimal amount of your own blocks.
What I don't appreciate is you've been off topic this whole time. The thread is about building a filesystem, not finding an existing one. The end result has nothing to do with the filesystem created and everything to do with kernel development, as I've stated. It could be a completely useless dummy project and it would still be valid. I've never heard of you before this thread, and then all of the sudden you come in quoting wikipedia and suggesting I use bitcoin technology, I'm not interested in that. If you want to be constructive to the original topic, I welcome it, but if you're just going to debate why your opinions are better than mine then you should find a different thread.
1. They are non-technical flaws. The solution you have devised is correct, but does not change the fact that there is a more effective means of achieving the same end.
2. Yes, you can reinvent the wheel if you want. It will be a waste of code and time, yet a valuable learning experience and lots of fun.
3. You don't need to have heard from me, I am simply another user and I would like to share my point. This is a forum, and people will criticize your idea. Get used to it.
4. I am not quoting wikipedia - I am citing the IPLD specification located here: https://github.com/ipld/specs/tree/master/ipld
5. I haven't been arguing that my opinion is better than yours, I am helping you by giving you insight on potential design issues that may cause problems for real world use. Of course this is not an issue if it is a dummy project as you had mentioned, but then the initial "kernel development" point you made, which by the way was not mentioned at all in your original post, becomes void.
6. Making a FUSE driver doesn't make it kernel development. A kernel manages hardware. A file system manages data, and uses the kernel for the hardware part of it. You said you wanted to make a distributed encrypted file system, which has nothing to do with kernel development.
I'm going to settle this argument. I have extra time, and I don't care how much code I have to write. This is a learning experience, as all projects are for me. Who knows, at the end of this it may come in handy with my business (it will).
(12-02-2017, 01:13 AM)phaz0n Wrote:(12-02-2017, 12:59 AM)Ender Wrote:(12-02-2017, 12:31 AM)phaz0n Wrote: 6. Making a FUSE driver doesn't make it kernel development. A kernel manages hardware. A file system manages data, and uses the kernel for the hardware part of it. You said you wanted to make a distributed encrypted file system, which has nothing to do with kernel development.
Ignoring FUSE for a second, the filesystem is usually implemented in the kernel.
FUSE abstracts some of the stuff that is done when building from scratch, but one can still call it kernel development and not be wrong.
Yes, support for filesystems is implemented in the kernel in most cases. FUSE, on the other hand, is a software interface for userspace filesystems drivers, which make it not kernel dev. However, while filesystem support is a kernel feature, I would not call it a part of kernel development. File system design is a very different beast, only tangentially related to the kernel in the sense that the kernel can manage files on a block device according to the specification of the FS. Mixing in p2p networking and distributed systems makes it even further apart from kernel dev, and calling userspace filesystem implementation combined with those things "kernel development" would be an insult to kernel development.
There are 3 parts to this project:
1. kernel development
2. XNU hybrid design (userland drivers)
3. Networking tricks
This project touches on every one of those. Fuse is a stepping stone, don't worry about it.