Page 1 of 1

exchOS v0.01

Posted: Thu Nov 14, 2019 3:54 am
by Terrariola
Preface:
I am officially announcing the development of exchOS, on this forum, right now.
Thanks to everybody who helped write the OSDev Wiki, which gave me the idea for this project.

Description:
exchOS is a small, heavily modular operating system based around the idea of "Exchangeables", which are small programs which make up the basis of non-core OS functionality (such as audio, networking, and terminal support), and can be easily swapped out.

It currently has very little code written, and I honestly don't actually know what to make first, but I set up a GitHub repository for source control, and I am ready to accept other contributors to this project.
It is licensed under the GPL version 3, and is coded in C and x86 assembly language.

Design:
The system is split into two parts:
1: Kernel Space, which contains the kernel and any other core OS functionality. Everything here runs in Ring 0.
3: User Space, which contains low-privilege, user space applications, which run in Ring 3.
Note: Design is unfinished, more will be added as code is written.

FAQ:
Q: Is this a toy or a serious project?
A: A bit of both, actually. I don't intend for this to take over my life, but it could be conceivably used in many low-power systems.

Q: Do you even know how to code?
A: I know the basics of C and know a few assembly instructions, and I've read a lot about the theoretical aspects of OSes.

Q: This isn't well-designed enough.
A: That isn't a question, and I know that it isn't, it's still a work-in-progress.

Q: How do I contribute?
A: Just click on the link to the GitHub page, make a fork, make changes, then start making pull requests.

Resources:
Source Code: https://github.com/Terra1/exchOS
Note: This is likely to be updated as more aspects of the system and design of the OS are worked out.

Re: exchOS v0.01

Posted: Thu Nov 14, 2019 4:52 am
by iansjack
Terrariola wrote:Q: This isn't well-designed enough.
A: That isn't a question, and I know that it isn't, it's still a work-in-progress.
As far as I can tell, it isn't designed at all. I can see no documents giving even an outline of your design, let alone details. The description that you give in your post certainly doesn't constitute a design.

I wish you the best of luck, but I can't see why anyone else would contribute to your project in its current state.

Re: exchOS v0.01

Posted: Thu Nov 14, 2019 5:00 am
by Terrariola
iansjack wrote:
Terrariola wrote:Q: This isn't well-designed enough.
A: That isn't a question, and I know that it isn't, it's still a work-in-progress.
As far as I can tell, it isn't designed at all. I can see no documents giving even an outline of your design, let alone details. The description that you give in your post certainly doesn't constitute a design.

I wish you the best of luck, but I can't see why anyone else would contribute to your project in its current state.
What do you mean by "design" then? Whenever I make a project, I usually just wing it and figure out what I made after the fact, so I consider goals to be a design.

Re: exchOS v0.01

Posted: Thu Nov 14, 2019 6:08 am
by iansjack
You can't just "wing it" when asking others to contribute to your project.

Re: exchOS v0.01

Posted: Thu Nov 14, 2019 6:22 am
by Terrariola
iansjack wrote:You can't just "wing it" when asking others to contribute to your project.
Often, well-written code can be a substitute for a predetermined design, as people can read it and see what I or someone else is trying to do, and expand on that.
What do you consider a design, anyways?

Re: exchOS v0.01

Posted: Thu Nov 14, 2019 6:28 am
by iansjack
But you don't have any code, let alone well written.

I don't really want to spend more time on this. As I said, I wish you luck but don't be surprised if you attract no collaborators.

Re: exchOS v0.01

Posted: Thu Nov 14, 2019 2:14 pm
by bzt
Hi,

I totally agree with @iansjack. You have nothing here besides of a few good-sounding, but unfortunately empty phrases. And what you describe is non-portable, as only x86 has Ring 1. What would you expect to benefit from separating Ring 1? You could just as easily use paging to separate processes, and it would gave you lot more control and portability. Where would drivers reside? In kernel-space or in exchangeable space? What about their IO access?

I think you should ask yourself this question first: why is your "design" better than any other micro-kernel structure? If you can answer that without a doubt, then you should continue.
Terrariola wrote:I know the basics of C and know a few assembly instructions
You'll need a *LOT* more than that for OS development. Please refer to the wiki, Beginner Mistakes. Aside, I wish you good luck!

Cheers,
bzt

Re: exchOS v0.01

Posted: Thu Nov 14, 2019 5:07 pm
by zaval
if you want some input, then there is mine, tiny bit - the fact you want to do a "heavily modular design" is very good, keep it up. because it's got nauseating all these monolithic elf linux lookalikes. :lol: also, bzt is right (what is strange :lol: jk) - it's a bad thing to tie your (future) design to the only CPU architecture (especially because you see, that your creature "could be conceivably used in many low-power system"), think broader, consider familiarizing yourself with ARM as well (especially because you see, that your creature "could be conceivably used in many low-power system"! and btw, don't waste your time for that vaporware RISC-V, don't believe wikipedia, it has NOT conquered the world, moreover - it almost doesn't exist yet). and yeah, fantasies - they are fun, but if you really want to create an OS, you need to realize first, that you don't have anything yet and looks like don't know much as well - so learning, don't overlook it, less noise more reading, thinking and practicing. don't think, that I wrote that looking at you from the high pedestal, I am a noobass just like you, I wrote that because it's seen by your postings, - regarding your OS affair, you got yourself torn away from reality a bit, i.e. "official announcing", :D contributors, license. hmmm, it's not what you should bother with. an osdev dude should remember - noone cares about his/her OS until it's usable and he/she needs to learn more. and more and more. it's never enough, it's always a priority. not the license, not the logo, motto and name. so if he/she really wants to do an OS, he/she sits down and reads those famous manuals, tutorials, etc. as already said, "few assembly instructions and C basics" are a too small potential. however, it can change! with learning. good luck. :)

Re: exchOS v0.01

Posted: Thu Nov 14, 2019 10:06 pm
by nullplan
zaval wrote:the fact you want to do a "heavily modular design" is very good, keep it up. because it's got nauseating all these monolithic elf linux lookalikes. :lol:
Funny, I was getting annoyed by the current flood of microkernels. I guess it's confirmation bias (yours or mine).

Mind you, heavily modular design can mean anything. The word "module" has been used to describe separate binaries, separate code files (that get linked together into a big blob), and even separate parts of the same source file.

Re: exchOS v0.01

Posted: Sat Nov 16, 2019 5:36 pm
by Terrariola
bzt wrote: And what you describe is non-portable, as only x86 has Ring 1. What would you expect to benefit from separating Ring 1?
Thanks for the input.
nullplan wrote: Mind you, heavily modular design can mean anything. The word "module" has been used to describe separate binaries, separate code files (that get linked together into a big blob), and even separate parts of the same source file.
Exchangeables will be separate binaries running in ring 0, so it's not really a microkernel.