os212

LINKS

Week 00

  1. Operating Systems: Crash Course Computer Science #18
    This is one of my video recommendations to understand the fundamental of operating systems. The presenter explains this technical topic into a fun and interesting one in a very short time. What I like from this video is the hardware side of operating system is explained too, so the audience can understand operating system from software and hardware side.

  2. What is an Operating System as Fast As Possible
    This is one of my video recommendations to understand about operating system as fast as possible, especially if you like Linus Sebastian from Linus Tech Tips (hehe). Linus (as always) puts puns and jokes to make the video enjoyable to watch and understand. If you don’t really like cartoon animation, this video might be more suitable for you.

  3. How Do Operating Systems Work?
    This video is my last recommendations to understand about operating system. This video is full of animations (no face or person shown), so this video is suitable if you like flashy animations instead of boring lecture.

  4. Introduction to Linux Operating System (OS): What is Linux?
    This article explains about Linux (and a bit review of operating system). The article explains about the history of Linux, the purpose of Linux as an operating system, and the benefits of using Linux. I think this is a great article for beginners who don’t really understand Linux or who don’t know anything about Linux.

Week 01

  1. What is a Virtual Machine?
    This article is a good introduction about virtualization and virtual machine, since those topics are essential for this course. If you don’t know about them and want to learn about them, this article is a good start for you.

  2. Bash Scripting Tutorial for Beginners
    This article is a good start for you who are just starting to learn about bash scripting. Bash scripting is an essential skill that must be known by Linux users (or mastered, if you’re a real hardcore one). I highly recommend this article, as it includes short videos to explain each commands interactively.

  3. Awk Tutorial
    This tutorial takes you through AWK, one of the most prominent text-processing utility on GNU/Linux. This tutorial covers topics about an overview of AWK, its environment, and workflow, the tutorial proceeds to explain the syntax, variables, operators, arrays, loops, and functions used in AWK. It also covers topics such as output redirection and pretty printing.

  4. Sed and Awk 101 Hacks
    Sed and Awk are two great utilities that can solve a lot of complex tasks quickly with only a few lines of code. If you’re still learning about Sed and Awk, this is a great resource for you to master them.

  5. Nano Or Vim? Which Terminal Text Editor Should You Use?
    This video is a good video for comparing between two popular terminal text editors, vim and nano. If you’re confused to choose which one suits for your needs, this video might be a good material to help you make the decision.

  6. Nano Editor Fundamentals
    This video explain the fundamentals of nano, the terminal text editor I use on this course. I highly recommend this video since I often revisit this video if I forget some things about nano. If you’re using nano text editor like me, this video is definitely useful for you!

Week 02

  1. Fundamentals of C Programming
    This presentation explain technical fundamentals of C language. Even though we learned Java and Java is closely similar in syntax, we still need to learn about C language to understand this course better. If you want to understand well about fundamentals of C, I recommend this presentation as your first step of entering the world of C.
    A bit fun fact (if you haven’t known about this); Linux is made of C language!

  2. GNU Privacy Guard
    This article explains about GNU Privacy Guard (GnuPG), a tool that is used to crypt files in this course. I’m glad I find this article as it is type in Indonesian! If you want to learn more about GnuPG (instead of “just” following the guide without knowing about GnuPG), this article is a good headstart for you.

  3. Cyber Security In 7 Minutes | What Is Cyber Security: How It Works? | Cyber Security | Simplilearn
    This video explains a brief introduction about cybersecurity (a.k.a. cyber security, just a different styling). Some of attack techniques (such as malware, phishing, DDoS, and SQL injection) are explained here. If you like video with visual elements (such as cartoon), this video is suitable for you.

  4. Cybersecurity: Crash Course Computer Science #31
    This video explains a briefer (but longer) introduction about cybersecurity (prior to the previous video). This video combines visual animations with small lectures to deliver the lesson. If you like a briefer introduction, I recommend this video to watch.

