Android, iOS, Windows, Linux, Mac OS you frequently hear those names, and you've probably used them yourself, but what are they? well, those are specialized software called operating systems an operating system an operating system is mainly used to manage the link between all applications, so the software and the hardware world. such as processors and other components. Keeping in mind that a computer is made up of three main components. they are the memory, the Central Processing Unit CPU, and the Input-output devices first, the memory which I will represent here with a small cylinder the memory is used for storing data and accessing it when needed another important element in computers is The processors, also known as the computer's brain, which perform calculations and executor tasks based on the data they retrieve from memory. and finally, so that the computer can communicate with the outside world it has input and output peripherals an output device such as a printer that produces data output and a screen that allows data display input devices such as the keyboard and the mouse with which we can put data inside the computer Internet is also an input/output component computers can run several applications here we have three different applications running on each application will execute a specific task that depends on the use you have for it In fact, for applications to use the hardware, you can't give them direct access to the computer's components; instead, you'll use an operating system to connect the between the two0. In English, OS stands for the operating system, and it will serve as the link between the apps and the computer. As we can see, a computer has three main components: memory, processors, and an output/input device. the operating system is used to make the link between all of this we can imagine the memory as being a large table with several entries we call them cells each of which has a unique numeric address here we have the address number zero one two and three we can insert four words into the memory cells those addresses correspond to where exactly they belong in the physical memory what an application can do for example in this one, it wants to insert the word toto into memory cell number one it will be written on the computer's physical memory once the word has been written it should be able to access it but let's imagine that a second application to insert the word zut but also in the memory cell number one so it will write here and it will replace toto with the zut there's a problem here because if that the application decides to go back to the memory to retrieve the last data it had stored into cell number one it will obtain zut instead of toto that's not right the operating system will be able to prevent such problems thanks to virtual storage the idea behind virtual storage is that the operating system will give each application the illusion that each has the whole memory available but thinking it has the whole memory available again it will want to insert those forwards with a zero one two three address each up will do the same now when an application wants to write something in the memory it won't write directly into the memory so it won't do this it will write in the virtual storage instead for example, it had chosen to write Toto on the cell one what the operating system will do when it receives a write-in memory command from an application, it will convert this it's going to find a space to write the data in the real memory for example it can say I will write the one here on word three in the memory so Toto so it will be written into the physical memory here and the operating system remembers that the one for this application belongs in fact to the memory cell three we retrieved toto in cell there are no more inconsistency problems between the several apps that could overwrite one another that's the aim of virtual storage so we can see that virtual storage has several uses when our drawing also shows that we only have one processor a computer generally has a few processors a lot less processors than applications so the operating system will act as a moderator between the different applications in order to share the processor because a processor is actually a little dumb it just performs calculations and does only one task at a time so if two applications want to use a processor they have to wait their turn just like at school when a pupil wants to ask a question he puts his hand up and waits for his turn the operating system will do the same thing through scheduling, scheduling will say that application has done enough calculations on the processor for now, so I'm going to put an on break to allow other applications to use the processor what can also happen is that maybe this application does a calculation and at a certain point it has to read the hard drive the hard drive is much lower than the processor so the app will have to wait for the data so it's going to retrieve the data on the hard drive and during that time it stays on pause which frees the processor for another application once that is done and the data has been retrieved it will be able to go back to the processor so with that, we have the first two elements the last element is considering the computers are always different there are lots of different modes a cell phone is a computer a chip card is a computer your personal laptop is a computer a big Google server is still a computer what we want is for applications to be able to write without having knowledge of how the operating system provides an abstraction layer through system calls our system calls every time an application needs to execute something on the computer it won't execute directly on the memory or the hard drive no instead it will ask the operating system to do it instead so for example if an open app wants to write a rectangle on a screen for a game what happens is the app asks the operating system drew me a rectangle on the screen the first thing the operating system will do is check whether or not the application has the authorization to draw on the screen if it does then the OS verifies how to perform the drawing and will execute the drawing in the application instead the same thing happens if you want to read from a microphone there is a microphone app for example this one it will say I want to record the sound here which is being retrieved by the microphone to do that the application will tell the operating system I'd like to listen to the sound with the microphone so the operating system will be listening via the microphone and as soon as a sound event occurs the microphone will relay a signal to the computer which will generate an interruption for the operating system and it will realize I have a signal coming from the microphone and indeed that application asked me to relay microphone signals so the OS will relay the right signal to the right application so we saw that the operating system has three main purposes The first one is managing the memory with the virtual memory so it will enable an even distribution between applications a safe memory management so that an application cannot use a memory belonging to another application The second purpose of the operating system will be through scheduling, it will allow to share the load of the various applications on the processors and it The last purpuse will abstract the computer's technical details from the applications so that we can write with an application without necessarily knowing which computer is going to be running the question you could ask me now is there are Linux windows Mac os Android all these different names have same the basic concept? actually yes conceptually it is the same thing what changes is the echo system delivered with each system iOS is more network and developers oriented it is more dedicated to final users games but also usage license some systems are locked so they cannot be modified other systems are open so they can be modified at will so depending on what needs you have you will choose one system over another more or less dedicated to what you intend to do