All right, good morning everybody. It's like exponential decay in terms of class attendance. These are like the few that are proud. OK, let's all stand up. It's Wednesday.  So we've talked about how we abstract three different types of hardware resources, processors, memory, and stable storage. So for the rest of class, we're going to cover a couple of sort of smaller but equally important topics. So today we're going to talk about how operating systems themselves are structured. So sometimes you can do this material sort of before you dig down and talk about individual components. We've actually talked about those individual components. So now we're going to sort of pop up the stack a little bit and look at sort of how all these pieces fit together into a complete program, the program that you run that is your operating system kernel and how that's structured. And then throughout the rest of class we'll talk about performance and then do some virtualization next week. So any questions about sort of the plan going forward? And as far as announcements goes, there really aren't any. There are gurus out of town today. So I think he's coming back at some point. So I think his office hours today are canceled. So just check the calendar, but he'll be back tomorrow. Other than that, any questions about, of course, logistics, any of the last little bits? From office hours attendance, it's apparent to me that people have realized that you guys have some work to do. So that's good. All right, so again, so at this point we've talked about scheduling and process management in terms of abstracting the processor by memory management. We've talked about stable storage. What we haven't discussed is some of the other things that operating systems do that are probably equally, if not more important. So what other sort of features of operating systems or standard parts of operating systems have we not discussed? Who can name one of them? Corbina. Let's say you had an operating system that did these three things. Let's say your laptop did these three things, but nothing else. What would you be sad about, Robert? You have no network. Yeah, that would kind of stink. So networking stacks and networking protocols are, networking stacks are implemented in the kernel. Networking protocols are really sort of a little bit off topic for a discussion of core operating systems. But this is a big part of what operating systems do, as they support network devices. So that's pretty important. What else? Tim? Yeah, OK, so graphics and display management, that's true as well. What else? Security, right? So if anybody on the computer, if you used it, I mean, this isn't interesting, right? So maybe less important for consumer devices to some degree, but certainly on shared login machines. And on any other public machine, you would be sad if everybody could read your files or capture your keystrokes or whatever. What else? Yeah, online. Power management, right? So this is becoming more and more important on energy and battery constrained devices, right? How do we make sure that the device is using energy appropriately? That's a good one. Sean, anything else?  So users permission, so we've talked about how the kernel can multiplex these resources between processes, right? But we haven't really talked about different types of enforcement of resource allocation between users on a system, right? Just what's one piece of that that an operating system might care about, right? I have a big shared user machine. What resource might I want to divide up fairly, right? Yeah, so I can do permissions, right? And you guys are probably pretty familiar with standard UNIX permissions, but what other types of per user control might I want? Mukta. You guys may have run up against some of these limitations in the past. Andrew, I'm not even thinking that low level. I'm thinking something fairly basic. Greg. Yeah, so OK. So I might want some types of permissions to determine who can do what to the machine. So that's a good answer, right? Yeah. This is still permissions, right? Amit. Sumit. Yeah, you could do per user memory management. That's sometimes done. I'm also thinking of something even simpler, which is just per user file system quotas, right?  I mean, thankfully, this stuff's going away now because storage has gotten cheap and stuff like that. But this used to be a big deal. I used to be like, I remember when I was your age, getting my courage up to email the administrators at my local computing cluster to ask for a quota increase to 200 megabytes. I was like, ooh, I'm a power user now, right? Now Google has several gigabytes of free email. So anyway, some of this, again, is going away, which is nice. And then also another thing that we've totally avoided this semester is talking about device drivers and the low level details of how devices are supported. And this is actually a lot of the code that gets written for operating systems falls into this category. And a lot of it is also pretty problematic as we'll come back to today. So if you start to think about this operating system that we've discussed, there are things, there are components inside the operating system that you guys would probably be pretty familiar with by this point. But there's also all this other stuff. And as you start to think about the relationships between these pieces, this is just kind of a made up diagram. I like this. Some of the lines change. This starts to get pretty complicated. These are big, complex pieces of software, probably some of the larger and more complex pieces of software that are sort of an active development and are in wide use. And OK, so I just like this clip. How many people have seen this social network? Yeah, so you guys may remember this part. Oh wait, sorry, hold on, I need to. So the professor here is modeled after my former advisor, Matt Welch. So look at this slide. Did you guys see that slide? Let me go back and pause it. There it is. So it's funny. When I saw this movie, I saw this slide and I was like, they had to have made that up. There's no way. I sat in these lectures for years. I never remember seeing this slide that complicated. Then when I started preparing lectures for this class and I was going through Matt's slide, I found that slide. That's a real slide. See, there's your MMU, there's these pages, these are different address spaces. I don't know how many hours Matt spent making that slide, but you guys probably can almost understand the slide at this point. So anyway, this was just to give you an idea of how complicated these things can get. Also a good part, though. Of course not. All right, anyway, that's just my little trip down memory lane. Let's see. All right. So essentially, the design of the kernel that we've talked about up to this point, we talked about how we're presenting this, and you guys just started to implement this for assignment two. We're presenting this interface to user programs. And at the lowest level, what the operating system is really dealing with are devices. And what's called a monolithic kernel design, which is the first one and the most common one we're going to discuss today, is essentially this. I mean, it's a little bit more structured than this. But what monolithic kernels are is all the operating system code is loaded into a single shared kernel address space. So within the kernel itself, the kernel isn't using any of the hardware features like memory protection to protect itself against itself. So for example, if you're a kernel file system driver, well, let's make this more concrete, if one of your synchronization primitives is buggy, it could potentially overwrite operating system structures that are used by anything. They're used by your system calls. So any of the parts of the operating system can corrupt each other and clash with each other. And all the operating system code runs at this high privilege level. So we talked about user or kernel privilege. Essentially, all the OS code runs with identical privilege, with the highest privilege level. So all the operating system code is in a position to corrupt the state of the machine or affect the state of the machine with those same privileges. And essentially, the operating system is just set up as this one big, potentially very ugly and complex program.  And if they're not designed very carefully, they can get pretty ugly. But the structure of the operating system itself is essentially not helping here. All OS is all running in one address space. It's all privilege. And so you're not using any of the hardware features to help you. And if you think about it, maybe this seems like a bad idea, but the reason it's done is because it's the easiest way to get started. It's the most natural approach. I just sit down and start hacking stuff. I don't worry too much about how to design things and how things have to fit together and what are the interfaces between my components. And the other real reason here is that it's fast. So when we talk about other operating system designs, you have to come back to the fact that transitions between modules in a monolithic kernel is just function calls. When you guys start working on assignment three and you start designing these various pieces of the system that you need to finish the assignment, the interaction between those pieces is just done through C function calls. And that's very, very fast. It's much, much faster than transitioning in and out of the kernel. And it's frequently much, much faster than other ways of communicating like message passing, which we'll talk about in a few minutes. But I just want to point out that there are three problems with this approach that certain types of operating system redesign have tried to address. And there's also operating system features that are built specifically to address some of these issues. So the first one is rigidity. Does anybody know what the Boy Scout motto is? Alyssa. Oh, all right. The woman knows the Boy Scout motto. I knew it too. But I just didn't say anything. The Boy Scout motto is be prepared. But on the other hand, if you think about, and again, you have to kind of forget about some of the OS features you know about. But single, if you took all of your operating system, everything you needed, you compiled it, you had one big binary, you load it onto your machine, and it works great, until the user tries to plug in a new device or mount a new kind of file system or whatever. So at this point, the monolithic kernel, if it doesn't have some sort of feature to enable this kind of flexibility, it's just like, I don't know what to do. You have a new device? Well, OK. I hope you have a spare machine to recompile your kernel so that you can now include the driver for that device. How many people have compiled Linux before on a machine? So when you compile Linux, if you're brave, there's this configuration step where you can launch this nice, gooey interface that will essentially ask you, I don't know, it's probably up to several thousand yes or no questions. Actually, it's worse than that. It's yes, no, or M for module. So it asks you these thousand questions. You don't know the answer to any of them. Most of them are about things you've never heard of in your entire life. I remember doing this, and it was like, do you need support for blank, blank, blank, blank, blank? And I was like, I don't even know what that is. So I would say no, and then I would try to boot the kernel, and it wouldn't boot, because I had one of those in my machine somewhere. I just didn't know what it was. So this is kind of how these kernels were. This was back when it was really important to have a kernel that had the device drivers that you needed all loaded at boot time. This isn't important anymore. But in strictest sense, if there's no support for any kind of flexibility at runtime, you can have this problem. You buy a new device for Windows, and if Windows was a pure monolithic system with no flexibility, you'd be stuck. You'd have to buy a new version of Windows that supported this new device. All right, so programs have bugs. So this cake has a bug. I don't know if anybody can see what the bug is. So anyway, in the interest of my online reputation, I won't repeat what the cake says. But anyway, so people make mistakes. And what happens if the kernel that you built on your system just has a little problem? Monolithic kernels have this issue. And this goes back to what we talked about before. All the code is running in one big shared address space, and all the code is running with kernel privilege. So if some unimportant piece of your, or you might think relatively unimportant piece of your kernel, crashes, or for example, a part that's associated with the device that wasn't written by the people who wrote the kernel, crashes, the whole kernel just dies in the system crashes. So this is kind of unfortunate, especially given the amount of code that's out there. And then finally, so I don't know if there was a great article in The New York Times a few years ago about the use of PowerPoint by the military. So apparently, if you join the military, one of the jobs that you might find yourself doing is full-time PowerPoint slide writer. There are people in the military whose job is literally just to spend their entire days preparing PowerPoints for military presentations. And this is the type of example of a slide that someone probably spent like a good, I don't know how many man hours went into this slide. I think this is supposed to describe the relationship between different tribal or ethnic groups in either Afghanistan or Iraq. And I mean, what you can take away from the slide is that this is very complicated. I'm not sure if you can really take much more than that away from this slide, but it is pretty cool. And so to some degree, its operating systems get more complex. And as we saw before, the relationships between these components can get very messy. It makes it very, very difficult for anybody to make fixes or changes. So you want to change something. Suddenly you're talking about this incredibly delicate sort of Rube Goldberg type machine and making a single change somewhere might affect everything else in ways that you don't fully understand. So this is another thing that gets very difficult, which is that even to make one small change, so you're hired by this company, your company does some Linux development, and suddenly you need to fix this bug in the some piece of code that you don't understand. And suddenly you find yourself having to understand the entire Linux universe just to make this one or two line change, because the implications of that change might ripple across the entire system. So today we're going to just focus on these three problems, so rigidity, safety, and complexity. And these are not the only problems with monolithic designs. There's other problems. And there's been a lot of research into how to improve monolithic designs. And to avoid ruining the story, a lot of the alternatives to monolithic designs haven't really caught on in their own right, but what they've done is that they've provided perspectives on better ways to design monolithic kernels. So you can design very well structured, very safe, very flexible, and relatively, operate systems are complex. But as uncomplex as possible monolithic kernels, that can be done. And some of the design principles from some of these other approaches have sort of bled into monolithic design. All right, so when we talk about rigidity, we're essentially talking about just trying to modify operating systems on the fly. So something happens to the system. And if ice gets plugged in, the operating system, you're trying to adjust operating system, piece parts of the operating system to improve performance. So what sort of techniques have we already talked about for doing this? When you guys have started to poke around your own systems, you've probably realized that Linux, for example, has some ways of first of all, facilitating communication between user space and the kernel, and then also allowing certain things to be tuned at runtime. So what's an example of how to do this? Or a way to do this? Yeah, so PROC, right? So PROC is a way that the operating system exposes information that can also actually receive information from user space. There's also something called SIS. And SIS provides a way to sort of frequently pass parameters in or adjust kernel's behavior at runtime. So an example of this I just happened to know about is that Linux provides different ways of controlling energy usage on your system. And the approach that you use can be changed at runtime from user space. If you have the right permissions, you can tell the kernel, please use this different approach. And assuming the kernel knows what that approach is and how to do it, the kernel will say, OK, I went from aggressively trying to save energy to trying to maximize performance. You can imagine on mobile systems that kind of flexibility can be nice. But I would argue, really to some degree, this is probably the most important thing here. Because users do this. They buy new stuff. They go out, computer shopping to come home with some new do-hickey. And they want to hook it up to their computer. They want it to work. And the one primary way that kernels have developed for dealing with this is what's called loadable kernel modules. Loadable kernel modules allow the kernel to adapt its behavior at runtime. And this is a very neat approach. So to some degree, I could get around this problem. And the way I could get around this problem, to some degree, would be to take. So when I was compiling my kernel, I could essentially tell the compiler, tell the kernel, include support for every device known to man. I want my kernel binary to include a device driver for every single device on Earth. Every device you know how to support, I want you to include it. And on Linux, there's ways to actually, again, have the kernel include these as part of the binary, the kernel binary. What's the problem with this? As I start to add more and more devices. What happens to the kernel binary itself? Yeah, I don't know. The kernel starts to get huge. Because essentially, the thing about it, I mean, most of the kernel binary is code. It's compiled code. And so what I'm telling the kernel is, add more and more and more and more and more and more code into this binary just in case I happen to plug in a ham radio to my computer or something like that. I don't know, whatever. Something that I'm probably not going to use. I don't have anything that's ham radio, but I don't think you, do you plug in a ham radio to your computer? Maybe not. Anyway, I'm sure there's one that you can. But the point is that, and there's probably a Linux driver for it somewhere. But the point is that if you tell the kernel, be prepared for everything, the amount of stuff that it needs to include in the binary starts to get really large. So instead of doing this, what I do is I create an architecture for loading and unloading what are called kernel modules.  It's compiled code. They're usually built alongside the kernel. They rely on kernel libraries and kernel support. But there's two things that are nice about them. First of all, they're not part of the kernel binary. The kernel binary has a loadable module system. But these can be loaded and unloaded at runtime.  Like loaded or unloaded? OK, it's less common than it used to be, I guess. So this is something else. They can be independently recompiled. So if there's a bug fix for a particular driver or a loadable kernel module, that bug fix can be independently distributed. You don't have to recompile the whole kernel. You just recompile the kernel module.  There also, they don't take up space in memory until you actually tell the kernel to load. At that point, they're incorporated into the kernel's address space. But what this means is that they can be loaded and unloaded as devices are plugged in and detached. So essentially, one of the things that happens, if you plug in a device to your computer, the device will essentially, at a very high level, what's happening is the kernel looks around and tries to figure out, hey, do I have any code line around that helps me interact with this device? If it finds them, it'll load that and then the device will start to work. When you unplug the device, the kernel will say, I've got this part of my address space that's sitting around that I don't need anymore. And it'll just unload. And this is something that happens essentially fairly transparently now on most systems when you plug in a device and remove it. And most modern operating systems support this, I don't know to say most, probably all, support this in some form or another. They call it different things, dynamically loaded libraries, or I guess those are something else. So loadable kernel modules is on Linux. I don't remember what Windows calls these. But all operating systems have support for this. It's necessary. The other thing is, so where do these frequently come from? Let's say you get a, what do you usually get alongside your brand new? I mean, it used to be before the internet run. Now the internet's made this a little different, but what did you use to get when you bought any sort of new doohickey? Sarah? Yeah, disk. And the disk essentially had this on it. The disk had some information on it that said, hey, this is how to operate this device. And where did that code come from? Did it come from Microsoft? No, it came from the vendor of the device. But it was designed to be compatible with the existing system that Linux had set up for supporting devices through this kind of architecture. All right, so let's talk about the second problem. So our second problem was the safety issue. And actually, this is a nice segue from loadable kernel modules and drivers, because this has a lot to do with drivers. So users don't like crashes. And kernel designers are really focused on this issue, too. I mean, you'd be surprised that Microsoft is very concerned about this. And most operators and vendors are, right? But this is the problem, right? This is the real issue that frustrates kernel designers, right? Because these guys are like hardcore, very, very practiced programmers, years of experience, incredibly defensive programmers. They're extremely smart. They know what they're doing. And as a result, their code doesn't crash very often. What crashes?  You guys have seen blue screens, like this. I don't know what the equivalent on Windows is now. Now, does this still have a blue screen? Does that still what it does? Yeah, that's good. OK. What's that? Light blue. Light blue, OK. So they've moved, they've changed colors now, OK. OK, so if core kernel components don't crash, now that's not that surprising, right? Because core kernel components are tested all the time, right? Like memory management subsystems, process support, all this stuff. Let's go for this bang done every day. If you write, if you end up being one of the three people that writes some of this code for Microsoft, right, for Windows, you know, like you have a testing community of billions of people, right? So bugs just don't live that long in these core components. But what components cause problems, right? What components are less widely tested, less potentially adeptly developed? Yeah, I'm in. Yeah, so Microsoft estimates that 89% of Windows actually crashes are caused by device drivers, right? 90%, right? So, and this is kind of, you know, I don't know, I've worked at Microsoft before, and they kind of have this sort of sad sack mentality about this, right? Because they know that 90% of the time, this is not their fault, right? But who do you call when this happens to your computer? Who does your dad call, right? Your dad calls Microsoft, you know, my computer crashed again.  I can't believe I spent no money on this because it came free with my computer, whatever, you know? Anyway, so you know what I mean, like that's best, and Microsoft gets all of these service calls that they're like, sorry, it's not us. Now, okay, fair enough, right? I mean, it's still, you know, I think they've finally got over this one, like, well, it's still our problem, right? Because those people do call us, right? They're not like, ooh, like that looks like my Logitech device driver for this brand new mouth with eight buttons that I just bought, right? You know, it must have a memory leak or whatever, no, they don't figure that out, right? They just call Microsoft. But again, so device driver code is written and rewritten. Every time you ship a new device, you have to rewrite this stuff. It's written by programmers that usually aren't as well-trained and potentially not as experienced. And there's all these device drivers, right? I mean, my guess is probably at least 90%, if not more than 90% of the code that runs on your machine, if you run a Windows machine, wasn't even written by Microsoft, right? It's written by all these external vendors, right? Because your machine has lots of components. And one of the things that Microsoft does to their credit is they support like every device ever created, right? That's one of their challenges. If you buy like an Apple computer, I mean, they're getting better at this, right? There's like this tiny little list of devices that are compatible with it, right? Or hard drives, for example, because like Mac makes the software, makes the hardware, right? Whereas with Windows, they're like, we need to support every hard drive that anybody could find in any sort of dodgy computer store anywhere on Earth, right? Because they're gonna take it home and plug it in and if it doesn't work, they're gonna be mad, right? So it's a bigger challenge, right? So I wanted to just point this out. I thought that this was kind of a funnier story, funny story, right? So device drivers are frequently the way that you...  I should be careful about actually, just thought I don't wanna get sued. So let's make up a fake device company, right? You start your work at fake device, right? And fake device is pushing their new fake device mouth, right? Like we're going to nine buttons, you know, it's time. People have, you know, anyway. It's like a two-handed mouse. So, and you know, they've had this, the eight button mouse, the eight button mouse was a big hit, right? So your job is to develop the device driver for the nine button mouse. What do you think you do? How do you start with that, right? Like they want it next week, right? They're about to ship the product, you know, the guy before just couldn't deal with nine, right? His brain circuitry exploded, right? But he wrote the eight device driver mouse. Sorry, the eight button mouse device driver, right? So what do you do? Where do you start? What's that? Yeah, you start with the code for the eight button mouse, right? And then you just hack on it until it kind of works for the nine button mouse, right? And then that's what you ship, right? So again, like lazy programs, not just lazy programs, these are efficient, right? Efficient programmers, right? Efficient programmers start with earlier versions of the code and they just make changes to it until they get it to work, right?  So here's the question, right? So what happens when the company discovers a bug in the device driver for the six button mouse? How many versions of the device driver do you think that bug is in? Yeah, so essentially you start to see these, like they've actually done studies on this. So you see these generational propagation of bugs in device drivers, right? Because the six button mouse was the basis for the code for the seven button mouse, which was the basis for the code for the eight button mouse and this goes on. So you find a bug in a year old device driver, there's like eight devices now that have that same problem, right? And there have been, again, there have been sort of academic studies and various studies in industry about this type of problem, right? So it's kind of funny. All right, and you guys may be discovering this as you work on assignments two and assignment three. Don't cut and paste code, you don't understand. You know, just like, I don't know, like take the extra week. People can wait another week for the nine button mouse, you know? They're still wrapping their fingers around the eight button mouse, right? They can wait an extra week for a version of the nine button mouse that doesn't have bugs in it. So this is, you know, obviously again, I mean, we showed some statistics about this. This has probably gotten worse. Like this is a big focus of research and development work and I'm probably not even up to date on the latest greatest stuff that Windows has done in Windows eight and even Windows seven to try to improve the device driver framework, right? And a lot of that because, you know, again, I mean, it's, you can look at it both ways. On one hand, Windows will say, well, this isn't our problem, right? But people do blame you when there's a problem, so maybe you should help fix it. And again, the framework that they provide for developing device drivers and testing device drivers is something that can either isolate these problems or make them worse, right? So I know that they've done a lot of work on. And there's all sorts of, and again, there's all sorts of, you know, academic work on automatically testing device drivers and verifying device drivers, trying to prove the correctness of device drivers before they shift and stuff like that. So this problem has sort of created a lot of interesting research, right? Yeah, and there are other approaches that try to isolate faults that are caused by device drivers, you know, don't let it crash the whole system, just have it crash the device and things like that. So kind of, I mean, this probably deserves its own lecture entirely, right? But I just wanted to give you guys a sense of what the problem is, right? All right, so when we go back to safety, right, there's other approaches to, so we talked about a problem with operating systems, right, which is they have to rely on a lot of code that they didn't write, right? And that's an issue. And one of the approaches to doing that is to try to isolate the parts of the code that you think are gonna be buggy and stuff like that. Another approach is to do actual automatic type checking of kernel code, right? One of the, you know, as you guys have been working on OS 161 this semester, you guys have been writing code in C, right? C is a fantastic language for, you know, extremely skilled, you know, C is on some level kind of a, it's a very, very low level language at this point in time, right? When C was developed, believe it or not, it was considered to be a high level language, right? But as time has gone on, you know, levels of attraction by languages have risen. And, you know, C is not necessarily a great choice for writing operating systems anymore because there's a lot of things that you'd like to be able to check when you build programs and see that you can't do, right? And so there are research projects now that look at trying to implement kernels in managed languages, right? So you could think about, you know, C sharp is kind of equivalent to Java, right? So can I write a kernel in Java, right? Because then I can do type checking and I can do, there's all sorts, the power of these types of languages because you all sorts of new capabilities that you can use to try to make sure that things are right when you compile them, right? Rather than waiting for things to break later, right? What's one of the other nice things that you get in a managed language like C sharp or Java or Python or I don't think you'd ever write a kernel in Python? One can dream, I mean, what's one thing that you guys have probably been struggling with when you guys have been writing C, especially if you came from a Java background? Memory management, right? Dangling pointers, you know, dead beef, forgot to allocate the object, allocated and freed it, freed it and kept using it, whatever, right? Forgot to free it, leaked it, you know, so all these sorts of problems and at some level like Java and these higher level managed languages are great for this, right? But you can imagine that it's almost like we're going back to log structured file systems, right? I mean, this sounds awesome, right? Like who's forever having to, you know, call K Malik again and worry about what happened to that pointer where it went, right? That sounds awesome. On the other hand, garbage collection overhead could potentially be a problem, right? And this is to some degree what caused kernel, I think, designers to resist doing this type of stuff for a long time, right? They said, well, sounds great, you know, and yeah, it'll make things a little bit more correct, but when the garbage collector runs, it's gonna be pretty terrible. It's got this big effect on performance and things like that and so I don't know how true that is, right? But I think that, you know, someday, right? I don't know, we could take over under bets about how long this will be. We're gonna stop writing kernels in these low level languages, right? I mean, language development has moved on a huge amount since the 1960s and 70s when these kernels started to be developed, but on some level kernels are still written in these low level languages, right? So on some level, you know, I think it'll start to see kernels that are written entirely in high level languages and at some point the hardware's just gonna get fast enough that this is worth doing, right? I mean, right now you still have, again, these sort of expert programmers and these systems that have been built up in these low level languages that have been tested and verified and worked quite well, right? And the speed is kind of worth it, but I'm willing to bet that at some point within our lifetime we'll see kernels that are entirely written in higher level languages, right? We won't keep writing things and see for it. All right, so let's go to the third issue, right?  How would you structure a big complex software project, right?  What do you do, Peng? Yeah, so I break it into modules, right?  Before we do that, we're gonna agree on what the interfaces are, right? So that we can use each other's code.  So this is the typical approach to doing this, right? When we talk about operating systems, I mean, structuring any large software project regardless of whether it gets compiled into one big blob of code or has to be split up and run in multiple places or is run as multiple subsystems, this is always a good idea, right? Always, but in the operating system, there's another advantage to doing this, right? Which is that if we can split up the system appropriately, what we might be able to do is we might be able to minimize the amount of code that absolutely has to work, right? Minimize the portion of the code where if there's a failure, if there's some sort of failure in that code, the system is actually going to crash, right? In security, they talk about this in a different way, they talk about minimizing the trusted code base, right? So what's the portion of the code that you actually have to believe is secure, right? Here we could say, what's the portion of code that we actually have to believe works, right? And it is so important that this piece works that actually again, if it doesn't work, it'll crash the system, right? With the monolithic kernel, essentially the whole kernel has the potential to crash the system, but if we break up things carefully, maybe we can reduce the amount of code that this works, right? So micro kernels are something that you'll hear about and you'll hear about sort of micro kernel-based designs, right? And micro kernels were an idea and approach that attempted to address some of the problems that we've seen with monolithic kernels and what they attempted to do is they attempted to say, okay, right now, again, what we have here here's the interface to the kernel, the application makes a system call and there's all of these pieces, right, that are now, and it'd be great if we could actually layer them like this. They're probably not even layered like that. They're like blobbed up into little corners in this box. Instead, what we're gonna do is we're going to say, we're gonna, you know, the idea behind micro kernels is to move as much code as possible out of having to run in privileged mode, right? So you could think about it as taking a kernel and trying to throw out as much of the code that doesn't actually need to run in privileged mode as possible and reduced the micro kernel, right, to be as small as possible, right? So what you can see here is, what actually they've done here, right, is they've said, okay, I have a micro kernel and here are some of the things the micro kernel is gonna do, right? I need to especially support some very, very fast inter-process communication. We'll talk about why that's important in a second, right? I probably need to manage virtual memory. That's a low enough level thing that I'm really the only person who can do it and I do some scheduling. That's it. Everything else, like for example, device drivers, right? Device drivers are now run in unprivileged mode, right? They kind of run as an application level service, right? File servers, file systems, run as application level services, right? They do not run in privileged mode, right? I think the Unix server here is supposed to be a piece of code that actually supports, you know, some of the POSIX interface and different Unix-type functionality, right? So again, the idea is move as much code as I can out of the trusted code base out of the part that actually has to work and implement everything else in these user space as these user space servers, right? So they call these sort of, you think about file server, right, that's a file system that's implemented in user space as a user space program, right? So let me ask you a question, right? So why does IPC become so important, right? Why is it so important to have really, really fast communication between multiple processes in a system like this? Yeah, so essentially, yeah, that's exactly right. So imagine I have a file system, right? The file system is using a disk device driver, right? It has to, it has to actually at the end of the day, write and read disk blocks. In our monolithic kernel, all of this happens inside the same big shared address space and all that communication is just done essentially through function calls, right? Here now what I've done is I've made both of them run in user space as application, as these servers, right? And so all the communication they do has to go through my microcurve, right? If the file server wants to talk to the disk, it actually has to send a message through the microkernel to the device driver that supports that disk, right? And that messaging overhead starts to become really problematic, right? And so that, you know, essentially all that communication I was talking about before is fast because it's just done through function calls. Now what all has to be done in this very structured way, right? I can't just make a function call to another component. I have to, you know, create a message and send that message to another component and doing that involves trapping into the kernel, giving the kernel the message and having the microkernel send it to another component, right? So again, the stuff that goes on the kernel is just the lowest level stuff, right? Low level VM protection, a bit of hardware control and then again, a goal is really, really fast and simple IPC, right? The user, my user level services communicate with each other and with applications over well-defined protocols using messages, right? So, you know, if I want, if my file system server wants to send a message, it wants to say write a disk block. It just doesn't make a function call. It puts the data for that disk block into a message and sends it to the device driver that's supporting that disk, right? In theory, right? So this was one of the hopes of the microkernel movement, right? In theory, these user level services can now fail, right? They can fail without causing the system to stop, right? So if there's a bug in my file system driver, right? If that file system driver is loaded on Linux, it's probable that that bug is going to crash your system, right? Now, what will happen, right? Well, the file system, you know, the file system server is implemented in user space and so it'll crash, right? It'll crash the same way a user program will crash, right? And what will happen after it crashes? Well, the operating system probably need to do, okay? Restarted, right? Because it's probably important, right? Like, I'm trying to use that file system, right? So I need that file system server to run, right? But the idea here again is that I'm using the capabilities of the system, the fault isolation, that the same stuff that I use to isolate processes from each other and from the system, right? Remember, when we started, we talked about one of the goals of operating systems is to protect the stability of the system from buggy user code, right? So your process cannot crash the entire system, right? This is a variant of this. It means now, because I've implemented my kernel kind of as a process, I can use the same mechanism to protect my kernel from the failure of core kernel components, right? Hopefully, again, I could just restart that core code from when I keep going, right? That was the idea. So my core kernels were kind of a hot topic in the research community in the 80s and 90s. What do you think happened? Can anybody guess about? So this sounds like a nice idea, right? Again, what I'm doing is I'm reusing these protection mechanisms to limit the amount of code on the system that can actually cause problems, right? Sounds very nice, right? But what do you think the bug is in this soup? Okay, so, yeah, micro kernels got big. That's kind of what happened, actually, but if I was just gonna go with this strict micro kernel design, what do you think starts to become the limiting finish? Why? Yeah, so the overhead of message passing and these boundary crossings that were required for communication between parts of the kernel that didn't have to do this before, right? So again, in my big monolithic kernel, anything goes, right? I can just make function calls, and it's very, very easy to transfer information from component to component. The overhead of doing this in a more structured way ended up making these systems, the performance of these systems sort of uncompetitive with more traditional operating system designs, right? And there were two ways, right? There were two sort of common ways to improve micro kernel performance, right? Both of them were kind of terrible. Varun touched on one of them, right? So what, oh, sorry, sugar, yeah. So what was your suggestion for how micro kernels fail? Yeah, but what's one way to improve the performance of a micro kernel? Yeah, make it more monolithic, right? Like start moving things back into the kernel, right? It's like, well, I put all this stuff out and it was really nice. I had these really nice, really defined interfaces and it was, you know, life was good and I could restart things, but now I'm slow, right? So I'm gonna go back the other direction and start moving things back to the micro kernel, right? So yeah, I can migrate pieces back into the kernel, which just kind of defeats the purpose, right? What's the other, you guys probably don't know this, but what's the other way to do this, right? So let's say I'm gonna say, no, I'm a purist. I like my interfaces. This is good. The system's more stable. What's the other approach? Lovely. What's that? So yeah, so actually one of the contributions of the micro kernel movement was big improvements in IPC, right? So they came up with these really, really fantastic ways for making IPC really fast, really low overhead. You know, no copy IPC, right? I don't, like the data just stays in the process that sent it, you know, very, very efficient stuff. So, but this is a variant of what, right? Like what am I gonna try to do the micro kernel? The system's too slow so I can make the micro kernel really what? Fast, right? And one of the ways people did that was writing the micro kernels in assembly language. Right?  You guys are laughing, right? It seems, it does seem kind of funny now, right? Because it's like, well great, right? But you know, but the point, like we didn't want the development of the micro kernel to take like ages and ages, right? So, and this was another case where there were these battles in the research community. Now micro kernels are terrible, they're really slow. And then somebody would be like, I have this hand optimized micro kernel that I spent two years writing in assembly language and it's really fast, right? Like of course, right? You know, anything would get faster if you spent that much time on it and wrote it in assembly language yourself, right? But again, I mean, to some degree, like the principle, so this is what I was talking about at the beginning of the lecture, right? The principles behind the micro kernel movement are kind of still alive and well, right? So the emphasis on message, so messaging and well-defined interfaces between components, right? And you guys start working on assignment three, I would encourage you to heed this advice, right? So just because you're building a monolithic kernel doesn't mean that it has to be disgusting, right? You know, coming up with well-defined interfaces between components and also, again, all this really, really efficient message passing, right? That ends up being useful in other contexts, right? Micro kernels, you know, some of the ideas of micro kernels are still influencing the research community as well, right? So recently there was a really neat project out of Australia where they were actually able to formally verify the correctness of a micro kernel operating system, right? So what this means with like 80 caveats, right? But largely what this means is they were able to prove the correctness and the safety of a kernel, right? So this was actually like a pretty big news when it happened, right? And it took a team of like 20 or 30 people like several years to do this, right? It was a really huge project. But what did they formally verify? They didn't formally verify Windows, right? They didn't formally verify Linux or Mac OS. They formally verified a micro kernel operating system called SEL4, right? Why? Because it's small, right?  It still took them years, right? So it took them probably, you know, 100 man years of time to do this project, but the only way they were actually able to get it done was to use a micro kernel, right? And again, this we talked about, there was a lot of this came out of efficient messaging at IPC, right? All right, I'll stop here. We want to have to talk about hybrid kernels, but again, there were a lot of contributions from the micro kernel movement, even if micro kernels didn't live on. And on Friday, we will start talking about performance.


