উচ্চ স্তরের ভাষা ভিত্তিক ওএস কেন নেই? নিম্ন স্তরের ভাষা কি আরও দক্ষ?


44

অহঙ্কারী না করে, আমি চাই আপনি এটির সম্ভাবনা বিবেচনা করুন। বেশিরভাগ ওএস আজ বেশিরভাগ নিম্ন স্তরের ভাষাগুলির উপর ভিত্তি করে (মূলত সি / সি ++) অ্যান্ড্রয়েডের মতো নতুন হিসাবে জেএনআই ব্যবহার করে এবং অন্তর্নিহিত বাস্তবায়ন সিতে রয়েছে

প্রকৃতপক্ষে, (এটি একটি ব্যক্তিগত পর্যবেক্ষণ) সি-তে লেখা অনেকগুলি প্রোগ্রাম তাদের উচ্চ স্তরের সমকক্ষগুলির তুলনায় অনেক দ্রুত চালিত হয় (উদাহরণস্বরূপ: ট্রান্সমিশন (উবুন্টুতে বিটোরেন্ট ক্লায়েন্ট) ভুজ (জাভা) বা ডেলিউজ (পাইথন) এর চেয়ে সম্পূর্ণ দ্রুত )। এমনকি পাইথন সংকলকগুলি সিতে লেখা হয়, যদিও পাইপাই ব্যতিক্রম।

তাহলে এর কি কোনও বিশেষ কারণ আছে? কেন আমাদের মহান তথাকথিত "হাই লেভেল ল্যাঙ্গুয়েজস" দুর্দান্ত "ওওপি" ধারণাগুলি সহ একটি শক্ত ওএস তৈরি করতে ব্যবহার করা যায় না?

মূলত আমার কাছে 2 টি প্রশ্ন আছে।

  1. নিম্ন স্তরের ভাষাগুলিতে অ্যাপ্লিকেশনগুলি তাদের এইচএলএল অংশের চেয়ে আরও দক্ষ কেন লেখা হয়? নিম্ন স্তরের ভাষাগুলি কী সরল কারণে যে তারা নিম্ন স্তরের এবং মেশিন কোডে আরও সহজ অনুবাদ করা হয়েছে তার জন্য আরও ভাল সম্পাদন করে?
  2. কেন আমাদের সম্পূর্ণ উচ্চ স্তরের ভাষার উপর ভিত্তি করে একটি পূর্ণাঙ্গ ওএস নেই?

36
আপনি বোঝাচ্ছেন যে কেবলমাত্র "উচ্চ স্তরের ভাষা" অবজেক্ট ওরিয়েন্টেড, যা সত্য নয়।
ইউও

2
@ আর্টিন্ড্রু "বেশ নিম্ন স্তরের ভাষা" (মূলত সি / সি ++)? তখন আপনার উচ্চ-স্তরের ভাষার সংজ্ঞা কী? আপনার উচ্চ-স্তরের ভাষার সংজ্ঞা / ব্যাখ্যা সম্পর্কে আপনার পরিষ্কার হওয়া দরকার। পাইথন আসলে একটি স্ক্রিপ্টিং ভাষা কারণ এটি সরাসরি তার ইঞ্জিনে (আইডিএল বা কমান্ড লাইন টার্মিনাল) কার্যকর করা হয়, যদি আপনি এখনই বুঝতে না পারছেন। প্রচুর ওএসের জন্য কেন সি / সি ++ প্রয়োগকরণের ভাষা হিসাবে ব্যবহৃত হয় তার একটি খুব ভাল কারণ রয়েছে (দার্শনিক এবং ব্যবহারিক) তবে আমি নিশ্চিত যে এখানের শক্তি ব্যবহারকারীরা সম্ভবত এই প্রশ্নের জন্য ঝাঁপিয়ে পড়ছেন না।
হাগুবিয়ার

10
অ্যান্ড্রয়েড কোনও ব্র্যান্ড নিউ ওএস নয়। এটি কেবল অন্য লিনাক্সের স্বাদ।
ডেন

3
@ হাগুবার একটি প্রচুর কারণ রয়েছে (দার্শনিক ও ব্যবহারিক) কেন প্রচুর ওএসের জন্য সি / সি ++ প্রয়োগকরণের ভাষা হিসাবে ব্যবহৃত হয় । এই খুব ভাল কারণ কি?
rtindru