Week 03

  1. FUSE - The Linux Kernel
    This article is a good starter to understand FUSE, the Linux filesystem. The article explains the important definitions and commands well to understand FUSE. There are also some explanation on the kernel side. This is a good comprehensed article, I recommend this if you have some basics of Linux and filesystem.

  2. Tutorial FUSE pada Linux
    This video is a good tutorial if you need practice on understanding FUSE. I think this video is a good guidance since we are supposed to practice the demos by our own. Since this video is explained in Indonesian, I highly recommend this video if you have desire to fully understand about FUSE.

  3. Linux File Hierarchy Structure - GeeksforGeeks
    This article explains about Linux file hierarchy structure comprehensively. The folders in Linux root drive is explained thoroughly by its functions. If you want to learn about Linux FHS by reading text, this article has it all.

  4. Linux Directories Explained in 100 Seconds
    This video explains about Filesystem Hierarchy Standard (FHS) briefly. Even though this video is only 100 seconds, it is still explaining most of all about FHS. If you are lazy to read and have no spare time to spend, this express video is a good introduction for you.

Week 04

  1. Linux Basics: Static Libraries vs. Dynamic Libraries
    This article explains a good explanation about how static and dynamic libraries works in Linux. “You came to the right place if you’re wondering how static and dynamic libraries work in C programs,” the writer writes. The article even has some video resources as a supplement for you. I recommend this article if you want to understand deeply about libraries in Linux and C (since, you know, Linux is made of C language).
    P.S. I kind of hate Medium as it limits us as a non-member to read articles in a restricted amount.

  2. What is memory mapping in Linux?
    This article explains a brief yet comprehensive explanation about memory mapping in Linux. Memory mapping is one of the most interesting features of a Unix system, so I highly recommend you to push your limits on learning memory mapping. This article even has videos to explain the concept behind memory mapping and nmap program in Linux. I dare you to read this article, hehe.

  3. Pointers in C++
    Even though this slide presentation is intended for C++, I think it is still providing a good basic for understanding pointers in C. C++ is a programming language which is an extension of the C programming language; that is why most of concepts of C++ is still appicable for C, even though it might have different syntax. This slide has a comprehensive explanation about pointers. It even has some basic visualization to help you out! I highly recommend this slide if you want to comprehend the basics of pointer in C.

Week 05

  1. Virtual Memory in Operating System
    This article describes the concept of virtual memory in the context of operating system. It also has some pictures to visualize the concept of how virtual memory works in operating system. I recommend this article as a headstart to understand about virtual memory.

  2. What Is Caching and How It Works | Fortinet
    “What is caching? and “how does a cache work?” are common questions in computing. This article gives you a brief explanation about cache and how does a cache work. Even though this article is oriented to web caching, the concept is still applicable generally to anything related to caching. Since we are studying about platform-based programming at the same time, this article might be helpful for you.

  3. Memory Allocation
    This college course material explains about memory allocation briefly. But, hey, it uses C as the intermediate language! It also has some visualization about how memory allocation and (yes, it is) pointer works. I highly recommend this article as a headstart to understand about the concept of memory allocation.

  4. Thrashing and Working Sets
    This Stanford’s lecture notes gives important points about thrashing in the context of memory. I think this note is very useful, especially when you want to prepare for the weekly quiz. Although this has no explicit answer typed on the same page, I find this note useful for me.

Week 06

  1. Processes and Threads (Concurrency Basics)
    This video explains about the differences between processes and threads, and concurrency vs parallelism. This quick video uses some visualizations to explains the basics of multi-threading programming. I recommend this video as a headstart for you to learn about the basics of concurrency and multi-threading programming.

  2. Multithreading and Concurrency Fundamentals
    This article explains about concurrency and multi-threading programming briefly. If you prefer reading article over watching video, this article suits for you. I recommend this article as an alternative headstart as it keeps its explanation clean :)

  3. Threads and Concurrency
    This website… is somewhat unique ;) This website is basically a collection of notes for operating system course. It has technical explanations and rich visualization while describing concurrency thoroughly. I definitely recommend this “notes” if you really want to enhance your knowledge about concurrency.

  4. Fork() in C Programming Language | Engineering Education (EngEd) Program
    This article helps me a lot to understand the concept of fork(). In addition, I use this as a guidance while doing some demos in Week 06. I highly recommend this article to those who don’t understand the basics of fork().

