I'm here to shill for microkernels!

Hello Jow Forumsentlemen, do you have a moment to discuss our Lord and Savior, the microkernel?

>What's a monolithic kernel?
Linux is a common monolithic kernel, as well as MS-DOS and the Solaris kernels. These kernels run as one program, handling resource allocation, file system stuff, networking, and device drivers. All of these features of the OS are bundled into one program that acts sort of as the base of the system. Then on top of that you run other programs such as the Bash shell, a login manager, a window manager, a desktop environment, a browser, etc. But under it all you have this one program acting as a kernel.

>What the advantages/disadvantages?
Patching something or making changes means recompiling the whole kernel. It's not a big deal for most users that will just update to a newer binary, but it's a pain in the ass for the devs, be they the kernel maintainers themselves, or someone making drivers or other modifications, or the kinds of freetards that like source based systems like Gentoo. If the kernel runs into an error, the only way to recover it is often to reboot the machine. The kernel is also not isolated from potentially malicious botnet drivers. The only real advantage of this kind of kernel is the small resource usage and the speed. It's pretty fast.

Attached: microkernels.png (1884x1368, 1.25M)

Other urls found in this thread:

en.wikipedia.org/wiki/L4_microkernel_family
harmful.cat-v.org/software/andy_tanenbaum
l4hq.org/projects/kernel/
l4ka.org/65.php
twitter.com/NSFWRedditGif

>What is a microkernel?
It does the same kinds of things that a monolithic kernel does, except these tasks are done by separate processes, which are basically mini kernels that each handle one or more specific things. One mini kernel handles memory management while another handles networking, and another handles device drivers. There can also be mini kernels that exist only to restart another crashed mini kernel.

>What are the advantages/disadvantages?
When one kernel fails it won't bring down the whole system. You get amazing stability and you can basically hotplug pieces of the kernel. You literally never have to reboot your system. You can slowly update every piece of the OS one at a time and bring the new kernels online as they're needed, and stop and delete the old ones. They offer better security by allowing parts of the kernel like device drivers to be run in user space and isolated from the other parts of the kernel. The only bad part about microkernels is that they're a little bit slower due to the communications between separate kernel processes.

>What about hybrid kernels?
It's modular like a microkernel, but it runs everything in kernel space. This allows you to swap out modules on the fly like a microkernel, and is a little bit faster than a pure microkernel. The trade off is that they're a little less secure because you don't get all the benefits of isolating kernel processes outside of kernel space. Examples of good hybrid kernels are the Windows NT and React OS kernels, the Haiku OS kernel, Plan9/9front kernels, and IBM OS/2 (cousins with Windows NT). A bad hybrid kernel is XNU, because Apple devs are fucking retarded. Hybrid kernels are a huge step in the right direction, but full microkernels are the best option for the future of computing.

>It does the same kinds of things that a monolithic kernel does, except these tasks are done by separate processes, which are basically mini kernels that each handle one or more specific things.
So microkernels follow the Linux philosophy (do one thing, and do it well) more closely than Linux itself does? Neat!

Yes, the individual microkernels follow the UNIX philosophy more closely than most actual UNIX distros ever did.

Sorry op this type of discussion is too legitimate and good to replace "AYYMD BTFO INTLEL" threads

There's nothing more painful than the truth.

Attached: qv8cu.jpg (320x235, 10K)

>A bad hybrid kernel is XNU, because Apple devs are fucking retarded
Explain what's wrong with XNU/macOS.

can i play games on microkernel oses?

Not that guy but apple's filesystem is a joke, the overall os by default is slow and bloated, obtaining root access has been proven to be a joke.

It's a big ball of spaghetti with a myriad of security issues. It's bent over backwards and stuffed with legacy trash despite having piss poor backwards compatibility, and it also has ancient BSD extensions shoved up its ass. XNU is a clusterfuck of Mach, BSD, and other custom components. It's bad at handling device drivers and is prone to crashes due to certain architectural flaws.

Don't get me wrong, things have gotten better in the last few years. But XNU still sucks.

I don't know, can you play games on Windows? That's technically a microkernel OS.

Almost forgot about the file systems. HFS+ was so bad that they made APFS and it's still shit.

So it's like windows but without backwards compatibility? Fuck, and I thought it was the less shit of the proprietary OS.

OS X would be literally worthless without the shiny GUI. The look and feel is literally the only thing it brings to the table. Performance is absolutely horrible and battery life suffers, which is why Apple has to pack double the batteries into every laptop. Their machines throttle not only from the poor cooling systems, but also from the resource hungry shitware that is OS X that's constantly raping the RAM and CPU.

And yes, the backwards compatibility was lost/made useless with the transition from Motorola PowerPC to Intel i396 and eventually Intel AMD64. It's a big mess of code that gets slapped in there and never removed. There's probably a bunch of code in there that's optimized for PPC but recompiled for x86, and that's probably why it runs like shit with so many errors.

