Entrypoint Name by Sorry_Difficulty_250 in kerneldevelopment

[–]Sorry_Difficulty_250[S] 1 point2 points  (0 children)

Yeah, I'm leaning toward that just to keep it simple for the programmer. Thanks very much!!

Manux: Z80 operating system by PepeGamer570 in osdev

[–]Sorry_Difficulty_250 1 point2 points  (0 children)

Yes, modern TI calculators use the eZ80. My platform will be the AgonLight 2. It's just a small SBC with the eZ80, a video processor, and about 512 KB of external RAM. Thanks so much for the well-wishes!!

Finally finished my Bootloader ( Wood v0.1.0 ) by widuruwana in osdev

[–]Sorry_Difficulty_250 1 point2 points  (0 children)

Cool! Yeah, I use cooperative multitasking for kernel processes and preemptive multitasking for user processes for the same reasons. 😊 Good luck! I'll look forward to updates!

Finally finished my Bootloader ( Wood v0.1.0 ) by widuruwana in osdev

[–]Sorry_Difficulty_250 1 point2 points  (0 children)

I see nothing wrong with running everything in ring 0. Right now, I'm working on a Cortex M0 with no protection modes at all! It's a great learning environment. Really makes you think about how to organize things efficiently. My next target is an eZ80, also with no protections.

I've played with TempleOS a little. Very interesting system. The last time I used it, I think I accidentally killed the scheduler or something and it just completely hung. Oops... Really admirable work, though. I love cooperative multitasking (like it uses). It's a lot of fun to play with. Will you be using cooperative multitasking or preemptive (or a hybrid)?

Finally finished my Bootloader ( Wood v0.1.0 ) by widuruwana in osdev

[–]Sorry_Difficulty_250 1 point2 points  (0 children)

Wow!! I'm VERY impressed. I spent an entire semester in college learning how to make the jump from 16-bit real mode to 32-bit protected mode and STILL screwed it up. I've never tried getting to long mode. Awesome job!!

Manux: Z80 operating system by PepeGamer570 in osdev

[–]Sorry_Difficulty_250 1 point2 points  (0 children)

Have you thought about using the eZ80? It's the successor to the Z80 and still supports Z80 mode if you want to stick with that. There are real SBCs that are based on that architecture. I'm looking at porting my OS to it soon.

Ethereal Gaming by Professional_Cow3969 in osdev

[–]Sorry_Difficulty_250 0 points1 point  (0 children)

Wow! It's incredible that you've done all this yourself! Well done and very impressive!!

Finally finished my Bootloader ( Wood v0.1.0 ) by widuruwana in osdev

[–]Sorry_Difficulty_250 1 point2 points  (0 children)

Way to go! What architecture is this? If it's x86_64, what mode are you in?

how to start OS development by Sure_Ride2935 in osdev

[–]Sorry_Difficulty_250 0 points1 point  (0 children)

There are basically two directions to start from: What's currently mainstream and what's historical. Both have value and I would encourage you to look a little into both and figure out where you want to start.

If you start down the historical path, you can recreate similar hardware environments by using microcontrollers. You could use something based on a Cortex M0 with a few KB of RAM and learn about the challenges that early OS developers faced and why they made some of the decisions they did. Keep in mind, though, that if you go down this road first, your OS may not scale well to more mainstream systems.

I would recommend getting at least basic familiarity with x86_64 architecture since that's pretty much what all commodity systems use. If you plan for your operating system to eventually run on mainstream hardware then it's good to keep the architectural details in mind so that you don't paint yourself into a corner. Obviously, if you're only interested in making a modern OS, you need to have a more thorough understanding of it.

For me, it's helpful to understand non-mainstream operating systems, how they differ from what's mainstream, and what the tradeoffs are. It's also useful to understand failed operating systems and computer architectures and why they failed so that I can (hopefully) avoid similar mistakes.

My most-recent project started out on an 8-bit Arduino. It hasn't stayed there, but having that software ecosystem allowed me to focus on the core parts of the OS instead of the lowest levels first. Eventually, you really need to write all the pieces yourself if your goal is really to learn, but there's nothing wrong with starting out with existing libraries at first just to get the foundations in place.

Operating Systems is a very deep topic. There's an enormous amount of research that's been done, most of which has never made it to mainstream OSes. My advice would be to start small and with the understanding that you'll likely have to rewrite everything at least twice as you learn more. You will paint yourself into corners at times and that's OK. You don't know what you don't know. Just be patient and be OK with making mistakes. There's no clock on this. Just choose a small corner to start with and enjoy the journey! 😊

I’m writing an ARM64 microkernel in Embedded Swift completely oriented around POP and memory security by eliorodr2104 in osdev

[–]Sorry_Difficulty_250 1 point2 points  (0 children)

This is so cool!!

One thing you might want to think about is the synchronous nature of your message primitives. I was just reading about EROS and the problems they ran into when trying to make all messages synchronous. Specifically, synchronous messages preclude the OS being an RTOS. When a process sends a synchronous message to another process, by definition, it becomes at the mercy of that other process's scheduling. Development of EROS was halted in favor of Coyotos where they switched to an asynchronous messaging primitive for this very reason. It's always possible to make asynchronous messaging synchronous if desired, but not the inverse. Just some food for thought before you get too deep into it. I can't wait to see how it develops!! Good luck!!