WEBVTT

00:00:05.120 --> 00:00:13.040
When you hear the word kernel, you might think of popcorn chicken or popcorn

00:00:10.800 --> 00:00:17.039
chicken or the colonel's popcorn chicken. But you might have also come

00:00:15.120 --> 00:00:22.000
across the same word in a computing context with folks talking about the

00:00:19.039 --> 00:00:26.320
Linux kernel or Windows kernel. What the heck is it? The kernel is basically the

00:00:24.560 --> 00:00:30.720
heart of whatever operating system you're using. Although the kernel is a

00:00:28.320 --> 00:00:35.840
software component, it sits between your systems hardware and the rest of your OS

00:00:33.680 --> 00:00:40.160
and software. You see, user software such as your web browser or your

00:00:37.440 --> 00:00:45.040
favorite game doesn't talk directly to your hardware. Instead, the kernel

00:00:42.559 --> 00:00:49.520
serves as an intermediary. But why is this necessary? Well, one of the main

00:00:46.800 --> 00:00:54.559
functions of a kernel is to abstract away the physical differences between

00:00:52.000 --> 00:00:58.559
hardware setups. There are an endless number of possible hardware

00:00:56.079 --> 00:01:02.640
configurations in a PC or server. I mean, think of how many rigs you could

00:01:00.160 --> 00:01:07.600
build just from PC part picker lists. A kernel gives your other software a

00:01:05.040 --> 00:01:11.840
standardized surface area to interface with, making the differences between

00:01:09.520 --> 00:01:16.880
individual machines much less of an obstacle. As a more easily digestible

00:01:14.320 --> 00:01:21.680
analogy, kernels provide the low-level plumbing that your software hooks into.

00:01:19.920 --> 00:01:25.920
The pipes underneath your house might not be all that interesting, but they

00:01:23.759 --> 00:01:28.720
allow you to make tons of choices as to what you're going to hook them up to

00:01:27.119 --> 00:01:33.280
without caring whether it's a dishwasher, a jacuzzi, or that cool RGB

00:01:31.439 --> 00:01:36.640
shower head you found on Amazon. Well, like I'm going to see that and just

00:01:34.479 --> 00:01:41.520
ignore it. Another key function of the kernel is to provide security and

00:01:38.720 --> 00:01:45.920
stability. Allowing programs to talk to hardware in any way they wanted, could

00:01:43.600 --> 00:01:49.520
allow them to access data they aren't supposed to, which could lead to a

00:01:47.439 --> 00:01:53.520
system crash or data theft from a malicious process. But because programs

00:01:51.840 --> 00:01:58.079
have to interface with the system through the kernel, the kernel can

00:01:55.759 --> 00:02:02.159
prevent these sorts of shenanigans. If you've ever heard the term protected

00:01:59.840 --> 00:02:06.799
memory space, this is part of what we're talking about. Running programs get

00:02:04.240 --> 00:02:11.360
their own portion of RAM and can't access memory outside of that. thanks to

00:02:09.360 --> 00:02:15.280
the kernel. But of course, plenty of things can still go wrong. We'll tell

00:02:13.360 --> 00:02:19.520
you how and how kernels have been designed to prevent crashes right after

00:02:17.200 --> 00:02:23.520
we thank our sponsor, ODU. If you're looking to create a website, but lack

00:02:21.040 --> 00:02:27.040
the technical expertise, ODU is here to help. Building a website is quick and

00:02:25.440 --> 00:02:31.280
painless with ODO's open- source intuitive platform. Use simple yet

00:02:29.280 --> 00:02:35.120
comprehensive drag and drop elements to make an eye-catching and engaging page

00:02:33.200 --> 00:02:38.640
for your audience to interact with, all with no coding experience required.

00:02:37.040 --> 00:02:43.200
They've also recently introduced their own AI copywriter powered by Chat GPT.

00:02:41.599 --> 00:02:47.200
So, if you find yourself at a loss for words, you can let AI do the heavy

00:02:45.120 --> 00:02:51.440
lifting for you. Best of all, ODU's website e-commerce application is 100%

00:02:49.840 --> 00:02:54.959
free to use, comes with unlimited hosting, and they even pay for your

00:02:52.959 --> 00:02:58.480
domain name for the first year. So, visit the link below and start creating