Windows and Linux are just as shitty and messy in many ways, but they don't hide it away under pretty animations and gimped file explorer. Microsoft and the FOSS community also work to fix this stuff, unlike Apple who will keep sweeping their fuckups under the run until the end of time.

t. butthurt intcuck

So what do I do now that I know that my operating system is inferior?

OP, which do you like better, Genode or Redox? Genode has the lead for now but their completely POSIX incompatible API is a red flag for me, and their C++ dialect is bizarre. I think Redox will win long term if only their Mesa port gets hardware accel.

WRONG
it should be OS/Kernel, so
macOS/XNU
Windows/NT
OpenBSD/OpenBSD
GNU/HURD
GNU/shitnux (kernel made by a cuck)

Is HURD a viable option? Or is it still in development?

If microkernels are so good how come they all suck?

wow thanks user, this is really interesting. What level of knowledge do you think you'd need to start using one without it being a pain? I've only started using my first distro quite recently, and it's Fedora at that.

>(kernel made by a cuck)
That chad is fucking your mother as we speak. Also there's no better kernel in current year.

I wouldn't say MS-DOS really counts as a monokernel. The distinction between monokernels and microkernels is only relevant when there's an actual separation between kernel space and user space, and in the case of MS-DOS, everything just runs in Ring 1. Calling it a monokernel is kind of a stretch.

If macOS is so slow and battery-hungry then how was it able to be slimmed down to run on smartphones and smart watches?

You are taking right out of your ass.

>or the kinds of freetards that like source based systems like Gentoo
I'm recompiling kernel encryption time new one comes out.
I'm currently using laptop as my main machine.
There are no problems with that.

This. Compiling the kernel takes very little time actually.

>macOS/XNU

You mean Darwin/XNU or Darwin plus XNU.

You can run it in a vm and even run a browser on it.

What hope do microkernels have if they have yet to solve the syscall overhead?

en.wikipedia.org/wiki/L4_microkernel_family

Could DOS count as an exokernel?

>
>It's a big ball of spaghetti with a myriad of security issues. It's bent over backwards and stuffed with legacy trash despite having piss poor backwards compatibility, and it also has ancient BSD extensions shoved up its ass. XNU is a clusterfuck of Mach, BSD, and other custom components. It's bad at handling device drivers and is prone to crashes due to certain architectural flaws.
>Don't get me wrong, things have gotten better in the last few years. But XNU still sucks.

Pretty much like Linux.

Linus is a necrophile?
Also, there are many better kernels, OpenBSD or Linux-libre for example

I guess we need a Steve Jobs edit of that Stallman pasta now.

Attached: 1514993256767s.jpg (225x250, 5K)

Keep up with the development of open source microkernel based systems. When one of them is mature enough to replace your current OS, switch to it. If you're a programmer, start developing Debian GNU/HURD.

I like Redox better.

Autism.

They don't suck. There's just no software support because people are too retarded to develop or port software for superior platforms.

Debian GNU/HURD is your best bet. Try it in a VM.

It's not "slimmed down" at all, and runs like complete ass. iToys constantly throttle and they have shit battery life. Every time I've played with jailboken iOS devices, the memory footprint is fucking massive. These shitty phones only have 1GB of RAM it's almost full. You play a shitty racing game on them for 10 minutes and they feel like a goddamn hotplate.

Yes, iFaggot. Just like Linux. What do think this thread is for? The end goal is to replace the Linux kernel.

Attached: 1518565191775.png (377x330, 8K)

>A bad hybrid kernel is XNU, because Apple devs are fucking retarded.
Copypaste brainlet

I've typed this whole thread by hand. I like microkernels because I've worked with QNX and experimented with HURD at home. You're the brainlet that can't into reality.

XNU is trash.

Attached: 56percentfaceapple.png (649x732, 594K)

>Autism.
And I enjoy it!

Delete your shitty thread and fix it before you repost it.

Attached: 1446269878381.png (476x294, 45K)

Classic Mac OS is using a microkernel. XNU is a half assed hybrid kernel. Your image proves me right.

Nice thread, I'm downloading Debian-Hurd right now, gonna run it in QEMU.

I got it up and running, what now?

Attached: VirtualBox_Hurd_23_04_2018_22_56_20.png (720x400, 8K)

In general cutting software into pieces is always going to produce slow code, specially if you place the boundaries at the wrong places, i.e. basing it on an abstract mental model, with no regards on how the data is going to be transformed through the program.

The end result is often call overhead, message passing hell, unpredictable branches, cache misses, memory fragmentation, etc.

You will find after a while that your abstract entities are more interdependent than you thought, and would benefit on sharing state and giving code context.

Kernels are pieces of software that can't be modularized so easily without sacrificing performance. And performance of the kernel affects the whole system.

About the kernel hotloading part, I though Linux already had kernel hotload support? Dunno if it's mainlined but I thought patches exist. Correct me if I'm wrong.

>no l4
>not even sel4
>hurd
Your pic is trash.

L4 is a fucking meme for interactive workloads.

>most performant microkernel
>deterministic performance
>meme
Observe a chromozome thief in his natural habitat - neo-Jow Forums

