Multiple Concurrent Linux Distribution
Apparently you can run multiple linux distro at the same time, on the same
computer, only by concurrency. No virtial machine needed. This article explains
briefly on how it works, how to achieve it, and at what scenario it will be
useful (spoiler alert: software development for multipple linux distros).
Threads and fork()
: Think twice before mixing them
This article talks about bad things that could happen when you use fork()
in a
multi-threaded program. fork()
can be problematic if you’re not careful, and
usually it is not worth the struggle. The article helps you indentify those
potential problems and alternative approach to avoid them.
Understanding Linux Processes (Playlist)
Here’s a playlist of in depth youtube videos that talks about about linux
processes. Also don’t forgt to take a look at the comments, since some people
shared their notes and having a discussion about the topic. The video itself is
kind of slow-paced so I recommend watch them on 1.5x playback speed.
Linux Processes, init, fork/exec, ps, kill, fg, bg, jobs (Video)
Same as number 3, but much simpler and shorter video length. The video explains
how init was called and how a process were created and how we can suspend/
terminate a process and pull the suspended process to the terminal again.
Synchronization mechanisms inside Linux kernel
The article helps you choose between various synchronization mechanism that are
available at Linux kernel itself. This article is helpful to prevent crash or
kernel panic caused by choosing the wrong synchronization mechanism. Because
every synchronization mechanism has its own pros and cons.
Tuning Completely Fair scheduler (CFS)
CFS is the default scheduling algorithm on Linux since October 2007. In this
article, Mr. Onno talks about how we can change CFS parameters to manually tune
our OS. Mr. Onno also explain the meaning of each parameters and show how we can apply the changes
permanently.
A fork()
in the road
Microsoft researchers claims that the fork() and exec() method of process
creation is holding back modern system research and should be deprecated.
Surprisingly, most people agree with the paper
since both can introduce various unnecessary edge cases.
fork() is evil; vfork() is goodness; afork() would be better; clone() is stupid
This article (or should I say an informative rant) explains why fork is
frustrating and prone to errors and offer laternatives to avoid fork weirdness.
Though they warned about the dangers of alternatives and its pros/cons.
FORK BOMBS!!!!!
Fork Bomb is essentially a recursove function what will call itself recursively.
One of the most popular form of fork bomb is :(){ :|: & };:
(DO NOT RUN THE
COMMAND, IT’S CALLED A BOMB FOR A REASON, READ THE LINK). :
is the name of
the function and it is put in the background without a way to terminate it.
Thread synchronization with mutexes in C (video)
Here’s a demo video of using mutex to synchronize threads in C programming
language. The video also talks about deadlock and how to avoid them as well as
the practical examples of using mutex. This video is very neat and useful.
We are entering the weird side of system design. Brace yourself folks, and stay healthy!