LINKS
Week 00
-
(Book) Operating System Concepts
I found reading this book is really worth it. It is already separated by the topics using slides presentation, so it becomes chunk size and easy to understand.
I recommend reading this book for preparing our weekly quiz because the information is so complete.
-
(Video) Operating Systems: Visual Metaphor
This video playlist explains to you really well how the operating system works.
It gives you a good example in real life to relate more and then understand the operating system better.
-
(Article) Introducing to GNU Linux
This is a must-read blog. You will learn how to work with GNU Linux from zero to hero. I found this blog really helped me understand GNU Linux better.
Week 01
-
(Article) Basics vi Commands
This blog helps me recap all of the important commands that I need for using vi. And all of the information is explicit enough, so it is easy to find specific information.
-
(Video) Learn AWK is Essential for Linux User
This helps me understand how to use AWK. The instructor explain it really well and also gives a good example, makes learning from this tutorial worth it.
-
(Video) Regular Expressions - Enough to be Dangerous
I really love the illustration of each Regex he explains. The illustration makes it easy to digest and understand. Recommended for someone who want to learn Regex but need visualization about how thing happened.
Week 02
- (Video) C Programming Tutorial For Beginners
This YouTube video tutorial helps me learn C programming language from zero. The instructor explain it really well, so I think finishing this video tutorial can make you familiar enough with C programming language.
Week 03
-
(Article) How to Format Disk Partitions in Linux
This article helps me understand about the difference between Disk Formats and which OS supports them. It also explains about partition checking, formatting disks on linux, and mounting disks on Linux.
-
(Article) Develop your own filesystem with FUSE
This article shows how to unpack, build, and install your own filesystem. It also shows how to customize the filesystem.
-
(Article) Chmod Command in Linux (File Permissions)
In our file, we have this thing called “File Permission”. And to change what we have we need access to that file permission. With this article, I learn about how to use “chmod” command to change the access permissions of files and directory.
-
(Article) Differences between /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
Within this OS course, we see a lot of this things like “/bin/” or “/sbin/” and many more things similar to it. And honestly, I don’t really know what it is. With this article came from community, I now know the difference between them.
Week 04
-
(Article) Understanding Big and Little Endian Byte Order
This article explains really well about the difference between big and little endian. It also tells you the reason why microprocessors use little endian while networking protocol uses big endian.
-
(Video) How to manage memory with malloc, calloc, realloc, and free in C
This video explains about memory management using malloc, calloc, realloc, and free method. It also explains with a sample code, so we can try to run the sample code by ourself
-
(Video) The Heap: what does malloc() do? - bin 0x14
When Mr. Rahmat gave questions about malloc in the forum discussion, I got confused about what is this method exactly doing. And this video explains thoroughly about how malloc works and how it finds new memory locations.
-
(Article) Pointers in C Explained - They’re Not as Difficult as You Think
Well, honestly when I see the Week04 demos code, I got scared by pointers. Because it is easy to confused if we don’t look at the code thoroughly. Moreover, it rarely used by programmers. But actually, it is just an address. This article break down every details of pointers.
Week 05
- (Article) Paging
This article tells you about paging structure in operating system development. The article covers a lot of topics regarding Memory Paging.
- (Article) Operating System - Virtual Memory
A complete explanation about virtual memory. I can say it is the summary of Chapter 10. I prefer to read from this article to understand about virtual memory rather than the Chapter 10 ppt because I think it explains better.
- (Article) Compare top and htop
Besides top, there are a lot of other tools that also has a cool functionality, which is htop. It is a good article for additional reference of our material this week.
- (Article) How Random Access Memory (RAM) affects performance
Along the way learning about OS, and especially in this week, I am thinking should I upgrade our RAM or not to upgrade the performance. Or using virtual memory is enough? And this article explains to me that we really need to have a computer that has many RAM in the future. (Hope I have enough money to purchase it :D)
Week 06
- (Video) Linux processes, init, fork/exec, ps, kill, fg, bg, jobs
The video explains linux processes in an edible amount of time. It also explains how init was called, how a process were created, and how we can suspend/terminate a process also pull the suspended process to the terminal again.
- (Video) Understanding Linux Processes
If you want to understand more about linux processes and have every detail of it be explained, then this YouTube playlist is right for you. It explains to you in a slow-paces, so if you a type of person who want to get everything quickly, I recommend you to play the video on 2.0x playback. (ssst! I even play it on 3.0x playback :D)
- (Article) Difference between Process and Thread
It quites confusing to differentiate these two term. Thanks to this article, I have a clear understanding about those term. We can say, a process consist of threads. And that means thread is inside the process.
- (Article) Multithreading vs Multiprocessing: What’s the difference?
With this article, now I have a better understanding regarding another two terms that is pretty similar like in my links number 3. Multithreading is still inside a process and can run simultaneously, while multiprocessing has a bigger scope than multithreading
Week 07
- (Article) Classical Problems of Synchronization
Well, it’s a bit confusing reading and trying to understand about Synchronization from the book. So I tried to find a simple explanation about it on Google and this article gives me that. It breaks down various classical problem of synchronization in detail yet simple.
- (Article) How to create a simple thread in C
Seeing sample code in the demo’s file, it felt kinda easy to make a thread. But in reality, it’s completly wrong. There are so many errors that I found when try to create it. And this article helps me solve that errors.
- (Article) Deadlock Prevention And Avoidance
I cannot understand the explanation on the books, so I search another materials on Google to help me understand that. This article summarizes every important points that we need to know to avoid deadlock. Eventhoug, it’s still hard to understand but at least after I read this my understanding about deadlock became better.
- (Article) Difference between Mutex and Semaphore in Operating System
I could say this article also the summarize of the materials on the book. The article written in simple way, so it’s fun to read. And this article helps me confirm my understanding about mutex and semaphore.
- (Video) Mutex Synchronization in Linux with Pthreads
This video is a demo how to use mutex using pthread.h. It helps me understand mutexes even better because the video will show you from the naive solution to proper solution. And not to mention, it explains to you each step’s pros and cons.
Week 08
- (Article) Multiple Processor Scheduling
This article explains to me about the basic concept of multiprocessor scheduling and also explains how there is no best solution for multiprocessor scheduling. It explains the topic to every details of it.
- (Article) Bored? How about trying a Linux speed run?
We know that most of the time, we just speed running our assignments. And look I found an interesting article about our beloved strategy. So far there is only one entry that took 4 hours to complete.
- (Forum) Is it possible to monitor how a process is schheduled real-time with Linux?
Surprisingly, the answer of the question is YES! We can see our task being scheduled in a CPU core. We can achieve this by using Kernel Event Tracers on Linux such as pref-sched and trace-cmd.
- (Article) CFS: Completely fair process scheduling in Linux
Wow, there are so many algorithm that we can use to schedule in Linux. And that scheduler called CFS. This article will show you the general overview of that thing.
- (Video) Introduction to CPU Scheduling
This YouTube video explains to you so well about CPU scheduling. What I can conclude is CPU scheduling is away to manage so CPU can be used to the maximum level.
- (Article) CPU Scheduling in Operating Systems
As we all know, geeksforgeeks is the best website to know more about things in tech worls. Within this article, they summarize about CPU scheduling material. There is also the explanation of the algorithm that used for scheduling.
Week 09
- (Article) What Is UEFI, and How Is It Different from BIOS?
Within this article, I got to know that UEFI can replace BIOS or become the “new” BIOS in the future because there are a lot of benefits.
- (Article) UEFI vs BIOS: What’s the Difference?
UEFI has a lot of benefits, e.g the boot-time is a lot faster and also can suppor bigger drive size. And this improvement, even if it’s small, it gives a big impact in tech world.
- (Article) What is systemd
I can conclude systemed is a part where it turns on all of the service when computer is on.
- (Article) 4 Best Linux Boot Loaders
Besides GRUB, there are several other types of loades that might be an alternative. This article gives us options when to choose a Linux boot loaders.
- (Forum) Is GRUB the best bootloading solution? Is there an easier alternative?
Well, I just curious when learning about this bootloading in linux. And yeah this forum answer my curiousity. What I can conclude is that it depends of the preferences.
Week 10
1.(Video) Basics of OS (I/O Structure)
I always watch Neso Academy when I got stuck on Digital System or Organizational Computer Courses. And it is the same with Operating System Course, Neso Academy helps me a lot. This video explains really well about I/O Structure in a comprehensive manner.
2.(Article) Difference between Latency and Jitter in OS
When I read about the latency material I often confused about its terms. I always understand it as a delay, but I think delay is not enough to explain it. Then when I found out this article, I have a better understanding about latency and also found about jitter which really helps to understand our material this week.
- (Article) Principle of I/O Hardware
I am amaze when I found this article. Since I am a visual learning, I loves it when a study materials have some picture/image/graph or anything that visualize the materials itself. This article helps me alot to understanding I/O hardware better.
- (Article) Operating System - I/O Hardware
Another article about I/O hardware. While the previous article have some visual on it, this article also still have some visual but not as many as the previous article. Despite that, what make it recomended to read is the explanation is so easy to understand.