You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: career-paths/OS/index.md
+15-15
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ layout: page
4
4
comments: true
5
5
---
6
6
7
-
Operating Systems refers to the understanding of lower lying hardware and technology that makes all the software run perfectly. It's about handlng the different work loads, optimizing the CPU performance, understanding how the memory and storage work, and how the software and hardware connect. It's really meant to help serve as a way to get a understanding of how to make software and technology talk to each other, and what the underlying OS does to make these two things communicate.
7
+
Operating Systems refers to the understanding of low level hardware and technology that makes all the software runs perfectly. It's about handlng the different work loads, optimizing the CPU performance, understanding how the memory and storage work, and how the software and hardware connect. It's really meant to help serve as a way to get a understanding of how to make software and technology talk to each other, and what the underlying OS does to make these two things communicate.
8
8
9
9
## Table Of Contents
10
10
@@ -33,16 +33,16 @@ Operating Systems refers to the understanding of lower lying hardware and techno
33
33
34
34
# An Introduction
35
35
36
-
What does OS make it easier to understand? A lot, basically. To name a few,
36
+
What does OS do, to make it easier to understand some of the functionalities are mentioned below:
37
37
38
38
- Processes, their scheduling, how programs are handled in the background, and how can they can be optimally served
39
39
- Threads and Concurrency, how you can schedule your work and functions to make them work faster
40
40
- CPU Scheduling, which helps to make it easier to understand how the CPU manages to schedule and choose what work to do
41
-
- Synchronization, what happens when two different programs try to access a block of memory at the same time?
42
-
- Deadlocks, or most commonely known as, why does my Windows hang so much?
41
+
- Synchronization, what happens when two different programs try to access a block of memory at the same time
42
+
- Deadlocks, or most commonly known as, why does my OS hang so much?
43
43
- Virtual Memory, how you load bigger programs into memory, even though their size is greater than your RAM
44
44
- File System, how OS store and allocate files and folders, and how they keep a track of it
45
-
- Virtual Machines, how can you run 2 OS on the same hardware? How does Docker run images on an OS? How can you run a Linux instance in a virtualbox?
45
+
- Virtual Machines, how can you run 2 OS on the same hardware? How does Docker run containers on an OS? How can you run a Linux instance in a virtualbox
46
46
- Networks and Distributed Systems, how and which OS treat network interfaces
47
47
48
48
# Technologies
@@ -57,9 +57,9 @@ Working with an OS from scratch means a good understanding of the underlying har
57
57
58
58
So what `Linux` or `distribution of Linux` should you choose? It depends on what metrics you use and what is important to you. There are some basic [`trees`](https://en.wikipedia.org/wiki/List_of_Linux_distributions#/media/File:Linux_Distribution_Timeline.svg) of distributions, which means there are some OS which contain the Linux kernel, and have their own spin on it. The only thing about distros that make them Linux is the kernel they have, and the libraries they use. For example, the system call library functionalities that you used in OS were part of GNU - GNU has a `glibc` which means they have a library written in C which interacts with the Linux kernel.
59
59
60
-
The commands you run on the `terminal` ( _or the bash shell_ ), that's the interface and call to the kernel to do that.
60
+
The commands you run on the `terminal` ( _or the shell_ ), that's the interface and call to the kernel to do that.
61
61
62
-
If you haven't guessed already, this guide is about working with and building Operating Systems by using Linux itself. This is not a guide if you want to build something from scratch. Please checkout [OS Dev](osdev.org) for that.
62
+
If you haven't selected already, this guide is about working with and building Operating Systems by using Linux itself. This is not a guide if you want to build something from scratch. Please checkout [OS Dev](osdev.org) for that.
63
63
64
64
## Installation In Windows!
65
65
@@ -75,7 +75,7 @@ Before you get into any kind of Linux, please read about the following to unders
75
75
4. Filesystems in Linux are way different than in Windows
76
76
5. Package managers and software repositories
77
77
78
-
However, if you want to install Linux on your disk, please continue reading,
78
+
However, if you want to install Linux on your disk, please continue reading.
79
79
80
80
Now, the next thing is that you look at what is important to you. Here are some criteria,
81
81
@@ -87,14 +87,14 @@ Now, the next thing is that you look at what is important to you. Here are some
87
87
88
88
## Updates
89
89
90
-
There are two contrasts here, there is a,
90
+
There are two contrasts here, there is:
91
91
92
-
- Non-rolling release
92
+
- Non-rolling release and
93
93
- Rolling release
94
94
95
-
A **_non-rolling release_**, for example, is the debian family or 'tree', which ubuntu is a part of. It basically means that the kernel is and system is designed with system versions of software. Which ultimately means that you can specify what versions of software you want for your machine, and give it to the kernel, and it will set it up for you. But that means that if you want to change the version numbers, you will have to upgrade the system.
95
+
A **_non-rolling release_**, for example, is the debian family or 'tree', which ubuntu is a part of. It basically means that the kernel and system is designed with system versions of software. Which ultimately means that you can specify what versions of software you want for your machine, and give it to the kernel, and it will set it up for you. But that means that if you want to change the version numbers, you will have to upgrade the system.
96
96
97
-
So for example, if you decided to use Ubuntu 18.04, you would get python 3.7.3. Now, we have Python 3.8.1, say you wanted to upgrade, but you can't.
97
+
For example, if you decided to use Ubuntu 18.04, you would get python 3.7.3. Now, we have Python 3.8.1, say you wanted to upgrade, but you can't.
98
98
99
99
Upgrading a basic software that comes pre packed with the OS itself means to build everything up from scratch. Which means if you want to use the next Python version or upgrade, you need to upgrade your system from scratch. It's useful to make a drive solely for the backup, and then upgrade, but it's not always ideal depending on how you've set it up.
100
100
@@ -117,13 +117,13 @@ _NOTE:_ that rolling releases are never used in server side or cloud stuff becau
117
117
118
118
## Security
119
119
120
-
Kali Linux, Redhat, Fedora, Black Arch Linux come to mind, they have a preset of good configurations for security related measures when they are installed. They come with pre installed and pre setup software so that you can work on them quickly. There are some differences under the /etc/ folder for networking reasons.
120
+
Kali Linux, Redhat, Fedora, Black Arch Linux come to mind, they have a preset of good configurations for security related measures when they are installed. They come with pre installed software so that you can work on them quickly. There are some differences under the /etc/ folder for networking reasons.
121
121
122
122
## Size
123
123
124
-
Some distributions are lighter, and come with bare minimal software, so if you want to choose a light weight system based on your current hardware, look into Absolute Linux, Lubuntu, LXLE, Linux Lite, and other such distros.
124
+
Some distributions are lighter with bare minimal software, so if you want to choose a light weight system based on your current hardware, look into Absolute Linux, Lubuntu, LXLE, Linux Lite, and other such distros.
125
125
126
-
Remember that linux by itself has no gui. The gui you see in Ubuntu is either Unity or Gnome. These are called Desktop Environments. Some are heavier, some more CPU intensive than others, depending on what you prefer. Anything is fine, really, depending on how good of a hardware you have, and what your own preference is.
126
+
Remember that linux by itself has no GUI. The GUI you see in Ubuntu is either Unity or Gnome. These are called Desktop Environments. Some are heavier, some more CPU intensive than others, depending on what you prefer. Anything is fine, depending on how good of a hardware you have, and what your own preference is.
0 commit comments