মায়েস্ট্রো, একটি কার্নেল এবং একটি ইউনিক্স-এর মতো ওএস স্ক্র্যাচ থেকে মরিচায় লেখা

সঙ্গীতের রচয়িতা

মায়েস্ট্রো স্ক্রিনশট

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

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

এটি উল্লেখ করার কারণ হ'ল আমি সম্প্রতি একটি খবর পেয়েছি যা আমার দৃষ্টি আকর্ষণ করেছে এবং তা হল একটি প্রকল্প উপস্থাপন করা হয়েছিল যেখানে মরিচায় লেখা একটি কার্নেল তৈরি করা হয়েছে এবং যা লিনাক্সের সাথে আংশিকভাবে সামঞ্জস্যপূর্ণ।

এই প্রকল্পের নাম ড "শিক্ষক" এবং যেমন উল্লেখ করা হয়েছে, লিনাক্স কার্নেল থেকে সিস্টেম কলের একটি উপসেট বাস্তবায়ন করে মরিচা-এ লেখা একটি ইউনিক্স-সদৃশ কার্নেল মানসম্মত কাজের পরিবেশ তৈরি করার জন্য যথেষ্ট। এই হিসাবে, "মায়েস্ট্রো" প্রকল্পটি নতুন কিছু নয়, যেহেতু বিকাশকারী উল্লেখ করেছেন যে প্রকল্পটি 2018 সালে জন্মগ্রহণ করেছিল, তবে সেই সময়ে এটি সি তে লেখা ছিল এবং রাস্টের বিভিন্ন সুবিধা এবং বৈশিষ্ট্যের কারণে, প্রকল্পটি পুনরায় লেখা হয়েছিল শূন্য

প্রকল্প পৃষ্ঠায় পরিবর্তনের কারণ বর্ণনা করা হয়েছে:

সেই মুহুর্তে আমি মরিচা (এই ভাষায় আমার প্রথম প্রকল্প) এ স্যুইচ করার সিদ্ধান্ত নিয়েছিলাম, যা বিভিন্ন সুবিধার প্রতিনিধিত্ব করে:

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

কার্নেল ডেভেলপমেন্টে, বিভিন্ন কারণে ডিবাগিং খুবই কঠিন:

  • ডকুমেন্টেশন খুঁজে পাওয়া প্রায়শই কঠিন এবং BIOS বাস্তবায়নগুলি বগুড়া হতে পারে (আপনার ধারণার চেয়ে প্রায়শই)।
  • বুট করার সময়, কার্নেলের মেমরিতে সম্পূর্ণ অ্যাক্সেস থাকে এবং যেখানে এটি করা উচিত নয় তা লিখতে পারে (উদাহরণস্বরূপ তার নিজস্ব কোড)।
  • মেমরি ফাঁসের সমস্যা সমাধান করা সহজ নয়। ভ্যালগ্রিন্ডের মত টুল ব্যবহার করা যাবে না।
  • gdb QEMU এবং VMWare-এর সাথে ব্যবহার করা যেতে পারে, কিন্তু একটি ভিন্ন এমুলেটর বা ভার্চুয়াল মেশিনে চালানো হলে কার্নেল ভিন্নভাবে আচরণ করতে পারে। এছাড়াও, এই এমুলেটরগুলি gdb সমর্থন নাও করতে পারে (যেমন ভার্চুয়ালবক্স)।
  • কিউইএমইউ বা ভিএমওয়্যারে জিডিবি সমর্থন থেকে কিছু বৈশিষ্ট্য অনুপস্থিত এবং জিডিবি কখনও কখনও ক্র্যাশও হতে পারে

সম্পর্কিত প্রকল্পের বৈশিষ্ট্য, এটি দাঁড়িয়েছে যে কার্নেল একচেটিয়া এবং বর্তমানে শুধুমাত্র 86-বিট মোডে x32 সিস্টেমে সমর্থিত। কার্নেল কোড বেস প্রায় 49 হাজার লাইন কভার করে, বাস্তব হার্ডওয়্যার এবং ভার্চুয়ালাইজড পরিবেশে যেমন QEMU বা ভার্চুয়ালবক্স উভয় ক্ষেত্রেই এক্সিকিউটেবল।

"মায়েস্ট্রো" এর বর্তমান বিকাশে, 31% বাস্তবায়িত হয়েছে (135 এর মধ্যে 437) লিনাক্স সিস্টেম কলের। এই ব্যাশ এবং মুসল স্ট্যান্ডার্ড সি লাইব্রেরির উপর ভিত্তি করে একটি কনসোল পরিবেশ লোড করার জন্য যথেষ্ট। উপরন্তু, Maestro-ভিত্তিক পরিবেশ GNU coreutils স্যুট এবং যে কোনো ইউনিক্স সিস্টেম থেকে মৌলিক প্যাকেজিং থেকে কিছু ইউটিলিটি চালাতে পারে। বর্তমানে, একটি নেটওয়ার্কিং স্ট্যাক বাস্তবায়নে কাজ করা হচ্ছে এবং একটি বিকাশের জন্যও কাজ করা হচ্ছে

মধ্যে মধ্যে Maestro এর উপলব্ধ বৈশিষ্ট্য স্ট্যান্ড আউট অনুসরণ::

  • PS/2 কীবোর্ডের জন্য কন্ট্রোলার এবং টেক্সট মোড সহ টার্মিনাল এবং ANSI ক্রমগুলির জন্য আংশিক সমর্থন।
  • ভার্চুয়াল মেমরির জন্য সমর্থন সহ মেমরি বরাদ্দ সিস্টেম।
  • POSIX সংকেত সমর্থন সহ রাউন্ড-রবিন অ্যালগরিদমের উপর ভিত্তি করে টাস্ক শিডিউলার।
  • PCI ডিভাইসের সংজ্ঞা।
  • IDE/PATA কন্ট্রোলার।
  • Ext2 ফাইল সিস্টেম।
  • /tmp এবং /proc ভার্চুয়াল ফাইল সিস্টেমের জন্য সমর্থন।
  • FS, MBR এবং GPT ডিস্ক পার্টিশন মাউন্ট করার ক্ষমতা।
  • initramfs সমর্থন।
  • টাইমার এবং সুনির্দিষ্ট সময়ের জন্য RTC নিয়ামক।
  • কার্নেল মডিউল লোড করার জন্য সমর্থন।
  • ELF ফরম্যাটে এক্সিকিউটেবল ফাইল চালানোর ক্ষমতা।

জন্য প্রকল্প সম্পর্কে একটু বেশি জানতে আগ্রহী, আপনি বিস্তারিত পরীক্ষা করতে পারেন নীচের লিঙ্কে।  প্রজেক্ট কোডে আগ্রহীদের জন্য, তাদের জানা উচিত যে এটি MIT লাইসেন্সের অধীনে বিতরণ করা হয়।