os231

LINKS

WEEK 01

  1. 45 Essential Linux Commands (with Examples)
    New to Linux? Worry not. From ‘cd’ to ‘vim’, here are some of the most useful commands and programs in Linux!
  2. devhints - Bash CheatSheet
    This link helped me a lot as a beginner on linux, especially to know all these weird and janky syntaxes that linux uses called Bash and what each everyone of them do is quite the challenge.
  3. AWK FREE crash course
    Though you need to create an account first to use its feature, but this website helped me learned all about awk! It is designed like SoloLearn or other programming language online courses! So, it feels like a game and it made me learn it better!
  4. Regex CheatSheet
    A link that I found very useful in finding out more about Regex and very easy to understand in my opinion as a beginner on regex itself. Complete with examples and samples.
  5. Debuggex
    This website is very useful for testing some regular expressions. To use this website, you have to enter the regex and the test data (string) you want to check. After that, you can get the result, whether the test data matches the regex or not. Besides that, you can also see the visualization of the regex you have entered before.

WEEK 02

  1. C Programming
    Actually, this is the first video of a playlist containing 169 videos of C programming. Of course, you can’t watch all those videos in just a few hours (or days, maybe). But, you can check out this playlist’s videos if you encounter some topics in C programming that you don’t understand really well.
  2. Cyber Security In 7 Minutes | What Is Cyber Security: How It Works? | Cyber Security | Simplilearn
    This video explains cyber security in a very simple way, yet in great detail. It is very informative and is suitable for beginners who don’t know about cyber security before.
  3. Why Care About Internet Privacy?
    I’ve found this video very interesting. The reason’s because this video is about digital privacy and why we should care about that.
  4. Introduction to GnuPG
    This website outlines the basic setup and use of GnuPG, and also serves as an introduction to the most commonly used commands. It gives you information about GnuPG’s background, installation, generating keys, encryption, decryption, and so on.
  5. Understanding OS Security: Threats and Security Controls
    This website explains the common OS security threats and how can we ensure the security of the operating system with a few ways to improve operating system security in the organization such as authentication measures, using one-time passwords, and virtualization.

Week 03

  1. Linux File System/Structure Explained!
    The video will give you an overview of Linux File Systems! The speaker explains it so well! It is in English and a short video!
  2. Linux File Hierarchy Structure
    The article is made by geeksforgeeks! It is easy to follow along. They explained the details so well. They even include photos to help!
  3. Bind command in Linux A website that teaches me a lot about linux’s bind command. I got interested in learning this since this could help me save a lot of time instead of typing something over and over again especially if a bash line is considered long. I recommended this since I believe it is very complete and very easy to understand, highly recommended.
  4. File Management - Geeks for Geeks A website that explains common file management commands on linux, complete with explanations, examples, and demos. Personally, I think this website is really useful, informative, and really easy to understand.
  5. File Management Commands An addition from the link above, this web explains in more detail about file management as well as providing more examples of file management commands on Unix/Linux. It is complete with easy to understand explanation and examples. Highly recommended.

Week 04

  1. Logical vs Physical Address
    This source gives a good overview on the differences of logical and physical addresses, using a simple figure and a comparison chart to explain the concepts in a friendly way.
  2. Paging in Operating System
    This article helps me understand more about the concept of paging, used by operating systems to avoid external fragmentation, a problem that may occur in managing data. This source uses an example and figures to explain the topic.
  3. Segmented, Paged and Virtual Memory
    The speaker presents the topic in a simple yet effective way, explaining the topic of segmented, paged, and virtual memory, contrasting how data is stored in segmented and paged memory management systems.
  4. Difference Between C and Java
    Are you new to C programming language? If you’ve learned Java, then you might say that it almost looks the same (based on the syntax). The truth is that the two are very different in terms of program orientation. The purpose of this site is only to compare C to Java and not to give you the introduction to C language. For more learning materials, I suggest you to read “The C Programming Language (2nd Edition)” by Brian Kernighan and co-authored by the man who created the C language himself, Dennis Ritchie.
  5. Why use double indirection? or Why use pointers to pointers?
    Why do we need a pointer to point a pointer that points to a variable with value in it? Is the question already confusing enough? Then try to read this to understand the purpose of it and how do you implement it in your program.

Week05

  1. NUMA
    Perbedaan antara Uniform Memory Access (UMA) dan Non-uniform Memory Access (NUMA).
  2. Page-Buffering Algorithms
    Komputer dapat menangani lebih banyak memori daripada jumlah yang terpasang secara fisik pada sistem. Memori ekstra ini sebenarnya disebut memori virtual dan merupakan bagian dari hard disk yang diatur untuk meniru RAM komputer.

WEEK 06

  1. Basics for Processes and Threads
    This is a video that describes the basic concept of what a process and thread is. This is a very good video for beginners that want to understand how it function and why we need processes and threads.
  2. What Is and How Does a Fork() Work?
    This is an article that explains about how fork() actually works, it also gives a really good coding example in C on how it actually can be practised. By the function, fork system call is used for creating a new process, which is called child process, which runs concurrently with the process that makes the fork() call, the parent process itself.
  3. The Difference Between Concurrent and Parallel Processes
    This article is quite good to give people a picture on how concurrent and parallel processes work and differ. In here we will understand about multithreading and a lot more, that can help us understand about processes even further.

Week07

  1. Introduction of Process Synchronization
    Sebuah artikel yang berisi penjelasan awal seputar materi Process Synchronization yang dibahas pada week 07. Artikel menjadi pengantar awal yang bagus dalam memberikan pemahaman awal dan apa-apa saja yang akan dipelajari untuk materi pada week 07.

  2. Peterson’s Problem
    Artikel yang menjelaskan Peterson’s Problem. Artikel ini menjelaskan sintaks kode dari Peterson’s Problem disertakan juga kelemahan dari pemakaian Peterson’s Problem itu sendiri.

  3. Critical Section Animation
    The critical section problem is an issue where there is a resource that can only be used by one process at a time, but multiple processes want to use it. That concept is visualized with an analogy by the video above, which helps to understand the criteria/conditions for solving this problem.

  4. Operating Systems: Process Synchronization The page above is an excellent summary (though still very long and detailed) of the entire chapter of Synchronization, from its concept to different solutions like Peterson’s Solution (software-based) and Semaphores (hardware solution). The page also includes snippets of C code to help us understand the problems and solutions in practice.

  5. What is a semaphore?
    Aside from mutual exclusion (mutex), another approach that you can take in solving the critical section problem is using semaphores. The video above is quite informative and well-explained.

Week 08

  1. CPU Scheduling
    Link ini berisi penjelasan tentang CPU Scheduling. Cukup berguna untuk memahami scheduling.

Week 09

  1. OS Playlist for Linux From Scratch
    The videos in this playlist helped me massively. I used it to clear my doubts on commands I run, and just to check whether a command should be run as root, user, or lfs. Super recommended