DEV Community

Cover image for I write my own web desktop OS for 3 years and this is what it looks like now

I write my own web desktop OS for 3 years and this is what it looks like now

Toby Chui on April 04, 2021

This is a story about a poor student who just want a storage solution for his musics, video and photos using a Raspberry Pi. ...
Collapse
 
faraazahmad profile image
Syed Faraaz Ahmad • Edited

I had a similar idea when I was in 6th or 7th grade of making an "OS in the browser" but back then I was a noob little kid with no skills, the best I got was a lockscreen and an app drawer like that of Firefox OS (remember that?). Seeing this fully realised is very satisfying to me. Great job!

Collapse
 
tobychui profile image
Toby Chui • Edited

Glad that you like the ArozOS project :)

I still remember Firefox OS as a mobile OS instead of a full desktop interface, and it is also one of the design concepts I studied before I started working on this system. This is the reason that I implemented the web desktop for mobile in ArozOS as well.

I guess now you should have the required skills to make your own "OS in the browser". Maybe you can consider give it a go again after all these years?

Collapse
 
faraazahmad profile image
Syed Faraaz Ahmad

Haha I wish! Now that I have enough skills to figure out how to build it, I don't get enough free time πŸ˜…. I tried building an actual OS from scratch using an awesome tutorial by Phillip Opperman but it was too much work. Maybe if I get super excited about this again I might give it a go. Until then I might just find some hobbyist OSes and contribute to them.

We shall see!

Collapse
 
shmuelhizmi profile image
shmuelhizmi

Wow, I have been working on a web based desktop environment for almost a year and Im really surprised this is the first time I see your project.

This is my project by the way

Collapse
 
tobychui profile image
Toby Chui

Glad that you finally notice this project XD
I have been following a few web desktop projects (including your project of course) on Github & dev.to for quite some time. I am amazed by your idea to move Linux GUI application to web interface. I am looking forward to see your implementation as well as new updates on your designs. :)

Collapse
 
shmuelhizmi profile image
shmuelhizmi

Thanks, that means a lot. πŸ˜„

Collapse
 
kodekrash profile image
James Linden • Edited

This is neat! I started a similar project at least 3 times but never finished one. Kept getting distracted by the hardware aspect because I'm bad with UI and wimped out. My use case was an RPi with 8" touchscreen as a frontend to an Intel i7 NUC... in my truck. Music, GPS/nav, ODB2, internal and exterior cams, wifi hotspot, video calls, lighting, plus integration with my various ham gear. Hopefully, I'll get back to that project one day!

Collapse
 
tobychui profile image
Toby Chui

Your system sounds more powerful than mine! Looking forward to your sharing after it is finished :)

Collapse
 
aurelmegn profile image
Aurel

it would be interesting to list the tool you used. Or do you write all by yourself?

Collapse
 
tobychui profile image
Toby Chui

Yes, I write it all by myself through out my 3 years journey of developing this system. You can find the source of all the WebApps in my repo.

Collapse
 
aurelmegn profile image
Aurel

It is awesome by the way

Collapse
 
mikeschinkel profile image
Mike Schinkel

Hi Toby,

This is pretty amazing.

I do have a question about this though. I looked for a license but could not find one. I see here on dev.to that you refer to yourself as an open-source developer so I assume you mean for ArozOS to be open source? If yes, will you add a license to your GitHub repo so that anyone who seeks to contribute might know what they are contributing to?

This link explains how to assign a license:

docs.github.com/en/github/creating...

BTW, I also created an issue on your repo asking the same:

github.com/tobychui/arozos/issues/57

Collapse
 
tobychui profile image
Toby Chui • Edited

Hi! First of all, as an open source developer, sometime I do make things that is close source :P
For the ArozOS project, as you can see, all source code are available on Github for anyone who want to read it (and hence the "source is opened" ). There is a section in README that explains the usage requirement / license of this system. Feel free to contact me via email or telegram if you have any inquiry of using this system for any other use cases other than those listed in README.

Collapse
 
mikeschinkel profile image
Mike Schinkel

Hi Toby,

Thanks for the quick reply.

Hmm. I assumed you knew the definition of open-source already β€”Β especially being a student in CS β€”Β maybe your university does not cover it?

Please forgive me in advance if you do already know this, but your reply makes me think maybe you do not?

So there is well known definition of "open source" and you can find it here on the Open Source Initiatives website. Unfortunately while having source be readable is necessary, it is not sufficient to qualify a project as "open-source":

opensource.org/osd

In a nutshell being "open source" refers to the type of legal license you provide for your source code that allows users to freely modify a work, use said work in new ways, integrate the work into a larger project or derive a new work based on the original.

Here is the list of licenses that are currently recognized as open-source:

opensource.org/licenses/alphabetical

Given your stated usage terms ArozOS would sadly not be considered open-source by the OSI's definition, which AFAIK is pretty universally accepted.

Why do I care? I have a project called Launch I am developing designed to provide a super easy way to run Docker containers without having to even know anything about Docker:

github.com/gearboxworks/launch

When I saw AroxOS I thought Launch would be a great tool to help you let other people easily run your solution without having to figure out how.

Of course our motivation would be that everyone who used Launch to run ArozOS would of course end up with Launch installed on their computer.

However, for software where the license in unclear there is too much legal liability for me to wrap your software and distribute it via our Launch repository. That is why I wanted to know if you planned to license it as open source.

If you do decide later to license it with one of the established open-source licenses please do reach out to me via email at mike at newclarity.net because I think there could be some real synergy between our two projects, assuming you are looking to make it really easy for people to try it and/or use it (which I assume you do since you wrote this article.)

Whatever the case, you've created some pretty amazing software. Kudos!

-Mike

P.S. We have not started a public push for Launch adoption, but plan to soon. Also, our Launch source code is not currently on our repo but will will release it and license with an OSI-approved license once we reach 1.0 and really start promoting it.

Thread Thread
 
tobychui profile image
Toby Chui

Hi Mike, thanks for your detail explanation. This is just a simplified reply that I post on dev.to. Please proceed to your GitHub issue to see the full reply regarding the license issue. We are looking forward to cooperate with you if you are interested in using this project for your business and we can make a great deal out of it :)

Thread Thread
 
mikeschinkel profile image
Mike Schinkel

Thanks!

Collapse
 
richzendy profile image
Edwind Richzendy

Well, is really amazing all your work there, will be great if someday a NAS hardware maker use your OS on his devices and pay you for support and next releases.

Collapse
 
tobychui profile image
Toby Chui

Thanks! I think I will switch to full time dev if that really happens :)

Collapse
 
lukaszcierocki profile image
Łukasz Cierocki

Awesome!

Collapse
 
tobychui profile image
Toby Chui

Thank you!

Collapse
 
ianwijma profile image
Ian Wijma

This has been something I've been thinking about. Really interesting on how you implemted it. Any plans for future features or changes. Just curious.

Collapse
 
tobychui profile image
Toby Chui

I am thinking of supporting IoT devices (as a control hub) as well as cluster features for redundant file storage across different hosts. But feel free to share your thought by creating an Github issue. I would love to hear your ideas as well :)

Collapse
 
dystopiandev profile image
Justin Etighe

I did something once. It's small but could add to ideas you'll come up with to standardize IoT support in ArOZ: github.com/dystopiandev/remoffice-...

I wired an Arduino UNO to a multi-channel relay board (as a sample IoT control gateway), then I linked the UNO to a RPi3B over I2C, which I interacted with from a Node.js backend over a Vue-based interface.

ArOZ is a wonderful concept with gorgeous aesthetics!

Thread Thread
 
tobychui profile image
Toby Chui

Thanks so much for you sharing!

I have checked your Github repo and seems you have done something similar of what I am working on. In ArOZ, it use something similar to your design but instead of I2C + Arduino, it use WiFi with ESP8266. I have uploaded some alpha testing code on Github over here and named it Home Dynamic v2
github.com/tobychui/Home-Dynamic

Maybe I will write a new post sharing my design concepts on this IoT system later.

