Live data from Hacker News

Reaching the Unix philosophy's logical extreme with WebAssembly

xeiaso.net

121–130 of 142 posts

Re: Reaching the Unix philosophy's logical extreme with WebAssembly

#121
Instead of "files", they should have called it "objects".

Unix is an object-oriented OS.

(The nomenclature is quite backwards. It would be like building a database of employees, companies, etc. then saying "everything is an employee", companies are just a special kind of employees.)

Re: Reaching the Unix philosophy's logical extreme with WebAssembly

#122

Instead of "files", they should have called it "objects". Unix is an object-oriented OS. (The nomenclature is quite backwards. It would be like building a database of employees, companies, etc. then saying "everything is an employee", companies are just a special kind of employees.)

"We have persistent objects, they're called files." -- Ken Thompson

https://en.wikiquote.org/wiki/Ken_Thompson

Re: Reaching the Unix philosophy's logical extreme with WebAssembly

#123

The new OS I am creating https://www.exaequos.com is WebAssembly in a POSIX environment. So it is running in every web browser

fun project! always love to see more unix cli in the browser. It is super nice with the local first approach, and I wonder what it would take to be able to `mount https://example.org ` from `test.com`, if both websites are running the "wasm web OS" your linked to. Cheers!

Programs are compiled with a modified version of emscripten for supporting the system calls of exaequOS. I do not use WASI

Re: Reaching the Unix philosophy's logical extreme with WebAssembly

#124

Instead of "files", they should have called it "objects". Unix is an object-oriented OS. (The nomenclature is quite backwards. It would be like building a database of employees, companies, etc. then saying "everything is an employee", companies are just a special kind of employees.)

The problem with "everything is an object" it doesn't tell you a great deal off the bat. It's like saying "everything is a thing". Sure, it's true but it's not helpful.

In your "companies are just a special kind of employee" example well if that is true within your data model then that is quite interesting and contributes to the listeners understanding of how things work. The alternative "companies are a just a special kind of entity" is less useful.

Re: Reaching the Unix philosophy's logical extreme with WebAssembly

#125
post #116

The new OS I am creating https://www.exaequos.com is WebAssembly in a POSIX environment. So it is running in every web browser

Oof. My Firefox browser on Ubuntu crashed and all my open VSCodium's went along with it. Happened when loading for a second time. First time worked.

It should not use a lot of memory when the login prompt is displayed and even when bash is launched

Re: Reaching the Unix philosophy's logical extreme with WebAssembly

#126
post #64

Reminds me of that time I wrote a StringToExecutableFile() function for running [e.g. a Rust binary] from C++, but that depended on several layers of build system horror to embed the executable file as a string, and it wasn't cross-platform. Imagine a utility function that dumps an embedded string to an unlinked temporary file, sets the +x permission, and returns a /proc/self/fd/N filename so you can exec() a subproc…

This is of course not the purpose of your post, but since you're interested in this topic, I wanted to mention that you can now create memory-backed files on linux using the memfd_create syscall without using any filesystem (nor unlink) and you can also execute them without the /proc/self/fd trick by using the execveat syscall. In glibc, there is fexecve which uses execveat or falls back to the /proc trick on older k…

Depending on how hacky you can also just re-invent a non-relocating ELF loader

Re: Reaching the Unix philosophy's logical extreme with WebAssembly

#127
post #102

Earlier quoted context omitted.

Nothing like reinventing COM :)

Nobody has a good IPC/RPC-based abstraction set right now. And everybody is kind of struggling with that. Look at the latest Microsoft thing about embedding Python in Excel. They're going the wrong direction. What everybody wants is to be able to drive Excel from Python aka an API that people could hook into. Even WASM is kind of ... weak ... because it has to deal with the lowest common denominator--a web page with…

COM works well, it’s still heavily used on Windows. The Windows Runtime API’s are just COM! It lets C++\C#\JavaScript\Rust all talk to each other in the same app.

I just think it’s funny since it was so heavily derided by people. It took awhile for me to appreciate its reasons to exist, and I still don’t like some of the vocabulary they used.

Re: Reaching the Unix philosophy's logical extreme with WebAssembly

#129
post #102

Earlier quoted context omitted.

Nothing like reinventing COM :)

Nobody has a good IPC/RPC-based abstraction set right now. And everybody is kind of struggling with that. Look at the latest Microsoft thing about embedding Python in Excel. They're going the wrong direction. What everybody wants is to be able to drive Excel from Python aka an API that people could hook into. Even WASM is kind of ... weak ... because it has to deal with the lowest common denominator--a web page with…

And thus AREXX rises from the ashes of the corpse of Amiga.

Re: Reaching the Unix philosophy's logical extreme with WebAssembly

#130

Earlier quoted context omitted.

I'm losing my job soon due to their return to office bullshit. And I was hired as a remote employee. HR can kiss my fuzzy butt lmao

I am sorry to hear that. Please accept my apologies for a quick and easy sarcastic comment that cut too close. Good luck with the future job hunt.

Ah, thanks for the compassion. I didn't take any offense though. :)
Post reply on HN