maestro-os / maestro

Unix-like kernel written in Rust
https://blog.lenot.re
GNU Affero General Public License v3.0
2.83k stars 90 forks source link

Webbrowser VM (WASM or asm.js) and use GPLv2 or Mozillas MPL #3

Open kolAflash opened 6 months ago

kolAflash commented 6 months ago

A nice way to allow people to look at a new OS: https://bellard.org/jslinux/
https://copy.sh/v86/
Maybe you like to host a copy of that for Maestro. You only need to serve static files. The VM runs completly in the webbrowser client.

 

License

Additionally I like to mention, that I consider GPLv2 a main factor of success for Linux. Especially in the early days GPLv2 forced companies to work together. Red Hat or SUSE couldn't make their Linux completly propritary because of GPLv2.
(Look at Microsoft. Theiy simply used the TCP/IP stack from BSD for Windows without ever giving something back to BSD.)

So I'd humbly suggest to use GPLv2 instead of MPL.

 

GPLv3 is a little strict. Many hardware vendors competly avoid it, because it enforces them to allow customers running custom OS on the hardware. This sounds nice for customers. But it would have kept companies from contributing to Linux. And commercial contributions make up a great part of Linux's success.

An alternative to GPLv2 would be Mozillas MPL. It's a little more permissive than GPLv2. But it still enforces others to share their improvements.

https://en.wikipedia.org/wiki/GNU_General_Public_License#Version_2

https://en.wikipedia.org/wiki/Mozilla_Public_License

GuyLiner commented 6 months ago

I agree with the license comment. I would hate to see this project end up being used as a way for companies to start "using linux" while contributing nothing back.

If linux was permissively licensed like this project we would have never gotten projects like LineageOS or DD-WRT. It's really important.

llenotre commented 6 months ago

I am currently thinking about switching the license. A lot of people made that remark.

To be fully honest, the decision to use the MIT license was taken a long time ago and was based only on "this is somewhat acceptable" and "this is easy to understand". Literally a no brainer because I didn't want to spend time thinking about this.

Now that the question gained relevance, I am considering it.

Now when it comes to online testing, this is a very good point. Once upon a time, I envisioned using QEMU instances running in the backend and VNC in the browser to allow people to try the system. But if it turns out your solution works better (I will test it), then I am going to use it.

Online testing will not be coming right now though as I am willing to stabilize the system first, to make the testing experience more enjoyable :)

rdmsr commented 6 months ago

Switching to GPL because "companies won't make good use of it" is idiotic. Truth is, companies do not give a shit about random hobby OS projects and will keep using Linux for the foreseeable future. I'd recommend the author to license it however he wants

GuyLiner commented 6 months ago

Switching to GPL because "companies won't make good use of it" is idiotic. Truth is, companies do not give a shit about random hobby OS projects and will keep using Linux for the foreseeable future. I'd recommend the author to license it however he wants

I disagree, companies would love to use Linux without releasing a single piece of source code. Projects like this matter and, even if at the moment the value is not seen, no one knows the future. If this becomes something bigger it'd be a good idea to have the baseline of "if you use this, you have to give back". While also ensuring it remains open source.

Also, with it being a kernel, if it ends up in phones, etc, it will be easier for people to tinker with said devices.

darkpixel commented 6 months ago

If a project uses GPL3, I just skip over things and move on.

I use stuff that's under a truly open license like BSD. I'm not so petty that my feelings will be hurt and I'll cry if some "big evil corporation" uses my product to make money. I write software for the joy of it.

hllhnd commented 6 months ago

If a copyleft license is undesirable to the author for some reason, the Apache 2.0 license is the next best option specifically for section 3, "Grant of Patent License."

Mart-Bogdan commented 6 months ago

I don't think that MS uses net stack from BSD. They just have same function signatures.

At least in current version of windows.

workingjubilee commented 5 months ago

Modern systems have more than enough power to execute Linux in a pixel shader, so it indeed would make more sense to simply run the kernel on the client's system. Another example of this principle is riscv-rust which also has an online demo of running Linux on RISCV on wasm.

llenotre commented 5 months ago

So I tried v86 as proposed by @kolAflash and it seems to be booting (using GRUB and the kernel on a CDROM, and a filesystem on a hard drive). I did not check the keyboard yet though as I still have to make it boot completely.

However it is rather slow, but I guess it is probably my fault. I am investigating.

If everything turns out to work correctly, I will make it clean and then I will push it to my website 🙂