 ہے لہڑ حصہ آپ کو دور جانا میک dedim instalمنٹن کو سادارہ جاتا ہوگا کنی اکلن ہاری ہے اگر را Hyun بیٹر çevات کو calculated rest ا sangre پرایڈار ہوتے بھی largest نظر ب tumb نظر تک ہے اور ب Pictures ہم یعنی کے اس پردیر اور sự بہائی درمی Circle لہذا ہم جاتا ہوں کہ حکوانی اعتبار ہی مدرہ بہت ہی ساتھ ہی مدرہ ہی بہت ہے لہذا ہم ایسا ڈیلی کے ساتھ لیے اسی اگر آپ کو مجھے ایک مرشاد ہوتا ہوں. ایک قرآن میں ساری ساری ساری رکھا ہوں۔ اس لیے ہم جانتا ہوں کہ ہم جانتے ہیں جانتے ہوں کہ Then I describe the software categories and classification. More specifically I will describe the language compiler, the operating system and the main management functions. I have briefly discussed what libraries are and how they are handled and then mentioned the notion of utilities, tools and packages that we all end up using whenever we do any programming. فکر Haha بہت کرتے ہیں۔ لہذا here is a brief summary of what we supposedly know. We have learned that computer can be programmed using high level languages. We specifically use C++ which appears to be an extension of language C. It is here sir. Also we are aware that there are many programming languages. اوہ جو ہماری طرح کوئی بہت لگوش کی سمجھوش اٹھاکس ہے اور سمجھوں کھڑی ہر نظر پر حیث دی ہوتی ہے سمجھوش کو اپنے جو بہتری اٹھاک اس کھوش بہت روز کو پہلیار کرنا ہے کہہائی جار گوش کا سرکھنا ہے کہ جو نہیں کنا بہتروش کے دوسری رہے لے۔ بہت پیدای دیکھنا چاہتا ہے ہمارے دوسرا ہوں گوزراہ یا رجان ہستانی بارے میں ا کے لئے تمام Johli الحفظ نکار ہی دیکھنا چاہتا ہے لہن جیسے کسی بارے سے تو تک ہمارے شامدہوں سے سوائے دیکھنا چاہتا ہے پر سیادتے ہیں۔ کیا ہم حاضری بینانگری میں کہتے ہیں ہمیں اس بکرہ کیا میکنیں ہم اوشان کیا جاتا ہے��تے ہیں، وہ لیکن ہم ایک نیٹڈی انسان جاتا ہے، جو انہوں کے سمسہ پر جو یہ جانے کر کہتے ہیں۔ وقت میں انسان جائے لوگوں میں یہ میکنیں لیکن جاتا ہے۔ کیونکہ ہم انسان جاتا ہیں، وہ کانیزم کو بہت مکن ، ہماری لگانی جانتے ہیں کہ ہماری باتکاریوں میں کیا صور پہنچ جانتے ہیں؟ آپ کیا تو윈ڈیوں کے باری باتکاری لگانے کیا ہے؟ بہت سے لاکس شہر پہنچ جانتے ہیں۔ لیکن جو ہماری باتکاریوں کو بہت نششتے ہیں تو اپنے بن گا ، امکانی کیا ہے۔ پیرھنے کے لگی لگی پرنے والے ساتھcup'llڈ لگی۔ انداز کے لگی میں مغرز مغرز مغرز مغرز التیکس دیکھیں۔ جو اگر جانے کے لگے پرنے والے کو کمپایلیسر روح آئے ہیں۔ ہم this جو مخرگ ہوگی۔ ابھی کمپیٹر جانے کے لگے آپ کے لگی میں موقع کرنے کے لگے ہم بھی کے لگے کرنے کے لگے بھی ہمارا ہوتی ہے۔ جو ار creates کے اور کنا کیا کس کے دوی Wikimedia46 райہ تعالی قيرة целہ ramen ٹھیک، سف وی like ٹھیک کے سیلہ والBox اپنے مجھے تمہار کی حال Bijרה shows ٹھیک پریکاری میکنز膜 اوکنو ya موپ剂기로 فعلی وکل تلہ جو doubled جانتے ہیں تو اپنے جانتے ہیں اپنے مجھے تک مدیو میں اپنے ساتھ مزار کے لئے اندریکٹرین کے بارے میں مجھے بارے میں ایک ہی مزار کے لئے جو اسی بارے میں فائدہ سے مجھے وضع کیا ہے اسی بارے میں پرکی کہا ہے اگر اسی بارے میں پرکی رگی کے لئے've fuera ک 떠تی ہے کہ یہکرنوں کو ب کا بعد تحpiano میں کی ضرور کرے گ Problemith rồi دوکشنے لن پرıp کارڈ آن정을 ہے ہمHeyنظران work n everym اہ دوکشنڈ اِ plastash نیک car حیوان بھوی بکر just say Point how old ڈولہ with ڈیدبرانی ڈیڈبران کیونک heartbeat بے زیادہ ایک با کرتے ہیں سب سے ماہ ہے کہ لوگ سی ناقی یہنگا ہی بنی جو آگانے کا بیٹان پارا کرتا ہے۔ سب سے پہلہ مصیقہ بھی صوصی قیدہ کی طرف دیکھنے میں لے کیسے پہنچ کی جو کیا ہے۔ یہاں آگان کے ساری کے خاطرکی gall کو بھی دیکھنے کے لئے پہنچ کے دیتے ہیں۔ جو اس جو آپ جانے میں How can you do You can do You Can ڈائیں ڈائم ان کے لئے Gathering fact Whether You can do You Can ڈائم ان کے لئے کتر ہی رہی ہیں۔ معلوماتی ج55 ليگرمن شاہتی ہے جیسے بینی صرف حکومتی ہیں تباہ جانیتی ہے جیسے بینی صرف حکومتی ہے جیسے بینی اپنے قام بھی میں جہتا ہے ایٹل ڈیان ڈیان، ارڈی کور پرسر ڈیان، ارڈی کور، ای کور پہلیڈ پر بھی ہیں ہم نے already that the computer is capable of storing our instructions in its memory and automatically execute these instructions so that's why the processing unit has a memory the memory is also used to store not only other instructions but also data memory of modern computers is volatile that means when you switch off the computer all contents in the memory go away اورِ ناویت کے ذات ہے جانتے ہیں تبرانک دور splashing ڈین جاgg اطفالام کے ذات ہوتا ہے ایک بی training لیکن ہمارے میں ایک بی show ساتھ پہنچ پرود دلیگر جانا ہے ان یاد کرنے میں دارانا آپ کی جانتے ہیں تب اٹنی موکنے کے پاس ہے ایک بی تک ہے ماکنے میں لیکن آپ سے موکنے میں بھی دارانا ہوتا ہے موکنے میں موکنے کے ساتھ موکنے میں موکنے میں ایک بھی موکنے کیا میکنے دول بیریکٹ gonna دوائیس سی لکھاں بات ہوسکتے ہیں لیکن ایک کچھ اکسی روسکتیں کیا جب ایک کامیان تدémت سے پڑھوں گے بارے میں باک کرنے لیکن looks کی بارے میں لیکن اور ایک سوالکن ہوا چھوڑ میں بہت توریوں بہت ایک بہت اپنے دوائیس میں کسی ب,) میکنے آخری سیلی سارے دوائیس ایک کسی دوائیس سوالکتے ہیں کے جو ہواسہ ایک کمپٹر میں میکنے ہیں these periphery devices cannot operate on their own. There must be specific instructions executed by the processor. so that they send some information to these devices in order to collect information from these devices. Exactly the same thing happens even with this magnetic tape. No one goes in or goes out without explicit instruction being executed. ہم کوئی قرفت حجہانوں کی کہ جوجہ دشماہی ہم سار لگا جب اس میں گھرائیں بگیار میں کھلے ساری ساری حجی مجھے صرف اہم سیوں ہوا جب چہاں لگا کیا انگیزی اجھیک ہے ، کنی کامیہ کی ج산ک برو کمپیوری چھوڑا سوری مجھے مشہر پر کیا کیا جب ایک افضل کامیہ بھی ساری مجھے کسی قریب ساری مجھے جب اس اجھے بیٹھیں گا اور اسی بھی بیٹھنے کے حج بیٹھنے کےا ہوں بہت ملیہی مجھے سے مجھے اللہ کے مجھے لگاہی جانتے ہیں۔ اچھا۔ now the programs which are stored in files such as a.out the most basic software which is the machine language instructions. you would see that you can use geo edit for example and editing tool to look at or modify your c++ programs. دوسuyorsun کوئیلم کرنے والسے کبھی بی کرتے ہیں لیکن یہ کیسے ہاتھ lot کی جاتا ہے کہ دوس census بی ہوتے ہیں حالا سیکاہت ہے کہ دодуل کudi جتا ہے گار��کار روھی because نا میکس سے میکس جی چہ سکتے ہیںی ج spectrum وی برج سابqiہ جیسے بھی حیe آدیو planet ایکستر خواہ کیروست گہر Disleep جیسا بہت cái صرف کیتا ہے جو بہت ایک کٹار بہت Nice جسیھ ہم اس پر ہا دے سامسنے اندرن لیا جیس Studies بہتكرانے کو اعمال کچھ دviron کچھ میرے مثل جائے اللہ برارے کی اطاقتک دیکھنا سکتے ہیں۔ ایک بہت ماری بیٹس میں جو بہت کامیächstتر سکتا ہے تب کیا دیکھنا سکتا ہوں اور مقصدی بہت کامیوتر میں بہت کامی смерن کو بڑی کرنے ہوں ماہد مردکہ میں ایسی کامیوتر میں زود کو لکھنے ہو might ہے ایک بریانوں کو لکھنے کامیوتر میں زود کو لکھنے کر دائیر اس یہج سؤالBIég میں کسی تک کะ کی حقیتتہ ہے سمیہ لست supporting اگر یہ ایک طرفِ آفهای里führ کرنے کے د کےch faleiانہ صورتے ہیں secret ڈی رج Deborah ج narr 010 11000 ہم وہ اور ایک خارج کے مجھے جب کسی خرق جانتے ہیں لہذا مجھے لوگ ایک مجھے ایک مجھے بیلی میں آپ کوئی cerim ایک مجھے ایک مجھے تب کسی چنے میں بھیاری ہے لہذا ایک ایک مجھےiedzار لہذا مجھے حقیرنے میں مجھے جانتے ہیں ایک رئیش ممتازی ہے لہذا مجھے مجھے خرقاتشت کیشدہ ہم چیزیں کی دیکھیں ت sources أن designs پہلےرت کے اپرات a word رکاتپس اس مرک سے اپا elements اپا اس سے بون میں ایک باقر اس کی تو McKam ایک اپیاف جو ہی نمی بینگرہا کہ وہ پیارے میں میں سب سے اوکاہ�ہ میں پہلے ٹیس کے دل تک جا دے گا اپنا ہی اپنا بنے ہاں با planets نے دیکھات کے پریمانیت میں پرکیوانےگا اپنا ہی جانا ہی بھی کوشانتیں گوں ایک جب سب سے بھی مقاملی نقین کرنا چاہتے ہیں ایک 100 مقاملی میں بھی بھی ایک بھلے کے بھی دیکھاتے ہیں ایک حساب دیکھاتے ہیں اپنا اپنا اپنے نصاروں کے بہر جانے میں بھی بھی بھی بھی۔ یہاں بارکزالہ نہیںeder سکتا ہے اور dropdownاجراینوں اللہ کی خزتہ ف gift یہ پہلے ہوتی حقیقت پڑے سکتا ہے کیوانعت بابی لے لے کہ اللہ بھی اکنا ٹ AUDIeadہ بھی کن کے گا یہ stage اینشتکتا ہے کہ قوعد ان debates میں pike waiting ، 내 بھی ever but the essential ability of a computer to execute only machine instruction has not changed. As I will start, the machine is the most powerful automatic tool in power to execute the program of the right instruction. We need something better. This is the backdrop in the 1950s and 60s. Additional mechanisms were developed, designed, invented, لہذا ہم بھی لوگوں کو کیا کتا ہے اس میں پر بھی پٹوپ لیگی کو کتا ہے پر بھی کتا ہے ہم بھی لوگوں کو کتا ہے اگر آپ نے کتا ہے لہذا آپ کو کتا ہے جو اتہیں اہم مراہنٹ پرزائنڈی کر سکتا ہوں۔ انہوں نے افقائلی مراہنٹ تبدیل کرتے ہو جائ고 بہت سورا ہوتا ہے ، تاہم ریکنٹانوں سے زندگی لگزاندارمنٹ اہم ریکھی داریی مراہنٹ یہ کیا۔ اپیشنر کور اور مماری اب針ی ago کی دتے ہیں۔ اگر آپ دیکھنے کے لئے ا Current آ strange happy حفاظites try بسرحت ا닥 اپنی سمجھ کتابا ٹو اگر ا compreh n اسی خود کی كتابا کی ا� legs Fame بھی empty ڈیٹ میں اور جو بھی سرہ ہے Critical ایک کی its like continu أي مات کے پاس پوچیکمكن لگے ڈیٹ سیم بیک اپ ہی بنی شTPیOr کیسے نجائے تτιلیق آپری算刺кам ڈیٹ épisodeجورتی بھ lotus دوی TU، commander اپوٹ اس گھ تطور بھی a اک چیر اک چیر کو بھی تاکیں کرنے میں سو because بھی اک چیر دی تاک ہیں جو انہوں کی نظر نہیں ہے ایک چیزیں جو تاک ہے tampoco بھی اندرستانی کو مضالیک نظر کی بزرگائی تک جائیں پہلے اگر ایک نظر بھی ایسیم بھی بہت بہت مجھے اور ایک از دوری ڈامی ساتھ بڑا آپاران میں ارمالی باہر اکگا بچائے بیٹم پہاڑا تھا آپاران میں ارمال تک جس ا اس کے مطرح موضع کرتے ہیں اور حبب باہر اکجھزےوں میں بھی باہر اکجھی مضم تک مزدہ ہے یہ وہ بھی ممارس ہم سے مفاہتھا ہے لہذا، ان کے باہر اکجھے مزدہ رہا ہے آپ نے اپ کارت کے مبال اکجھے مبالک تک مضم تک مطرحوہ تک مضم تک مضم تک ممہ کے مصم کو 不رادہ ہے اس میں ب matter مجھے جو�ں سوانتہ کرتے ہیں اور لہن کسی پاکت۔ ان میں جب جاتی ہے ، کرنا چاہتا ہے۔ اس پرانہ۔ ہمارے نوع اکچھ چیز کسٹی ہوگا ، ہمارے نوع اکچھ چیز کسٹی ہے۔ اور اسی بارے سوانتہ دونی میں ہوجاتے ہیں۔ تو جوگر اکچھ چیز کسٹی ہے دنیڈ تاستہ ہے۔ ایک ہی پرخام لیننے دائمٹی اس کی امامکسٹزے میں امامکسٹزے میں ڈیز پرہ دیکھتا ہے ، کامل سب میں ، 1956 ، پرخامیت ہے اس کے لیے ایک تیاری بھئے ہیں۔ اللہ ہم یہ اس کی اطبیت سے بہت حجم کرنے میں جو ڈیز پرخام کے لیے اور اس ، ا کسی شمارت کے لیے کسی بھائے morning ایک نائمٹی ہے۔ کیونکہ ہے ، اب دہروں کا لینڈا پلت کیا ہوئی ہے۔ لہذا now the job of getting machine instructions from such program instructions is more complex. The translating program does not have to merely assemble instructions by replacing symbols by binary code but it has to understand what plus means. If it is minus different instruction has to be generated. If it is plus different instruction has to be generated. This expression could be a complex instruction, complex expression. A code to symbol has to be understood. A lot of control structures have to be understood. So this is real translation. It's like Tamil and Hindi or whatever that kind of complexity. So naturally people wrote programs to do this translation and these were called compilers. These compilers could translate programs written in high level languages into the machine language. And because these required more intelligent mapping from such instructions, the translating programs were often termed as compilers. So they would not just assemble instructions, they compile instructions after translating. And this is the standard process. You push your source program through the compiler and out regret the target program. Actually the target program is not exactly in the direct executable form. The A that out file that you see is the final result of a long process. The first process of translation gives you what is known as an object code. It is more or less the same instructions but as we shall see there are some differences. The differences arise because of this. Every application program that we write need a lot of common support. For example some standard computations. Observe that if I use a function square root or function to calculate absolute value or function to generate random numbers, I don't write code for that. Now the code will not fall from sky so that means somebody else has written that code. And that code or that program can be used by everybody because it's a common infrastructure. Similarly programs to read data from a disk file. You don't write code to actually go to the disk read this particular sector or something. What do we do instead? We say open a file, get a line. Now these things do not happen automatically. These things do not get translated into machine code. Instead functions are being written for doing these jobs. Now these functions are programs in their own right. And all of these are called support programs. So such separately written programs they are usually kept in the compiled form called object file. And they constitute what we commonly know as libraries. So a library is nothing but a set of functions which has been pre-compiled by the same compiler and kept in different pieces as object files. Naturally then when I compile my program, my program has to be connected with this program, connected with that program and all of them have to be linked together. But observe that if each program was compiled to run from a specific location in the memory only then all programs will require that they be loaded at this specific portion of the memory. That is not possible because all of these different programs have to run one after another. That is the reason why the object form is called a relocatable binary form. A relocatable binary form. In such relocatable binary form which is called the obj modules or .o modules in C++ they all need to be linked together. And when they are linked together they form a composite output. The link totality has to be loaded into the memory for final version to execute. Here is a sample. Consider this. I have written a program and I give an instruction c++prob.cpp. What I see usually on my terminal is that I give a value prompt and if I say value slash here without the program gets executed. افریکتوری I understand that the translated program A does out would be loaded into the memory from the disk which is a binary program and will be executed. But as I explained just now this is the final stage. This is not what happens initially. Initially what happens is that this program is translated into a relocatable binary module. Observe that in this program I am using a function sqrt. نچلی sqrt code or program segment is not written here. So that is one of the standard backside program which is part of the library. In actual practice what happens is shown here. When I compile program.cpp an intermediate file called program.co is formed it is called a relocatable binary module because it will usually start from a base address of zero. سو all memory allocations will be related to this zero. سیمیلی the sqrt function which has been previously compiled and kept would also be in a relocatable form and there could be many such modules. In the final version or final phase of the c++ processing what the c++ system does is not the compiler now. It is the linker and loader. What it does is it collects all of these programs and link all of these programs. And the linking would very roughly go like this. I might have the main program occupying memory allocations from zero to p. Hypothetically. These things are not in memory. These are being linked together. If p is the last location then the next module will be put in p++1 to say q. So observe that what was zero will become p++1. What was one here will become p++2. This looks simple. But if there is a memory instruction inside which addresses a memory location inside then that memory location address will have to be relocated now to the correct address. So the linker is not a dumb thing which is just putting things together. It is also relocating the code. So relocating linker is the correct definition. Consequently all such relocative code for square root will come here next we come here and so on. And this entire thing will be there also. Now why this square root function and such other utility functions could have been written by others and they are made part of some standard libraries the actual task of linking has to be done by someone else. In our case it is the c++ system of the gm to gcc compiler system which does this linking also. At the end of the day when I get the file here and there that file goes to the disk. So somebody still has to take that file from the disk and load it physically in the allocated memory. So all these things have to happen at the backlog for us to be able to execute programs. So here are some questions. Where do all the support programs reside? Second question Who puts these in memory so that these can execute and do the assigned job? And third question Where is the output of compiler's care? Well, all of us seem to know the answer. Disk, right? Everything is on the disk. The functions are on the disk. The compiler sits on the disk so that when you say c++ actually the compiler gets loaded into the memory and it executes to read our program as data and translates it. Where does it keep the .co files or where does it keep the .out files back up to the disk. We are so familiar with this that we assure that that is the only natural way of keeping things. But there was a time in fact a long period of time when there was no disk when there was no magnetic tape in fact there was no magnetic media. Media such as punch card and punch paper tapes were used to store such program. The mainstream country that we bought in 1974 here had punch cards but it also had magnetic tape and small disk. Another small computer which we bought called HP 2100C a mini computer it did not have any disk. It had paper tape readers and paper tapes. So consequently when we typed our program we had to prepare a paper tape on a punching machine. Now if you just feel that paper tape nothing will happen because the machine is incapable of understanding programs written in FORTROM or BASIC which we have typed on that paper tape. So first you have to load the translate of whichever other paper tape. So you put that paper tape in and that will take the translator inside the machine. Then you put your FORTROM program or BASIC program and paper tape and the translated program where it will be kept. There is no disk. So it will produce a paper tape and that paper tape will be a relocatable binary paper tape. You loaded large libraries which came in two large paper tape schools. So you loaded those and then you loaded the relocatable binary and after that the internal link up will link all of these and produce an equivalent of errors out file again on a paper tape. Then you loaded the paper tape back again. It used to typically take 2.5 to 3 hours to compile one program and it's not very long time ago because I have done it. We used to spend 2.5 hours to compile one program and imagine this again when the program instead of printing correct results says some garbage. So back again to collecting the paper tape on which you had written your original FORTROM or BASIC program and again 2.5 hours later another error. You guys are very lucky not to face such music because you have these deaths. There is one thing however there has to be something which can load anything whether it is from paper tape or cards or this. There is nothing happens automatically remember. So there has to be some basic loading capability that every computer intrinsically must possess. A computer only possesses knowledge of machine instructions. It does not automatically possess any code. So when a computer is made before it is delivered there is a small part of memory which is now a whole archive. Even if you switch off the power the memory does not get wiped out. How many days it used to be memory now you have flash memory. In this small portion a loader program is permanently stored. You might have been more familiar with PCs so when you start the PC you might have seen a term called BIOS. Anybody remembers BIOS? BIOS is nothing but basic input output system. There is nothing but a small loader. So when you switch on the machine that small loader takes over. It doesn't know what is happening in the world. That loader has been told to load something from a specific location into the memory and hand over control to that something. As we shall see later that something is part of the operating system. It is sufficient to say at this stage that this is what happens. Currently we will use media which is this. So all the support programs reside under this. These are put into the memory using this loader program. Not necessarily loader program actually as we shall see loader program puts something common inside the memory and that something common puts as a thing later. We shall see that in a moment. And the output of the compilers and linkers and everything naturally goes back to the disk. So as I said after the advent of magnetic media the cards and the punch paper were removed from the horizon and we had instead this which could store the program data became possible to store programs and data not only for one person but for many people. Also the complexity which is created by the facility. Are you or five of us where to execute our programs each one would be carrying one's own physical card deck or one's own paper tips. Only the common libraries will be at one place. So the management of the programs of these five people was done by each individual user physically. I used to carry my card deck he would carry his own card deck and if I got that card deck and if cards got shuffled God bless me because then I will spend one day in rearranging those cards. But now since I can put it on the disk you can put it on the disk. Suddenly in a disk there are five programs. Now I have to have some additional management. I can't permit any programmer to modify any program because that will cause confusion. Similarly if each program is to be compiled and the compiled final version has to be kept on the disk Take our example for example C++ All five C++ programs will result into a five card A none out. If the single file was permitted with that name then only the last file will compile the program without error code on the disk. All other error codes will be wiped out. We can't afford that. So we suddenly require a management to manage five hundred days for different users. So these requirements came up because of these facilities. Similarly advances in complete architecture and programming techniques پرمیٹed multiple programs to simultaneously execute in the machine. How do programs execute simultaneously? There is only one processor and the processor can execute only one instruction at a time. It does not matter whether it executes million instructions per second or whatever. So there are five programs. How come all five programs be executed simultaneously? Any idea? Well actually multiple programs are never executed simultaneously. But what happens? Every program sometime or the other during its execution will perform an operation which will take a long time. For example consider your program which says C in or C out. Now up to that point all instructions have been executed in a split second but when you say C in A or C in V then somebody has to type that value. There are several seconds during which the processor is idle. It is not doing anything. Instead of making that processor idle if you can switch the context of that processor and say that okay phatocase is doing input output we need to go and run that program. So it could go and run some other program. If that program gets into some input output it could make to go and run some other program. This way multiple programs can be simultaneously in a state of execution. Each executing up to a different point and you could do the switching of context. So this technique was developed to control program execution by switching context and this mode was called multi programming mode. Now this multi program is although as long as we submitted the programs and went away and came back to collect the results tomorrow but then terminals developed. Each one was sitting across on a terminal. Now I could not wait if somebody is doing an IO and I get the program control. So the moment he finishes the IO program control goes back to him and I stand in a limbo. What happened is if 5, 10, 20 people are there they would expect a fair share of processor time. So a methodology was developed which was called time slicing. So you would say that if my processor is so fast irrespective of who is doing what I will give 100 milliseconds to program user 1 100 milliseconds to user 2 100 milliseconds to user 3 and so on. So each one doesn't notice the difference but all programs get executed and get pushed forward. Such a system is called a multi user system. Consequently we have technology by which they could do multiple programming in a computer that is multiple programs could run and multiple users could run. In fact each user could run 5 programs simultaneously and such multiple users could run multiple programs everybody getting a decent reaction time but all of that required very intelligent control at the back end. Consequently the utility programs such as compilers, linkers, loaders all over were no more sufficient. What developed out of the whole interview was called operating system. So an operating system is nothing but a collection, a comprehensive collection of what we call specialized programs which will only be doing management of all these operational functions of a computer. Such a collection was done operating system or OS. Where does the OS reside? Obviously OS is a collection of program each individual program resides on the list so OS collectively must also reside on the list except that it resides in a different place and you and all as ordinary users cannot delete files in operating system or our files etc. It remains in some protected zone. Who knows the operating system in memory for it to start functioning? This is called the boot loader. The word boot comes from bootstrapping. The old British terminology where you have straps which hold up your trousers so you pull the straps up and because the elasticity in the straps you are pulled up later. What really what it means in computer lingo is that that small loader that we discussed or basic input output system that we discussed that resides in the computer all right. When you start the computer when you say boot the entire operating system does not get into the computer. But a small old management part gets into the computer and that management part knows where is the compiler, where is the linker that management part can understand commands given at the command prompt by the end users and to execute that command whether else is required that person is able to load them that type of routine. For example at dollar prompt when you say C++ at that time the small portion of the operating system will recognize I have to get the C++ compiler which is somewhere in the list. I will locate it, load it. So now it's not the boot loader which is loading C++ compiler but it's part of my operating system which is doing that. The operating system therefore became a very comprehensive management tool. The main portion of the install operating system is the only thing that gets loaded when I start my machine. All these components which I have described are called system software as opposed to the application software which we write. Note that none of these solve any real life problem. They don't compute, they don't plot graphics, they don't calculate analytics, they don't do anything that is useful for solving real life problem. But without these utilities we cannot write programs in the modern day. Therefore system software is fundamentally required to do any good application software. The operating system manages this which is the file system user access control. It manages the memory by allocating different memory to different programs. It manages the processor time by allocating time slices to different users as I said. These are some of the names. Unix, Linux, MS Windows, HPUX, Solaris, ZUS, etc. Now apart from these application packages there are several backend packages. Database packages which some of you will learn later which are called database management systems. Names are DB2, Oracle, MySQL, whatever. There are program development and testing tools typically in my system. On the website I will provide links to CVS to some other utilities like EZ graphics and other packages. I will request you to start reading the material from those links because some of those things will be used in your project. These are additional things that I have mentioned here. I will not go into the details because we are losing time. Just wanted to show last few slides as part of the announcements.