 Hello everyone, in this video I will be talking about architecture of embedded system software approach. The previous video is discussed about architecture of embedded system hardware approach, but in this video we will talk about the software approach. Learning outcomes at the end of this video you will be able to draw the software architecture of an embedded system, you will be able to describe the importance of the elements in the software architecture of an embedded system. This is the architecture of an embedded system, here you can see there is a hardware for using this hardware we need some software and that software for that software we need the operating system and application software. So this is the part of the software architecture. So hardware architecture as I said already been discussed we will look at the software architecture. Let us look first at the operating system. What is an operating system? Operating system is the piece of software with which user interacts with hardware. When the system is switched on first OS is loaded into the main memory that is RAM. The managing the multiple tasks is done by OS. OS is doing the scheduling we will look at the details of this OS further. Before going further to the details of the operating system at this point can you write the answer to the question list the different operating systems used in mobile phones. As mobile phone is one of the embedded system so you know what are the different operating systems that are used in mobile phones. You can pause the video for some time and can write the answer to this question. Thank you I hope you have written the answer. So the different operating systems used in mobile phones are I am sure that you have written the answers like Android OS, Web OS, Windows OS, Symbian OS, Palm OS, iPhone OS and Blackberry OS. So we know all the names these names like Android, Windows, iPhone and all but we do not know that these are the operating systems and what exactly an operating system is. So let us look at that part of what is an operating system. Before going to the operating system I will just want to tell you there are the categories of the operating systems. What are the categories single tasking OS versus multi tasking OS OS is the operating system single user OS versus multi user OS, command driven OS versus GUI based OS. What is single tasking OS? Single tasking OS is the operating system which allows you to perform a single task at a time. For example if I am using the DOS operating system I am able to perform a single task at a time. I cannot perform a multiple task at a time. I need to exit from one task then only I can do the next task that is what is the single tasking OS. Multi tasking OS for this the best example can be the Windows. When I am using the Windows operating system I am performing the multiple task like I have connected to internet I am using the file sharing maybe I am working on Excel so I am doing multiple tasks on that OS. So that is the multi tasking OS the example is Windows. Second type category is single user OS. Single user OS in this the single user is using the operating system. As I said right now that Windows operating system is a single user operating system. In multi user operating system the multiple users are sharing the operating systems in time sharing time division multiplexing. So that is a multi user OS the example of this multi user is UNIX. Multi user OS is UNIX where every user feels as if he alone is using that operating system. Next operating system is the command driven operating system versus GUI based operating system. Command driven operating system again the best example is the DOS operating system which is a command driven operating system. I need to write the command to execute a particular task. It has GUI GUI is the graphical user interface based operating system is nothing but the Windows operating system where I can perform the different tasks at the mouse clicks. There is a GUI which is available I need to click that and then I have to perform the task that is GUI based operating system. This is the software architecture of an embedded operating system. In this you can see there is operating system there is an application programming interface and application software. The operating system consists of different parts such as kernel, communication software, libraries, device manager and file system. We will look at first the parts of this operating system or elements of this operating system one by one. So these are the elements of operating system, kernel, device manager that is communication software is networking protocol software, libraries, file system. File system is optional why it is optional that I will talk about. Next comes to kernel the element of an operating system is a kernel this is the operating system part which is kernel it is heart of the operating system why it is called as heart of the operating system this is because it manages the task by scheduling the tasks and by providing inter task communication. It also provides memory management services, time management services, interrupt handling services and device management services. So it is doing very crucial task so the name may be for that it is a kernel and so it is called as a heart of the operating system. Next comes is a device manager here is a device manager. So this device manager as the name is there it is managing the device which devices so it is managing the IO devices for what? It manages the IO devices to send and receive the data from the embedded system. IO devices are managed by operating system through interrupts and device drivers. What are the device drivers? Device drivers are nothing but the this is an interface it is providing an interface between application and hardware. Next it comes a file system here is a file system. So embedded system has constraints of the size as well as it is need to be real time so that there is a constraint and offer the memory to be used. So generally the most of the embedded systems do not have a secondary storage. So when I say file system that file system is optional if at all it is needed then only it is used. So most of the embedded systems do not have a secondary storage. If the file system at all required a small system can be developed on a flash memory and some embedded systems use secondary storage just for the booting purposes otherwise embedded systems do not allow to use the secondary storage. Next comes a communication software this is a communication software what does it means? If I need that my embedded system to be network enabled then in that case the protocol TCP-IP protocol for example a TCP-IP protocol need to be integrated with that OS then only my embedded system will be network enabled. So for that the communication software is doing the job. Embedded system has a communication interfaces such as Ethernet and USB. This is the power element is the libraries this is the part as a libraries. OS may have the libraries such as cc++ library files in the object code. These files are available in object code and these can be used through API calls. What is API? What are API calls that we will see further? This is the application software. So application software is this part. This is the application software part. So when I am using my mobile phone if I am using phone pay then I am using an application. If I am using any other app Swachh Bharat app it is nothing app when I am saying it is an application it is an application software I am using and it to be developed by the over the operating system. For example if I have Android phone for that the app developed is different for Windows phone the application developed is different. So the application software need to be developed above the operating system which operating system that we are using in and obtain the development tools for that operating system and that is the job done by the application software. So this is the operating system for that on that we are developing an application software right but what is there in between? Let us look at that. So in between these two between the OS and the application software there is an application programming interface which is called API application programming interface. API is used by developers to write the application software. The application software need to be written and that will be written by the developers and API will be used for developing this application software by the developers. And it provides the functional calls API provides the functional calls to access operating system services that is nothing but the application programming interface. These are the references used for preparing this video thank you.