2
আমি যদি সঠিকভাবে বুঝতে পারি, এলআইএসপি মেশিনগুলির জন্য ওএস এলআইএসপিতে লেখা হয়েছিল। যদিও সম্ভবত এটি যুক্তিযুক্ত হতে পারে যে ব্যবহৃত উপভাষাটি একটি নিম্ন-স্তরের ভাষা ছিল?
রবার্ট ফিশার

উত্তর:


38

মাইক্রোসফ্ট এই দিকটিতে কিছু আকর্ষণীয় গবেষণা করেছে, যদি আপনি এককত্বের দিকে নজর দেন:

http://research.microsoft.com/en-us/projects/singularity/

এছাড়াও, মথি রোসকো এট আল ব্যারলফিশে কাজ করছেন যা এক্সিপস সীমাবদ্ধতা প্রোগ্রামিং ভাষাটিকে ওএস পরিষেবা হিসাবে সমস্ত ধরণের ওএস পরিচালনা এবং সংস্থানকরণের বরাদ্দের সমস্যাগুলি সমাধান করার জন্য ব্যবহার করে:

http://www.barrelfish.org/


বাহ, আমি ভোট দিতে পারব না, 15 টি প্রতিনিধি দরকার ... সবেই যোগ দিলাম! অনেক ধন্যবাদ.
rtindru

9
@ আর্টিন্দ্রু: এমনকি ১ টি পুনঃনির্দেশ পয়েন্ট দিয়েও আপনি একটি উত্তর গ্রহণ করতে পারেন উত্তর যখন "গৃহীত" হয় তখন এর অর্থ কী?
মার্জন ভেনেমা

6
একটি উত্তর গ্রহণ করা নতুন উত্তর / আলোচনাকে বাদ দেয়। ব্যক্তিগতভাবে, আমি কমপক্ষে অন্য কোনও দিনের জন্য (এই নির্দিষ্ট প্রশ্নের কাছে) গ্রহণের বিরুদ্ধে সুপারিশ করব।
ব্রায়ান

1
আমি গুচ্ছটিতে কসমোস যুক্ত করব: ওপেন সোর্স, তৃতীয় পক্ষ, এককতার মতো আকর্ষণীয় নয় তবে কিছু সুন্দর ধারণা আছে! cosmos.codeplex.com
লরেঞ্জো ডিম্যাটটি

38

আপনি নিম্ন-স্তরের এবং উচ্চ-স্তরের ভাষার মধ্যে বিভাগ কোথায় রেখেছেন তার উপর অনেক কিছুই নির্ভর করে। উদাহরণস্বরূপ, বিভিন্ন লোকেরা এই বিভাজনের বিভিন্ন দিকে সি ++ এর মতো একটি ভাষা রাখার ঝোঁক।

আপনার প্রশ্ন সম্পর্কে:

  1. আমি বিশ্বাস করি না যে নিম্ন-স্তরের এবং উচ্চ-স্তরের ভাষার মধ্যে এইরকম পার্থক্য রয়েছে, তবে ব্যাখ্যামূলক ভাষা এবং স্থানীয় নির্দেশাবলীর সংকলনকারী ভাষার মধ্যে আরও পার্থক্য রয়েছে।

    তবে প্রোগ্রামারদের মধ্যে সংস্কৃতিতেও পার্থক্য থাকতে পারে, যেখানে একবার নিম্ন স্তরের ভাষা ব্যবহার করা হয় তারা তাদের পছন্দগুলি (নকশা) পছন্দগুলির কার্য সম্পাদনের দিকগুলিতে বেশি মনোযোগ দেয়।

  2. আপনি যদি সি ++ কে উচ্চ-স্তরের হিসাবে বিবেচনা করেন তবে কমপক্ষে একটি ওএস সম্পূর্ণভাবে উচ্চ স্তরের ভাষায় লেখা থাকে (সিম্বিয়ান ওএস সি ++ এ লেখা হয়)। বেশিরভাগ উচ্চ-স্তরের ভাষাগুলিতে ওএস লিখতে আপনাকে কী থামায় তা হ'ল দুটি জিনিস:

    • কোনও ওএসের মেমরি এবং হার্ডওয়্যারটিতে নিম্ন স্তরের অ্যাক্সেস প্রয়োজন এবং তাদের উপর নোংরা কৌশলগুলি সম্পাদন করে। অ্যাপ্লিকেশন-স্তরের প্রোগ্রামগুলির জন্য এই ধরণের অ্যাক্সেসটি সাধারণত অনিরাপদ হিসাবে বিবেচিত হয়, তাই অনেকগুলি উচ্চ-স্তরের ভাষা এটির অনুমতি দেয় না।
    • কোনও ওএসের সহায়তা সফ্টওয়্যার উপস্থিত না করে যেমন দোভাষী হিসাবে চালানো দরকার। এটি এমন কোনও ভাষায় একটি ওএস লিখতে অত্যন্ত কঠিন করে তোলে যা সহজেই দেশীয় নির্দেশাবলীতে সংকলন করা যায় না।

