https://os.vlsm.org/ — OS242
Introduction to Operating System — A video talking about the things we’ll learn during this lecture and what is the operating system itself.
Linux Crash Course - Easy Terminal Commands for Inspecting Hardware — Some easy-to-use commands you can use to inspect hardware. These commands will help you list PCI devices, view information about your CPU, and more.
50 Most Popular Terminal Commands — A video covering 50 essential and widely-used Linux commands, such as cat, find, grep, mv, cp, cd, and others. These commands will greatly simplify navigating and working within the Linux environment.
Vim Basics in 8 Minutes — Learn the fundamentals you need to begin editing text in vi or vim.
Learn Regular Expressions In 20 Minutes — This video has been incredibly helpful for me in understanding and applying regular expressions, significantly improving my ability to work with text patterns and manipulate data more efficiently.
What Is a Checksum? — This week, we often hear the term ‘checksum’. I personally juts heard it in this lecture. So, I learn what checksum is from this page.
Cybersecurity and Zero Trust — In week 02, we learn about the point of cybersecurity and term like Zero Trust Environment. This video has helped me a lot to understand the topic about that.
Introduction to Cryptography — This website is a great place to learn the basics of cryptography.
Virtual filesystems in Linux — Virtual filesystems (VFS) provide the essential abstraction that enables the Linux philosophy of treating everything as a file.
Definition and Explanation of FUSE — Also talking about filesystems which is very unfamiliar with me, this site really gives me the general idea and view about what FUSE is.
What is External Fragmentation and Compaction — If you’re curious about external fragmentation, this video provides a clear example using contiguous memory allocation. It also demonstrates how to solve the issue through compaction.
Dynamic & Static Linking — Linking combines external code with your program for it to run. Static linking bundles everything together upfront, while dynamic linking connects the pieces as needed during execution.
Brief of Address Binding — Address binding connects a program’s logical addresses to actual physical memory locations. This allows the program to access and use memory during execution.
Introduction of Pointer in C — This page explains about pointer with illustration to make it easier to grasp. I found this page valuable because when learning C programming, we use pointer a lot.
Virtual and Physical Addresses — Hardware deals with physical memory addresses, while the operating system kernel manages virtual addresses and split the physical memory into partitions of varying sizes.
What is Virtual Memory? — Virtual memory lets computers use hard disk space to expand their RAM capacity. When RAM is full, less active data is moved to a paging file on the hard disk, freeing up RAM for ongoing tasks. This combination of RAM and disk space creates the illusion of more memory than physically available.
Memory Allocators Selection — There slab, slub, and slob are the available memory allocators in linux. How do you choose between the three of them? Do you just randomly pick one allocator and go on with life? I don’t think so. In this post you would learn more about allocators.
Multithreading — A thread is like a mini-program within a larger program, having its own way of tracking progress and managing information. It’s a single path of execution within the program’s code, with its own counter to keep track of which instruction comes next, its own set of variables to work with, and a history of where it’s been.
Threads and Concurrency — The link explains in detail about threads and concurrency procedures. The existence of multicore benefits us to be able to run several processes or threads simultaneously.
Fork() in C Programming Language — In the world of Unix-like operating systems like Linux, fork() is the go-to method for creating new processes. It’s like a copy machine for running programs, creating a near-identical replica of the original process, which we call the “parent.” This new copy is known as the “child” process, and it runs independently alongside its parent. Keep in mind that fork() is exclusive to Unix-like systems and won’t work on other platforms like Windows. For a more detailed explanation and interesting facts about fork(), be sure to check out the accompanying article.
Introduction of Deadlock in OS — A good article that introduces the concept of deadlocks in an operating system, how to prevent or avoid them, and how to recovery from them.
Semaphores in Process Synchronization — A good article in explaining how semaphores work for process synchronization.
LFS 12.0 Playlist by Kernotex — A very good playlist consisting of detailed videos regarding LFS that makes me sure I’m doing the correct thing.
CPU Scheduling in OS — A very good article explaining what CPU scheduling is and some CPU scheduling algorithms.