Тёмный

Microkernel Architecture 

DJ Ware
Подписаться 44 тыс.
Просмотров 7 тыс.
50% 1

Today I will try and explain the reasons behind what a microkernel architecture is, how it came to be and what the advantages and disadvantages of using one are.
Support me on Patreon: / djware
Follow me:
Twitter @djware55
Facebook: / don.ware.7758
Discord: / discord
Gitlab: gitlab.com/djware27
Werq by Kevin MacLeod
Link: incompetech.filmmusic.io/song...
License: filmmusic.io/standard-license
Industrial Cinematic by Kevin MacLeod
Link: incompetech.filmmusic.io/song...
License: filmmusic.io/standard-license
Music Used in this video
"NonStop" Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0 License

Наука

Опубликовано:

 

28 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 36   
@bertnijhof5413
@bertnijhof5413 3 года назад
In the second part of the seventies I designed a special purpose micro-kernel for 16 bits mini computers, comparable to the PDP11. We used the system from 1976 to 1990 in Air Traffic Control Systems and Sea Port Ship Tracking Systems. After 1990 the 16-bits minis were extinct. The requirements allowed a simplified design, since everything needed to be memory resident, no time to load programs or pages from disk. The ATC controller has no patience and the aircraft tracks keep coming hundreds per 5 or 10 seconds. The "job control" was run off line and the resulting system was one big boot-image. All program and OS code was read only and would restart from memory automatically after any crash. All data was initialized dynamically! The system was designed according to the leveling ideas of Dijkstra and information hiding principles of Parnas, the levels were: - Assembler and completely closed for interrupts and using physical memory, max size of a routine say 100 instructions 0. Memory management to load the correct page table. 1. Preemptive task scheduler with queue task for CPU, start highest priority task and save task status. 2a. Process synchronization by semaphores, if needed the master P-operation was send to slave processor on a 16-bit HW interface. 2b. Primitive IO, starting the IO operation and interrupt handling. 2c. Primitive date/time and timer handling. - High Level Language RTL/2 (C like), open for interrupts and running in its own address space. 3a. Message queuing with send message; locate message (instead of receive to avoid a move) and free message buffer all based on level 2a. 3b. Device handling and error handling based on level 2b and 2a. If needed disk-partition shadowing from master to slave. 3c. Date/time and timer handling to RTL/2 3d. Semaphores to RTL/2 4. Network queue selection for messages to other processors using level 3a. A Process was identified by CPU# and process# like 3,45. The default for the own CPU was 0 and 255 was broadcast. Master/slave setups used 3 CPU#, 2 for the physical CPU and 1 for the current master of the pair. - Operating system processes were all based on level 4 messaging and running in their own address space for: 5a. One or more network processes for HDLC/SDLC 5b. File manager 5c. Hardware error logging 5d. Program error logging 5e. Loading remote computers over the HDLC/SDLC network 5f. Logical name translation from e.g "multi-radar-tracking" to 5,110 or better 056E :) 5g. Operator communication. 5h. Time event management based on level 3c, managing "wake-up" and "time-out" messages. All major application processes received messages in a queue with 4 priority levels and did send the result to another queue somewhere in the network. The queue priorities were high prio; human inputs; streams and low prio. IO was done by small and simple IO processes. The nice thing was that with the strongly message based system, we could debug the computer on the radar heads with the debug function of the operator communication in the center, correct the source, rerun the compiler, linker and the off line job-control and reload the new boot image over the network. In principle we could record the output of any application process and replay it later. We had operational requirements to log all aircraft tracks and all operator inputs. In this environment it was not very difficult to implement. I think we did write the operational log to magnetic tape using a HDD partition of the 80 MB HDD as cache. The Times They Are A Changin' :)
@CyberGizmo
@CyberGizmo 3 года назад
Nice Bert, yeah the times are changing, amazing how much processing power you could squeak out of that ancient hardware. I remember seeing PDP-11's used for a lot of different tasks, we used them as Peripheral Processor Units (PPUs) off the CDC 6400 machine as well as a few PDP-8's for the less intensive I/O channels.
@can.slaughter
@can.slaughter 3 года назад
Man! This channel is pure GOLD.
@CyberGizmo
@CyberGizmo 3 года назад
@@can.slaughter Thank you Lucas
@Lucretia9000
@Lucretia9000 9 месяцев назад
Wikipedia says "The AmigaOS Exec kernel was an early example." I didn't think I'd seen it say it was the first. Also, MorphOS uses an L4 like microkernel, which makes me think of AmigaOS more of an exokernel.
@agevlakh
@agevlakh 3 года назад
Cool, thanks for the video. Very interesting information about kernels. I will be waiting for the next episode. P.S. Nice new glasses ;)
@CyberGizmo
@CyberGizmo 3 года назад
Thanks Antoh snf yeah i needed new glasses :). Thanks
@abobader
@abobader 3 года назад
Nice, nice, and nice for sure, very good go back in time :) Well done DJ!
@guilherme5094
@guilherme5094 3 года назад
Thank you sir!
@CyberGizmo
@CyberGizmo 3 года назад
Welcome Felix :)
@dezmondwhitney1208
@dezmondwhitney1208 3 года назад
A Great explanation Indeed. Thank You.
@CyberGizmo
@CyberGizmo 3 года назад
Dezmond, thank you glad you enjoyed it.
@dingokidneys
@dingokidneys 3 года назад
Always fascinating to delve into the history of some of these technologies.
@trump1688
@trump1688 3 года назад
Thank you for your sharing, DJ. Happy to learn a new thing today!
@CyberGizmo
@CyberGizmo 3 года назад
My pleasure, Derek!
@svos7559
@svos7559 2 года назад
Great vid, keep up the good work!
@nicio1393
@nicio1393 3 года назад
Love your video of micro kernel, can't wait for the next one on nano and pico, thanks
@CyberGizmo
@CyberGizmo 3 года назад
Thanks for watching!
@brainstormsurge154
@brainstormsurge154 11 месяцев назад
I guess we're still waiting.
@kayakMike1000
@kayakMike1000 Год назад
I am writing a tiny kernel for a few microcontrollers, like cortex-m and the tiny RISC-V mcu. I think I will go exokernel with an init process in user space that I will use as a shell to start other programs.
@alexkuiper1096
@alexkuiper1096 3 года назад
Many thanks! Very instructive. The arguments for a smaller kernel are compelling, but I guess (for me at least) one advantage of the monolithic Linux kernel is that I can run Fedora with the latest kernel more or less flawlessly from the regular ISO on a 10 year old mobile workstation. Which probably puts me in the small group that causes the bloat.
@diegonayalazo
@diegonayalazo 2 года назад
Thanks DJ. Please review Redox!
@MarkusGeiger
@MarkusGeiger 3 года назад
And answered my question on DKMS I had from last video (loadable kernel modules). Could you please go in depth to the Linux kernel. It's 30 years old so where are it's major areas of concern/problems? Is there a chance it gets replaced by a better kernel? what about RedoxOS? Or Fuchsia? It would be also a good follow up to the Fuchsia video! Awesome videos and in depth knowledge I really love this channel. I feel so glad I discovered this channel! Are you in any way connected to other RU-vidrs like Brodie/Luke or Podcasts like Linux Action News or Unplugged?
@CyberGizmo
@CyberGizmo 3 года назад
HI Markus, thank you for the kind comments. I have several videos on the future of linux where I talk about some of the areas I see that really need improvement. RedoxOS is another interesting OS, and I have a video talking about Fuchsia and will be updating it as things progress with it. Am I affiliated with other Linux RU-vidrs, not at the moment, I started the channel a few years ago as a way to give something back to the community. Might consider something like that down the road though.
@alexxx4434
@alexxx4434 2 года назад
Where's the rest of the series?
@urvhalt
@urvhalt 11 месяцев назад
Minix not mentioned?
@DF-ss5ep
@DF-ss5ep Год назад
This is the only sane OS design possible, in my opinion. Somehow, we ended up here, and I feel that as a consequence of that, many applications end up having to replicate the right design at the higher layers (see, for example, containers, docker, kubernetes).
@skilletpan5674
@skilletpan5674 Год назад
Macrokernals became popular because of speed. OS/2 was a really good microkernal and it's a shame that IBM ditched it. It's not a microkernel OS but Qubes is a good one to look at in the sense of compartmentalising processes in virtual machines. It's useable but still not streamlined as much as it should be.
@24wherath36
@24wherath36 3 года назад
Hi /g/
@can.slaughter
@can.slaughter 3 года назад
I think in the near future we are going to see less virtualization and runtime checking, and more static analysis tools like Rust's borrow checker. As well as more use of shared memory. Virtualization in particular needs to go away. I can't believe how Google with its billions of dollars isn't able to compile this website to run natively on every OS and architecture that's ever existed. We are starting to get rid of JavaScript but people are compiling to WebAssembly instead. Some day they will realize it is better to just compile down to machine code.
@CyberGizmo
@CyberGizmo 3 года назад
Thanks Lucas for the thoughtful comment, I love Rust as a language and am glad some of the linux distros are beginning to adopt it for their addons.
@Lucretia9000
@Lucretia9000 9 месяцев назад
QNX was opened by QSSL back when they were going to be the core of the next amiga os, which never happened of course, but then blackberry closed the source again. I wish I'd kept the source, I don't know what happened to it.
@Lucretia9000
@Lucretia9000 9 месяцев назад
You can't write a portable microkernel with multics multilayers, because not every CPU has multiple system levels like Intel does, most have two: user and kernel.
@Lucretia9000
@Lucretia9000 9 месяцев назад
It's Brinch, not Binch.
Далее
Happy 30th Birthday Linux
19:55
Просмотров 2,4 тыс.
The Unix Philosophy - My Take
38:03
Просмотров 15 тыс.
Linux Internals: Storage
17:16
Просмотров 5 тыс.
Lesson 160 - Microkernel Architecture
12:55
Просмотров 7 тыс.
L4 and Fast Interprocess Communication
13:36
Просмотров 13 тыс.
Microkernels
18:21
Просмотров 53 тыс.
Linux Internals: PCI and USB
16:49
Просмотров 4,1 тыс.
This Is How Huawei Shocked America With a Smartphone
7:57
How does an OS boot? //Source Dive// 001
50:22
Просмотров 388 тыс.
🛑 STOP! SAMSUNG НЕ ПОКУПАТЬ!
1:00
Просмотров 28 тыс.