Default
LINKS
Muhammad Rizki Fauzan --- Somewhere in the Universe.

LINKS

WEEK 01

  1. Vi
    To me, Vi is mandatory to learn because it’s currently the default editor for UNIX Operating System. If you are interested in learning more, I found this website to be quite interesting and easy to understand
  2. Template
    For the look of my page, I use a template that was referenced by our lecturer. What’s interesting with this template is that the theme is easy to implement to our page and there’s a lot of modifiation we can do to spice up the looks of our page.
  3. VirtualBox AIO
    This website gave me a full guidelines regarding to what do I need to do in order to set up my VirtualBox, from importing an Operating System to synchronize our OS to a GitHub project.
  4. Video: What is Debian
    I found this video to be interesting because of how short and informative it was. This video shows how influential Debian is to Linux infrastrucute and how it essentially becomes the grandparents to most of popular Linux-based OS.

WEEK 02

  1. Nano
    While working on Assignment #02, I’m curious as to what simple editor I can use to edit my logs and may other files, and I found Nano to be the simplest and easiest editor for Linux. I really encourage you guys to check this out if you are interested.
  2. Using Keys
    In Assignment #02, one of the key (pun intended) subject we need to learn is cybersecurity. I found some interesting things we can do with this concept, such as encrypt a certain file, singing a certificate for that file, or even accessing your public key. Many of that matter can you find out from this link.
  3. Bash
    I also learned that we can use bash to compile several commands as a singular file. In this assignment, I find this feature to be helpful speed up the process of verifying some files with SHA256SUM.asc
  4. Video: Experimenting with GPG
    In this video, we can find a complete explanation as to how the encryption with gpgp works and how can we do it. I pick this video because I found this to be the clearest explanation of this process and the implementation of it. Also we can actually find the commands in the description of the video.

WEEK 03

  1. C Language
    I learn that in this assignment, we will learn a litte about C language, what is it and why do we use this programming language. I often use GeeksForGeeks for my reference to anything related to what I currently learn, so in this situation I decided to use this website to figure out this language.
  2. Mounting
    In this assignment, one of the task we need to do is to mount the drive we already created. Now we might be confused as to the purpose of this process, and why do we need to do it everytime we reboot the OS. I found this documentation by Oracle to be helpful for answering my curiosities.
  3. Default Format for MKFS
    In the documentation given by our lecturer, it mentions Linux’s default system when we run a MKFS command as EXT2. Confused, I tend to research as to why is this format be the default and what makes this format superior than the other formats Linux can access. This link is a research compiled into a easy-to-understand article written by an Indonesian Developer/Blogger on Medium. I really suggests everyone to check his works, especially the one I mentioned.
  4. Video: Linux Directory
    Since we learn about memory management in this assignment, I feel like figuring out the directories in Linux is necessary, and I find this video to be quite easy for me to understand with its short and compact explanation.

WEEK 04

  1. Working with Tarball
    In this week’s assignment, one of the task is to extract a file with .tar file type. I decided to take a look at what is tar and ended up finding out about tarball, which essenially means a process of backing up a group of files and combine it into a singular ile with .tar file type. This article helps me understand more about how this process works.
  2. What Does Libraries Have Anything To Do with Linux?
    While we installing new packages , I realized that most of the packages we install on the 2nd package list starts with “lib” which makes me think that this must have something to do with libraries. This article I found was essentially made to make programmers understand how to make their own libraries, but in this article, there are some key points that I believe can potentially help you undesrtand the usage of libraries in Linux.
  3. What is Paging File in Windows?
    In the slides that our lecturer has given, one of the subjects we learn in chpater 9 (Main Memory) is Paging File. While the slides have all the information you might need to know, this article I found explains this topic and give actual example we can actually test. I found this article to be quite helpful to make me understand more about how pagefile works.
  4. Video: Virtual Memory
    One of the things we learn in memory management is Virtual Memory and its purposes to prevent a program to crash. This video simply explains the actual definition and the use cases of virtual memory.

