stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

AlpineOS

  • 9 Devlogs
  • 23 Total hours

Nothing just trying to decode the system design of operating systems 😉

Ship #2

This is AlpineOS 2 (WebOS-2)

  • upgraded from the previous version of AlpineOS 1 (WebOS-2)

UPss

  • Window animations are now smoother and more responsive.
  • Introduced Widgets and are draggable anywhere on the desktop screen
  • Truly FullScreen mode is here, previously the fullscreen was still not using the space behind the dock and menu bar at top, now it does
  • Menu Bar improvements, now it has calender, wifi and a brightness slider which actually workd
  • A new Settings app, which now has the personalization settings, and a new Widgets section where you can add widgets to your desktop
  • Auto hide dock is now working, it simply hides the dock and shows on hovering th bottom of the desktop and it can be toggled in the settings app

The Challenge?

  • The main hurdle for me was understanding the actual OS, and its working
  • as i hve tried to keep this project as realistic as i could understand
  • other then that, the animations and drag and drop functionality was a bit challenging, so right now drag and drop us not supported as i have my exams coming up ans stardance is also going to end 30 sep to i dont have that much time

The Excitement?

  • this project was particularly exiting for me not because of the web technologies like used react heavily
  • i have been a web dev for like a year
  • main thing was the OS part, i have never worked on an OS before and this was a new experience for me, and i really loved it
  • i tried to understand the real Operating System
  • i leanred about scheduling algorithms like FCFS, SJF, memory management,how kernel works and communicated, how things are separated and modularized so much more

What can you do?

  • just right click on desktop and try to add a widget
  • try to hide dock from the settings app, and hover at the bottom of the desktop and see the dock appear back
  • try to minimize and maximize the windows and see the animations
  • try increasing and decreasing the brightness from the menu bar
  • 4 devlogs
  • 11h
  • 6.36x multiplier
  • 72 Stardust
  • WebOS 2
Try project → See source code →
Open comments for this post

2h 20m 3s logged

Devlog 3

Launchpad

  • as promised i have created the launchpad , but the serach functionlity is not working in it sorry i know its just s amll filter thing but i got my exmas this week, im in rush

  • need to feactor the whole assets thing as i wasn initially importing the images but now i have moved it to the public and how just load them all

  • updated the readme and added icon for the launchpad

A lot can be done i think, but i am limited with this event ending 30 sep and also my exams are coming up
SO BYE FOR NOWW, i really loved this project

0
0
27
Open comments for this post

3h 17m 14s logged

Real OS

  • true now this feels like a real operating system

Widgets

  • added widgets to the desktop, can be added from the settings
  • right there are jsut widgets for clock and calander but same design can be used to simply add many more kinds of widgets

Menu Bar

  • menu bar now has the brightnes control slider and wifi options (obviously wifi are fake here)

Dock can now be auto hidden from settings and only shows up when you hover in the bottom jsut like real macos

Integrated the perosnalization in the settings app

up next i will add a launch pad, some more little apps, fix a issue related to navigation in finder that i just found out

0
0
32
Open comments for this post

1h 28m 4s logged

Devlog 2

  • i think i have laid a good foundation for process and window management
  • i am now focusing on the UI and UX of the desktop environment and adding some more app, fetures, and more OS like fell

Minimizing and maximizing windows

  • implemented feature to minimize and maxiimize the windows
  • maximizing feature existed but there were some bugs and it wasnt really fullscreen so i fixed that and now it works as expected
  • improve Dock to open or focus the app by detecting wheter app is open or closed or minimized

Started improving and adding animations

  • used framer-motion to animate the appearance and disappearance of the windows
  • later i will add transitions to other elements as well

Created a settings app

  • to handle the widgets , appearance and general setting all i one place

  • also fixed an infinite render issue in ActivityManagerApp that was caused by the useEffect

0
0
10
Open comments for this post

4h 10m 38s logged

Devlog 1 (after shipping webos1)

  • so its been like 2 months since i last worked on this project so i just revised the whole codebase once

Realism

  • so when i decided to build this my main goal was to make it as realistic as possible
  • by realistic i mean to make use of concepts that is used in real linux OS, not just UI but the actual inner workking

What went down

  • any application when opened in OS has two parts
  1. The window
  2. The process
  • Like for notepad app, there is a wrapper window which has the close button and menu options and then there is the actual notepad process which handles things related to the creation and saving of the notes file

what was the problem

  • In real OS whenever we try to close a window, the window wrapper simply sends a closing signal to the actual process saying hey process user wants to close you for now.

  • after this the process either saves logs, current changes or show user a confirmation dialog before closing

  • but in my webOS i was jsut closign the process when user clicked the close button on the window wrapper, which is not realistic at all

There are three kinds of closing signals that a process can receive

  1. SIGTERM
  2. SIGKILL
  3. SIGQUIT
  • i will not get into the details of these signals but they mean different things , like SIGTERM is a request to terminate the process whereas SIGKILL forces the process to terminate.