35
কোনও অনুবাদিত ভাষা বা কোনও ভাষা যা দেশীয় নির্দেশাবলীর সংকলন করে না। একটি ল্যাঙ্গুয়েজ গাণিতিক নিয়ম একটি সেট, এটা তন্ন তন্ন ব্যাখ্যা কিংবা কম্পাইল করা হয়, এটা ঠিক নয় । Interp। এবং কমপ্লেক্স। দোভাষা বা সংকলক এর বৈশিষ্ট্য, ভাষা নয়। প্রতিটি ভাষা সংকলক বা দোভাষী ব্যবহার করে প্রয়োগ করা যেতে পারে। বেশিরভাগ ভাষায় আজ উভয়ই ব্যাখ্যা এবং সংকলন বাস্তবায়ন হয়েছে। সি এর জন্য দোভাষী এবং সমস্ত বড় জাভাস্ক্রিপ্ট বাস্তবায়ন স্থানীয় কোডের সাথে সংকলিত হয়। এবং যাইহোক দেশীয় কোড কি? আমি যদি জাভা কে জেভিএম বাইটকোডে সংকলন করে চালিত করি
Jörg W Mittag

11
এটি একটি জাভা সিপিইউতে, এবং আমি সিটি এআরএম মেশিন কোডে সংকলন করি এবং এটি একটি এআরএম ইন্টারপ্রেটারে চালিত করি কারণ আমার পিসিতে একটি এআরএম সিপিইউ নেই, তবে কী আর্ম নেটিভ এবং জেভিএমএলকে নয়?
Jörg W Mittag

5
@ জার্গডব্লিউমিত্যাগ: আপনার যদি এমন একটি সিপিইউ থাকে যা সরাসরি জাভা বাইটকোড চালাতে পারে (কোনও অতিরিক্ত জেভিএম ব্যবহার না করে), তবে জাভা বাইটকোড সেই সিপিইউর জন্য স্থানীয় কোড। এছাড়াও, কোনও ভাষায় কোনও ওএস লেখার সম্ভাবনা আমি অস্বীকার করি না যা সাধারণত কোনও ভিএম-তে ব্যাখ্যা করা হয় বা সম্পাদিত হয়, তবে এটি তাদের কম সুস্পষ্ট পছন্দ করে না।
বার্ট ভ্যান ইনজেন শেেনা

15
@ জার্গডব্লিউমিত্যাগ - আমি সম্মত হই যে যে কোনও ভাষা সংকলিত বা ব্যাখ্যা করা যায় (বাশ স্ক্রিপ্টটি সংকলন করুন; ইন্টারপ্রিটেড সি ++ (সিআইএনটি / ক্লিং) ব্যবহার করুন), তবে ভাষা নকশায় অনেক সিদ্ধান্তের ভিত্তিতে এটি ব্যাখ্যা করা, সংকলন করা বা উভয়ই করা যেতে পারে। এমন একটি ভাষা যা আপনাকে স্ট্যাটিকালি-টাইপড ভেরিয়েবলগুলি ম্যানুয়ালি ঘোষণা / আরম্ভ করতে দেয়, ম্যানুয়ালি বরাদ্দ করে / বিনামূল্যে মেমোরি দেয়, পয়েন্টার পাটিগণিত করে, অ্যারে সীমা পরীক্ষা করা মনে রাখবেন কোনও দোভাষীগুলিতে কম সুবিধাজনক হবে (বনাম কোনও ভাষা যা ময়লা-আবর্জনা সংগ্রহ করে, গতিশীল টাইপ, অ্যারে সীমা পরীক্ষা করে)। এই লাইনটি কি 100% স্পষ্ট? না, তবে বাস্তবে পার্থক্য রয়েছে।
ডাঃ জিম্বোব

15

এর জন্য বেশ কয়েকটি ভাল কারণ রয়েছে।

আজকের নিম্ন-স্তরের ভাষা ছিল গতকালের উচ্চ-স্তরের ভাষা

