Design decisions

First of all I’m not an expert, I’m just passionate about this project and I can’t manage to find enough informations for my taste, I like to understand the direction of projects,

so I have a question about the design decisions when making this OS, I saw they liked to question standards if it’s worth it and I love this, not limiting innovation and picking every OS advancements made so far.
But when they have to make a decision, do they pick security first everytime or what ? There is compromises to make everytime but I would like to know what’s the priority for them ? Would they not implement some security feature because it’s too hard ? too costly in performance ? too far from the standards ?
In my noob opinion, to stand out you have to go all in on security and stability, but I’m not an ingineer.

Thanks !

As an example, I heard about multi kernels, nano/pico kernels, I guess if they havent been choosed they pose too much problem with either complexity/compatibility or don’t offer a large enough advantage ?

1 Like
  1. Kernel is something I like and I’ve been studying for a while. Here in this link talks about the advantages and disadvantages of each type of Kernel: reference - Hybrid Kernel and Nano Kernel or Pico Kernel | MyCareerwise
  2. I think it’s a great idea to have a monolithic kernel like Linux. However, as I’m looking to learn about other types of kernel I met the Redox-os project with the objective of a kernel of the type: microkernel
  3. There is even a technical discussion by Linus Torvalds vs Andrew Tanenbaum about using a monolithic kernel or not. - Some say that the microkernel type kernel “is more secure and reliable”. But “microkernel type kernel is very complex to make, maintain”. If you want to take a look here is the full or partial text of this debate - reference: Appendix A - The Tanenbaum-Torvalds Debate or
  4. What makes it different is how each kernel handles one thing. Generally, “microkernel only handles services and a few calls”. “Monolithic Kernel has to deal with everything”.
  5. The difference between the two kernel types is architecture limitation, “some say microkernel type kernel does not support x86 architecture”. “Monolithic kernel supports x86 architecture” - “that’s why linux runs on older machines, which makes sense for Andrew Tanenbaum to say that linux is obsolete, not saying that linux is a bad thing, but that it runs on older architectures like x86.” “And microkernel generally performs well on the arm architecture - a modern architecture.” - This is not my opinion, this is what I read in general, whoever wants to clarify more about this perspective - leave a comment for us to know what is fact and what is a lie.
  6. About the Redox-os project, maybe they have a series of applications that need to have more security, reliability, so they chose the microkernel type for that.
  7. Hope to help
1 Like

Wow thanks, I wasn’t hoping for an answer since it’s such an old post, and thanks for all those sources !
I mostly get the differences between Monolithic and Micro kernels because they are the two big obvious choices, I was more wondering of others choices like the Multi Kernel which is a wild concept which I don’t know if it’s truly useful / feasible.
There are also (I thinks ?) other design decisions apart from kernel that can have advantages but can make POSIX compliance harder, or have a big performance cost or being too complex.
As I understand the philosophy is : if it has already been done before and it worked then they can add it.
I’m just hoping Redox doesn’t “miss out” on some break through OS design (while I don’t know anything about it so it’s quite dumb)
Since I wrote this post I realized that for me the most important thing is how apps are managed, I would find it amazing for all apps running on a system to be submitted to a permission control from the OS (like flatseal or android, but for every apps)
I’m also quite interested in the possibility of Redox to replace Xen for a high security virtualization platform (they could work with QubesOS making it amazing)
I guess all I have to do is to be patient and see where everything is going !

1 Like

A good example here is this

  1. Microkernel: “cloud operating systems”, “internet of things”, “smartphones” - most smartphones use the “arm architecture”.
  2. Monolithic Kernel: “most commonly used for desktop(pcs, notebooks): x86 architecture”.

There is no reason Microkernel would be associated to Arm and Monolithic to x86 ? They are interchangeable

1 Like

I gave a general example

The Hurd microkernel OS runs on x86 and Linux runs fine on ARM so there is no reason processor architecture lends itself to any specific kernel architecture at present. They are indeed, interchangable in that regard.

The reason microkernels are considered more secure than monolithic kernels is that drivers generally run in kernel space and can bring the system down easily. Another reason is that an expertly crafted driver can access the memory of the whole system and implement spyware while microkernels isolate drivers from each other and from the kernel’s internals.