Install xfce-desktop.

>Examples of good hybrid kernels are the Windows NT
Hasn't the NT kernel move further and further away from the mircokernel model over time? I think the same is true of the MacOS kernel.

Also, according to Wikipedia DragonflyBSD is also a hybrid kernel. Is this true?

PS this picture was on the DragonflyBSD website.

Attached: ladydfly.png (1920x1080, 1.08M)

DragonFly BSD is like 90% monolithic. NT does everything from scrollbars to font rendering in kernelspace. At one point even IIS, Microsoft's httpd/ftpd, ran in kernel space in a desperate attempt to reach performance parity with unix. The one microkernely thing modern NT did was the userspace graphics stack and restartable GPU drivers.

>that pic
Is there anything that grorious nippon can't turn into a qt anime girl?

I enjoyed this thread OP. Well done.

Attached: happy_dancing.gif (500x500, 990K)

if microkernels are so much nore error resistant, how come windows drivers cause bluescreens all the time but ive literally never seen a kernel panic in my life on linux?

>I enjoyed this thread OP. Well done.
I like the thread, wish there were more threads like that, but it feels like OP is completely wrong, with mircokernels being very niche and underdeveloped or have become more monolithic over time.

I think it was drawn by a Slav.

harmful.cat-v.org/software/andy_tanenbaum

A lot of the BSOD errors aren't the fault of the kernel, but of things like faulty drivers and other things. Because it's a hybrid kernel and not a full microkernel, it sometimes has problems recovering from errors. It doesn't help that the NT kernel is packed with so much legacy shit either.

I refuse to use Plan9 or derivatives for anything because they're not only technologically inferior due to "muh minimalism" to the point of lacking all features, but the community is also a bunch of retarded faggots constantly sucking each other off and huffing their own farts. I hate you all and your shitty software. Rio is the worst fucking window manager I've ever used. There's nothing minimal about trying to reinvent the wheel. The mouse actions are foot up ass retarded and backwards, and window management is a shitshow. And the color scheme is cancer.

Fuck off, retard.

Attached: 1519529876942.jpg (657x527, 36K)

>HFS is bad
>Apple knows it's bad
>makes APFS
>it's also bad

>NTFS is bad
>Microsoft knows it's bad
>decides to make WinFS
>it's good
>decide not to make WinFS anymore
>decide to make ReFS
>it's NTFS but slower

Why doesn't everyone just adopt ZFS now, I know licensing was the reason before but OpenZFS is the solution to that now.

>but ZFS uses a lot of resources
Not by todays standards, it only uses a large amount when you enable all the features anyway, just having core stuff enabled it can handle 512MB, maybe even less.

ZFS is good but kind of a dead end. bcachefs will be better.

Wasn't there a huge flame war between these two viewpoints in the mailing lists headed by Linus Torvalds and Andy Tanenbaum?

Yes, back in the early 90s. Linux then subsequently axe murdered all the other monolithic kernels except for the BSDs, which come from an older codebase. There will probably never be a major monolithic kernel after Linux, only microkernels or hybrids.

>virus adds a fake device to a zfs pool
>reboot
>system broke

That's why consumers don't use ZFS.

good thread, OP. i've been reading through the L4 family recently.
>l4hq.org/projects/kernel/
the Pistachio kernel is the latest from the looks of it
>l4ka.org/65.php
i've been wanting to build a toy os for a while and i think i'm going to use one of the microkernels just to do something different.

>NT does everything from scrollbars to font rendering in kernelspace
Maybe before Vista
Since Windows 7 the graphics driver can crash and it is restarted
You can even change a graphics driver without a reboot
I don't think the meme that windows-graphics-is-in-the-kernel-lol is true anymore

Cool thread
Could the OpenBSD decide to convert their OS into a microkernel?
Microkernels seem very appropriate for the OpenBSD philosophy of privilege separation
What's Theo de Raadt's opinion on microkernels?
I have heard him say that Linux is a bloated monstrosity (which it pretty much is although it's also the best general OS right now).

>writes barely an average forum post still broken up by greentext because he's an attention deficit child who can't express an idea that can't fit in a tweet
>grandstands with purposefully inflammatory remarks about a widely popular product hated by Jow Forums's contrarian hivemind
>shits out wojaks, spurdos and other dead normaltard memes like a redditor
>regurgitates the same shitty talking points concentrated Microsoft marketing efforts deluded him into believing
But still take me seriously, I wrote three paragraphs all by my wittle self and ran the Hurd in a VM!
Fucking retard. I thought this thread was going to be a good discussion, not another autistic partisan shitting out of his mouth at essay length about nothing.

BSD was the original fat monolithic kernel. OpenBSD doesn't even have loadable kernel modules anymore.

The real reason is because Oracle bought Sun

Amiga did micro kernel before it was cool
long live Exec

Based on mach

Attached: flat,800x800,075,f.jpg (250x248, 14K)

reread the op bro

Just fuck my entire industry up for several decades senpai