in this section, we're going to talk about compatibility between applications on operating systems.
Before we talk about compatibility, though, let's define what we mean by an application
also known as a program or a nap.
Applications are written by programmers using a variety of programming languages,
although earlier we saw that a computers and native languages finery,
that's not very easy to work with for humans.
If you have to use machine code,
you would be entering sequences of ones and zeros. It's not a very inviting prospect. That's certainly be a lot less. Programmers around
humans use high level languages.
Using these. They can write programs using English words.
High level languages are then converted. Divine ary,
a process known as compiling
applications, are usually devoted to a single purpose.
Microsoft Word, for example, is a word processor is designed to help you create documents and edit documents.
A Web browser. On the other hand, it's an application designed to make it easy for you to get to websites on the Internet and to interact with them.
So when a user starts an application, what happens?
The CPU retrieves the program file from the disk and copies it into Ron
and remember that this is done because accessing drive is much faster than reading from the hard drive hard desk
and then once it's in RAM, the CPU then processes that program, carrying out the instructions that are contained within it.
Programs are written using high level languages
such a C or visual basic.
As you can see on the slide here,
this is written as relatively easy to understand text.
I didn't have to write out all that tedious machine code. I've never typing ones and zeros.
It might still look complex, but it's much easier than King Sheen coat
When you compiled the program, it's converted from that high level language
into machine code and then saved as an execute a ble file.
You could see which files are executed all files on your computer, because their name ends with the letters dot e x e,
apples OSX operating system.
The file name ends with dot a pee pee or not app you like.
The source code, which is human readable, is often not released by the bender.
We call that closed source applications. Most commercial software is closed source,
but there is a whole gamut of software that is open source.
And that means the programmer is releasing both the human readable source code off the program in the high level language
and usually also the compiled version the execute a ball that you can run.
Let's delve into that whole idea a bit more in a bit more detail,
can be closed source or open source. And by that I mean you're operating system and the applications that can all be either closed or open source.
For example, Lennox is an open source operating system.
Windows is a closed source operating system.
Open source software is available. It's human, readable, high level language that you saw on the previous slide.
This means that anyone can examine the code to see what the software's actually doing.
For example, you can verify that software is not malicious.
You can even modify the source code to suit your needs. Your program doesn't do exactly what you want.
Maybe you can change it,
and so you could download the source code.
You can check it to see if it's malicious in any way.
You can modify it if you want
and then when you're satisfied with it,
you can compile it into an execute herbal.
Most commercial software is not open source
when it's closed. Source. You only have access to the compiled version of the software that is after it has been converted into a serious of binary instructions.
This is done because the vendor doesn't want you messing with that application or even knowing what the application's really doing. That kind of keeping it secret.
So close Source software
is generally only made available as a compiled execute herbal.
If you want to have a look at open source software, check out source forge dot net.
You can download many free open source programs, applications and so on from there, including some very useful stuff like replacements for Microsoft office, which are free.
So let's summarize. Operating systems allow you to run an application.
The execute herbal is loaded from the hard disk into rhyme.
The process of then steps through it, executing each commanding turn.
You can run an application by finding the execute herbal, say Windows Explorer and double clicking it.
You can click on an icon on the desktop if there is one for the application,
You can click on an item on the START menu. The application is listed on your start menu.
What about command line based operating systems, though?
Well, in those you would have to move to the folder where the Execute Herbal is, and then type in the name of the executed file and that would then execute that program.
So now I want to touch on something called the AP I or the application programming interface
Operating systems provide an A p I,
and the reason is that these are simple commands that can be invoked by the programmer.
This saves the programmer from having to write the actual code for common tasks like
a file open dialog box or communicating across the network
stove. For example, to create a file open dialog box.
The application calls a function called bile open dialogue brackets.
The operating system understands that this is a request to generate the File Open Dialog box.
The program. I didn't have to break the code to actually do that.
Here's a very simple texture that called note pad, which comes with windows.
If I click the file menu and I choose the Open Command
the open dialog box appears, allowing me to choose a fire that I want to open.
Now Here is the simple graphics programs that comes with Windows called Emma's Paint
Clicking on the File menu. And then the open command here generates that very same dialog box we saw when running note pad.
Now, does this mean that the programmer who wrote a note pad on the programmer who wrote M s Paint
both just happened to come up with the same code that generates the open dialog box?
they're both just made a request to the operating system.
That's because the code for creating the file Open dialog boxes actually provided by the operating system.
And it's a Siri's off what I called functions that are available
if we take all the functions that an operating system provides two applications collectively, we refer to that as the a P I. The application programming interface.
Can you see how much work that saves programmers?
And it assures consistency because no matter which application I'm using,
if I go to file open,
I get that exact same dialog box that I recognize that I'm familiar with in order to open up a file.
Now the functions available
depends on the operating system on diversion off it.
So the AP I for Windows X P, for example, may not be exactly the same as the A P I for Windows 10
which means if your application was written for Windows X P,
it makes requests to the Windows X p a P I.
If you try and run that same application in Windows 10
the same functions within the AP, I may or may not be available, so the application may work in Windows 10 and it may not work in Windows 10.
So there's a compatibility issue that
the AP eyes for different operating systems and different versions of an operating system are not identical. So applications are designed for the particular public operating system on a particular version of it.
Now, visual Basic is a programming language that's, Ah, high level programming language that's built into Windows.
Let's look at how AP eyes make. Developing an application much simpler
here is probably the simplest program in the world.
It just generates a message box that says, Hello world
Now. In order to do that,
I can just use the visual basic command called Message box msg Vox
that come out on calls the Windows A P I to say,
Create a message, works for me and put the text in it.
This command can be used by programmer to generate a message box without having to know how Windows does it on what code is required without knowing any machine code
Let's see this in action.
So here's my source code.
I could right click and choose at it
Here's my very simple program. It just uses just the command message box
to run the program. I double click on its icon
and there's the message box.
Or I could right click on it and click on Open from the Pop up and you as well.
So to do all of that,
I didn't need to know. How does Windows generate a dialog box? How did it create a button? How did put text into it?
I just said, Create me a message box and Windows went ahead and did it.
Now, of course, that same program wouldn't work if I ran it on on Apple or a *** machine.
Why? Because he doesn't understand the same commands. It doesn't have the same AP I, as Windows does.
So applications were compiled to run on a specific operating system on possibly a specific version of the operating system.
For example, you cannot run a copy of Microsoft Word that was compiled for Windows
on an Apple OS X machine
and vice versa. If it was written, he feels compiled for apples. Oa *** machine. You can't run it in Windows.
You have to get a copy of the application that was compiled for your operating system.
An application may also require a particular version of an operating system.
Like I said, we're not. An application developed for X P
may or may not work In Windows 10.
You must check to see if an application is compatible with your operating system.
This is usually specified in the requirements for the application.
Vendors often provide multiple versions of the application for different operating systems. Microsoft Office, for example, is available for apples OS X, but it's also available for Windows.
Some application developers provide the source code.
Now, remember, this is open source software.
If you've got the source code, one of the things you can do with it is. You can compile that source code to work on different operating systems so you can take the same source code. You can compile it for Windows,
or you can compile it for limits.
You can run it on a Windows machine. You can run it on the linens machine, but there you're doing the compiling yourself
from the original source Captain.
And typically, you can only do this with open source software.
What about application compatibility with hardware?
Some applications may also state as a set of minimum hardware requirements
that acquire a specific speed of CPU,
a minimum amount of RAM that needs to be installed.
All the application may require very fast, powerful video capabilities and may need a video expansion card could be installed in your machine.
So when purchasing an application, you need to check its software requirements.
What operating system is it meant for
which version of the operating system?
But also check out the hardware requirements and make sure that your computer actually meets the minimum hardware requirements for that application.
We're gonna look at, um,
the fact that operating systems can monitor your hardware on performance
operating systems can wanted to your hardware and alert you. There are problems.
For example, you know the computer is getting too hot
or problem is detected with other hardware, such as your hard drive.
also provide tools to help you monitor the performance of the system in real time.
This might help you to figure out why computers running slower than usual
Apple in its operating system. Oh, it's X
provides a tool called activity monitor that shows you in real time what applications are running, how much super you time, it just consuming how much memory just consuming and so on.
Microsoft provides a number of tools and windows, ranging from the very simple task Manager
That's somewhat more detailed. Resource Monitor
the very powerful to called performance monitor.
Let's take a look at that, too.
So here I am, tracking processor usage. That's the red line that you see on the charts.
I'm also tracking network activity that appears and blue
on disk activity, which appears in greed.
I start a program that generates a lot of disk activity.
What's that green line?
You see how it shoots up to indicate that the disk is pretty busy now. Something like 50% utilization off the desk is going on,
so monitoring performance can help the technician to find the bottlenecks that might be slowing the system down.
It can help you to understand which component needs to be upgraded to improve performance.
It may help you to track down 40 components.
You can also take readings at regular intervals to help you to track trends over time.
For example, supposing I've set up a Web server
initially, only a few people are visiting the website that's hosted on that server.
You noticed that as it becomes more popular than website becomes more popular, more and more people are accessing the Web site,
and this, of course, puts a strain on the Web server. The CPU becomes busier, the hard drive becomes busier, more memories being consumed and so on.
In fact, by tracking performance,
you could figure out that hey, CPU usage is going up by 10% a month.
You cannot extrapolate that into the future and figure out that hey, within 10 months, my CPU will have hit 100% utilization and have at that point will become a bottleneck and start slowing things down.
So you budget to upgrade the CPU before it becomes the bottle neck. So you proactively dealing with the problem, not waiting for the problem to actually arise.