হ্যাঁ, এটি বিশ্বাস করুন বা না, একসময় এমনকি সি-কে উচ্চ-স্তরের ভাষা হিসাবে দেখা হত। এমনকি 20 বছর আগে এটি "মধ্য-স্তরের" ভাষা হিসাবে বর্ণিত দেখার পক্ষে যথেষ্ট সাধারণ ছিল। এটি আজকের মতো ওও জনপ্রিয় হওয়ার আগে এমন একটি সময় ছিল, জাভাটির অস্তিত্ব ছিল না, সি # উপস্থিত ছিল না, এমনকি সি ++ এখনও সঠিকভাবে মানক করা হয়নি।

.তিহাসিক জড়তা

আজ আপনি যে অপারেটিং সিস্টেমগুলি ব্যবহার করেন সেগুলির ইতিহাসের গভীর গভীর। উইন্ডোজ 80 এর দশকের গোড়ার দিকে / মাঝামাঝি ফিরে যায়, ইউনিক্স 70 / এর দশকের প্রথম দিকে ফিরে যায়। অপারেটিং সিস্টেমগুলিতে প্রচুর পুরানো, কার্যকরী কোড রয়েছে এবং আপনি সাধারণত পুরানো, কার্যকরী কোডটি আবার লিখতে চান না।

এক পর্যায়ে আপনাকে হার্ডওয়ারে নামতে হবে

এটি কার্নেলে ঘটে, ড্রাইভারদের মধ্যে এটি ঘটে, এটি মেমরি পরিচালনার সাবসিস্টেমগুলিতে ঘটে, এটি ফাইল সিস্টেমে ঘটে। অবশ্যই আপনি এটির উপরে একটি উচ্চ-স্তরের ভাষা স্তর তৈরি করতে পারেন তবে নিম্ন-স্তরের ভাষা যে প্রস্তাবিত হার্ডওয়্যারটি উপলব্ধ রয়েছে তার মধ্যে আপনাকে আরও সরাসরি অ্যাক্সেসের দক্ষতা প্রয়োজন।

পোর্টেবিলিটি

আমি বোঝাতে চাই না যে বিভিন্ন হার্ডওয়্যার বা একটি ভিন্ন ওএসের বহনযোগ্যতা আজকের দিনে এটি আরও বেশি বোঝা যায়; এটি আরও সূক্ষ্ম। কোনও কিছুর জন্য সি-ভিত্তিক ইন্টারফেস সরবরাহ করার একটি বড় সুবিধা রয়েছে এবং এটি হ'ল সত্য যে সমস্ত ভার্চুয়াল ভাষা বিদ্যমান যা সি এর সাথে লিঙ্ক করতে পারে এমনকি উইন্ডোজ এপিআই এখনও এই কারণেই এখনও সি-ভিত্তিক এপিআই রয়েছে।

ব্যাক্তিগত পক্ষপাত

কিছু লোক কেবল এইভাবে প্রোগ্রাম করতে পছন্দ করেন এবং এটি একটি বড় কারণ হতে পারে। উদাহরণস্বরূপ, লিনাস টোরভাল্ডসের সি ++ এর বিরুদ্ধে একটি বিখ্যাত বাচ্চা রয়েছে যা এটি স্পষ্ট করে তোলে যে তিনি যতটা উদ্বিগ্ন, এই ধরণের কাজের জন্য সি সর্বদা তার পছন্দের হাতিয়ার হয়ে উঠবে (অভিজাতের বিষয়বস্তু এবং আপনি এতে সম্মত হন বা না হন) এই আলোচনার সাথে অপ্রাসঙ্গিক; রেন্টের উপস্থিতিটি যথেষ্ট)।

একসাথে নেওয়া গেলে এগুলি পরিষ্কারভাবে প্রমাণ করা উচিত যে কেন একটি অপারেটিং সিস্টেম মূলত পুরানো দিনগুলিতে সি-এর মতো কিছুতে রচিত হয়েছিল এবং কেন এটির খুব উল্লেখযোগ্য অংশ - আজও - তাই রয়ে গেছে।


13

অপারেটিং সিস্টেমগুলির জন্য সিটির আধিপত্যের একটি প্রধান কারণ ইতিহাসে রয়েছে - উইন্ডোজের মতো বর্তমান মূলধারার অপারেটিং সিস্টেম এবং ইউনিক্সের সমস্ত ধরণের (বিএসডি, সোলারিস, এইচপি-ইউএক্স, ম্যাকস এক্স, ... পাশাপাশি লিনাক্সের মতো ক্লোন) ফিরে যায় দীর্ঘ সময়, ওও এবং অন্যান্য "উচ্চ স্তরের" কনস্ট্রাক্টস মূলধারার হয়ে ওঠার আগে।

