কিভাবে একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করবেন (ছবি সহ)

সুচিপত্র:

কিভাবে একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করবেন (ছবি সহ)
কিভাবে একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করবেন (ছবি সহ)

ভিডিও: কিভাবে একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করবেন (ছবি সহ)

ভিডিও: কিভাবে একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করবেন (ছবি সহ)
ভিডিও: উইন্ডোজ 8 থেকে উইন্ডোজ 7 এ কীভাবে ডাউনগ্রেড করবেন 2024, মে
Anonim

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

ধাপ

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 1
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 1

ধাপ 1. প্রথমত, প্রোগ্রামিং সম্পর্কে জানুন।

সমাবেশের ভাষা খুবই গুরুত্বপূর্ণ; এটি অত্যন্ত সুপারিশ করা হয় যে আপনি অন্য একটি পরিপূরক উচ্চ-স্তরের ভাষা যেমন সি ভাষা শিখুন।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 2
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 2

ধাপ 2. ওএস লোড করতে আপনি কোন মিডিয়া ব্যবহার করতে চান তা স্থির করুন।

এই মিডিয়া একটি সিডি ড্রাইভ, ডিভিডি ড্রাইভ, ফ্ল্যাশ ড্রাইভ, হার্ড ড্রাইভ, ফ্লপি ডিস্ক বা অন্য পিসি হতে পারে।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 3
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 3

ধাপ 3. একটি SO এর মূল ধারণাটি সংজ্ঞায়িত করুন।

উদাহরণস্বরূপ, উইন্ডোজে, মূল ধারণাটি একটি সহজেই ব্যবহারযোগ্য GUI এবং প্রচুর নিরাপত্তা।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 4
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 4

ধাপ 4. আপনার অপারেটিং সিস্টেম কোন প্রসেসর প্ল্যাটফর্ম সমর্থন করবে তা নির্ধারণ করুন।

IA-32, ARM, এবং x86_64 ব্যক্তিগত কম্পিউটারের জন্য সবচেয়ে সাধারণ প্ল্যাটফর্ম। সুতরাং, তাদের সব আপনার সেরা পছন্দ।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 5
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 5

ধাপ ৫। সিদ্ধান্ত নিন যে আপনি নিজে থেকে সবকিছু করতে পছন্দ করেন কিনা, অথবা এমন একটি কার্নেল আছে যা আপনি তৈরি করতে চান।

উদাহরণস্বরূপ, স্ক্র্যাচ থেকে লিনাক্স এমন একটি প্রকল্প যারা তাদের নিজস্ব লিনাক্স ডিস্ট্রো তৈরি করতে চায়।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 6
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 6

ধাপ 6. সিদ্ধান্ত নিন যে আপনি আপনার নিজের বুট-লোডার ব্যবহার করবেন নাকি পূর্বনির্ধারিত যেমন গ্র্যান্ড ইউনিফাইড বুটলোডার (GRUB)।

বুটলোডার নিজেই এনকোড করার জন্য হার্ডওয়্যার এবং BIOS এর ব্যাপক জ্ঞান প্রয়োজন। ফলস্বরূপ, এই পদক্ষেপটি প্রকৃত কার্নেল প্রোগ্রামিং সময়সূচিকে বাধাগ্রস্ত করতে পারে।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 7
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 7

ধাপ 7. কোন প্রোগ্রামিং ভাষা ব্যবহার করবেন তা ঠিক করুন।

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

C বা C ++ কোড থেকে একটি অপারেটিং সিস্টেম কম্পাইল করার জন্য, অবশ্যই আপনি একটি কম্পাইলার বা অন্যটি ব্যবহার করবেন। অতএব, আপনার পছন্দের C/C ++ কম্পাইলারের জন্য ব্যবহারকারী নির্দেশিকা/ম্যানুয়াল/ডকুমেন্টেশনের সাথে পরামর্শ করা একটি ভাল ধারণা, সফটওয়্যারে অন্তর্ভুক্ত বা পরিবেশকের ওয়েবসাইটে পাওয়া যায় কিনা। কম্পাইলার সম্পর্কে আপনাকে অনেক জটিল বিষয় জানতে হবে এবং C ++ ডেভেলপমেন্টের জন্য আপনাকে কম্পাইলারের ম্যানলিং স্কিম এবং এর ABI সম্পর্কে জানতে হবে। আপনি বিভিন্ন এক্সিকিউটেবল ফরম্যাট (ELF, PE, COFF, বেসিক বাইনারি, ইত্যাদি) বুঝতে পারবেন এবং বুঝতে পারবেন যে এক্সক্লুসিভ উইন্ডোজ ফরম্যাট, PE (.exe), কপিরাইট সুরক্ষিত।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 8
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 8