You two team keeping clean who that Jersey gonna look kind of clean too What's going on it's a engraving here with another video and in this video? Hollywood he has officially made his 15 Jersey a throwback and He is switching to the number five I guess it's just something in the water right now with the Ravens because I was just talking to one of my boys the other Day who's a Rams fan?  No jerseys. Everybody's sticking with the same numbers But then Patrick Queen he switched his jersey to six now Hollywood He's switching his jersey to five the Sean Elliott wanted to switch to four but Sam cooks and you good You don't need it. I got I hold it down But anyway Let's just go ahead and get the cat out of the bag Let's just go ahead and address the elephant in the room. Shall we cuz I know y'all want to well That elephant in the room is make sure you tell somebody you love them today Make sure you tell somebody that you appreciate them and I know some people gonna be upset about the jersey number and whatnot, but Something that's far bigger than a jersey number is the love that you show to other people So make sure y'all keep spreading that positivity But to the jersey number of course everybody's gonna be like flack oh flack oh flack oh flack oh flack oh And we love flack oh we appreciate it flack oh But again the NFL it is a business The Ravens are a franchise and they do not I repeat they do not retire numbers now They don't officially retire numbers now. We know Nobody's gonna get the number 52. We know that we know nobody's gonna get the number 20 like those numbers are a lot The keys thrown away is gone. Nobody is touching those numbers while they're not officially retired We know ain't nobody getting those but besides that oh it may be 75, but besides that Everything is pretty much up for grabs Everything is up for grabs Jalen Ferguson even he even flirted with the idea of wearing number 55 Lad when well when he got drafted He tweeted about he talked about he said shit. I wear this number should I wear that number should I wear 55 and I was like Okay, you want to do that? So hey anybody who feels like with Hollywood with him wearing this number like oh man you wearing a number and that's that's Flacco's number Flacco he been long gone for a while he's been gone for three years now and We gots to we gots to move on we gots to let it go and Again, it's just a number It's just a number It's just a number on the back of a jersey the bigger thing that the thing that's bigger than the number is the name Who it is who's wearing it and how they perform? Now he didn't say in his post. He said hey again Back in that sinko for everyone who caught that 15 I love and appreciate you and I will make that five worth it So his words not mine. He said he is going to make it worth it And we know Hollywood last year. It started off a bit up and down Remember the first game of the season. He had over a hundred receiving yards in our first half alone But then it got kind of shaky after that Then of course he made his comments and then he had some shaky games But then he was like, hold on. Wait a minute. Wait a minute. Wait a minute. He pressed the reset button and Playoff Hollywood was inbound because the Ravens playoffs they started before the official NFL playoffs started So Hollywood he started showing out and he started making more and more plays Throughout the end of the season and then of course, you know in the playoffs. That's when Hollywood really does his thing So I do expect him to take it up another notch this season, especially especially Because of what he has around him because of what Lamar Jackson has around him because of who the Ravens offense of linemen have around him I just expect him to take it up another notch because now He'll it won't be all lies on him when it comes to Ravens receivers. Y'all already knew all lies on Hollywood Get a corner bump him have a safety up over top But now you can do that But then you got you got Sammy Watkins Got Sammy over there And you know Greg Roman is gonna make sure Sammy gets involved as well But then oh you got Rashad Bateman.  Oh You got JK Dobbins, you know PFF ranked him the 26 running back, which makes no sense But we talked about that earlier, but you got JK Dobbins over you got Gus Edwards.  Hopefully he'll be ready to go Kevin Zitler The center maybe bozeman whoever it might be Then it's looking but by how if we got a judge it based off of the vibe over the past couple of weeks And it's looking like it's gonna be Ben Cleveland at left guard, but we'll see and then the right tackle hopefully rejuvenated Alejandro Via Nueva Shout out to my guy my guy gusto. He corrected me on that name. I was saying villa, Nueva But it's via Nueva So shout out in my wife, she just corrected me in the background. She listened to me record this video right now So shout out to my guy gusto, but anyway It's a new look New look and again, I know somebody had a question about the college rules Like what's going on? How do these players get to switch their numbers Hollywood? He tweeted about it last week He sort of trolled everybody about it But it seems like it was one of those instances where there's a little bit of truth Underneath the joke because Last week or maybe about two weeks ago. He tweeted that oh he changed his number to five and When he first tweeted that I was like, no, no, no, no He tweeted that he said he wants to start a GoFundMe He said he's gonna start a GoFundMe so he could raise up $170,000 I believe so he could change his number to the number five And I believe the $170,000 that would be the amount of money He would have needed to pay in order to because what the rule is I believe and anybody correct me if I'm wrong But I believe you have to pay You have to pay in order to have your jersey number changed because you have to buy up All the way you have to buy up a certain amount of jerseys that are out there in stock and whatnot That have your previous number on there You have to buy up those jerseys and then boom you can make the number change or if you don't want to do that You could wait to the following year now obviously rookies. They don't have to do that since they're coming in They're getting brand new numbers rookies can have any number they want But for somebody that's been in the league at least from last year You have to pay to get any jerseys that you got out there got to pay them off and then you can change So Hollywood obviously must have dipped into the bank account where they dipped into check-ins or savings or CD Or whatever you got he dipped into the bank account and he got it out and he made it happen So it's official now new Jersey on the way so when everybody's down here for that Miami Dolphins versus Florida Ravens game and you see a bunch of fives throughout Hard Rock Stadium You may think oh, that's a flacko Jersey. That's a flacko, but on the back it's gonna say brown and Then in the back of the end zone during the game catching touchdowns It's also gonna say brown. I Can't wait me. I Can't wait this new jersey rule has taken a lot of people by storm. It's called a lot of people off guard But it's just one of the NFL's and it even me me. I was like I don't know about it at first, but now I'm like, okay, cool. It is what it is And I think it's NFL's way of just allowing the players to have a little bit more fun Because you know NFL when it comes to fun, they let them have fun They've been letting them dance a lot more over the past couple years and whatnot Especially this past year, but they had to sort of cover up because there was no fans and what no, you know the drill But I'm with it now Team keep it clean. I appreciate y'all. I love y'all and just like Hollywood is when it comes to that number 15 on the back It's Jersey I'm out


