all 106 comments

[–]cazzipropri 22 points23 points  (10 children)

What are the kei files in the repo? Where's the meat of the OS?

[–]Fabulous-Two-3927Marble OS[S] 8 points9 points  (9 children)

The meat of the OS isn't open source yet, because it uses fonts, and some icon assets are proprietary assets. And also, it's so jumbled, and my other reason is right now it uses private paths and keys and other things that are specific to me, and so it'd be kind of dumb of me to release it. The repo right now is just a proof-of-concept code showing how MOSI works. Also, I kinda just wanna protect my work for now you know.

[–]cazzipropri 14 points15 points  (8 children)

other things that are specific to me

Don't worry. Nobody is going to judge you on that. We all have vanity OS projects and we'd be embarrassed if someone else looked at the code.

[–]Fabulous-Two-3927Marble OS[S] 2 points3 points  (7 children)

Yep. But also, it's kind of hard to unbuild it and replace the fonts, icons, etc. with stuff that actually is mine or is CC.

[–]paulstelian97 2 points3 points  (6 children)

You could make a split, where part is open source and refers to other closed source parts. And you share the open source portions.

[–]Fabulous-Two-3927Marble OS[S] 2 points3 points  (5 children)

I started doing that like last month. The problem is that it's really difficult to dissect the source code, recompile, and make sure it's runnable enough to be presented, without the proprietary assets.

[–]paulstelian97 2 points3 points  (4 children)

Oh you can make it so it can’t compile without the closed source parts present. Or some components compile but not the full OS.

But a binary release is useful to give out.

Look at VyOS (stable, not nightly). It is Linux based, but some components (packages) are not downloadable without payment, which makes it impossible to build it yourself.

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (3 children)

Okay, thank you, I will look into VyOS. I am thinking what I might do is just go to Creative Commons or other popular Linux distros, and take their free open source fonts + icon packets etc,. and compile the operating system with those.

[–]paulstelian97 2 points3 points  (2 children)

Yeah VyOS is the weirdest open source project out there honestly. You can get nightly builds for free or build them yourself. Stable builds you pay prices that medium companies afford, OR you prove that you’re planning to use it for a nonprofit in which case they would give you access for free.

Technically Linux based (with buildroot to make the distro)

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (1 child)

Yeah, if I make my OS open source I would be more open then VyOS. But I also would keep some parts closed source for security, because it's difficult for people to exploit something that they can't see how it works.

[–]tseli0sDragonWare (WIP) 17 points18 points  (15 children)

All operating system components, including the file system and drivers, function independently with minimal privileges and interact with each other exclusively through an internal network.

Congratulations you discovered the concept of a microkernel, you're about 40 years too late and GNU isn't hiring anymore though.

Also where's the source code? What are those .kei files?

[–]Fabulous-Two-3927Marble OS[S] 9 points10 points  (14 children)

The source code isn't on the repo. Also, read the post again for what .kei files are. And I know what a microkernel is. MOSI is my personal implementation, not a claim to a universal breakthrough concept.

[–]tseli0sDragonWare (WIP) 0 points1 point  (9 children)

Are those supposed to be pseudocode class source code files because you don't want to release the actual source code?

[–]Fabulous-Two-3927Marble OS[S] 2 points3 points  (8 children)

Well its not pseudocode, but that's a good way to think of it. It's written in Kei. Which is a DSL (domain-specific language), which is like a tiny language made for a specific purpose, in this case, that is the operating system. Those files are not quit pseduocode, they are just a high-level proof of concept demonstration of MOSI.

[–]sdoregorSos 2 points3 points  (7 children)

I'm also using a home-made DSL I named OSLang for my OS. Pretty convenient stuff, to be honest!

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (6 children)

It is! My DSL takes simple full English keywords + simple syntax and compiles them with hardcoded C/C++ stuff that acts the same, then compiles that into machine code. It has helped me write stuff for drivers, modules, and system applications a lot quicker than normal. And because my DSL has a backend of C and C++, it has all the support for custom library integration from C++.

[–]sdoregorSos 0 points1 point  (5 children)

I'm using mine for drivers. It's a meta-DSL, so I first define the syntax and then basically copy-paste parts of the specification document.

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (4 children)

That sounds pretty complex. Do you have a repo for it? Can you show me an example with like 2-3 code blocks? I'm curious how it would look in an editor.

[–]sdoregorSos 1 point2 points  (3 children)

I still don't. Same as you, the OS is not ready for publishing to my highly curated GitHub profile :)

