Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
July 23, 2021 10:21 pm GMT

A Filesystem in JavaScript

It's Friday, it's nearly my Birthday, it's time to address some long running iterative projects (projects I never finish) LRIP for short .

What's my latest LRIP?

I have a bunch of these projects which I may one day finish.
One in particular which I really wanted to make possible but have been less experienced in previous iterations, a virtual file system.

In my mind Unix probably works in these easy to understand steps

The kernel is the entry point of an application (aka your computer) which a Filesystem sits on top of, the kernel provides syscalls to do things like change directories, write files and so on, these syscalls are usually C functions (that's it, no magic, although FYI Rust is entering the chat).

Okay so we got functions, an application and how do we use this application?

How do you use your computer without a GUI? That's a trick, don't answer that because terminal is graphical, kind of... But yes a terminal, but the shell, that's what we are talking about.

Think of the most basic shell... Shell not Bash, just Shell, it's just a parser really, type 'cd' and the shell parses your input, cd is not in your bin it's a syscall cd(), cool right? , Wake up

Okay sleepy head

Get to the point, what do I need a Filesystem written bin JavaScript for, it sounds useless. Precisely, this filesystem offers nothing more than the bear bones to represent a Filesystem, it's going to have a lot of extension points (plug-in a function) allowing library authors to represent a Filesystem as a data structure.

Here are some ideas:

  • A web server / application with a limited and synced to phisical disk
  • Some sort of mock FS testing
  • Deploy a yeoman style template in node.js
  • Build an OS real or otherwise
  • Build the next docker
  • Browser mock FS
  • Wasm FS thing
  • hybrid synchronized FS
  • some new build system concept
  • Port it to Rust
  • Make it work on a real disk (it's possible with Fuse)

So I'm on my phone, I can't go explaining the code because it's not done yet, BUT it's intuitive I feel, also it's locked down as much as possible so that only a new Shell() can actually interact with the FS just like the real thing.

Such a fun toy, want to help me, get in touch we can FOSS it


Original Link: https://dev.to/adam_cyclones/a-filesystem-in-javascript-jj9

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To