পারফরম্যান্সের পাশাপাশি অপারেটিং সিস্টেমের মূল জন্য হার্ডওয়্যার নির্দেশাবলী সম্পর্কে খুব সুনির্দিষ্ট প্রয়োজন এবং মেমরির উপর সম্পূর্ণ নিয়ন্ত্রণ প্রয়োজন যা সি এর মতো ভাষা খুব ভাল করে।

এম্বেড থাকা সিস্টেমগুলির জন্য কখনও কখনও সিস্টেমের বৃহত অংশগুলির জন্য উচ্চ স্তরের ভাষা ব্যবহার করে অপারেটিং সিস্টেম থাকে। একটি উল্লেখযোগ্য উদাহরণ সূর্যের দ্বারা জাওওএস

বিস্তৃত অপারেটিং সিস্টেমের ক্ষেত্রে সি ব্যবহার না করার একটি উল্লেখযোগ্য উদাহরণ হ'ল ম্যাকওএস এক্স-এর আগে ক্লাসিক ম্যাকওএস - এটি প্যাসকালের একটি উপভাষায় লিখিত বড় অংশে ছিল যা কিছু অবজেক্টের অভিমুখীকরণের অনুমতি দেয়।


12

প্রথমত, কিছু বুটস্ট্র্যাপ সমস্যা রয়েছে। উচ্চ স্তরের ভাষাগুলি সহজ করার বৈশিষ্ট্যগুলির বেশিরভাগগুলি বিমূর্ততাগুলির উপর ভিত্তি করে যে কোনও কার্নেলকে অবশ্যই সরবরাহ করতে হবে। আপনি কোনও ভাষায় মেমরি পরিচালককে কীভাবে লিখবেন যার জন্য মেমরি পরিচালকের প্রয়োজন? আপনার ভাষার দুর্দান্ত I / O স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার না করে আপনি কীভাবে I / O ড্রাইভার লিখবেন? ভাষার লাইব্রেরি ব্যবহার না করে আপনি থ্রেডিং এবং সিঙ্ক্রোনাইজেশন আদিম কীভাবে তৈরি করবেন?

দ্বিতীয়ত, অপারেটিং সিস্টেমগুলি নির্দিষ্ট মেমরির স্থানে একটি ভেরিয়েবল বরাদ্দ করতে সক্ষম হবার সময় এটি অত্যন্ত দরকারী এবং আরও বেশি পাঠযোগ্য। এটি সি তে সহজ, এবং প্রতিটি সি প্রোগ্রামার এটি করতে কী করে তা জানে। এটি যদি উচ্চ স্তরের ভাষাগুলিতে এমনকি সম্ভব হয় তবে এটি এত বিরল যে কেবল গুরুরা কীভাবে এটি করতে জানেন।

অন্য কথায়, আপনি যখন সমস্ত সীমাবদ্ধতা এবং সংশোধনগুলির জন্য অ্যাকাউন্ট গ্রহণ করেন তখন আপনাকে গ্রহণ করতে হবে, সি এবং সি ++ অনেক সহজ দেখায় শুরু করে।


2
আপনার প্রথম অনুচ্ছেদটি কোনও অর্থহীন নয়। সি-তে কোনও আই / ও ড্রাইভারও ব্যবহার করে না stdio.h। একটি কাস্টম মুটেক্স বাস্তবায়ন পাইথ্রেড ব্যবহার করে না। এটিকে নিজে প্রয়োগ করার অর্থ হ'ল এটিই! এবং আপনি যে ভাষাটি ব্যবহার করছেন তা থেকে এটি স্বাধীন। এটি উচ্চ স্তরের ভাষাগুলি নিম্ন স্তরের কাজের জন্য ভাল পছন্দ (এটি সাধারণত আমার অভিজ্ঞতায় হয় না) বলার অপেক্ষা রাখে না।

আমি এটার ব্যাপারে অবগত. আমি কেবল এটিই ইঙ্গিত করছি যে নিম্ন স্তরের ভাষা থেকে একটি উচ্চ স্তরের যেটি আলাদা করে তার অনেকগুলি ভাষার সেই অংশগুলিতে যা কার্নেল বিকাশে অনুপলব্ধ। আপনি যখন ভাষাগুলির সাথে কোরের সাথে তুলনা করেন, সি আর তেমন স্পার্টান লাগে না।
কার্ল বিলেফেল্ড

বেশ সত্য নয়। আপনাকে এক্স কোড প্রয়োগ করতে X ব্যবহার না করে এমন কিছু কোডের দরকার পরে , সমস্ত অবশিষ্ট কোড সেই কোডের উপর নির্ভর করে এবং এক্স ব্যবহার করতে পারে