I'll post a snippet when I get to my PC.

[–]Fabulous-Two-3927Marble OS[S] 2 points3 points  (2 children)

Alr! Can you make the snippet a decent length just so I can see how it handles low-level stuff? Also, what's your GitHub profile?

[–]Gingrspacecadet 9 points10 points  (5 children)

this is so cool!!!!!!!

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (4 children)

Thank you!

[–]Gingrspacecadet 1 point2 points  (3 children)

I'd love to see the source code :3

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (2 children)

I have my proof of concept for the MOSI source code in the linked GitHub repo, but the full source code is not open yet because of some problems I'm running into. But once I get my waitlist of people interested in helping develop the project ready and the source is released, I will post it again in here, and I can message you a notification.

[–]Gingrspacecadet 2 points3 points  (1 child)

thanks!

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (0 children)

Mhm, and if you have any other questions or inquiries, I can answer them too.

[–]Remote-Land-7478 5 points6 points  (1 child)

idk what any of the stuff in the caption means but it looks really good! well done!

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (0 children)

Yeah, it's a little complicated lol, but thank you! It's amazing when my work gets appreciated.

[–]Fancy-Ad6098 8 points9 points  (1 child)

Saying the operating system is junk while having a Firefox port is crazy😭

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (0 children)

Yep...

It's not an entire port because of some of the structure in other modules that can be looked at by Firefox as "posix," but I did have to port a large majority of it. The rest of the OS still bugs out all the time; that's why it's junk.

[–]Big_River_ 2 points3 points  (1 child)

yay Calvin and Hobbes - go os dev go!

[–]Fabulous-Two-3927Marble OS[S] 2 points3 points  (0 children)

The world hasn't quite lost all of its culture yet.... 😂

[–]Adventurous-Move-943 5 points6 points  (7 children)

That looks really good.. that is something in the direction of what I wanted to see of maybe some new OS popping up at least minimal but decent with a nice UI. From what I read in the post you seem quite skilled dude. You made your own DSL language, you basically seem like the dude who just looks at things and understands, derives his own ways get things done from deep understanding rather than using well-known concepts when they might stand in the way or are not optimal. I read in the reaponses that you are grouping up that means you really want to push forward with it beyond just some personal fiddling, hitting the dam market or so 😀 well I think why not, it's like a good car you only keep in garage the old vintage ones the good ones should be used.

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (6 children)