00:02:56.480 --> 00:03:02.800
a website for free with ODU. Traditionally, kernels were designed in

00:03:00.239 --> 00:03:06.319
one of two main ways. Monolithic, meaning the kernel incorporates most of

00:03:04.800 --> 00:03:10.800
the main functions of the whole operating system, and micro kernel, in

00:03:09.040 --> 00:03:15.200
which the kernel handles more basic functionality, leaving more software,

00:03:12.720 --> 00:03:19.280
such as device drivers, running outside the kernel. Monolithic kernels tend to

00:03:17.280 --> 00:03:23.040
be higher performance and easier for programmers to work with, while micro

00:03:21.280 --> 00:03:27.360
kernels have the advantage of being able to kill problematic processes without

00:03:25.440 --> 00:03:31.840
bringing down the whole system. Now the Windows kernel was designed to be more

00:03:29.360 --> 00:03:37.040
of a micro kernel while the Linux kernel was more monolithic but these days both

00:03:34.720 --> 00:03:41.120
operating systems have moved towards a hybrid kernel model to try and

00:03:39.120 --> 00:03:45.599
incorporate the advantages of both design philosophies. For example, Linux

00:03:43.680 --> 00:03:49.120
is commonly found on servers that need as much uptime as possible. In other

00:03:47.760 --> 00:03:52.560
words, you don't want to reboot the whole system if there's an issue. So it

00:03:50.959 --> 00:03:56.319
makes sense that Linux has moved away from being more purely monolithic and

00:03:54.720 --> 00:04:00.720
has tried to become more modular. Meanwhile, in Windows land, gamers

00:03:58.640 --> 00:04:04.799
benefit from the OS adopting a more monolithic philosophy that doesn't have

00:04:02.720 --> 00:04:08.319
as much overhead, enabling higher performance for folks who are trying to

00:04:06.480 --> 00:04:12.799
squeeze as many frames as possible out of their rigs. Picture orange juice, but

00:04:10.879 --> 00:04:17.519
much less tasty. Of course, no matter how you design a kernel, crashes can and

00:04:15.439 --> 00:04:21.680
do happen. If you've ever heard the term kernel panic, this means the system has

00:04:19.840 --> 00:04:26.479
entered some kind of unstable or undefined state and the colonel decides

00:04:23.919 --> 00:04:31.040
to just halt the system as the OS simply doesn't know what to do next. This is

00:04:28.560 --> 00:04:35.280
what often causes Windows blue screens. It's not because your computer hates

00:04:33.360 --> 00:04:39.360
you. But why can't the system, you know, just fix itself instead of needing a

00:04:37.600 --> 00:04:44.000
reboot? Well, error handling functionality in an OS like Windows has

00:04:41.520 --> 00:04:47.759
to be written for specific errors. So, if the system encounters an error it

00:04:45.680 --> 00:04:52.000
wasn't written to handle, you'll likely get a kernel panic. But one example of

00:04:50.080 --> 00:04:55.680
an error the Windows kernel is designed to handle is when your display driver

00:04:53.919 --> 00:04:59.440
crashes. You know how your screen goes blank, then it comes back up and you get

00:04:57.600 --> 00:05:03.680
a little notification saying the driver successfully recovered? That's a bit of

00:05:01.440 --> 00:05:07.039
kernel magic that took the developers a great deal of effort to write. So,

00:05:05.680 --> 00:05:11.600
remember that when you get a blue screen, please know your poor kernel is

00:05:09.440 --> 00:05:15.360
trying its hardest. It just has no idea what to do next. I mean, you wouldn't

00:05:13.440 --> 00:05:19.919
get mad at your dog for not being able to speak German, right? Unless it's a

00:05:17.199 --> 00:05:23.520
German Shepherd, in which case, jail. And you're definitely not going to

00:05:22.240 --> 00:05:26.960
jail because you watched this whole video. Wow, thanks so much. Hey, like

00:05:25.440 --> 00:05:31.039
the video if you liked it, dislike it if you disliked it. Check out our other videos. Comment below with video

00:05:29.440 --> 00:05:35.039
suggestions, and don't forget to subscribe and follow. Now, enjoy your

00:05:33.600 --> 00:05:38.120
freedom. Watch another video. All right, hang on.
