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

AlpineOS

  • 5 Devlogs
  • 11 Total hours

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

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,

#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,

Replying to @ashish-raj-singh

0
3
Open comments for this post

2h 50m 1s 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.

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.

Replying to @ashish-raj-singh

0
17
Open comments for this post

50m 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

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

Replying to @ashish-raj-singh

0
2
Open comments for this post

31m 57s 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)

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)

Replying to @ashish-raj-singh

0
3
Open comments for this post

3h 11m 21s 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,

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,

Replying to @ashish-raj-singh

0
3

Followers

Loading…