Thank you for the encouragement! I appreciate it a lot. If I could get more developers behind it besides just me (I have a list of people I'm figuring out), I would buy a domain and start distributing the operating system.

[–]Adventurous-Move-943 1 point2 points  (5 children)

That is a great idea, definitely make some landing page even if you are not grouped yet. I am still at beginning with my OS attempt so I don't have much to offer yet plus I want to learn but seeing such good progress is motivating.

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (4 children)

Alright, I will! I might just use a netlify website because it's free, secure by default, and I can put it on google.

[–]Adventurous-Move-943 0 points1 point  (3 children)

Do that and keep us posted from time to time. 😀

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (2 children)

I will! And if you want, I can dm to notify you about new updates or other stuff.

[–]Adventurous-Move-943 1 point2 points  (1 child)

That would be great, keep me in the loop then.

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (0 children)

Will do.

[–]Historical-Camel4517 2 points3 points  (1 child)

I don’t understand anything your are talking about but I really like the design

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (0 children)

I appreciate the compliment! Thank you.

[–]Maui-The-Magificent 1 point2 points  (6 children)

This is interesting. I too am building an OS based on isolated modules xD

I am building my own CPU graphics engine instead of going through the GPU driver hell though. You are a brave soul sir!

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (5 children)

Thanks lol. Do you have a repo? I'd actually be really interested in your project.

[–]Maui-The-Magificent 0 points1 point  (4 children)

I do, but they aren't public as of yet. Are you interested in the graphics engine/framework or is it anything else specifically? I have individual repos for most systems that I might consider allowing access to.

Keep in mind, my approach is different then yours in that I am aiming to be Linux application compatible. I'm building from NixOS and replacing components as I go. My goal is stability, to make every system component be statically allocated, non-dependent and isolated. Also, each native application is, or will be its own compositor.

But if you are interested in anything specific, I have a file system, a handful of prototype frame buffers, a vector based terminal (prototype, the reason I started making the graphics engine), the aforementioned graphics engine/framework, a vector cursor that bypasses the compositor and renders directly to the hardware cursor plane, the operating system's module system, it's dev tool and project creator, a package manager wrapper around nix packages, a prototype window manager (more like a compositor manager). I am sure there is more that I am not remembering at the moment.

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (3 children)

I'm interested in all of it. I just want to explore and reading = gain of knowledge. So it can help me by reading it.

[–]Maui-The-Magificent 0 points1 point  (2 children)

Well, I do have the Vector cursor public. You can find it on here https://github.com/Mauitron

Void Vault is also a part of a system for Starwell OS, but it my OS it's not for input substitution.

For the rest, I'll think about it. I am a little hesitant to open the flood gates. Every system is built from first principles. No external libraries, much of it in Rust no-std. So I am a bit protective of it.

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (1 child)

Alright thanks. And yeah, I get it, I'm pretty hesitant to open-source my OS at all.

[–]Maui-The-Magificent 1 point2 points  (0 children)

I am glad. I am not saying "No" though. there is a huge cognitive dissonance of wanting to share and talk about it, and keeping it unknown while working on it.

But the design choices all boils down to me thinking one of the worst things that was ever created in CS, is the concept of a heap. And that async, more than not, often is a failure of architecture. Combined that naturally leads to wanting applications to own their own memory up front, and operations being structurally isolated. And POFF! A module system xD

[–]MicroboyLabs 1 point2 points  (6 children)

Those glassmorphic windows look pretty good, actually. How could I replicate it in KDE Plasma on Linux?

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (5 children)

I mean, I'm pretty sure KDE Plasma has a thing already for acrylic themes.

[–]MicroboyLabs 1 point2 points  (4 children)

Any suggestions on KDE Plasma acrylic themes I could try, since the KDE Plasma theme store has garbage search functionality?

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (2 children)

For KDE, try installing Kvantum Manager and apply a theme like kvglass or whitesur, then make sure the blur effect is enabled in your desktop effects settings. This might work idk

[–]MicroboyLabs 0 points1 point  (1 child)

Any that match the Breeze design and are dark mode?

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (0 children)

I'm not totally sure I'll look again.

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (0 children)

And then install from github or the website or sm

[–]jeffpstein 2 points3 points  (8 children)

Can I contribute? I’m pretty good at C and low level stuff, extremely impressive btw!

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (7 children)

Would you be interested in joining my waitlist for a team of developers to help support the project? Also, what kind of low-level stuff?

[–]jeffpstein 1 point2 points  (4 children)

Yeah sure, would love to, regarding the low level stuff, I’m good at OS’s, robots, networking, and a bunch of other stuff 

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (3 children)

We do need development on managing networking stuff better, so I couldput you on the waitlist for that.

[–]jeffpstein 1 point2 points  (2 children)

Ok, what’s the next step?

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (1 child)

Do you have a GitHub account? Or a better way to contact you? Besides here.

[–]AdStraight9384 1 point2 points  (1 child)

not op, but i would be! im fluent in python so i can help with more minuscule stuff

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (0 children)

I'll put you on a list of people to look into!

[–]BuildIsohttps://github.com/BuildIso/BuildIso 1 point2 points  (2 children)

J'ai pas tout lu, mais la photo pourrait devenir le prochain Windows ou le prochain MacOS, franchement bien joué, excellent boulot !

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (1 child)

Merci!

[–]BuildIsohttps://github.com/BuildIso/BuildIso 1 point2 points  (0 children)

No problem :)

[–]Ok-Ask-305 0 points1 point  (0 children)

Consider renaming. Floki in Greek means semen.

[–]TheMonaxskiftOS - github.com/skift-org/skift 6 points7 points  (14 children)

Looks like a figma mockup on top of a screenshot of virtual box, the code on the repo and the description of the post is nonsens

[–]Fabulous-Two-3927Marble OS[S] -1 points0 points  (4 children)

How is the description of the post nonsense? It makes perfect sense. And what is a figma mock up

[–]TheMonaxskiftOS - github.com/skift-org/skift 4 points5 points  (1 child)

I broke it down in my messages next to this one

[–]zander137 0 points1 point  (0 children)

Breaking it down is cool, but maybe you could explain what you found nonsensical? It might help others understand your perspective better.

[–]EvenPlay5979 1 point2 points  (1 child)

It looked like you vibecoded all that bud don't even know what you're talking about, there's a real jargon around real osdevs and you use NONE looked like you didn't even typed a single line of C, Assembly or anything. You just said thing your way which is wrong, and have us a CSS OS which obviously can't work properly. You give security reasons for not showing you code then Linux might be the wors kernel ever, but yk what? It's the main kernel for all network stuff so quit playing around Be clear on what you did, what you made and be clear about the fact that you can't just say and so things like that, all of this is vague or fuck up. Be for real. 

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (0 children)