WEEK 05

  1. Too High or Too Low?
    In this week’s assignment, one of the task is to experiment with allocated memory and see how low can we go. I tried to find out what is the purpose of this experiment and I found this article which explains what is High Memory and Low Memory. This also explain the Out of Memory killer situation that I believe to be the cause of crashes that happened when I change the base memory size.
  2. What is Kernel, anyway?
    In our experiment, we can see that crashing OS impacts the kernel to work properly, yet we ma not even know what is kernel in the first place and what does it do. This article I found explains every bits of information you should know about kernels which I think is a helpful read.
  3. Which allocators to select?
    We learned that Linux has 3 memory allocators available, consists of SLOB, SLAB and SLUB. Each allocators have their own specific purposes. I found this forum in Stackoverflow which basically asking the same question as I do: Which allocators should we use in certain situations?
  4. Video: Kinds of Memory
    Although the main reason memory exists is to store information, memory has different types, each with different usage. This video explains briefly about many kinds of memory and its usage.

WEEK 06

  1. Multithreading? Multiprocessing?
    This week, we take a look at one of the concepts of computing process which is multithreading and multiprocessing. Multithreading (as you might predicted by its name) separates each programs to process into some kind of thread and let it run simultaneously and separately. If you have enough curiosity with this concept, you ight like to take a look at this link, especially since this article I found was in Bhasa, so you might have easier time to understand the concept.
  2. What makes Thread and Process different, anyway?
    After reading previously attached article, you might have a hard time understand the concept of thread and process in the first place. What makes it so different? Why is the concept feels so similar? This article I found might help you clear up your confusion.
  3. There is variety of states if a process, you know?
    A process is an active program. It can also be said as a program that is under execution. A process passes through different states as it executes. In order to understand each states of process, I might suggests you guys to check out this article I found. It has a clear diagram that explains the routes of states and explanations of each states.
  4. Video: Communicate with a pipe()
    One of the things we learn at multiprocessing is how can we communicate multiple processes. In order to do that, we can use pipe() system call. This video will simply explains how this concept of “piping” works. Essentially we send an array with a size of 2. Index 0 acts as a descriptor to read, and the other to write. To understand more about this concept, you can check out this video.

WEEK 07

  1. Race Conditions
    One of the concepts we learn this week is Race Conditions. You might be thinking by the name that race condition means that there’s a race between two things, and you would be correct. This article I found really helped me understand more about this concept. Although the article I found was explained using another language (Golang), the implementation and the core concept still occurs.
  2. Deadlock Characterization
    Another thing we learned this week is about Deadlocks. Deadlock by definition means a situation when two or more processes need some resource to complete their execution that is held by the other process. In order to define when Deadlock happens, the four Coffman conditions must hold true. But these conditions are not mutually exclusive.This article I found completely tells me about the characterization of each conditions with easy-to-understand diagram.
  3. Semaphore it’s not exclusive for boyscouts, it’s also occurs here in OS
    We’re probably familiar with the term semaphore from boyscouts, but is it the same in OS terms? It’s actually pretty different, although it has some sensible reasons to call this concept similar with the former mentioned term. This article will help you understand more about the concept, the idea behind and the implementation of Sempahore in Operating System.
  4. Video: Mutex vs. Semaphore
    Later on we will learn another concept related to Sempahore which is Mutex, and this video explains a lot about the difference between Mutex and Semaphores and when to use them. Both of them are locking mechanisms on a resource. The key difference between the two is Mutex is a much simpler locking mechanism compared to Semaphore. More on that topic will be explained by the video.

WEEK 08

  1. LFS is Long, Fun, and Sourceful
    One of the key concepts we learn this week is Linux From Scratch. You might’ve already found this link through our lecturer’s documentation, but there’s a reason why this link considered helpful by many people. LFS essentially teaches us how to build a Linux system from a source code. Through this book, we can see how Linux works by using varieties of source codes that has each purposes. While this doesn’t have a complete explanation for each sources, this helps us understand the basics and how to implement it ourselves.
  2. What is Cross-Toolchain, anyway?
    If you finished this week’s assignment and still don’t figure out what do we do and why we do it in the first place, I figure this discussion I found could be a profound explanation as to what is Cross-Toolchain in LFS and why should we do it.
  3. Priority Scheduling
    This week we also learn a bit about CPU Scheduling, where we learn how CPU decides how do they want to process the porgrams. One of the concept we learn in ths subject is Priority Scheduling, which is a method of scheduling processes that is based on priority. In this algorithm, the scheduler selects the tasks to work as per the priority.
  4. Video: First Come, First Serve
    In CPU Scheduling, we also learn an algorithm in Operating System which is FCFS (short for First Come, First Serve). This video I found helped me understand a bit more about this algorithm, since the presentator shows us the concept and how do the algorithm’s worked using only her whiteboard and marker.

© 2021-2021 --- Muhammad Rizki Fauzan --- Revision: 0018b--03-Aug-2021.