ধাপ 8. আপনার অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (API) সংজ্ঞায়িত করুন।

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

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 9
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 9

ধাপ 9. আপনার নকশা সম্পর্কে সিদ্ধান্ত নিন।

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

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 10
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 10

ধাপ 10. একটি দলে উন্নয়ন এবং কাজ করার কথা বিবেচনা করুন।

এই ভাবে, আরো সমস্যা সমাধান করতে কম সময় লাগে, যা সম্ভবত একটি ভাল ওএস তৈরির গতি বাড়িয়ে তুলবে।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 11
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 11

ধাপ 11. আপনার হার্ড ড্রাইভ সম্পূর্ণরূপে মুছবেন না।

মনে রাখবেন, একটি ড্রাইভ মুছে ফেললে এটির সমস্ত ডেটা অপরিবর্তনীয়ভাবে মুছে যাবে! আপনার OS সম্পূর্ণরূপে কার্যকরী না হওয়া পর্যন্ত আপনার সিস্টেমকে অন্য OS দিয়ে ডবল বুট করার জন্য GRUB বা অন্য বুট ম্যানেজার ব্যবহার করুন।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 12
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 12

ধাপ 12. ছোট শুরু করুন।

মেমরি ম্যানেজমেন্ট এবং যৌগিক কাজের মতো জিনিসগুলিতে যাওয়ার আগে পাঠ্য প্রদর্শন এবং বিরতি দেওয়ার মতো ছোট জিনিস দিয়ে শুরু করুন। এছাড়াও আপনি 32 বিট এবং 64 বিট সংস্করণ নিশ্চিত করুন।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 13
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 13

ধাপ 13. শেষ ওয়ার্কিং সোর্স কোডের ব্যাকআপ রাখুন।

SO বা ডেভেলপমেন্টের বর্তমান সংস্করণে কিছু ভুল হলে এই পদক্ষেপটি সুরক্ষা হিসাবে কার্যকর। যদি আপনার কম্পিউটার ক্র্যাশ করে এবং বুট না করে, তাহলে কাজ করার জন্য দ্বিতীয় কপি রাখা ভাল ধারণা যাতে আপনি সমস্যার সমাধান করতে পারেন।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 14
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 14

ধাপ 14. ভার্চুয়াল মেশিন দিয়ে আপনার নতুন অপারেটিং সিস্টেম পরীক্ষা করার কথা বিবেচনা করুন।

প্রতিবার আপনার কম্পিউটার রিবুট করার পরিবর্তে অথবা আপনার ডেভেলপমেন্ট কম্পিউটার থেকে আপনার পরীক্ষা মেশিনে ফাইল পাঠানোর পরে, আপনি আপনার বর্তমান OS চলাকালীন আপনার OS চালানোর জন্য একটি ভার্চুয়াল মেশিন অ্যাপ্লিকেশন ব্যবহার করতে পারেন। বর্তমান ভিএম অ্যাপ্লিকেশনগুলির মধ্যে রয়েছে: ভিএমওয়্যার (যার একটি সার্ভার পণ্যও বিনামূল্যে পাওয়া যায়), ওপেন সোর্স বিকল্প, বোচস, মাইক্রোসফ্ট ভার্চুয়াল পিসি (লিনাক্সের সাথে সামঞ্জস্যপূর্ণ নয়) এবং ওরাকল ভার্চুয়ালবক্স।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 15
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 15

ধাপ 15. "রিলিজ প্রার্থী" বা বিটা সংস্করণ চালু করুন।

এই পদক্ষেপটি ব্যবহারকারীকে আপনার অপারেটিং সিস্টেমের সম্ভাব্য সমস্যা সম্পর্কে অবহিত করতে দেবে।

একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 16
একটি কম্পিউটার অপারেটিং সিস্টেম তৈরি করুন ধাপ 16

ধাপ 16. অপারেটিং সিস্টেমটিও ব্যবহারকারী বান্ধব হতে হবে।

নিশ্চিত করুন যে আপনি ব্যবহারকারী বান্ধব বৈশিষ্ট্য যোগ করেছেন, এগুলিকে আপনার ডিজাইনের একটি অবিচ্ছেদ্য অংশ করুন।

পরামর্শ

  • সম্ভাব্য ডেডলক এবং অন্যান্য বাগের জন্য পরীক্ষা করুন। বাগ, ডেডলক এবং অন্যান্য সমস্যাগুলি আপনার অপারেটিং সিস্টেম নির্মাণ প্রকল্পকে প্রভাবিত করবে।
  • নিশ্চিত করুন যে আপনি সুরক্ষা বৈশিষ্ট্যগুলিকে সর্বোচ্চ অগ্রাধিকার হিসাবে বাস্তবায়ন করেন যদি আপনি সিস্টেমটি সঠিকভাবে চালাতে চান।
  • OSDev এবং OSDever এর মত ওয়েবসাইট ব্যবহার করুন যাতে আপনি আপনার নিজের অপারেটিং সিস্টেম বিকাশ করতে পারেন। দয়া করে মনে রাখবেন যে বেশিরভাগ উদ্দেশ্যে, OSDev.org কমিউনিটি তাদের উইকি ব্যবহার করলে, এবং ফোরামে যোগ না দিলে বেশি খুশি হবে। আপনি যদি একটি ফোরামে যোগদান করার সিদ্ধান্ত নেন, তাহলে একটি পূর্বশর্ত আছে: আপনাকে C বা C ++ এবং x86 সমাবেশ ভাষা সম্পর্কে সত্যিই জানতে হবে। আপনার সাধারণ এবং জটিল প্রোগ্রামিং ধারণাগুলি যেমন লিঙ্কযুক্ত তালিকা, সারি ইত্যাদি বোঝা উচিত। OSDev সম্প্রদায়, তার নিয়মে, স্পষ্টভাবে বলে যে তার সম্প্রদায় নতুন প্রোগ্রামারদের লালন -পালন করার জন্য তৈরি করা হয়নি।
  • যোগ দেবেন না OSDev.org ফোরামের সাথে এবং তারপর সুস্পষ্ট প্রশ্ন জিজ্ঞাসা করুন। আপনাকে কেবল গাইডটি পড়তে বলা হবে। উইকিপিডিয়া এবং যেসব যন্ত্রপাতি আপনি ব্যবহার করতে চান তার জন্য নির্দেশাবলী পড়ুন।
  • আপনি যদি একটি অপারেটিং সিস্টেম বিকাশের চেষ্টা করছেন, আপনি অবশ্যই প্রোগ্রামিংয়ের "godশ্বর" হিসাবে বিবেচিত।
  • আপনার নির্বাচিত প্রসেসর আর্কিটেকচারের জন্য আপনার প্রসেসর ম্যানুয়ালটিও পড়া উচিত ছিল; x86 (Intel), ARM, MIPS, PPC ইত্যাদি। গুগল সার্চ ("ইন্টেল ম্যানুয়াল", "এআরএম ম্যানুয়াল" ইত্যাদি) ব্যবহার করে প্রসেসর আর্কিটেকচারের জন্য ম্যানুয়াল খুঁজে পাওয়া সহজ।
  • সমস্ত উন্নয়ন কাজ সম্পন্ন হলে, সিদ্ধান্ত নিন যে আপনি কোডটি ওপেন কোড হিসাবে প্রকাশ করতে চান, নাকি কপিরাইটের মাধ্যমে।
  • শুরু করবেন না প্রোগ্রামিং শেখার জন্য একটি অপারেটিং সিস্টেম প্রকল্প। আপনি যদি C, C ++, Pascal, বা পয়েন্টার ম্যানিপুলেশন, লো-লেভেল বিট ম্যানিপুলেশন, বিট শিফটিং, ইনলাইন অ্যাসেম্বলি ল্যাঙ্গুয়েজ ইত্যাদি সহ অন্য কোন উপযুক্ত ভাষা সম্পর্কে ভিতরে এবং বাইরে না জানেন, তাহলে আপনি অপারেটিং সিস্টেমের জন্য প্রস্তুত নন উন্নয়ন।
  • SO 'প্রসারিত' করার জন্য একটি সম্পূর্ণ নতুন পার্টিশন তৈরি করা একটি ভাল বিকল্প হতে পারে।
  • যদি আপনি একটি সহজ উপায় চান, তাহলে ফিনোরা রিভিসর, কাস্টম নিম্বল এক্স, পপি রিমাস্টার, পিসি লিনাক্সস এমকে লাইভসিডি, অথবা এসইউএসই স্টুডিও এবং সুস কিউআইআই -এর মতো লিনাক্স ডিস্ট্রো বিবেচনা করুন। যাইহোক, আপনি যে অপারেটিং সিস্টেমটি তৈরি করেন সেটি সেই কোম্পানির অন্তর্গত যেটি প্রথমে পরিষেবাটি শুরু করেছিল (যদিও আপনার এটিকে অবাধে বিতরণ করার, এটি সংশোধন করার এবং GPL এর অধীনে আপনার ইচ্ছামতো চালানোর অধিকার আছে)।