Collapse
 
manoharreddyporeddy profile image
Manohar Reddy Poreddy • Edited

OMG!
I can't even think of doing an OS (done by many many people) all by myself 😊
OS is just beautiful & you are really brave to attempt & do such a thing.
Best of luck.

Collapse
 
davidag9 profile image
Agyakwalf

I am a little lost here , As I am still green horn at systems programming ....I wan to ask if it is an OS written in go that sits on a web server or a Webapp that's interfaces with a desktop or laptop ....or probably I am asking the wrong question ...someone help

Collapse
 
tobychui profile image
Toby Chui

This is an Online System that reproduce a native desktop environment on the web.

Collapse
 
bawa_geek profile image
Lakh Bawa

awesome,

Collapse
 
tobychui profile image
Toby Chui

Thanks!

Collapse
 
crazycoder009 profile image
RRN

Bro! I checked out your repo! Totally loved the Whole OS. I must say I am impressed and you got me there.

Collapse
 
tobychui profile image
Toby Chui

Thanks! Glad that you like this OS. Hope this project can bring you some insight for you next projects :)

Collapse
 
crazycoder009 profile image
RRN

Just a Small suggestion, If there was a easier to remember name for the OS it would have been great. I literally forget the name everytime, maybe it will take some time for me to register.. ha ha but anyway thank you for the gr8 work!

Collapse
 
crazycoder009 profile image
RRN

Definitely!

Collapse
 
vinaykeshava profile image
Vinay Keshava

This is amazing

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
tobychui profile image
Toby Chui

Thanks!

Collapse
 
mtzagkarakis profile image
Manos Tzagkarakis

I could not imagine the amount of man hours you put in it. Good effort

Collapse
 
tobychui profile image
Toby Chui

Thanks! I can't count how many man hours I put into this project but I do put a lot of my free time improving this system so as to fit my own needs XD

Collapse
 
theowlsden profile image
Shaquil Maria

This is awesome! I wanted to create a GUI for file management on raspberry pi once but never got to do it. I'll be keeping an eye out for this project.πŸ‘ŠπŸΏ

Collapse
 
tobychui profile image
Toby Chui

Glad you like this project :)
For Raspberry Pi, there are quite a lot of different options for file management like the golang file browser project. You can take a look at them if you only need a file browser instead of full desktop experience.

Collapse
 
pssolanki profile image
P S Solanki

This is brilliant work, Toby! Keep up the good work <3

Collapse
 
arwen profile image
η”°εšζ–‡

This is so cool!

Collapse
 
nickdivona profile image
Nick DiVona

Incredible work. Quite the undertaking, but seeing the end result of your work is pretty inspiring.

Collapse
 
tobychui profile image
Toby Chui

Thanks! Hope this project can inspire you some new insights on your own projects too :)

Collapse
 
bytemazicodes profile image
byteMaziCodes

This is a Brilliant work. Awesome!

Collapse
 
frankity profile image
Douglas Brunal

it looks cleaner than Chrome Os <3

Collapse
 
sarahcodes_dev profile image
Sarah πŸ¦„

This is so cool! Really awesome work πŸ‘πŸ»πŸ‘πŸ»

Collapse
 
tobychui profile image
Toby Chui

Thanks!

Collapse
 
tlacalv profile image
Tlacaelel Leon VillaseΓ±or

It's amazing and overwhelming, how did you approach such a large project, I can't even think on how to start something like this.

Collapse
 
tobychui profile image
Toby Chui

It starts small (just a few hundred lines of PHP code), then I add things that I want into it during my free time between lectures (and also use it to automate some of my daily works). After years of tiny improvements it grow this large, which is kind of unexpected :D

Collapse
 
ahmedash95 profile image
Ahmed Ashraf

Impressive

Collapse
 
rageobi profile image
Abinanthan Raghunathan

Kudos man! Great work.

Collapse
 
kievandres profile image
Kiev Andres

Awesome! πŸ”₯πŸ”₯

Collapse
 
joshbnntt profile image
Joshua Bennett

Love it!