Solution

  • so i basically added a new property to the window state to track if a window has requested to close the process
  • process actively listen to such state change from the window and replies accordingly and closes the app
  • performs tasks like askeing user to save changes, show warning dialog etc before closing the process

there are still some bugs and a lot of things to improve in this thing but i will do that in the next devlog

0
0
8
Ship #1

I built AlpineOS,

  • A fully functional, persistent, browser-based operating system, not just a CSS UI mockup
  • it’s powered by a custom Redux “kernel” that actually manages background processes independently from the visual windows.
  • live Activity Manager that tracks active PIDs and simulated CPU/Memory telemetry.
  • It includes a persistent Virtual File System
  • An draggable Window Manager
  • Terminal engine that interacts with the File System
  • Persistency , File and folders are persistennt and so it the state of the OS, you leave and come back just find that it has retained the state.

The Challange?

The architecture and state management were incredibly complex.

  • Synchonizing the UI with the actual process mangement in the “kernal”
  • Persistence, making the whole website persistence.
  • Creatin an Task manager was fun and exciting, it felt like a real low level OS feature

Excitement??? hell yeah

  • my whole time I have been building, high-level websites and backend. I never tried a low level project, although this is not Low Level but it forced me to explore the architecture and concepts of hoow operating system works at Low level, how terminal connect with the file system.
  • who doesn’t get excited by low level ??
  • Being able to selec multiple files and folder, not dragable yet, but soon will be

What can i do?

  • When you boot it up, don’t just click the icons and look and design and colors, stress test the ARCHITECTURE!
  • Open the Terminal , use cd to change directory and try standard commands like mkdir, touch, ls, and interact with the file system
  • Open the Activity Manager side-by-side with other apps to watch the active processes update and check the live charts (dummy)
  • Right-click the desktop to open Personalization and change the wallpaper.

Most importantly: Open a few windows, move them around the screen, and then hard refresh your browser or maybe just restart and Watch the persistence engine drop you right back where you left off.

Try project → See source code →
Open comments for this post

3h 39m 51s logged

#update number 0.0000033

The old man, Terminal

  • Now terminal supports file system operations, can create and delete folders and files

Textpad

  • now it can open text files and edit those and save, can create new files as well

Activity Manger , task manager

  • Shows the currently running processes in the os, also gives and option to forcefully terminate any process, shows CPU and RAM usage (dummy but mindful of currently running processes)

Menu bar

  • menu bar now has specific and dynamic context menu options for each app
  • although its not available yet for each app, but the logic is implemented, I just need to write json config for the ui to display

Personalization

  • Right click on desktop and click on Personalization to change wallpaper,
  • will support more customization soon

Boot

  • added a cool mock up to mimic shutdown and booting process of OS,
0
0
11
Open comments for this post

3h 17m 41s logged

DevLOG FOURRR

What do we got this time

well well I now have a complete basic file management system build, I can create text files, edit them, open them, save them in any specific location , delete it,

terminal now can run more commands

‘’‘ls, mkdir, rm. touch, echo, clear, etc’’’’

context menus

It was time taking and exhausting as every section of the operating system required different type of context menus. It was so much messed up. I ended up creating something central where a single config can decide and make a whole context menu,

Desktop is ALIVE

Long awaited something I wanted to do is to display what there is in the desktop directory directly onto the desktop after making the complete file system.

0
0
22
Open comments for this post

52m 10s logged

Dev Log Threeeee

Added a browser

as of now only a few websites are accessible like wikipedia.org, other websites reject the connection in a iframe, I am looking for solution to this, I was thinking to maybe compile a rust model web browser using ecmascript and run a browser in browser, looks tough for limited time I have for this project , will definitely give it a shot ( if you guys got any idea let me know )

yayyyy File system is now persistent

well despite coolest feature this was fairly easy redux-persistence saved the day, used indexDB as localstorage is synchronous and only allows 5MB of storage

-> the files created in desktop folder now show up on the desktop on top of wallpaper

NEXT GOAL

  1. add some more commands in terminal like ls, touch, mkdir, rm
  2. ability to create and save text files
  3. make files and folders drag-able (DREAMYYYY)
  4. personlization options
0
0
13
Open comments for this post

41m 10s logged

Dev Log 2

  1. Implemented resizing and maximizing of windows (easypzy lemon squeeze)
  2. Added some dummy options in the menu bar (will soon make them functional too 😉)
  3. Improved UI of file manager (Finder)
0
0
12
Open comments for this post

3h 28m 49s logged

AlpineOS, lightweight web os for study and space research(will be coming soon)

The name inspiration come from the alpine images of docker “light weight”

I am trying to build is os such that user can sort of study about space.

as of now I have build some basic file system, dragable windows, I have setup basic architecture for applications, processes, and files and folders

hope fully in my next DEVlog, I will have implemented /fixed

  1. resizable windows
  2. control panel
  3. file and folder persistence
  4. some cool apps on space theme
  5. preventing windows from going out of screen,
  6. will try to make terminal somewhat working
  7. improve the UI
  8. ability to minimize the windows
  9. drag and drop upload of files like text, pdf, word excel etc,
0
0
10

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…