এটা একটা ভাল দিক.
কার্ল বিলেফেল্ট

6

প্রথমত, বুটস্ট্র্যাপিংয়ের জন্য কমপক্ষে একটি ছোট অংশ বিধানসভা বা সমতুল্য লেখা উচিত।

দ্বিতীয়ত, একটি অপ্রয়োজনীয় এইচএলএল - লিস্প মেশিনে একটি ওএস লেখা ছিল । (এটি যে বাণিজ্যিকভাবে ব্যর্থ হয়েছিল তা অন্যান্য হার্ডওয়্যারগুলির তুলনায় আরও দ্রুত সাশ্রয়ী হওয়ার সাথে আরও জড়িত ছিল এবং এর দর্শন বা ডিজাইনের ঘাটতির চেয়ে ওয়ার্সের বিজয়ই ভাল )।

তৃতীয়ত, সি ++ হ'ল বেশ বস্তু-ভিত্তিক এবং উচ্চ স্তরের, সুতরাং অন্যরা যেমন উল্লেখ করেছেন, সিম্বিয়ান ওএস এটির আরও একটি উদাহরণ।

চতুর্থত, এই মুহুর্তে নতুন ওএসের প্রয়োজন নেই। আমাদের কাছে ইতিমধ্যে বেশ কয়েকটি লিনাক্স এবং বিএসডি স্বাদ রয়েছে যা কোনও হার্ডওয়্যার সম্পর্কে চালিত হয় এবং স্ক্র্যাচ থেকে একেবারে নতুন ওএস তৈরি করা বেশ ব্যয়বহুল।


আপনি বুড়ো বি 5000 মেইনফ্রেমগুলি মিস করেছেন। তাদের অপারেটিং সিস্টেমটি বুড়ো এক্সটেন্ডেড ALGOL এ লেখা হয়েছিল।
জন আর স্ট্রোহম

1
there is little need for new OSes at this timeএটি এখনও সত্য কিনা না আমি এখনও নিজেকে স্থির করে নিই না .. হ্যাঁ, আধুনিক ওএস (আধুনিক উইন্ডোজ (এনটি) / আধুনিক ইউনিক্স) আমাদের প্রয়োজনীয়, কার্যকারিতা এবং কর্মক্ষমতা অনুযায়ী জ্ঞানসম্পন্ন। তবে সবেমাত্র: তারা অন্য একটি অঞ্চলে জন্মগ্রহণ করেছে যেখানে "নেট "টি কর্পোরেট / বিশ্ববিদ্যালয় ছিল এবং ব্যবহারকারীরা আস্থা রাখে এবং মাল্টিপ্রোক ছিল 2/4 প্রসেসর। এগুলি "ডিগ্রিযুক্ত" হয়ে থাকে, কিছু ডিগ্রি পর্যন্ত, অতিরিক্ত পরিমাণে আস্থার দ্বারা (রুটকিটস, ম্যালওয়্যার, ভাইরাস ..)। আমি ভাবতে শুরু করি যে এখানে একটি আধুনিক, নিরাপদ, বিচ্ছিন্ন ওএসের জন্য স্থান আছে ... সমান্তরালতার জন্য আরও ভাল সমর্থন সহ (আরও ভাল থ্রেড)
লরেঞ্জো ডিমেট

পাতার মর্মর হয় নিম্ন স্তরের, CARএবং CDRহয় আইবিএম 704 ম্যাক্রো প্রতীকী ভাষান্তর ! এমনকি সি এটি অন্য কোনও ফাংশন হিসাবে বিবেচনা করার চেয়ে ইনলাইন অ্যাসেমব্লিকে পৃথক করে। লিস্পের কথা বিবেচনা করে CARএবং CDRx86, এআরএম, এবং আইএসএর উপরের একটি হোস্টের উপর কাজ করা, এটি কিছু কার্যকরভাবে বহনযোগ্য সমাবেশ। (যে কেউ আমি বিভ্রান্ত হতে পারে জন্য সাইড নোট: হ্যাঁ, পাতার মর্মর একটি উচ্চ পর্যায়ের ভাষা। CARএবং CDRহচ্ছে প্রতীকী ভাষান্তর ম্যাক্রো মাত্র একটি বাস্তবায়ন বিস্তারিত, না একটি কী বৈশিষ্ট্য ছিল;।))
8bittree

4

আমি আগে যা লিখেছিলাম তা আরও ভাল পর্যায়ে।

