Top links (Week 1)
- Vi
Talking about vi, vi is pretty important especially when you are faced with a problem regarding things like your .bash_profile. You might want to learn more about vi. Even more reason to learn vi is because it’s currently the default editor for UNIX Operating System. If you are interested in learning more, this site is the one for you
- Nano
For some of you who doesn’t like complicated stuffs, here is another one for you. Nano is another editor used like Vi. Some people do actually like nano better than vi, this is because nano provides guide icons. But overall it IS worth it to learn to utilise two editors at once, you might need it in the future ;)
- Why use VIM?
If you ever wonder, what’s the fun in using VIM and why should you use VIM when you already have other editors such as nano, this video will make you rethink your decisions. Well, one of the reason is because VIM is ubiquitous meaning, the editor is by default existing in every linux systems, unlike nano or other editors that may or may not be there. There are many other several reasons and you should watch it yourself by clicking the link above :D
- AWK
This website is pretty useful when it comes to learning more about AWK. AWK is useful for scripting in many cases, for example, for scripting on websites. I first learnt of AWK from when there were two questions on scele. AWK piqued my interests, thus i searched for websites that have a full documentation on AWK. this one is one of them
- Bash
Bash is a very useful thing to learn. It is used on many occasions during OS. One website which is good for learning bash is repl.it, you should check it out :D
- Shell
If you are interested in learning shell for whatever purpose, here is something that might interest you. This documentation is compressed so that only important things are written there. Honestly it’s almost like a cheatsheet for shell, perfect for those who have the will but not the energy to learn.
- Regex
Moving on to regular expressions. What exactly is it? how is it relevant? Well, regular expression is something that is used simply as a guideline in writing something. So you need it in pretty much many occasions. Even in linux, we also use it, so it’s a good idea to learn regex.
- Linux Tutorials
The youtube channel “TutoriaLinux” teaches stuffs about the Linux Operating System, including shell, bash, and other things. The contents of the channel is not limited to the Operating System either, they went out of the way to give insights about job interviews or tech careers as well. This one is a worthy channel to watch if you have times.
- Mental Outlaw Channel
Mental Outlaw is a youtube channel that mainly focuses on Linux. The contents are covering beginner materials subjects regarding Linux distribution reviews and tutorials. I found out about his channel from my friend and after reviewing his contents, i think his channel is one of the top sources for learning.
- Windows VS Linux
This one. This is it, this is for you guys that are wandering what the differences are between windows and linux. The video explains a lot about the histories of both Operating Systems, the differences, specifications, and which is better to use statistically speaking. It’s quite good for quenching your thirst of knowledge or curiousity.
These are all the top links from me, Qatlho’ Qapla’ je!
Top links (Week 2)
- Why Linux Security is Better Than Windows
Ever wonder which Operating System has got a better security? In this link you will learn about why Linux’s security is far better than that of windows and macos.
- Top 9 Vulnerabilities
This site lists 9 common vulnerabilities that pose threats on our cybersecurity.By knowing possible threats on Operating Systems, we can enhance our Operating System to strengthen the Operating System’s capability.
- C-Language
I tried to learn some C language today. This website is a good start for that. I practiced C-language’s syntax, etc. In this website, you will be guided on how to write a simple C program such as “hello world”. And if you are a curious guy like me, there are even advanced C in this website. The website also teaches us the details regarding what a program does, and i recommend this website for you i you are interested in learning some basic C
- How Do Public and Private Key Work?
This website writes about private and public key and how they work. This is basically how they work :
Bob wants to send Alice an encrypted email. To do this, Bob takes Alice’s public key and encrypts his message to her. Then, when Alice receives the message, she takes the private key that is known only to her in order to decrypt the message from Bob.
This website also explains a lot about other things regarding public and private key
- Malware and Viruses
Ever wonder how do malwares and viruses work. Well turns out it works by hijacking an official code and changes many things within. This youtube channel explains more about viruses and other malwares. It also talks about things like trojan horses etc. Why do we need to learn about malware? Well, it’s to increase the Operating System’s protection against them. As a wiseman once said, “To defeat your enemies, you must first become your enemy”
- RSA Encryption
This video explains about how RSA Encryption algorithm works. It uses many mathematical theories such as Euler, prime factorization, and modular exponentiation. It’s interesting how those theories are actually applicable in this cryptography.
- PGP Tutorial
This can be used as a guide for learning more about key, encryption and how to use the PGP and GPG. I read some of the stuffs there, it mainly shows a guide for generating a key so far. Even though it doesn’t seem much, the explanations are actually pretty specific and interesting.
- How SSH Works
What is SSH? SSH or Secure Shell connects from computers to computers remotely to connect those PCs. It also covers the problematic datas that are unprotected when connecting remotely so that our confidential datas are not breached. There are many more stuffs that are covered by this youtube video than this problem. I recommend watching this.
- Social Engineering
How is social engineering related to this week’s topic? Well, it’s related to the cybersecurity of our Operating Systems. This site talks about how criminals would use social engineering to break into your system, and personally, i think knowing this might help us develop a much better Operating System security.
- How Secure is 256 bit Security?
How effective is SHA256 in hashing? well, 256 bit means 2^256 possible hashes. The current world population is about 7 billion lives. Taking that into account, 256 bit Security is supposed to be safe. Well, this link tells us the safety of 256 bit security. I recommend this link if you are interested in this topic :D
These are all the top links from me, Qatlho’ Qapla’ je, yay meH!!!
Top links (Week 3)
- What is Mounting?
What is mounting? How do we do it? If you are interested, this link gives off the general idea of what mounting is. Well, generally speaking as a windows user, i didn’t really know either since in windows, the practice is kind of different and we don’t really mount stuffs. Linux however, needs to be mounted before a storage can be used. Mounting itself functions as an intermediate between the system root and the storage which allows the system to recognize the storage which we’ve just created. There are several other explanations that can be read in the link above.
- Mounting and Unmounting
Well, this one is related to the first link, kind of. Now after reading the article above, i’m expecting you to have already grasped the general idea of what mounting is and what it does. Now, i found the second part of learning more about mounting from the link above. It basically tells us more about mounting in linux. There are informations about the mounting syntax, how to do bind mount, and even specific mountings for filesystem. It is not a fun read if i’m honest with you, but it’s far from being unworthy since by reading this article, you will learn a lot. And by a lot, i mean advance stuffs :D
- Linux File System
This link explains a lot about linux filesystems by definition. By reading the link above, i obtained lots of informations by reading this link. There are informations about the partition of the file system, about the booting with BIOS and UEFI, Types of linux file systems, etc. I recommend reading this one if you are interested in knowing more about file system.
- Which partition should we use?
Still talking about linux file system, after knowing about what file system is, now we are going to talk about which partition to use. It explains a lot about the differences between each file systems, that file systems are more than just implementing read method, on dealing with fragmentations, etc. I recommend reading this too.
- System 32 Deletion???
Don’t do it, i beg you, stop it, stopppp. You didn’t do it right? Phew, alright, i am going to tell you why you shouldn’t delete your System 32 file. First of all, what exactly is system 32?? It is a file system which is used by windows which contains the Operating System of windows. What’s more, inside system 32, there are many things like the SYS for example, that runs the Operating System. The rest are explained by the link above, but anyways, please don’t ever delete your system 32, ever.
- C Language print
This one is not about systems, but rather about the c language. For those of you who don’t know, most Operating Systems run on the C language which is why learning C is still aligned with this week’s topic. Here is a short article about different types of printing when you are doing some scripting in C on your Operating System.
- Linux Directories
Alright, back to this week’s topic about file sistems. Now we have the linux directories. How does it work actually? I’ve been asking the question as well. I searched for it and i found this short video about how linux directory hierarchy works, and what it is. Check it out ;D !
- Reading & Writing Files in C? How?
After coming this far, you should’ve read the first 7 links above (or watch the video if the link references to a video). You should’ve known so far about file systems and directories. I’ve also included some informations about the C language printing. Now combine the two and we’re going onto the next topic, reading and writing files in C. Generally speaking there are two ways of doing this. By using open() or fopen(). Now what are the differences between the two? Well, in terms of type, actually the open() is much more primitive than fopen(), but less readable. There are many more differences and explanations on those if you watch the video from the link above. Qapla’ SoH !!!
- File Descriptor? What is this??
Now that you’ve learnt about reading and writing in C, we will move onto the next topic, File Descriptor. What is the correlation between this one and the previous topics? Well it is related to how a program is extracting an input and returning a really small positive integer. It helps identifying an open file within an Input/Output process and acts like some kind of index to identify the correct output of a program. You would also meet some things related to file descriptor in windows or any other programming related stuffs, for example stdin to receive an input. There are more explanations for file descriptor but i suggest your reading them yourselves to enrich your reading skills and knowledge :P
- File Compression? How does it work?
Have you seen the .tar data type and then thought “hmm is this related to rar?” ? Well the short answer is no. I can explain it. Tar is actually the short for Tarball which is already introduced from the beginning of the course (see os.vlsm.org if you haven’t). While it may look like tar is related to rar, it actually isn’t. Tar datas are not compressed at all, unlike rar or zip. Tar datas are encrypted and extracting it would required a decryption. So in a sense, maybe they are kind of similar in how they are both processed as a single file and then extracted to obtain the files inside. The forms they both take however is different, as rar and zip actually compressed the files while tarball encrypts it and then producing a PGP key as a result. For more informations that are more accurate, you can try reading the article above. Goodluck !
If you are reading this, then you have completed your journey on my lists sir/madame. Congratulations ghoQ SoH. ghuH bIpIv’a’, Qatlho’ Qapla’ je, yay meH !!!
Top links (Week 4)
- Memory and Pointers
Ever been interested in memory and pointers in general? This website is for you then. It explains a lot about pointers in C language. You should give it a read, it’s a good website for those of you to begin.
- What is Virtual Memory
What exactly is a virtual memory? In this video you are going to learn more about what a virtual memory is. Basically if i have to describe it, a virtual memory is a concept of a non-physical memory. How cool is that? What is it for though? For example, let’s say a program is directing us into a specific address, and later on we wrote a different code which leads into the same address. We use virtual memory to prevent memory overwriting.
- Understanding Linux Job Control Commands
The website explains about linux job control commands. For example bg, jobs, Ctrl-Z. It’s an interesting topic because it’s a direct user interface to the Operating System. Well, it’s definitely worth a read!
- Paging File? What’s that
Now now, we’ve already learnt about memory from the links above. Next i’m going to intoduce you guys to paging file. What exactly is paging file? It is actually an act of moving a data mapping from your actual memory into your virtual one. Interesting isn’t it? You can always check the link above if you are interested :/
- Little Endian VS Big Endian
If you’re here right now, the obviously you’ve done POK and did great :D Congrats!! Alright, that being said, i expect that you are all familiar with little endian and big endian. Well, i’m not going to say much to you then. This link i’ve got here is the continuation of that subject. You should read this one. It contains the advantages and disadvantages of both little and big endian. Je vous prie de l’ouvrir ;D
- Malloc, Calloc, Realloc?? What’s up with these locs?
These are all memory allocations, periodt… Haha just kidding, either way they are really memory allocations. In C language, we’ve got 3 main functions to allocate some of our memories.Those are malloc(), calloc(), and realloc(). Malloc() receives some parameters on how many bytes do we want to allocated, etc. If you are interested in learning more, you should watch the video and tell me what you think.
- How to implement Malloc, Monsieur Mathieu?
Now that you’ve watched the videos above (if you haven’t then please watch that one before coming here). Well i assume that you’ve watched that already. Anyways, i’ve found a link to a good website that explains about the IMPLEMENTATION of malloc. The implementation is written in C (well duh). Well, it’s a good read i guess
- Executable Files
This link is mainly about types of executable files. Executable files contain code that is run when the file is opened. This link is mainly about the types of these executable files, etc.
- Local VS Global Variable
What about local vs global? Well, there are two kinds of variables, the global one and the local one. This website contains a lot about the differences between local and global variables. We use it all the time when we’re coding using python and java, but we don’t really notice. Visit the link for more :D
- Cheat Engine
If you’ve ever played games on facebook, you’ve seen some things about this. Well. there are lots of people who use this on their games. But what exactly is a cheat engine? It’s actually quite simple, The program that is. What’s being done, it’s actually a program that scans the memory for some values, then we can change the interior of the code and tada! That’s a cheat. Well for more about cheat engine and what it actually is used for, you can watch the video above.
ghoQ SoH maqoch, ghuH bIpIv’a’, Qatlho’ Qapla’ je, yay meH naDwIj’e’! Huj ghobe’ :D
Top links (Week 5)
- What is Virtual Memory
If you are wondering what exactly is a virtual memory, this link is for you. I won’t go deeper than this because if i spoiled the fun, you wouldn’t need to watch it anymore.
- Where does VM Exist?
In reality the word virtual means not real. In fact what we do not see it materially. As the word implies, it is virtual. For more explanations, read the post above :D
- Lil puppy linux
How low can we go in rebooting memories? Low low low low (florida). This puppy linux thing is related to that topic. Please read it.
- Vfork
This is the linux documentation of vfork and how to use it. It is mentioned in OSC chapter 10, it is quite interesting and related to our next topic below, so you should read this one first.
- Fork vs vfork
We have already learnt about fork and vfork. Now what is the difference between the two? In this article you will find out about the differences between fork and vfork and how to use them.
- Memory allocators selection
There slab, slub, and slob are the available memory allocators in linux. How do you choose between the three of them? Do you just randomly pick one allocator and go on with life? I don’t think so. In this post you would learn more about allocators.
- Page replacement algorithms
This video will explain a lot about the page replacement algorithms. You should watch this video if you are interested in the algorithms in general.
- Different kinds of memories
There are many kinds of memories. There is DRAM, SRAM, cache, etc. So many types yet the function is the same for all of them. The differences between the usage of each memories will be explained in this video, so you should click on it and watch it yourselves. Q!
- Thrashing
What’s this? well it is a condition where a program needs some extra spaces that are larger than the RAM or when all of the RAM is occupied by other programs, then system would try to allocate some extra spaces from the secondary memory and it will behave like the main memory. For more information on this, you should click the link above and read it yourselves.
- Global vs Local Frame Allocation Processes
This video will help you guys in learning more about global and local frame allocation processes. This video also contains the differences and similarities between the two. You should watch this video as it is fun to watch, and the way they brought the topic to you is kind of interesting and unusual in a good way.
ceux-ci sont les liens pour cette semaine. Voici vous pouvez lire les materiels qu’on besoin facillement. Comprenez-vous bien !
Top links (Week 6)
- Multithreading
This video is about how multithreading actually works. Explained by a distinguished lecturer Dr. Steve from the University of Nottingham, England. The video tells us more about how multithreading works in C language also how the machine level languages perceive it.
- exec() VS fork()
If you’ve tried W06 Demo, you’ll stumble upon exec and fork, so i suggest you trying the demos first before continuing. Okay, so basically the fork() system call is used when we want to create a separate, duplicate process of a file while exec() is invoked whenever we need to replace the entire process (that includes threads) of a program in the exec parameter. There are several differences too which will be covered in the video above. Q!
- CPU Process Scheduling
This topic touches back to the memory management subject, well kinda. There exist the FIFO and LIFO principals which will be managed by FCFS, Round Robin, SRTF, and SJF. An example of it in real life is : When you go to the cinema, you’d have to queue for the tickets. The cashier would serve the first one to come, etc. From here on about, the algorithms are picked based on these management conditions, whether you want to serve the first data to come out or the last one.
- Concurrency vs Parallelism
This video tells a lot about the differences between concurrency and parallelism, when to use them and it even includes some examples on both. I recommend you watching this video (it’s very good u know) Q!
- Thread vs Process
We have learnt about threading and process. Now we are going to discuss further about the differences between a thread and a process. A process means any program is in execution while a thread is only a process of several programs. This link will tell you more about those kind of differences between a process and a thread, and i recommend your reading the article.
- Multitask, Multithread, Multiprocess?
Still related to the previous topics, now we are going to discuss about multitasking, multithreading, and multiprocessing and the differences between those three. The video above is quite clear and won’t require me explaining anything further because it’s going to spoil the fun of learning it yourselves. Thus, please watch the video to learn more.
- Advantages and Disadvantages of Multithreading
The link above is about the advantages and the disadvantages of using a multithreaded program. For example, when using multithreading on an application, it certainly will improve the performance and the concurrency of the program but it will also be difficul to apply TDD (Test Driven Developpement) on the program because it would be hard to test the program. There are several more problems and advantages to it that you can see by reading the article above.
- pipe() System Call
Now we’re moving on to multiprocessing. In multiprocessing, how do we communicate between two processes? Simple answer is to use the pipe() System call. It uses the refered save files with the file descriptor. When using the pipe() system call, we are passing an integer array with the size of 2 where the 0 index acts as the file descriptor to read, while the index 1 acts as the descriptor to write. Basically it, if you want to learn more, please visit the link above.
- Thread Pools
This is related to concurrency, especially if you’ve worked with java before, then you must have seen this when having the mockito error. Interesting enough, the thread pools is one of the solution to this problem, and you can read about it in the link above.
- Different states of a process
There are different states in a single process. For example, with wait() function (assuming you have already understand about it) we put the process on a blocked status from running. There are two processes in that example which are blocked and running. Of course there exist other statuses aside from those two which will be covered by the link above. The link acts as a cheatsheet when you encounter something related to processing states, so please read it. Q!
Gratias Vobis Ago quia lectio nexus. Vobis ego gratiam do :D
Top links (Week 7)
- Banker’s Algorithm
This article is about the banker’s algorithm which i found by surfing my friends recommendation. It’s basically the multithreading poster child of google.
- Deadlock?
What is a database deadlock? i’ve been seeing this term when i skimmed through week 07 materials. I searched through the internet, and i found this documentation on oracle about what deadlock is. It’s quite an important thing to be discussed about in my opinion.
- Deadlock vs Starvation?
What’s the difference between deadlock and starvation? By summarization, basically deadlock appears when each process holds a resource and wait for other resource held by other processes, while starvation is the problem that occurs when high priority processes keep executing and low priority processes keep getting blocked indefinitely. For more information, you can check the link above
- Deadlock recovery and detection
This is a way to solve the problem. We can make the algorithm, but it’s as if we are trying to run an operating system process that is broken and all. It might work, but not as intended. Thus we can say that in the end the best way to prevent and solve the deadlock proble is by rebooting the machine.
- Linux Kernel is Preemptive!
What does it mean?? Well, historically during the 2.5.4 version of linux kernel, it was not preemptive. Meaning, a process running in kernel mode cannot be moved out of processor until it itself leaves the processor or it starts waiting for some input output operation to get complete. So basically the preemptiveness is what allowed those things that i mentioned before.
- Semaphore?
What is semaphore? what does it do? We probably know the semaphore from boyscouts, but is it the same? This video will explain more about the connection between the two. It is actually about synchronization problem solving though.
- Semaphore vs Mutex
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 difference between the two if we must conclude is that the mutex is much simpler compared to the semaphore mechanism. More to that will be explained by the video.
- Dining Philosopher’s Problem
The dining philosopher’s problem is a classical problem of synchronization. Five philosophers are sitting around a circular table and their job is to think and eat alternatively. A bowl of food is placed at the center of the table along with 5 pairs of chopsticks for them to eat. To eat they need both their right and left chopsticks. In case if both immediate left and right chopsticks are not available, then the philosophers put down their chopstick to rethink. It is a synchronization problem which will be covered in the link above.
- Peterson’s Problem
What is peterson’s problem? Its solution provides a good algorithm in solving the critical section problem and illustrated some of the complexities involved in designing softwares that adress the requirements of mutual exclusion etc. Open the article for further infos.
- Race Conditions
What is a race condition? you will see this in advance programming. To sum it up, this is a problem that occurs when there are 2 or more program that are accessing or modifying a SINGLE data at the same time. How it occurs and how to handle it will be covered in this video.
yonde kurete arigatou, sore ga kiden tachi wo tasukemasu you ni. Jaa na
Top links (Week 8)
- Multi level queues and feedback queues
Ever wonder about multi level queues and multi level feedback queues? This is the perfect time to watch the video above. This video will explain more about multilevel queues and multi level feedback queues in more detail.
- Speedrunning LFS
Once again i’m back with a new topic on speedrunning. This time it’s about LFS speedrun. It’s a cheat topic to be honest. The concept highlights one of the linux community’s feature. This link will explain more about LFS speedrunning.
- Linux Scheduler
Linux has this thing called scheduler. Basically in linux, if you have multiple threads, completions that are done through kernel activity will result in a race-free solution. One of the solution is by utilizing the linux scheduler, for more informations on that topic, this documentation link will provide more.
- Preemptive vs Non-Preemptive?
This topic will cover more on the differences between a preemptive scheduler and a non-preemptive scheduler. Basically the preemptive one is a method where the tasks are assigned alongside their priorities, and are executed based on their priorities. More will be covered by the link above.
- Dispatcher and Scheduler
Schedulers are special system software which handle the process scheduling of multiple threads in various ways, while a dispatcher is a special program which runs AFTER the scheduler. It’s function is to give a process control over the CPU after it has been selected by the short-term scheduler. For more details you can visit the link above.
- Too long, didn’t read linux from scratch
This repository above was found while i was trying to find some kind of way to understand LFS without reading it the old conventional way. I found this when i was doing the GSGS and this basically acts as a cheatsheet for you. It is comprised entirely of README files to guide you to understand the bare minimum of LFS.
- Round robin scheduling with different arrival times
This algorithm is used to schedule the process fairly for each job a time slot and interrupting the job if it is not completed by then, the job the comes after the other job which arrived in the quantum time that makes these scheduling systems fair. For more information read the article above.
- NUMA
This video will explain about the Non-Uniform Memory Access policy or NUMA for short. It also explains about the usage and implementation of NUMA within a computer. I suggest your watching the video.
- CPU Scheduling
This link is for learning more about CPU scheduling. How exactly does a CPU manage its own scheduling system from the start to the end. The interesting things such as the simulations for operating systems’ randomize conditions are also included. It’s a nice read.
- Big O
I’m sure you guys had already taken SDA before or perhaps is currently taking DAA? The big o asymptotic notation would be familiar to you by now i guess. This link above provides the cheatsheet for big O notation. It might help in deciding the runtime complexity of your algorithms within your running processes.
That’s it for week 8. Adeus!
Top Liens de la 9eme semaine
- Harddrive inside when it’s running
This video will show about how a drive looks like when it’s used.
- Booloader
This article is enough to explain about the definition and how does a bootloader work.
- Clover Bootloader
This article will cover more about clover bootloader.
- Systemd
This article will first explain about the systemd especially on linux.
- Why do people hate systemd
I found this article about why people be hating on systemd, it’s interesting.
- GPT vs MBR
This article covers about the differences between drive partitioning.
- SSD Reliability
This article will cover more about the reliability of the ssd
- UEFI
This article is written in indonesian. It will tell you about what uefi is and how does it work.
- NAS
According to the article, NAS is “A term used to refer to storage devices that connect to a network and provide file access services to computer systems”, this article will cover more on that.
- LAN
LAN stands for local area network. This article will cover about that.
On do na hubahen di minggu on, molo adong na sala, dokhon ma hamuna tu ahu bah!
Week 10
- PCH
This article will explain further about platform controller hub.
- PCI Express
This article is about the peripheral component interconnect express.
- DDR4 SDRAM
This wikipedia page shall thee enlighten with its wisdom
- DMI 2.0 VS 3.0
Shallst thou enlightened be with this particular article which will thee explain more about DMI 2.0 and 3.0
- SMB
Shallst thou be confused with SMB, thou shallst this open that thou mighst be understanding the concept
- SPI
This link is about the SPI, you should open it
- SATA
If you want to know more about SATA, open this article and read it.
- Kernel I/O Subsystem
This link will explain further about the kernel i/o subsystem
- Tuning IO Performance
I found this topic to be interesting, read more if you are curious
- DMA
If you are curious about DMA, read this article. It will help you a lot, for real !
- Méré Méméűle
O afto mémé toropzsek kuaźi kocs rakisek. O kuaźi ű éré hoplekűle kośműdratek
- NANI mir Śoretlek
Csoretnek o mina e video youtube. Traxmitgek o mina ű stromisti kocs kalismi
Efxaristi kocs o ir ű mèrè artikèl tropostifike, dragatsis na stroma krazite! Qapla’