Zimbabwe got a lot to show the world and I know that these videos that I've been uploading will not show you more of Zimbabwe but I'm trying my possible best to do a bit just to let you know that Zimbabwe is not what you think. Zimbabwe indeed is not what I expected. Listen when I went to Harare I was told that the second biggest city in this country is Bulawayo and I was like how do I get to Bulawayo because I want to go to every corner of this beautiful country so that I'll be able to educate myself and educate my audience. We hired a parado all the way from Harare to Bulawayo the city of kings and queens but listen when I arrived in Bulawayo I saw similarities between Devon of South Africa and what Bulawayo of Zimbabwe and I must confess that this is indeed a mini South Africa inside Zimbabwe and I know that most of you don't know that's why I need to use my platform to educate you. Let me tell you a secret about Zimbabwe that I think most Zimbabwe's don't know. I think Zimbabwe is the home of Empales because when I broke my virginity of safari the things that I was seeing the animals that I was seeing I think the whole national park is filled with Empales and I never knew that there is a hotel in Zimbabwe called Empala and that is where I spent a night and believe it or not it's one of the best place I've ever lived in the entire Zimbabwe but apart from accommodation they are very good in terms of hosting events so take your wedding in there your birthday parties your welcome ceremonies in Empala and you know how Empala runs faster this is how the hotel attendants have going to treat you whenever you find yourself in Empala. Brothers and sisters, welcome to the home of the father of Zimbabwe, Bulawayo. Welcome to Zimbabwe a country between the Bofo and Zimbabwe. Right now we are in the city of Bulawayo and I'm with my brother. Welcome to the city of Bulawayo established here as a town on the 4th of November 1894 and also as a city in 1943. Bulawayo is the center. Bulawayo is our cultural city in Bulawayo. Welcome to Bulawayo, the city of kings and queens. We are at the city hall which is the administrative center for the city of Bulawayo, the second capital of the nation of Zimbabwe which apparently is the home of arts and culture in Zimbabwe. So this is the center for the people. Although we have an influx of different cultures around the city of Bulawayo, we have almost every ethnic group that's found in Zimbabwe right here in the city of Bulawayo. So we find a lot of cultural expression, artistic expression right here in the city of Bulawayo. Welcome to the city of Bulawayo, it's my first time in this beautiful city. I love the fact that when I was in Harari, I thought I've seen the widest road ever. I think the city got more and better wide roads than Harari. Listen if somebody ever told me that this is how a second largest city of Zimbabwe is gonna look like I would definitely not believe it but it's really worth it to come in here man. Like for real I feel like the people of Zimbabwe really need to appreciate their country. They need to start telling their own story for us to know that. Yo I'm not saying that the country is perfect but it's actually not what I expected because even just being the second largest of how clean the city is, it's kind of like a lot more infrastructure. It's just that they don't have like huge buildings and staff back. It's also been here man. To be honest, yeah, after traveling to 25 countries, this place gives me a vibe of South Africa. I feel like I'm in mini-Deban. If you have been to Deban, this place gives you a vibe of Deban. What do I mean by that? The people look like the Zulu people. The language in here sounds like Zulu in South Africa has a language that has been spoken by the people of Deban. But listen, I just have to get someone to talk to because this is just first impression and maybe there is a bit of truth to that. Have you ever been to Deban, brother? No, I haven't been to Deban. Have you been to South Africa? Yeah, yeah, I've been to South Africa. I've been to Hauteng province, Joburg and Eastern Cape. Can I ask you a question? Yes, man. It's my first time in here and this city gives me a vibe of Deban, South Africa or even the people of South Africa. Yeah, yeah. Well, let me give you just a brief history. So the people that are here, that came to this place, known as Ndevele people, migrated from KZD. Deban. So in about 1820, 1821, there about a group of 300 people left with the king called King Zilias and they migrated to present day in the city, what do we know as Wobulawai. I mean, where did the name come from? Wobulawai. Oh, thank you for asking. It's very important. So Wobulawai was in reference to King Lopengula, who was King Zilias' son. Wuna was the, we can say, I can't say the last king because it's been caused to resuscitate the Ndevele monarch. But Lopengula, his journey towards king, the people were resisting. The people didn't want him to be king. So when he said, I'm the one who's being killed, but not on a physical sense, but on a metaphorical sense. Metaphorical, they're killing my dreams to be king. So you've got existence of three Wulawai's that have happened here. So they've been two by King Lopengula. So you remember it's Wobulawai. When you remove the KO, it becomes redundant in the Ndevele language. Because in the Ndevele language, you say, go, it's someone, it's reference to someone. Wow. When I say, go, Maya, I'm saying it's reference to your place. Go and show, go and show. So when they removed the prefix KO, it means that the word became redundant within the context of the Ndevele language. So which means the people of South Africa and the people of Deban are the same people? Yeah, we can say that although in terms of migration, there are the tribes that are also incorporated there, but it is important to note that the legacy in the Ndevele language is born out of the Isizulu language. What are the similarities between Isizulu and Devele? It's almost identical, but what will change over time because of meeting new places, new people, is the accent will change. And remember within the Ndevele culture, there are the tribes also that are incorporated. It means also the language becomes diluted from Isizulu. But there are ways that are still identical, as you speak today. Do you know that South Africans and Zimbabwe are fighting? Yeah, I know, man. I know. I know. I know. And I think it's a bad thing? Yeah. Knowing that you are fighting your own people. Exactly. Because what we've lost, knowing our own history. Because I know your own history. You might know the guy you're putting the entire one is actually related to Ancestral. Because here in Zimbabwe, you see here in the city of Blawai, we say it's a cultural city. Because you've got people also within the South African language, you'll find some South African languages here. You've got your Suthu, your Tuana, your Venda. To name a few, you also find them here. You look at Zambia, the languages. I also found Zimbabwe, Tonga, Sloz. You look at Votoana, the languages that are in Votoana, that are found here in Zimbabwe, Kalanga, Suthuana. So it means we share the same path and our mythology and our world view as Africans is identical. We don't only meet on the element of skin. If you look at skin, we lose it. Let's look at the element of the cosmology. Let's look at the element of the mythology and the different types of the language, the food we are so united by. The OG of content creation in Blawai. Everyone is telling me I need to meet them. Hi guys. Hi guys. What are we going to do today? Today we're going to do a city tour. This is my city. Tell me what's so special about Blawai. The cutest city in Zimbabwe. It's okay. The beautiful place. It's like she knows a lot about her city, man. Or you just did research because I was coming. Not even. I do content creation around this place. So I'm from most of the places and I document Blawai. That's amazing. You know what? Let me tell you something. Have you been to Pasulunata? No, I want to. It's not my package list. Are you guys from Pasulunata? They say our ancestors like us and the Veli people migrated from Saara. The people from here in the Veli. That's the majority. You know why? Because I was in Pasulunata I think two months ago and that's the only city in South Africa that I've seen beautiful women at one particular place. And I was in Harare and I'm like, you know what? I don't think Zimbabwe got the most beautiful women and stuff like that. But when I came to Blawai, oh my goodness. I looked left, right centre. I used to see so many beautiful women and I'm like, I have to connect with them. Definitely in the world. I have no idea about that. But I know for sure that you guys got the most beautiful women in Zimbabwe. And you all look like Pasulunata. Oh yeah. Because it was like, then we then got me. You know what? I love that hybrid. We're going to take you around the city. What is so unique about Blawaio? We're going to show you streets of Blawaio and also anything that I think you need to know about this beautiful city. We're walking in the busy streets of Blawaio. I was not expecting to see Blawaio this busy because I was told that it's a pretty calm and chilled city. Because it's the pink hour, people are going back home to work. They are buying groceries and stuff. These are no groceries. Well, that's what they used to carry groceries. Oh, they used to carry groceries but they are no longer selling groceries. No, those bags, the ones that you showed them. That's what you put inside and then buy groceries inside. What did you just say? This is easy. What's up man? You want to say hello? How are you doing? What's your job? My job is to talk to you. I just said that. No, no, no. I'm just a YouTuber. Oh, YouTuber. Nice to meet you man. What are you going to say? I want you to tell me something about Zimbabwe. What are you going to say? Zimbabwe? Zimbabwe is too s***. Hello, how are you? How are you? I'm fine. I'm fine. I'm fine. I'm fine. Everybody is friendly. Honestly, this is my best day. I'm surprised that I've met this man. I've been following him from China. What he means to you? His name is Wadaba. Is he Chinese now? Yeah, yeah. He's Chinese in here? Yes, yes, yes. Wow, hello. Hello, hello. How are you? I'm fine. I'm fine. How are you? I'm fine. How are you? I'm fine. I'm fine. How are you? I'm fine. How are you? I'm fine. Yesterday, I was watching your YouTube channel. Really? Yes, I'm so happy to see you. This is Lance Jr. Yeah. In Bulawayu, the city of kings and queens. Make sure that you put this on your YouTube channel. No, I'm putting this on your YouTube channel. Yeah, yeah. And please follow me on my channel, Elite TV Nest. We are there to make sure that men of your 30 Nest National University, you should visit us at Nest. I thought the school is now in session. Yeah, it's not, but the students are coming soon. But we were hoping to be with you at Nest National University of Science and Technology. I'll visit you guys, man. Thank you, brother. Meet my brother, Michael Manevi. He's going to be the president of Nest. Really? Nest SRSE student. Bye, bye, bye. Bye. If somebody is watching this video for the first time and has never been to Bulawayu, what are you guys going to tell them? Bulawayu is a beautiful city. And we are hoping that a lot of people visit this beautiful city. It's a city of kings and queens. And they say that the Bulawayu chicks and Bulawayu ladies are the most beautiful in Bulawayu. No, no, no. Brother, I can confirm that. Yeah. That Bulawayu got the most beautiful women in the whole of Zimbabwe. Yes, yes, yes. Hands down. Some questions that you didn't meet, they took off from Trugas, but he's called Vibendulu. He was tagged on Zimsa left saying Bulawayu is known for the most beautiful women in Zimbabwe. No, maybe in the whole of Africa. No. Okay, it's nice meeting you. Nice to meet you, brother. All right. So this is the central point of the city of Bulawayu. The city that is the home of the former African liberation icon, Dr. Joshua Mkabokonyongolankomo. So right behind me here is the statue of Dr. Joshua Mkomo. And this statue represents an end of an era and the beginning of a new one because right here, this is where the statue of the former colonizer, Cecil John was used to stand. And upon attainment of liberation, his statue was removed and replaced very rightly by the statue of the former liberator, Dr. Joshua Mkomo. So Dr. Joshua Mkomo formed the very first liberation movement in the country. And he fought so viciously for the liberation of the local people from the yoke of colonization. And upon independence, he was appointed as minister of homophase and later the vice president of the country, a position that he held until he died in 1999. Within which the city of Bulawayu is located. It's known as Matebeleland. So we have like three provinces, Matebeleland South, Matebeleland North and Bulaway Metropolitan. So the settlers, the British Civil War Company, when they came in, they settled in Machonale, the other side of the country, where Harare and the other towns are situated. But in 1893, they decided they wanted to come over and occupy Matebeleland because it was strategic to their dream. They came to Cairo Dream and also there was lots of mineral wealth here and also lots of ivory. So a conflict was hatched by the settler government to just find a means of toppling the monarch. So a war was fought which led to the king actually burning down his capital and heading north, actually fleeing from the settlers. Long story short, Bulawayo as a town was then opened in 1894. Right, on the 1st of June and the place where Bulawayo was officially opened is right across the road there and that building was the Maxim Hotel. Where you are seeing Wesley Taylor Obtomarist, Candice Yazoo Shubiz and all, this building with a tin roof. This is the hotel outside which the administrator the administrator of Rhodesia the one with the grave in Matopos Leander Sir Jemison he just came out of that building and said ladies and gentlemen we don't want to waste time talking about this. The seat of Bulawayo is officially open so you can come in and have some refreshments. So it was smooth for some time but in 1896 the locals began to revolt and after they revolted this is when the whole town the whole market square was barricaded and they made a lager around and they had to take out all women and children from all over the territory and they made self here and after some days under siege they ran out of water and this well was dug by one engineer then and it provided water for the people under siege there is no water in it there is water and sometimes just for celebrations and sentimental purposes they draw a bit of some water out of it this city got a better history indeed Bulawayo has a better history very compelling and very revealing as far as the narrative the subjugation of the native people as well as their liberation is concerned this tree right here is a testimony to the brutality of the settler regime upon the native people just a walk around the city of Bulawayo will show you that the rest of the trees within the city center are all exotic and they are lined up but this one is out of line and it's indigenous and it was left like that for a purpose the tree is the famous or rather infamous hanging tree so in 1896 after an uprising of the local people against the settler leadership those people were identified as the leaders those were inciting others to rise against the government were identified and taken to this tree for hanging so they were hanged publicly and left like that for everyone else to see so that they would set an example which would deter any native from ever thinking of revolting against the settler government so there is a jail just close to this tree it was known as the Bulawayo Gawur the rest of the people would be taken there but those leaders the key leaders of the uprising would be fished out and hanged and left like that in public to learn a lesson that you don't revolt against the whites but it was only made of time because the same 1896 is the year when the very first Umfugela the very first Chimurenga or the uprising was hedged right in Matopos and later taken over to Machonaland so this tree is called the false Amarula so this is the apex of the hill the hill called Marlinda Nzimu the hill which was the resting place of the benevolent spirits of the nation so it was a sacred area not anybody could just come here let alone be buried here but we have Sisu Rods as remains lying here so how it happened is a story of Tikari because Sisu John Rods managed to weave himself into the hearts of the locals using Tikari Sisu Rods came and wanted to appear as the good white man who was brokering peace between the black locals and the bad white men in the form of Leander Jemison Leander Star Jemison who was the leader of the settler government but then Leander Star Jemison was the leader representing Sisu Rods now what happened is when the royal charter was signed for them to be able to come settle here while Sisu Rods was still putting logistics together for the settlers to come and settle in Zimbabwe coincidentally this is the time when he was elected to be the prime minister of the cap so this means he could not personally come and lead here so he appointed someone else now Leander Star Jemison finds himself being the bad white man Rods coming in and saying okay look guys I want you to live in peace the whites and the blacks and the blacks begin to like Rods to the extent that when he then approaches them to say I want to be buried at that place they have no problem with that because they've actually called him the great white chief so he has the rank of a chief amongst the locals and they give their permission for him to be buried here because in their minds this is one white man who is on their side so this is why Sisu Rods is buried here and then so he writes in his will that he I admire the grandeur and loneliness of the Matopos so when I die I would desire to be buried in Matopos in Rhodesia on that hill that I namely the view of the world in a square to be cut into the rock with these ways there on here lie the remains of Sisu John Rods and this is exactly what we see here so he was buried here and the local chiefs were assembled on that lower platform there and they chanted their royal salute Vayete this is a salute that was only chanted for kings and chiefs and this white man and that though in retrospect you begin to see that sometimes when people want to win big things they try to manipulate the mind so this is what this guy did he writes also in his will that he wants Jemison the same Jemison was tormenting the locals he wants him to be buried here so this is honored because it's him who is saying it how was he tormenting the locals? okay so Jemison is the guy who was leading these brutal campaigns where locals were being assaulted where locals were being killed the Anglon Devele war which was fought between the settlers and the Devele people which actually led to the dislodging of the king was ordered by him so if this place is that so sacred why would you bury a murderer in the place where kings are found in here? yes, like I told you that at Greta Zimbabwe this is the place where kings were physically buried so it's important because this is where you find the bonds of the kings but this one is the place where the spirits of the kings and chiefs and these important people would come and congregate so he follows he wants that place where physically people are buried and later he realizes no, but there is a more important place where the spirits are he comes here but he is allowed because he has endeared himself to the local people wow has anyone tried to assume this before? yeah, they have been calls to exhume but so far it hasn't happened because as a national monument it's also protected by the laws of the land and what is that? so this is a memorial tower and a mass grave mass grave? yes so this platform at the bottom here is a mass grave and there are remains of 34 people there who are those 34 people? these 34 people are Alan Wilson and he is 33 patrolmen so these are the guys who fought the last battle that dislodged the king Lobenguila by the Shangani River so unfortunately for these guys they were all wiped out by who? by the Nevele warriors so that's a memorial tower that's erected in their own so these guys when they were butchered there in that battle Sisulroz ordered them to be buried there later he ordered that they be exhumed and be taken to the place which he intended for a hero's acre which was Great Zimbabwe so these guys were re-buried at Great Zimbabwe later when he discovered this place he ordered them to be resumed and brought here but he said only after he's dead and buried here he wants to be the first person to be buried here so these guys were buried three times can I ask you a question? yeah I hope it makes sense though why would a sacred place like this be for the colonizers? because you're not even sure you mean that a king was buried in here see another person is there who is that? okay so that place there that cross you see the cross? no I'm not even talking about a cross that's another okay so this is the grave of the first prime minister who is also a colonizer? who is also a colonizer? these are colonizers Sisulroz was the colonizer that's also the colonizer Charles Patrick John Couglin is the colonizer so there's no local that was buried in here? no local was buried here the thing is for the locals this place was known for burial so the physical things that we see talk of the colonizers they are for the colonizers but what we don't see the spiritual aspect is for the local so when the colonizers came here it would look like there's nothing here that was very very important the spirits were residing here and I believe they still reside here I'm not happy the fact that a place like this is only for colonizers but anyway who am I I'm just a young traveler traveling across the continent but I just hope that the leaders of this country will see this video because for me I don't think it makes sense yeah in as much as for us to know that something like this sort happened in this country I don't think it's right for a place like this to be a monument for colonizers I mean this history even I'm not saying erase the history but you could still bury them in a place where we can all go and see that okay this is where they buried but not here I'm sorry this is what I think it's not a bad thought it's not a bad thought to be honest I'm tired of climbing since I came to Zimbabwe to see anything I need to climb and being in Matopos it's even worse I've been climbing climbing climbing climbing right now we're on our way to see the cave painting they call it a rhino cave painting just to show to you guys that there are people that are existing in here I mean the settlers of this place before anyone else yeah so let's just keep climbing even though it's tiring but I'm doing this for you guys things that I do for you guys just watch you better share the video like the video in the way of appreciating what we do so guys in Matopos if we can't find live animals we can always find animals somehow really either drawn on rocks by the same people or naturally made on rock just as that rock straight ahead there when you look at that rock what do you see? looks like a Zimbabwe bed Zimbabwe bed job what do you think? a camel Steve a tortoise a rhino you think it's a lamb so each time I come up here with people I ask them the same question and I've heard all these answers before except rhino so I think it's not it's all the other answers except rhino rhino is the worst one ever so we've seen all those animals in one ok but don't worry as we proceed we're going to see rhinos we're going to see rhinos painted on rock this time so what animals? that's a turtle that's a camel that's Zimbabwe bed and it's a lamb all in one not rhino all in one but it's not a rhino we find paintings of a white rhino in all of Matopos and modern day ecologists make use of rock art as a reference point to see what sort of animals used to be found within an area so if they want to introduce an animal they know it can survive here because it once survived before so because what the same people used to do is they would make their diaries on rock faces so they would make figurines paintings of the different things that they would meet in their daily lives whether it's something that makes them happy whether it's something that's a challenge to them they would always put that information on rock faces so this particular cave served a purpose some time back when white rhinos were sort of no longer existing within Matopos and the Zimbabwe government the arrangement of the Zimbabwe government to bring some white rhinos from South Africa from the Kruu Ganeshan Park but now they wanted to find suitable places where they can place them and this rock art made sort of evidence that they used to be white rhinos here and today due to that introduction of white rhinos the Matopos is like the largest number of white rhinos on state land in Zimbabwe yes so it's like the largest like the most successful rhinoconservation taking place right here in Matopos so this was done by the same people the same people yeah the same people were the first ever a known group of people to live in here before the Bantu people came this is beautiful awesome first time seeing this kind of museum what goes on in here so there's a lot of scientific research taking place okay about all living nature and even non-living nature so we have several departments some are researching on mammals some on reptiles some on fish some on beds some on geology paleontology and also that kind of stuff we also do have a research department that tries to find out what happened in the past but apart from research we do have exhibition galleries that showcase what we have the world of heritage that we have in Zimbabwe in southern Africa and as the world the building is unique it is it was custom built for a museum okay yeah so this building was officially opened in 1962 and it's still strong so this is the best museum in the whole of sub-Saharan Africa the biggest the biggest and best in terms of content in terms of the research output and in terms of what it showcases so this is our world life gallery showcasing the world of vegetation and animals that we have in Zimbabwe so this side we have dry season and wet season this side this is beautiful it is awesome is this a natural tree or it's artificial it's artificial everything in here well even the animals of the animals everything that you see on the outside except the eyes everything else that you see on the outside is real but what you don't see in the inside is not real so this is a this is an elephant this is this is the second largest mounted elephant in the whole world so this elephant was short when it was coming from my water hole so you know elephants have this habit of wallowing mud blasting themselves so that they suffocate parasites and they keep themselves cool so it had to be reproduced the way it was it was killed it was short because it had become a menace to people in the Saharan community so this is how it looks like this is what it looked like real size that's huge yeah can elephants get this bigger yeah some get bigger the one that's in the Massachusetts Museum of Natural History is bigger than this that's the only one that's bigger than this one of all mounted elephants in the whole world the western region of Ghana and I'm here in Buluwayo and apparently Buluwayo is in the western region of Zimbabwe so which means that if I ever want to live in Zimbabwe this is the best place for me to live yeah I mean let me remind you guys man do you guys remember the first wife of Robert Mogabe that is Sally Sally was from my region which is also the western region of Ghana so definitely Sally realized that oh Zimbabwe has western region so if I go in there I'm not going I'm not going to be a foreigner in Zimbabwe yep I get a coat bro