Week 07

  1. Process Synchronisation and Deadlocks
    This website… has an old-school style. But it doesn’t keep itself from giving useful informations! ;)
    Even though it has a little amount of text explanations, but it has useful visualizations to explain the concepts of process synchronisation and deadlocks! There are some excerpt C codes to give practical examples of them. If you like visualization more than texts, I recommend this website as a companion to the materials.

  2. Process Synchronization & Deadlock
    This short note explains about process synchronization and deadlock briefly. It contains short… summary about the concepts; thus called a “general note” ;). If you’re in a hurry to understand those concepts, I highly recommend this website.

  3. Reading 23: Locks and Synchronization
    This study material has an extensive explanation about locks and synchronization. There are a lot visualizations and code excerpts to make the study more practical. By not forgetting that this is a study material from Massachusetts Institute of Technology (MIT), I totally recommend this study material if you want to master the concepts needed for this week.

Week 08

  1. Linux From Scratch - Wikipedia bahasa Indonesia, ensiklopedia bebas
    This is a good introduction to understand the concept of Linux From Scratch in Indonesian. I couldn’t find any better materials in Indonesian to explain the basic concepts of Linux From Scratch. I think this might give you a big picture to understand the essentials of Linux From Scratch.

I’ll start shortening Linux From Scratch as LFS; starting now.

  1. Linux From Scratch - Version 11.0
    This is the official guidance to make the latest version of LFS (current latest release is 1st September 2021, when this links resource is written). As Mr. Rahmat says, please expect downtime as a “normal” situation happened in this website. Please understand and comprehend this guide thoroughly to get the best output.

  2. How to compile Linux From Scratch 11.0 on an Apple iMac
    This is one of the resources given by Mr. Rahmat in this course to construct and make LFS. I think this playlist is the best and latest playlist as an audiovisual guidance if you’re inexperienced to compile programs and do the guidance without any helps. I know there are a lot of noobs out there, so please use this playlist as the best audiovisual guidance to finish the final assignment of this course.

Week 09

  1. What is RAID 5?
    This is the backup copy of the website mentioned on the course’s slide material. Even though the UI is kinda unpleasant, the information and visualization are very helpful to help you to understand about RAID 5. I recommend this website as a headstart to understand about RAID 5.

  2. RAID level 0, 1, 5, 6 and 10 | Advantage, disadvantage, use
    This is a comprehensive article about RAID. It has an extensive information about RAID 0, 1, 5, 6, and 10. There are some visualization, too, to help you to comprehend the materials better. I recommend this article as a headstart to understand the basics of RAID.

  3. Mengenal Komponen Server: Tipe RAID dan Tingkatannya
    This is a good introductory aricle about RAID, too. It is written in Indonesian, so I think this is more helpful to the one who don’t really understand English materials. I recommend this as a supplement to comprehend about the basics of RAID.

Week 10

The last week! Whoa.

  1. I/O Systems
    This is a brief, yet simple “course note” about the concepts of I/O systems in operating system. There are some simple visualizations used to elaborate the concept further. I recommend this article if you want to comprehend I/O system fast.

  2. Principles of I/O Software
    This is a “brief note” about the principles of I/O software in operating system. There are a few visualization to make things more comprehensible. I recommend this note as a supplementary material to the previous one.

  3. Platform Controller Hub
    This is an online academic encyclopedia which explains the Platform Controller Hub (PHC). There are some informations about its history and vast variety of PHC. I recommend this webpage to be read if you are interested to learn a bit about PHC.