বুড়োস 5xxx - 6xxx মেশিনগুলির একটি সমাবেশের ভাষা ছিল না। সর্বনিম্ন উপলব্ধ ভাষাটি ছিল আলগোলের একটি এক্সটেনশন। আলগোল হার্ডওয়্যারে প্রয়োগ করা হয়েছিল। ওএস এবং সমস্ত ভাষা আলগোলে লেখা হয়েছিল। এটি সে সময়ের সমস্ত প্রতিযোগী মেশিনকে ছাড়িয়েছিল। এটির জন্য উল্লেখযোগ্যভাবে কম কোডও প্রয়োজন যা এটি বজায় রাখা আরও সহজ করে তুলেছে। এটিতে স্ট্যাক হার্ডওয়্যার ছিল যা একটি পুনরাবৃত্ত ভাষাকে যেমন একটি আলগোলকে সমর্থন করে।

বুড়ো অপারেটিং সিস্টেম এমসিপি নামে একটি সংস্করণে বিকশিত হয়েছিল। এমসিপি বর্তমানে ইউনিসিস সিস্টেমে চলছে।


3

আপনি যে উচ্চ স্তরের ভাষাগুলির উল্লেখ করেছেন তার বেশিরভাগেরই এমন বৈশিষ্ট্য রয়েছে যা অপারেটিং সিস্টেমগুলির সাথে ভাল মানায় না: স্বয়ংক্রিয় মেমরি পরিচালনা। রিয়েল-টাইম সিস্টেম লেখার সময় আপনি কোনও আবর্জনা সংগ্রাহকের উপর নির্ভর করতে পারবেন না - হয় নরম (যা কোনও অপারেটিং সিস্টেমটি কী) বা এমনকি সবচেয়ে খারাপ। তেনেনবাউমের উদ্ধৃতি দিতে [i]:

সি-তে কিছু জিনিস অন্তর্নির্মিত স্ট্রিংস, থ্রেডস, প্যাকেজগুলি, শ্রেণিগুলি, অবজেক্টস, টাইপ সুরক্ষা এবং আবর্জনা সংগ্রহ অন্তর্ভুক্ত করে। শেষটি অপারেটিং সিস্টেমের জন্য শো স্টপার। সি সকল স্টোরেজ পারেন স্ট্যাটিক নয় অথবা স্পষ্টভাবে বরাদ্দ এবং সাধারণত লাইব্রেরি ফাংশন সঙ্গে, প্রোগ্রামার দ্বারা প্রকাশিত যদি malloc এবং বিনামূল্যে । এটি পরের সম্পত্তি - মেমরির উপরে মোট প্রোগ্রামার নিয়ন্ত্রণ - স্পষ্ট পয়েন্টারগুলির সাথে অপারেটিং সিস্টেমগুলি লেখার জন্য সি আকর্ষণীয় করে তোলে। অপারেটিং সিস্টেমগুলি মূলত কিছুটা হলেও রিয়েল-টাইম সিস্টেম, এমনকি সাধারণ উদ্দেশ্যগুলিও। যখন কোনও বাধা ঘটে তখন অপারেটিং সিস্টেমে কিছু ক্রিয়া সম্পাদন করতে বা সমালোচনামূলক তথ্য হারাতে কেবল কয়েকটি মাইক্রোসেকেন্ড থাকতে পারে। একটি যথেচ্ছ মুহুর্তে আবর্জনা সংগ্রহ লাথি মারা অসহনীয়।

এখন, আপনি তর্ক করতে পারেন যে সি ++ হ'ল একটি ভাল প্রার্থী কারণ এটি ম্যানুয়াল মেমরি পরিচালনা দেয়। সি ++ ইতিমধ্যে কিছু অপারেটিং সিস্টেমে যেমন সিম্বিয়ান ( বার্ট দ্বারা উল্লিখিত ) এবং বিওএসে ব্যবহৃত হয়েছে। তবে আইএমএইচও সি এখনও দ্রুততম ভাষা যা অনেকগুলি আর্কিটেকচারে বিশাল প্রচেষ্টা ছাড়াই (নির্দিষ্ট স্থাপত্যের সমাবেশের বিপরীতে) পোর্ট করা যায়।

[আমি]: আধুনিক অপারেটিং সিস্টেম তৃতীয় সংস্করণ, পৃষ্ঠা। 73