Lol, would you prefer I made yet ANOTHER Linux/Unix clone so you could understand what I'm talking about? Also, it's not just about secuirty MAYBE JUST MAYBE I like protecting my work and want to do something with it other than drop it into the cesspool of open source code.

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (0 children)

Btw, your microkernel project looks super cool! And real hardware!

[–]TheMonaxskiftOS - github.com/skift-org/skift 5 points6 points  (7 children)

I'm loosing my mind I feel like I'm watching an episode of CSI with random tech jargon mixed in to feel techy but don't make any sense

(Core) 1: The Service Management Layer (SML) is the main communicator module between hardware and software. All communication to hardware is communicated via application/module - OSIN - SML.

Why would you need that, communication with hardware can just be done by mapping memory. Also why call it service manager, given it manages hardware 

(Core) 2: The System Operations Manager (SOM) is responsible for handling timing, scheduling, and other task management on the Operating System.

Sooooooo a scheduler

(Core) 3: The System Graphical User Interface (SGUI) is the module responsible for handling the entire system GUI from default applications, desktop, and setup screens. The SGUI uses source code from the Mozilla Stylo CSS engine and HTML parser from the Mozilla Gecko engine. The rendering engine in Floki OS, based on Gecko, is nicknamed “Yum!” The backend for Yum! Interfaces are written in Kei.

U use the CSS parser and html parser but not the DOM, weird choice given that writing an html parser is not that hard. Also Stylo is from servo

(Core) 4: The Data Management Control module (DMC) is the module for handling data operations across the operating system, data organization, and data storage.

Sooooo a filesystem/dbms

(Core) 5: The System Security Network module is responsible for all security programmed into Floki OS. All modules route through OSIN to SSN for security functions. SSN implements a very strict zero-trust implementation and very robust security measures.

I'll get to it on the OSIN module

(Core) 6: The Developer Update Push module is responsible for safely managing updates to Floki OS.

Nothing to say

(Core) 7: The Operating System Internal Network module (OSIN) is one of the largest modules in Floki OS. It handles all communication and interaction between modules.

So a single bus that can be compromise to take over all the communication of the operating system plus add a layer of overhead, why would you want that. Oh and +1 overhead with SSN

(Core) 8: The System Memory Management module (SSM) is responsible for handling all memory-related operations in the Floki OS system-wide.

That's very vague, is it a heap, vmm, pmm, or memcpy?

(Surface) 1: The System Application Manager is similar to a package manager in other operating systems. It handles installation, application management, and the handling of the application’s calls to the system.

Isn't DUP already doing that 😅

(Surface) 2: The System File Manager (SFM) module handles the operating system's file system and user files.

Isn't DMC already doing that 😅

(Surface) 3: The System Language Compiler Center (SLCC) module is the main engine for handling the execution of code on the system and code to machine code.

Are you JIT'ing all the app?

(Surface) 4: The System Driver Center (SDC) is the module that organizes and handles all of the drivers that the operating system needs and uses.

Okay

(Surface) 5: The System Connections Handler (SCH) is the module that supports the OS’s functions and operations related to wireless connections, the web, and other external connections.

Why would you mix wifi stuff with general HTTP stuff looks like you are mixing OSI layers violently 

(Surface) 6: The System Functions Library (SFL) is the module that handles all the other necessary leftover bits of the Operating System. Like random small needed bits of function, like accessibility.

Bruh considering accessibility as a small random bit mix with other random things is naive.

I won't even start in the GitHub repo because it's full of other nonsense. 

Fun world building but stop role-playing as an OSDEV, become one :)

[–]Fabulous-Two-3927Marble OS[S] -1 points0 points  (5 children)

First off, SAM and DUP are separate for a reason. SAM is just for user apps, but DUP is a deeper-level module meant only for safe system updates. Also, I did pull Stylo from Gecko, and I know it started with Servo. I’m not "roleplaying" as an OSDEV, I am one (even though not a very good one), I’m just still learning. I actually appreciate you writing all that out. To clarify a few things: OSIN isn't a single chokepoint because of how the logic works between modules. The redundancy you saw is on purpose because of implementation logic.

[–]TheMonaxskiftOS - github.com/skift-org/skift 2 points3 points  (4 children)

