On the other hand, the other picture there on the right side,
it shows the application at the top that maybe you wrote.
At the bottom there is a microcontroller that it has to essentially run on,
but there's all this software in between.
That whole block we'll call, that's a simplified version of an operating system.
This is a simplified version, we can't go into operating system class but
this is the idea.
There are library functions inside there that the application can call.
And we had library functions with the Arduino too,
but these library function are a part of the operating system.
And these library functions make system calls which are other
parts of the operating system and
those system calls are what actually interact with the microcontroller.
So the application doesn't directly interact with the microcontroller.
So what that means is the application can't directly change a pin,
turn a pin from high to low or low to high, right?
Because it's gotta go through the operating system.
It basically makes a request, and then operating system library function and
the operating system might be function decides that request is okay and
then serves the request by switching the pin if it feels like it should.
So, this is extra layer of software in there, the operating system is running.
So, when you run your application, it's not just your application,
your application It's calling the operating system and
the operating system is doing the dirty work of dealing with the hardware.
Okay, so there's this layer of software, that's an operating system.