অপারেটিং সিস্টেমের ইতিহাস

অপারেটিং সিস্টেম একটি কম্পিউটারে ব্যবহৃত ও প্রযোজনীয় ফাংশন গুলোর সমন্বয় যা প্রায় সবধরনের এ্যপ্লিকেশন ব্যবহার করে থাকে এবং হার্ডওয়্যার এর সাথে সমন্বয় ও নিয়ন্ত্রণ করার মাধ্যম হিসেবে কাজ করে থাকে। প্রথম দিকের কম্পিউটার গুলোতে অপারেটিং সিস্টিম না থাকায় সফটওয়্যার গুলোকে সতন্ত্রভাবে হার্ডওয়্যার উপযোগি করতে হত যাতে করে কোন কাজ করা যায়। অন্যান্য ড্রাইভার যেমন পেরিফেরাল ডিভাইস ড্রাইভার উপযোগি করতে হত। এসকল কারণে অপারেটিং সিস্টেম অপরিহার্য হয়ে পড়ল। প্রাকদিকের কম্পিউটার গুলো ছিল মেইনফ্রেম কম্পিউটার যেগুলোর কোন অপারেটিং সিস্টেম ছিল না। তখন পাঞ্চ কার্ড, কাগজের টেপ অথবা চৌম্বকীয় টেপ ব্যবহার করে নির্দেশ দেয়া হত। নির্দেশটি প্রথমে মেশিনে লোড হত তারপর কাজটি করা শুরু করত যতক্ষন না শেষ হত। প্রোগ্রামগুলো ডিবাগ করা যেত টগল সুইচ এবং প্যানেল লাইট এর মাধ্যমে। প্রথমদিককার হাতে করা বাইনারি কোডগুলোর ট্রান্সলেসন বা অনুবাদের কাজ করার জন্য পরবর্তীকালে সাংকেতিক ভাষা, এসেম্বলারস এবং কমপাইলার উন্নয়নের কাজ শুরু হয় প্রোগ্রামারদের জন্য। পরবর্তীতে ইনপুট এবং আউটপুটের সুবিধার্থে পাঞ্চ কার্ড বা চৌম্বকীয় টেপ গুলোতে সাপোর্ট কোড থাকত যা কিনা ব্যবহারকারীর প্রোগ্রাম এর কাজে সহায়তা করত। তখনও মেশিন গুলো একের অধিক কাজ একই সময়ে করতে পারত না। মেশিনগুলোর ক্ষমতা যখন বাড়ছিল তখন তার সাথে কাজ করার সহজ উপায় ও প্রয়োজনীয় হয়ে পড়ছিল। তখনও লোকদের বা ব্যবহারকারীদের প্রত্যেকটা কাজের জন্য বারবার নিদের্শ দিতে হচ্ছিল এত করে কাজের মান কমে যাচ্ছিল, গতি কমে আসছিল। নিরাপত্তার প্রয়োজনে অডিট ট্রেইল রাখা হত যাতে কোন প্রোগ্রাম কোন ফাইল ব্যবহার করছে তা বুঝা যায়। সময়ের প্রয়োজনে অটোমেটিক বা স্বতন্ত্র মনিটরিং ব্যবস্থার প্রয়োজন বাড়ছিল। এসময় (অপারেটিং সিস্টেম শব্দটি ব্যবহারের পূর্বে) রানটাইম লাইব্রেরি একটি অপরিহার্য প্রোগ্রাম হিসেবে দেখা দেয়। যার মাধ্যমে কাজের রেকর্ড, হার্ডওয়্যার রিসোর্স ব্যবহার, কাজের নিয়ন্ত্রণ, একটি কাজের পরে অন্যটির জন্য রিসোর্স তৈরী করা যাতে করে দ্রুত পরের কাজে যাওয়া যায় ইত্যাদি করা যেত। এই ধরনের কাজগুলো একই সঙ্গে করা যেত ফলে এগুলো কে ডাকা হত মনিটর বা মনিটর প্রোগ্রাম। সাধারণ ভাবে এটা মনে করা হয় যে, প্রথম অপারেটিং সিস্টেম সত্যিকার কাজের জন্য ব্যবহার করা হয়েছিল আইবিএম ৭০৪ এ যেটি জেনারেল মোটর রিসার্চ ডিভিশন কর্তৃক উৎপাদিত হয়েছিল। সেসময়কার অপারেটিং সিস্টেমগুলোর মধ্যে বিভিন্নতা দেখা যেত কারণ প্রস্তুতকারকরা বিশেষ কাজে ব্যবহারের জন্য সেগুলো তৈরী করত। প্রত্যেকটি অপারেটিং সিস্টেমএর ভিন্ন কমান্ড, চালানোর কায়দা এবং সুবিধা ছিল ভিন্ন যেগুলো এমনকি একই প্রস্তুতকারক কর্তৃক প্রস্তুতকৃত। ব্যপারটি এমন দাড়িয়েছিল যে প্রত্যেকটি কম্পিউটার তৈরী করে সেগুলো প্রত্যেকবারই নতুন নতুন অপারেটিং সিস্টেম ব্যবহার করা হত। প্রত্যেকবারই এপ্লিকেশনগুলো কে এর উপযোগী করে তোলার জন্য ঠিক করা হত। উপরিউক্ত অবস্থা চলতে থাকে ১৯৬০ এর দশক পযর্ন্ত। আইবিএম যা তখন কিনা একটি নেতৃত্ব স্থানীয় হার্ডওয়্যার প্রস্তুত প্রতিষ্ঠান তাদের সমস্ত শ্রম ও চেষ্টা নিয়োগ করে সিস্টেম/৩৬০ সিরিজ মেশিন তৈরীতে। এই সিরিজের প্রত্যেকটি মেশিন একই নির্দেশনা এবং ইনপুট/আউটপুট ব্যবস্থা মেনে চলে। আইবিএম'র মনোভাব ছিল এইসব মেশিনগুলোর জন্য একটি সম্পূর্ণ আলাদা একটি অপারেটিং সিস্টেম ওএস/৩৬০ ব্যবহার করা যা এই সিরিজের সবগুলোতে চলবে। এ কাজটি করতে গিয়ে আইবিএম যে সমস্যার মুখোমুখি হয় তা ঐতিহাসিক এবং এটি বনর্না করা আছে ফ্রেড ব্রুকস এর দি মিথিক্যাল ম্যান-মানথ্ বইয়ে বর্তমানে যেটা সফটওয়্যার ইন্জিনিয়ারিং এর জন্য একটি ক্লাসিক বই। উদ্ভূত সমস্যার কারণে সফটওয়্যার তৈরী লম্বা সময়ের জন্য বাধাগ্রস্থ হয়। ফলে একটি মাএ অপারেটিং সিস্টেমের বদলে আমরা দেখতে পাই বিভিন্ন ধরনের অপারেটিং সিস্টেম যেগুলো আসলে ওএস/৩৬০ প্রযেক্ট এর আওতায় বা ঔ প্রযেক্ট এর জন্য প্রস্তুতকৃত। এসব অপারেটিং সিস্টেমগুলোর মধ্যে দুটো অপারেটিং সিস্টেম বেশি সময় ধরে রাজত্ব করেছেঃ ওএস/৩৬০ - এটি মধ্যম এবং বড় মানের সিস্টেমের জন্য ব্যবহার করা হত। এটি তিন ধরনের সিস্টেম জেনারেশন এ আমরা দেখতে পাইঃ পিসিপি - প্রথমদিককার ব্যবহারকারী ও যেগুলোর মাল্টিপ্রোগ্রামিং রিসোর্চ ছিল না তাদের জন্য। এমএফটি - মধ্যম মানের সিস্টেমএর জন্য, যেটা পরে এমএফটি-২ ওএস/৩৬০ রিলিজ ১৫/১৬ দ্বারা পরিবতির্ত হয়েছিল। এমভিটি - বড় মানের মেশিন এর জন্য। এটি এমএফটি এবং পিসিপি প্রায় সব প্রোগ্রাম রিকম্পাইলড ছাড়াই চালাতে পারত। কিন্তু এর ছিল আরো শক্তিশালী মেমরি ব্যবস্থাপনা এবং টাইম শেয়ারিং সুবিধা। ডস/৩৬০ - ছোট মানের মেশিন'র জন্য। সাফল্য অর্জনকারী মডেলগুলোর মধ্যে অন্যতম হল জি/ভিএসই। এটি ওএস/৩৬০ এর চেয়ে আরো বেশি ভিন্ন ছিল। আইবিএম তার আগের মেশিনগুলোর সাথে পুরোপুরি উপযোগী অপারেটিং সিস্টেম তৈরী ভালভাবে মেনে চলে যাতে করে ষাটের দশকের তৈরী করা প্রোগ্রামগুলো নতুন গুলোর সাথে খাপখেতে পারে। আইবিএম টিএসএস/৩৬০ ও তৈরী করে যা একটি টাইম শেয়ারিং সিস্টেম কিন্তু তারা এটি অফিশিয়ালি কখনো দাবি করেনি। কন্ট্রোল ডাটা করপোরেশন তৈরী করে স্কোপ অপারেটিং সিস্টেম ষাটের দশকে ব্যাচ প্রসেসিং'র জন্য পরে টাইম শেয়ারিং এর জন্য এমএসিই অপারেটিং সিস্টেম তৈরী করে যেটা কিনা পরে ক্রনোস এর ভিত্তি হিসেবে ব্যবহৃত হয়। ক্রনোস মিনেসোটা ইউনিভার্সিটির সহায়তায় উন্নয়ন করা হয় পরে এনওএস অপারেটিং সিস্টেম সত্তর দশকে উন্নয়ন করা হয়। এনওএস টাইম শেয়ারিং এবং পুনঃপুনঃ ব্যাচ ব্যবস্থা করতে সক্ষম ছিল। বাজারে অন্যান্য কমার্সিয়াল টাইম শেয়ারিং এর মত এর ইন্টারফেস ছিল ডিটিএসএস টাইম শেয়ারিং সিস্টেম এর মত। যেটা টাইম শেয়ারিং এবং প্রোগ্রামিং ভাষার ক্ষেত্রে অগ্রগামী ছিল। সত্তর দশকের শেষের দিকে, কন্ট্রোল ডেটা এবং ইউনিভার্সিটি অব লিনয়েস উন্নয়ন করে প্লেটো সিস্টেম, যেটা প্লাজমা ডিসপ্লে এবং বেশি দূরত্বের টাইম শেয়ারিং নেটওর্য়াক এর জন্য ব্যবহার করা যেত। সেই সময়ের জন্য প্লেটো ছিল উল্লেখ্যযোগ্য আবিষ্কার। ইউনিভাক, প্রথম ব্যবসায়িক কম্পিউটার প্রস্তুতকারক, উৎপাদন করে ইএক্সইসি সিরিজের অপারেটিং সিস্টেম। প্রথমদিককার কম্পিউটারগুলোর মত এর ছিল ব্যাচভিত্তিক অপারেটিং সিস্টেম। সত্তর দশকের দিকে, ইউনিভাক বড় ধরনের টাইম শেয়ারিং করার জন্য উৎপাদন করে রিয়েল টাইম বেসিক (সংক্ষেপে আরটিবি) সিস্টেম। বারফস করপোরেশন চালু করে বি৫০০০ ১৯৬১তে যেটা এমসিপি বা মাস্টার কন্ট্রোল প্রোগ্রাম অপারেটিং সিস্টেম ছিল। এটি উচ্চ ভাষা ব্যবহার করার জন্য নির্মাণ করা হয়েছিল কোন সফটওয়্যার ছাড়া এমনকি ছোটোখাটো কোন অপারেটিং সিস্টেম ছাড়া। এমসিপি ছিল প্রথম ওএস যেটাতে উচ্চ ভাষা ব্যবহার করে লিখিত হয়েছিল। জিই বা জেনারেল ইলেক্ট্রনিক চালু করে জিই ৬০০ অপারেটিং সিস্টেম। হানিওয়েল জিই কিনে নিলে এর নামকরণ করা হয় জিসিওএস। প্রযেক্ট এমএসসি যেটা জিই এবং বিটিএল এর সাথে যুক্ত হয়ে উন্নয়ন করে মাল্টিকস, যেটায় রিং নিরাপত্তার ধারণা প্রচলন করা হয়। ডিজিটাল ইকুইপমেন্ট করপোরেশন উন্নয়ন করে অনেক অপারেটিং সিস্টেম এর বিভিন্ন কম্পিউটার লাইন এর জন্য। এরমধ্যে ছিল টিওপিএস-১০ এবং টিওপিএস-২০ টাইম শেয়ারিং সিস্টেম। ইউনিক্স শুরু হওয়ার আগে টিওপিএস-১০ ভীষন জনপ্রিয় ছিল বিভিন্ন ভার্সিটির অর্পানেট কমুউনিটিতে। ইউনিক্স এর শুরু হয়েছিল বেল গবেষণাগারে ১৯৬০ দশকের শেষের দিকে। যেহেতু প্রথম দিকে এটা ছিল মুক্ত, সহজে পাওয়া যেত এবং সহজেই পরিবর্তন করা যেত তাই খুব সহজেই এটি সবার কাছে গ্রহণ যোগ্য হয়। বেল সিস্টেমের অপারেটিং সিস্টেম হিসেবে এর ব্যবহার বেড়ে যায়। যেহেতু এটা সহজে পোর্টেড করা যেত সেহেতু এটি প্রথম প্রজন্মের ওয়ার্কস্টেশন ও দ্বিতীয় প্রজন্মের মিনিকম্পিউটার এ সমান ভাবে ব্যবহার করা যেত। এর ব্যাপক ব্যবহার উদাহরণ হিসেবে উঠে আসতে লাগল যেখানে বিভিন্ন হার্ডওয়্যার এ সমানভাবে এটি ব্যবহার করা যেত। এছাড়াও ডিজিটাল ইকুইপমেন্ট করপোরেশন তৈরী করেছিল বিভিন্ন অপারেটিং সিস্টেম যেমন পিডিপি-১১,আরটি-১১, আরএসএক্স-১১ এবং ভিএমএস। আরো সিস্টেম যেটা এই সময়ে উঠে এসেছে সেটা হল পিক অপারেটিং সিস্টেম এটি মাইক্রোডেটা করপোরেশন দ্বারা উন্নয়ন ও বিক্রয় হয়েছিল। ১৯৭০ এর দশকে ৮-বিটবিশিষ্ট, মোস টেকনোলজি ৬৫০২, ইন্টেল ৮০৮০, মোটোরোলা ৬৮০০ এবং জিলোগ জেড৮০ এর মতো নতুন প্রসেসর বিশিষ্ট কম্পিউটার বাজারে আসা শুরু করে। বেশির ভাগ ছোট ৮ বিটের হোম কম্পিউটারগুলো ৮০র দশকের। যেমন কমোডোর ৬৪, অ্যাপল ২, আটারি ৮ বিট, অ্যামসট্রে সিপিসি, জিএক্স স্পেকট্রাম সিরিজ এবং অন্যান্য কম্পিউটার যেগুলো তৃতীয় পক্ষের ডিস্কলোডিং অপারেটিং সিস্টেম ব্যবহার করতে পারে যেমন সিপি/এম অথবা জিইওএস। এগুলোর প্রায় সবগুলোর রমে বেসিকের ইন্টারপ্রেটার ছিল। এই ইন্টারপ্রেটার ব্যবহার করে কমান্ড লাইনে মিথষ্ক্রিয়া, অন্য একটি ডিস্ক অপারেটিং সিস্টেমের মাধ্যমে ফাইল ব্যবস্থাপনা ক্রিয়া এবং ডিস্কে তথ্য সংরক্ষণ ও বের করা সম্ভব ছিল। এগুলো প্রত্যেকটি ছিল একমাএ কাজ এবং একজন মাত্র লোক ভিত্তিক মেশিনস যাতে অল্প পরিমাণে মেমরি থাকত, সাধারণত ৪-২৫৬ কিলোবাইট, ৬৪ এবং ১২৮ ছিল সাধারণ মান ৮ বিটের কম্পিউটারে। ভিডিও গেমস গুলো ছিল সেল্প-কনটেইনড বা নিজস্ব-ধারনকৃত প্রোগ্রাম। http://www.wisegeek.com/what-are-mainframes.htm http://www.wisegeek.com/what-are-punch-cards.htm "সংরক্ষণাগারভুক্ত অনুলিপি"। ১৫ মার্চ ২০১১ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২৫ মার্চ ২০১১।  http://www.nndb.com/people/991/000029904 http://www.cs.usfca.edu/~parrt/course/601/lectures/man.month.html http://www.computerhistory.org/brochures/companies.php?alpha=a-c&company=com-42b9d5af185f1 "সংরক্ষণাগারভুক্ত অনুলিপি"। ১৮ জুলাই ২০১১ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২৫ মার্চ ২০১১।