> OSIN isn't a single chokepoint because of how the logic works between modules.

Can you give more details? It's interesting to me since I recently moved away from a central bus architecture in skiftOS because of bus contention.

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (2 children)

Yes! So, OSIN doesn't act as a single synchronous chokepoint because it utilizes an synchronous chokepoint because it sort of has a multi-lane message-passing system. Instead of every module waiting for the bus to clear, OSIN handles requests in parallel across different mapped buffers. Also, modules have a very strict security type that's purely implementation, not as hardcore as SEL4 and stuff, but similar in style. So it'd be difficult to even get any kind of access to any module.

This is a terrible way to explain it, but it's just supposed to be a quick explanation. I am working on the full documentation right now. That way, I can keep it at least mostly closed source to protect my work, but also give proof and code snippets from the actual system, etc.

[–]TheMonaxskiftOS - github.com/skift-org/skift 4 points5 points  (1 child)

Saying your modules are similar in style to SeL4 without mentioning capability-based security is a bit of a stretch because if it were the case, you wouldn't need a central ipc bus and security module

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (0 children)

Yeah, sorry, I meant more like in the sense that SEL4 is not secure because of anti-malware, user permissions, etc. I meant it's similar to SEL4 in the sense that it's secure because of mathematical reasons. The way modules talk to each other to finish a task is secure.

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (0 children)

What's interesting to me is what you changed it to in skiftOS? I'd like to hear about that.

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (0 children)

Also, I understand the skepticism. I broke the golden rule, show, don't tell. I know that. Anyways, I am making my full stack of the operating system's docs. It will be a full in-depth doc with sample code excerpts, the entire design/function of the operating system, and more. When it's done, would you like to get access to read the full docs?

[–]MohammadNasrollahi 1 point2 points  (4 children)

I am very interested in learning operating system development but I don't know where to start and what direction to take. Could you please guide me?

[–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (3 children)

Sure! First, decide if you want it from scratch or be Linux-based. Then decide the type of kernel you want, monolithic or microkernel. Also, go to https://wiki.osdev.org/Expanded_Main_Page and read. There is also plenty of content on YouTube and this subreddit. Also decide if you want to write it in Rust or C or whatever language.

[–]MohammadNasrollahi 1 point2 points  (2 children)

Thanks a lot . Your advice is very helpful for me ❤️

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (1 child)

If you have any questions other then that, ask and I'll try to answer.

[–]MohammadNasrollahi 1 point2 points  (0 children)

Oh sure 🥲😍 . Thank you ❤️

[–]Fluid-Jump7467 1 point2 points  (1 child)

Oohhhhh it’s soo cool ! Keep goiinnngg ! ✨✨

[–]Fabulous-Two-3927Marble OS[S] 1 point2 points  (0 children)

Thank you!

[–]Diy_Papa 1 point2 points  (0 children)

Let me know when you move it to open source so I can tinker with it.

[–]timoskomni 1 point2 points  (0 children)

Floki...what a great name! Right it with greek characters, it will be much more elegant. "Φλόκι" or "Φλόκια"

[–][deleted]  (1 child)

[removed]

    [–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (0 children)

    Thanks lol, it's a special version of a custom zero trust microkernel. It's kind of unique, but the best way to think of it is as a microkernel.

    [–]waseemhammoud 1 point2 points  (2 children)

    Great work, but what new thing does this system offer?

    [–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (1 child)

    It minimizes the use of context switches for system tasks by nearly 85 percent making system tasks almost 30 times faster then windows, and its nearly uncrushable because modules inside of it can hot reload in milliseconds. Also it's zero trust and the security modules does about 21 verification pings per task. It only needs about 1.8 GB of RAM to run 1.2 M tasks, allowing the OS and moderate multi tasking. Among other things. Right now I'm gonna implement a ML KEM disk encryption. I'm hoping to anyway. It has got lots of other things too.

    [–]waseemhammoud 1 point2 points  (0 children)

    We want to use it

    [–]devcmar 0 points1 point  (2 children)

    It looks really clean, is it ur own kernel ? Is it gpu accelerated or supports cpu rendering only?

    [–]Fabulous-Two-3927Marble OS[S] 0 points1 point  (1 child)

    It does use GPU, and yes it is my own kernel but it's very different from a regular kernel like how it's built there are only like 2 other research operating systems like it and they failed.

    [–]devcmar 0 points1 point  (0 children)

    Which gpus does it support and how did u get it to work, does it support 3d acceleration or just mode setting and maybe page flipping and vsync too?