plasma-umass / browsix

Browsix is a Unix-like operating system for the browser.
Other
3.15k stars 181 forks source link

I don't see a clear getting started. Can you help? #69

Open tcoulter opened 5 years ago

tcoulter commented 5 years ago

Hey there.

This project looks amazing, and is exactly like what I'm looking for. In fact, I'm trying to create an in browser web terminal much like your example, but one that includes the truffle command line tool for blockchain development.

From what I've read in the readme, I don't see a clear way to:

Effectively, I need to create your demo with one other command line executable included. Can you tell me what I need to do? You might need to dumb it down for new users like me, aka, "add this script file to the , then compile your node app with browsix, include that script file, etc.". I feel like I'm missing some really obvious documentation, honestly. Being able to use browsix would be so amazing for me.

Some things I'd be looking to do once implemented:

  1. Examine the filesystem in browser, outside of the kernel (say, in local storage) so files can be downloaded by the user.
  2. Integrate it all with React (I'm happy to figure that one out)

Any help you can provide would be amazing!

ids1024 commented 5 years ago

Quick way to get something into the Browsix filesystem: build Browsix, add the file to the fs/ directly, run make serve.

tcoulter commented 5 years ago

Thanks @ids1024! This helped a lot.

Mind helping me with another question? It seems to be suppressing Javascript errors, as far as I can tell. For instance, when executing the command I added to the filesystem, a nodejs script, I get the following:

Error while executing undefined: Uncaught TypeError: Cannot read property 'slice' of undefined

I'd love to know about the first undefined, but more importantly I'd love to see the stack. I've got a complex application I'd love to port over, so not being able to see the details like this is going to be a big issue.

If you know a workaround, or can point me closer to where this issue is coming from, I'd love it!

ids1024 commented 5 years ago

Probably part of the issue you're having debugging it is due to the fact that Browsix processes run in Web Workers. I noticed debugging Web Workers seems to work better in Chromium than in Firefox. Although I've still had trouble trying to do things like add breakpoints.

godalming123 commented 9 months ago

@tcoulter truffle is a very good full-featured example, but I wouldn't advise using it in browsix to mine crypto (if that what "developing etherium" means) because WASM (the technology used by browsix, that allows near-native performance code-exucution in the web browser) only has near native performance, and running something locally is ~30% faster than WASM. See: here