আপনি কোডটি কোনও সিপিইউ-এর জন্য নির্দিষ্ট কিনা তা উল্লেখ করে কেন এটি কোনও ওএসের ক্ষেত্রেও নির্দিষ্ট হওয়া আবশ্যক। এটি আসলে একটি আকর্ষণীয় প্রশ্ন যা এখানে অনেক উত্তর ধরে নিয়েছে।
সিপিইউ সুরক্ষা মডেল
সবচেয়ে CPU- র আর্কিটেকচারের উপর প্রথম প্রোগ্রাম রান কি বলা হয় ভিতরে রান ভেতরের রিং বা রিং 0 । কোনও নির্দিষ্ট সিপিইউ খিলানটি কীভাবে রিং প্রয়োগ করে তা বিভিন্নভাবে পরিবর্তিত হয়, তবে এটি দাঁড়িয়েছে যে প্রায় প্রতিটি আধুনিক সিপিইউতে কমপক্ষে 2 টি অপারেশন রয়েছে, এটির একটি বিশেষ সুবিধাযুক্ত এবং 'বেয়ার মেটাল' কোড চালায় যা সিপিইউ করতে পারে কোনও আইনি ক্রিয়াকলাপ সম্পাদন করতে পারে এবং অন্যটি perform অবিশ্বস্ত এবং সুরক্ষিত কোড চালায় যা কেবলমাত্র ক্ষমতাগুলির একটি সংজ্ঞায়িত নিরাপদ সেট সম্পাদন করতে পারে। কিছু সিপিইউতে তবে উচ্চতর গ্রানুলারিটি রয়েছে এবং সুরক্ষিতভাবে ভিএম ব্যবহার করতে কমপক্ষে 1 বা 2 অতিরিক্ত রিং প্রয়োজন (প্রায়শই নেতিবাচক সংখ্যায় লেবেলযুক্ত) তবে এটি এই উত্তরের বাইরে নয়।
যেখানে ওএস আসে
প্রারম্ভিক একক টাস্কিং ওএস
খুব শীঘ্রই ডস এবং অন্যান্য প্রারম্ভিক একক টাস্কিং ভিত্তিক সিস্টেমে সমস্ত কোডটি অভ্যন্তরীণ রিংয়ে চালিত হয়, আপনি যে প্রোগ্রামে চালিত প্রতিটি প্রোগ্রামের পুরো কম্পিউটারের উপর সম্পূর্ণ ক্ষমতা ছিল এবং এটি যদি আপনার সমস্ত ডেটা মুছে ফেলা বা এমনকি হার্ডওয়ারের ক্ষতি সহ খারাপ ব্যবহার করে তবে আক্ষরিক কিছু করতে পারে খুব পুরানো ডিসপ্লে স্ক্রিনগুলিতে অবৈধ ডিসপ্লে মোডগুলি সেট করার মতো কয়েকটি চূড়ান্ত ক্ষেত্রে, আরও খারাপ, এটি কেবল কোনও বগি ছাড়াই কেবল বগি কোডের কারণে ঘটতে পারে।
এই কোডটি আসলে ওএস অজোনস্টিক ছিল, যতক্ষণ না আপনার কাছে কোনও লোডার প্রোগ্রামটি মেমোরিতে লোড করতে সক্ষম ছিল (প্রাথমিক বাইনারি ফর্ম্যাটগুলির জন্য বেশ সহজ) এবং কোড কোনও ড্রাইভারের উপর নির্ভর করে না, সমস্ত হার্ডওয়্যার অ্যাক্সেস নিজেই প্রয়োগ করে যা এটির অধীনে চলতে হবে should যে কোনও ওএস যতক্ষণ না এটি রিং ৪ এ চালিত হয় Note দ্রষ্টব্য, এটির মতো খুব সাধারণ ওএসকে সাধারণত একটি মনিটর বলা হয় যদি এটি অন্য প্রোগ্রাম চালানোর জন্য ব্যবহার করা হয় এবং কোনও অতিরিক্ত কার্যকারিতা না দেয়।
আধুনিক মাল্টি টাস্কিং ওএস
ইউএনআইএক্স সহ আরও আধুনিক অপারেটিং সিস্টেমগুলি , এনটি দিয়ে শুরু হওয়া উইন্ডোজের সংস্করণ এবং এখন অন্যান্য অস্পষ্ট ওএসগুলি এই অবস্থার উন্নতি করার সিদ্ধান্ত নিয়েছে, ব্যবহারকারীরা মাল্টিটাস্কিংয়ের মতো অতিরিক্ত বৈশিষ্ট্য চেয়েছিলেন যাতে তারা একযোগে একাধিক অ্যাপ্লিকেশন চালাতে পারে এবং সুরক্ষা দেয়, তাই একটি বাগ ( বা ম্যালিসিয়াস কোড) কোনও অ্যাপ্লিকেশনটিতে মেশিন এবং ডেটার সীমাহীন ক্ষতি হতে পারে না।
এটি উপরে উল্লিখিত রিংগুলি ব্যবহার করে করা হয়েছিল, ওএস 0 টি রিংয়ে চলমান একমাত্র স্থান গ্রহণ করবে এবং অ্যাপ্লিকেশনগুলি বাইরের অবিশ্বস্ত রিংগুলিতে চলবে, কেবলমাত্র ওএসের অনুমতিপ্রাপ্ত অপারেশনগুলির একটি সীমাবদ্ধ সেট সম্পাদন করতে সক্ষম।
তবে এই বর্ধিত ইউটিলিটি এবং সুরক্ষা ব্যয় করে এসেছিল, প্রোগ্রামগুলিকে এখন ওএসের সাথে কাজ করতে হয়েছিল যেগুলি তাদের নিজেরাই করার অনুমতি দেয় না, তারা উদাহরণস্বরূপ হার্ড ডিস্কের মেমোরি অ্যাক্সেসের মাধ্যমে সরাসরি নিয়ন্ত্রণ নিতে পারে এবং যথেচ্ছ পরিবর্তন করতে পারে তথ্যের পরিবর্তে তাদের ওএসকে তাদের জন্য এই কাজগুলি সম্পাদন করতে বলা হয়েছিল যাতে এটি পরীক্ষা করতে পারে যে তাদের অপারেশন করার অনুমতি দেওয়া হয়েছিল, যেগুলি তাদের অন্তর্গত নয় এমন ফাইলগুলি পরিবর্তন না করে, এটি পরীক্ষা করে নিবে যে অপারেশনটি সত্যই বৈধ ছিল এবং হার্ডওয়্যারটি একটি অপরিজ্ঞাত অবস্থায় ছেড়ে দেবে না।
প্রতিটি ওএস এই সুরক্ষাগুলির জন্য একটি পৃথক বাস্তবায়নের সিদ্ধান্ত নিয়েছে, আংশিকভাবে ওএসের নকশাগুলি এবং ওএসের নীতিমালার ভিত্তিতে আংশিকভাবে আর্কিটেকচারের ভিত্তিতে নকশা করা হয়েছিল এবং ইউএনআইএক্স উদাহরণস্বরূপ মেশিনগুলিকে মাল্টি ইউজার ব্যবহারের জন্য ভাল হওয়ার জন্য ফোকাস রেখেছিল একক ব্যবহারকারীর সাথে ধীর হার্ডওয়্যার চালানোর জন্য উইন্ডোজগুলি সহজতর করার জন্য উইন্ডোজগুলি ডিজাইন করার সময় এর জন্য উপলভ্য বৈশিষ্ট্যগুলি ছিল। ব্যবহারকারী-স্পেস প্রোগ্রামগুলি ওএসের সাথে কথা বলার উপায়টি এক্স 86 এ সম্পূর্ণ আলাদা কারণ এটি এআরএম বা এমআইপিএসের মতো হবে উদাহরণস্বরূপ, একাধিক প্ল্যাটফর্ম ওএসকে যে হার্ডওয়্যারটির জন্য লক্ষ্যযুক্ত তার উপর কাজ করার প্রয়োজনের ভিত্তিতে সিদ্ধান্ত নিতে বাধ্য করা।
এই ওএসের নির্দিষ্ট ইন্টারঅ্যাকশনগুলিকে সাধারণত "সিস্টেম কল" বলা হয় এবং এটি ব্যবহার করে যে কোনও ব্যবহারকারী স্পেস প্রোগ্রাম ওএসের মাধ্যমে হার্ডওয়ারের সাথে কীভাবে যোগাযোগ করে, সেগুলি ওএসের ফাংশনের উপর ভিত্তি করে মূলত পৃথক হয় এবং এইভাবে সিস্টেম কলগুলির মাধ্যমে এটির একটি প্রোগ্রাম প্রয়োজন ওএস নির্দিষ্ট হতে হবে।
প্রোগ্রাম লোডার
সিস্টেম কলগুলির পাশাপাশি, প্রতিটি ওএস একটি মাধ্যমিক স্টোরেজ মিডিয়াম এবং মেমোরিতে কোনও প্রোগ্রাম লোড করার জন্য একটি পৃথক পদ্ধতি সরবরাহ করে , নির্দিষ্ট ওএস দ্বারা লোডযোগ্য হওয়ার জন্য প্রোগ্রামটিতে একটি বিশেষ শিরোনাম থাকতে হবে যা ওএসকে কীভাবে হতে পারে তা বর্ণনা করে contain বোঝা এবং চালানো।
এই শিরোনামটি যথেষ্ট সহজ ছিল যে ভিন্ন বিন্যাসের জন্য লোডার লেখার বিষয়টি প্রায় তুচ্ছ, যদিও আধুনিক বিন্যাস যেমন এলফ যা গতিশীল লিঙ্কিং এবং দুর্বল ঘোষণার মতো উন্নত বৈশিষ্ট্যগুলি সমর্থন করে এখন কোনও ওএসের বাইনারি লোড করার চেষ্টা করা অসম্ভব হয়ে পড়েছে with যা এর জন্য ডিজাইন করা হয়নি, এর অর্থ, এমনকি যদি সিস্টেম কল অসম্পূর্ণতা নাও ছিল তবে এটি কোনও প্রোগ্রামে চালিত করা যেতে পারে এমনভাবে একটি র্যামে রাখার পক্ষে অত্যন্ত অসুবিধা।
লাইব্রেরি
প্রোগ্রামগুলি খুব কমই সরাসরি সরাসরি সিস্টেম কল ব্যবহার করে তবে তারা প্রায় স্বতন্ত্রভাবে তাদের কার্যকারিতা অর্জন করে যদিও গ্রন্থাগারগুলি সিস্টেমকে মোড়ানো প্রোগ্রামিং ভাষার জন্য কিছুটা বন্ধুত্বপূর্ণ বিন্যাসে কল করে, উদাহরণস্বরূপ, সি সি স্ট্যান্ডার্ড লাইব্রেরি এবং লিনাক্সের অধীনে গ্লিবসি এবং অনুরূপ এবং উইন 32 লাইব রয়েছে উইন্ডোজ এনটি এবং তারপরে, বেশিরভাগ অন্যান্য প্রোগ্রামিং ভাষারও একই লাইব্রেরি রয়েছে যা একটি উপযুক্ত উপায়ে সিস্টেমের কার্যকারিতা মোড়ানো করে।
এই লাইব্রেরিগুলি কিছুটা হলেও উপরে বর্ণিত ক্রস প্ল্যাটফর্মের সমস্যাগুলিও কাটিয়ে উঠতে পারে, এমন অনেকগুলি গ্রন্থাগার রয়েছে যা অ্যাপ্লিকেশনগুলিতে একটি অভিন্ন প্ল্যাটফর্ম সরবরাহ করার সময় ডিজাইন করা হয়েছে যখন অভ্যন্তরীণভাবে এসডিএলের মতো ওএসের বিস্তৃত পরিসরে কল পরিচালিত করে , এর অর্থ এই যে প্রোগ্রামগুলি বাইনারি সামঞ্জস্যপূর্ণ হতে পারে না, এই লাইব্রেরিগুলি ব্যবহার করে এমন প্রোগ্রামগুলির প্ল্যাটফর্মগুলির মধ্যে সাধারণ উত্স থাকতে পারে, পোর্টিংটিকে পুনরায় সংমিশ্রণের মতো সহজ করে তোলে।
উপরের ব্যতিক্রম
আমি এখানে যা বলেছি তার পরেও, একাধিক অপারেটিং সিস্টেমে প্রোগ্রাম পরিচালনা করতে না পারার সীমাবদ্ধতাগুলি অতিক্রম করার চেষ্টা করা হয়েছে। কিছু ভাল উদাহরণ হ'ল ওয়াইন প্রকল্প যা উইন 32 প্রোগ্রাম লোডার, বাইনারি ফর্ম্যাট এবং সিস্টেম লাইব্রেরিগুলিকে উইন্ডোজ প্রোগ্রামগুলিকে বিভিন্ন ইউনিক্সে চালানোর অনুমতি দেয়। বেশ কয়েকটি বিএসডি ইউএনআইএক্স অপারেটিং সিস্টেম লিনাক্স সফ্টওয়্যার চালানোর অনুমতি দেয় এবং অবশ্যই অ্যাপলের নিজস্ব শিম ম্যাকোস এক্স এর অধীনে পুরানো ম্যাকওএস সফ্টওয়্যার চালানোর অনুমতি দেয় এমন একটি সামঞ্জস্য স্তর রয়েছে is
তবে এই প্রকল্পগুলি ম্যানুয়াল বিকাশের প্রচেষ্টার বিশাল স্তরের মাধ্যমে কাজ করে। দুটি ওএসের অসুবিধাগুলি কতটা আলাদা তার উপর নির্ভর করে মোটামুটি ছোট শিম থেকে শুরু করে অন্য ওএসের সম্পূর্ণ সম্পূর্ণ অনুকরণের মধ্যে যা প্রায়শই নিজের মধ্যে একটি সম্পূর্ণ অপারেটিং সিস্টেম লেখার চেয়ে জটিল এবং তাই এটি ব্যতিক্রম এবং নিয়ম নয়।