3
সিম্বলিক্স মেশিনগুলির স্বয়ংক্রিয় মেমরি পরিচালনা ছিল। স্মলটালক একটি অল্টোতে করেছিল। এটি ছিল ৮০ এর দশকে। একটি লিনিয়ার টাইপ সিস্টেম জিসির প্রয়োজনীয়তা পুরোপুরি সরিয়ে দেয়। এগুলি সমস্যার সমাধান, কেবল যদি আমরা তা মনে রাখতে পারি!
ফ্র্যাঙ্ক শিয়েরার

কোনও ভাষার পক্ষে স্বয়ংক্রিয় মেমরি পরিচালনা অন্তর্ভুক্ত করা সম্ভব হবে তবে একটি বিশেষ ধরণের "গভীর পিনড" রেফারেন্স অন্তর্ভুক্ত করুন এবং পদ্ধতিগুলিকে স্পষ্টভাবে ঘোষণা করার অনুমতি দিন যে তারা কোনও নন-পিনযুক্ত রেফারেন্স অ্যাক্সেস করতে পারবে না বা এমন পদ্ধতিগুলির অনুরোধ করবে না যে এটি করতে পারে। জিসি দ্বারা সংশোধিত হতে পারে এমন কোনও বস্তু অ্যাক্সেস করছে না এমন পদ্ধতিতে কোড চলমান কোডের সাথে হস্তক্ষেপ করার জন্য বিশ্বব্যাপী আবর্জনা সংগ্রহকারীদের প্রয়োজন হবে না।
সুপারক্যাট

2

অন্যরা যেমন উল্লেখ করেছে, বেশ কয়েকটি অপারেটিং সিস্টেম উচ্চ স্তরের ভাষায় লেখা হয়েছে। সম্ভবত আপনি যা বলতে চাইছেন তা হল সমস্ত সফল, ভর বাজার, সাধারণ উদ্দেশ্য ওএস কোনও কোনও সমাবেশ, সি এবং সি ++ এর সংমিশ্রণে রচিত হয়েছে?

বেশিরভাগ উচ্চ স্তরের ভাষাগুলিতে প্রচুর সহায়ক বৈশিষ্ট্য রয়েছে যা সম্পর্কিত কার্য সম্পাদন ব্যয় বহন করে। অটোমেটেড মেমরি ম্যানেজমেন্ট একটি সুস্পষ্ট উদাহরণ, অ্যারেগুলির সীমা পরীক্ষা করা অন্য একটি another আপনি যদি কোনও সাধারণ উদ্দেশ্য ওএস লিখছেন তবে আপনি সম্ভবত এমন পরিস্থিতিতে চলে যাবেন যেখানে এই সহায়ক বৈশিষ্ট্যগুলির পারফরম্যান্স জরিমানা আপনাকে দিতে ইচ্ছুক নয় more এই মুহুর্তে আপনি সেগুলি বন্ধ করতে সক্ষম হতে চাই। পাইথন, সি #, এবং জাভা এর মতো ভাষা আলাদা হয় যার বৈশিষ্ট্যগুলি আপনি বন্ধ করতে পারেন তবে এগুলির কোনওটিই সি বা সি ++ এর মতো বহুমুখী নয়।

এই দিকটিতে সি এবং সি ++ খাঁটি সমাবেশের মতো প্রায় বহুমুখী। আপনি যদি স্থির করেন যে আপনার দশটি বিভিন্ন মেমোরি পরিচালক দরকার যা দশটি ভিন্ন মেমরি বরাদ্দের পরিস্থিতিগুলি কভার করে তবে আপনি সেগুলি সমস্ত সি এবং সি ++ এ বাস্তবায়ন করতে পারেন এবং আপনি যখন উপযুক্ত দেখবেন তেমন লোড এবং আনলোড করুন। হেক, আপনি না চাইলে আপনাকে স্ট্যান্ডার্ড সি রানটাইম লাইব্রেরি বা স্টার্টআপ কোডের সাথেও লিঙ্ক করতে হবে না।


0

আসল উত্তর হ'ল মানি । একটি তৈরির জন্য সংস্থান ব্যয়কে ন্যায়সঙ্গত করতে এবং তারপরে এটিকে মূলধারার দিকে ঠেলে উচ্চ স্তরের ভাষার ওএসের পর্যাপ্ত ধারণা পাওয়া যায়নি উদাহরণস্বরূপ, প্রতিটি হার্ডওয়ারকে সমর্থন করার জন্য একটি নতুন ড্রাইভার তৈরিতে প্রচুর ব্যয় জড়িত।

ওবারন এবং সিঙ্গুলারিটির মতো গবেষণার প্রাথমিক উদ্দেশ্য সহ উচ্চ স্তরের ভাষায় রচিত বিভিন্ন ওএস রয়েছে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.