Going on everyone Sam here with late sports cards. We're been not sports card almanac multi-sport personal box edition volume 5 box number 36 for mr. Ryan a it's good luck here Ryan see what we got box 36 It's gonna be nice that is a one of one from 2022 Panini encased Kenneth Walker on the rookie auto. That's nasty. Let's go Ryan He is ballin. He is a stud man One of one to Kenneth Walker on the encased. This was one of the one of the upper cards for sure Remember I didn't want to put this one in the I didn't want to put this one in the video Because I want to be like hey, there's a one-to-one But that is awesome congrats on that one Ryan good stuff, buddy Do it for your break. Thanks again as always for the sport Ryan get him right out to you buddy


Ladies and gentlemen, let me just welcome you to this swearing ceremony. Of course, I will, as cabinet secretary, be swearing in the new attorney general as delegated by the governor general, of course, consistent with the president that has been established, given that the attorney general is being appointed as a public officer. So, I will first hand to you your warrantable appointment. Thank you. And then, I'll administer the requisite rules. Assisting us, of course, in the activity this afternoon is the EDC to the governor general of Allegiance. Leslie Vincent Mondesi, to swear that I will be faithful and betrothal allegiance to St. Lucia, that I will uphold and defend the constitution and the laws of St. Lucia, and that I will conscientiously and impartially discharge my responsibilities to the people of St. Lucia. So help me God. I, Leslie Vincent Mondesi, to swear that I will faithfully bear true allegiance to St. Lucia, that I will discharge my duties and perform my functions honestly to the best of my ability, faithfully in accordance with the law, and always in the interests of the sovereignty, integrity, solidarity, well-being and prosperity of St. Lucia, and that I will not directly or indirectly communicate or reveal the business or proceedings of the cabinet or the nature or contents of any document communicated to me or any matter coming to my knowledge in my capacity as the attorney general, except as may be required for the due discharge of my duties. So help me God. Congratulations, Honourable Attorney General. Thank you very much. You're welcome. Thank you very much. Good afternoon, ladies and gentlemen. First and foremost, I wish to, I will start by thanking the Almighty God for blessing me with the opportunity to be here on this beautiful day. It is indeed with great sense of honour that I stand before you all to accept the position of Attorney General of our beautiful country, St. Lucia. I would like to thank the Honourable Prime Minister for having the confidence in me and for trusting my ability to carry out this task at such a crucial time of our history. My gratitude also goes to my family, my friends and my colleagues for all the support that I have received and thus far, received thus far and the encouragement over the years. Special mention to my brother colleague, Brother Claudius Francis, who is here with us today. I think we did it, my brother. We did it. At this point, I want to pay a special tribute to my now deceased aunts who raised me and who, without a doubt, would have been very proud of me today. I pledge to do my utmost best in performing the task which has been entrusted to me. I will not pretend that it is an easy endeavour and obviously it will take a lot of hard work. But I am up for the challenge and I am ready to serve my people and my country with devotion and pride. Thank you very much.