সতর্কবাণী

  • আপনি দুই সপ্তাহের মধ্যে একটি সম্পূর্ণ অপারেটিং সিস্টেম পাবেন না। একটি বুটেবল SO দিয়ে শুরু করুন, তারপরে শীতল জিনিসগুলিতে যান।
  • হার্ডডিস্কে আপনার অপারেটিং সিস্টেমকে অসাবধানতাবশত লিখলে এটি সম্পূর্ণভাবে ক্ষতিগ্রস্ত হতে পারে। সতর্ক হোন.
  • যদি আপনি এমন কিছু করেন যা সুপারিশ করা হয় না, যেমন এলোমেলো I/O পোর্টে র্যান্ডম বাইট লিখুন, আপনি আপনার OS ক্র্যাশ করবেন এবং (তত্ত্বগতভাবে) আপনার হার্ডওয়্যার জ্বালিয়ে দিতে পারে।
  • অপারেটিং সিস্টেম তৈরি করা সহজ হবে এমন আশা করবেন না। অনেক জটিল পরস্পর নির্ভরতা রয়েছে। উদাহরণস্বরূপ, একাধিক প্রসেসর পরিচালনা করতে সক্ষম একটি অপারেটিং সিস্টেম তৈরি করতে, আপনার মেমোরি ম্যানেজারের অবশ্যই একটি "লকিং" প্রক্রিয়া থাকতে হবে যাতে একাধিক প্রসেসর একই সময়ে একই সম্পদে প্রবেশ করতে না পারে। এর জন্য ব্যবহৃত "লক" এর জন্য নির্ধারিত সময়সূচীর প্রয়োজন হবে যাতে শুধুমাত্র একটি প্রসেসর যে কোন সময়ে গুরুত্বপূর্ণ সম্পদ অ্যাক্সেস করতে পারে এবং অন্য সকলকে অপেক্ষা করতে হবে। আসলে, সময়সূচী মেমরি ম্যানেজারের উপস্থিতির উপর নির্ভর করে। এটি একটি মৃত শেষ নির্ভরতার একটি উদাহরণ। এই ধরনের সমস্যা সমাধানের কোন আদর্শ উপায় নেই; প্রতিটি অপারেটিং সিস্টেম প্রোগ্রামারকে তার দক্ষতা সম্পর্কে জানার জন্য যথেষ্ট দক্ষ হতে হবে বলে আশা করা হচ্ছে।

অতিরিক্ত সম্পদ

  • নির্দেশিকা: স্ক্র্যাচ থেকে লিনাক্স
  • বুটলোডার: GRUB
  • ভার্চুয়াল মেশিন অ্যাপ্লিকেশন: Bochs, VM Ware, XM ভার্চুয়াল বক্স।
  • প্রসেসর ম্যানুয়াল: ইন্টেল ম্যানুয়াল
  • SO ডেভেলপমেন্ট সাইট: OSDev, OSDever

প্রস্তাবিত: