Unix.stackexchange.com এ আপনাকে স্বাগতম!
আপনার প্রশ্নের কোন সহজ উত্তর, এবং এ পর্যন্ত আমার চেয়ে ভাল মানুষ সাধারণভাবে লিনাক্স কার্নেল বিষয় সমগ্র বই এবং অপারেটিং সিস্টেম লিখেছেন।
প্রকল্পের ক্ষেত্র সম্পর্কে: একটি অপারেটিং সিস্টেম লেখা সহজ কাজ নয়! এমনকি মিনিক্সের মতো উদ্দেশ্যমূলকভাবে ন্যূনতম ওএসও বেশ জটিল জিনিস! আপনাকে লিনাক্স সম্পর্কে ধারণা দেওয়ার জন্য, আপনি এখন পর্যন্ত যে সি প্রোগ্রাম লিখেছেন সেগুলি সম্পর্কে ভাবুন। গড় বিশ্ববিদ্যালয় কোর্সভার সর্বাধিক কয়েক হাজার লাইনের সি থাকে। আমি মনে করি আমার চূড়ান্ত বছরের প্রকল্পটি সি ++ এর প্রায় 30-35,000 লাইনের ছিল। লিনাক্স কার্নেলটি প্রায় 13,000,000 সি কোডের লাইন।
কেন এটি সব পৃথক ফাইল আছে? যৌক্তিক এবং ব্যবহারিক কারণে মাপযোগ্য প্রকল্পগুলি পৃথক ফাইলে সংরক্ষণ করা হয়। একটি সম্পাদক হিসাবে 13,000,000 লাইন ফাইল লোড করার কথা বিবেচনা করুন! লিনাক্সের মতো বিশাল প্রকল্পটি মোকাবেলার আগে আপনার সি দক্ষতা অবশ্যই সেই বিন্দুতে তৈরি করতে হবে যেখানে 'একাধিক ফাইল' প্রশ্ন নিজেই উত্তর দেয়। আপনার কেবল সি কোডটি পড়তে সক্ষম হওয়া উচিত , এটি কেবল লিখে নাও। (এটি প্রথমে মনে হয় তার চেয়ে শক্ত)
আপনার অবশ্যই সি তে খুব দক্ষ হতে হবে কার্নেলটি হাজার হাজার লোক দ্বারা রক্ষণাবেক্ষণ করা হবে এবং তাদের প্রত্যেকের ব্যক্তিগত সি আইডিয়ামগুলি বোঝার জন্য আপনাকে ডাকা হবে (অনুমোদিত, মোটামুটি অনমনীয় কার্নেল কোডিং মানগুলির মধ্যে রয়েছে তবে এখনও - প্রত্যেকেরই রয়েছে তাদের নিজস্ব সমস্যা সমাধানের শৈলী)।
আপনি আপনার সি ফু পাওয়ার পরে, অপারেটিং সিস্টেমগুলি বুঝতে পেরেছেন তা নিশ্চিত করুন। এটি আপনাকে কোডটি বুঝতে সহায়তা করবে। সমস্ত লিনাক্স অপরিহার্য নয়। কর্নেলটি বেশ ছোট! এটি কি ফুলে যায়:
- বিভিন্ন ডিভাইসের জন্য হাজার হাজার হার্ডওয়্যার ড্রাইভার।
- বিভিন্ন ডিভাইস ক্লাসের জন্য বিমূর্ততা স্তরগুলি API এবং ড্রাইভার লিখনকে সহজ করার জন্য। উদাহরণস্বরূপ, আমাদের কাছে ফাইল সিস্টেমগুলির জন্য ভিএফএস, ইনপুট ডিভাইসের ইভেন্ট ইভেন্ট এবং এটি সিটিএর রয়েছে।
- শর্তসাপেক্ষে সংকলিত কোড এবং ফাইলগুলি লিনাক্স চালিত বিভিন্ন আর্কিটেকচারের জন্য ফাইল সরবরাহ করে (প্রতিটি লিনাক্স মেশিনই একটি ইন্টেল পিসি নয়, এবং কিছু আপনার প্রত্যাশার চেয়ে অবিশ্বাস্যভাবে পৃথক)। কার্নেলকে এই পার্থক্যগুলি মোকাবেলা করতে হবে এবং এর অর্থ আরও কোড।
আপনি যে সমস্যাটি তত্ক্ষণাত্ খুঁজে পাবেন তা হ'ল এই উপাদানগুলি আনপ্লাগ করা, পরিবর্তন এবং আবার একসাথে ফিরে প্লাগ করা এত সহজ নয়। রয়েছে অসংখ্য আন্তঃসম্পর্ক। সংক্ষেপে, কার্নেলের বিট পরিবর্তন করা জটিল।
লোকেরা আপনাকে মিনিক্সের প্রস্তাব দেওয়ার কারণটি সহজ: এটি একটি সম্পূর্ণ অপারেটিং সিস্টেম, তবে এটি লিনাক্সের মতো জটিল সিস্টেমের প্রয়োজনের দ্বারা বোঝা হয় না। কোডটি ছোট, তবে এখনও সম্পূর্ণ কার্যকারিতা সরবরাহ করে। সর্বোপরি লিনাক্সের প্রথম সংস্করণগুলি মিনিক্স দ্বারা অনুপ্রাণিত হয়েছিল।
অবশ্যই, আজকাল মিনিক্সের হার্ডওয়্যার সমর্থন কম রয়েছে। তাতে কি? এটাই একটা বর! আধুনিক কম্পিউটারগুলির ভার্চুয়ালাইজেশন খুব ভাল। এটি আপনার সুবিধার জন্য ব্যবহার করুন: মিনিক্স চালানোর জন্য কোনও ভিএম খুব হালকা, এটি বিকাশকে ডাবল করে দেবে।
যদি আপনার প্রকল্পটি কোনও অপারেটিং সিস্টেম তৈরি করতে হয়, আপনি মিনিক্স অধ্যয়ন করে শুরু করার চেয়ে খারাপ করতে পারেন। আপনি মিনিক্স বইটি কিনে এবং পড়তে চাইতে পারেন, সাথে লেখার জন্য লেখা হয়েছিল, ' অ্যান্ড্রু টানেনবাউমের আধুনিক অপারেটিং সিস্টেমস '।
আপনার লক্ষ্য নির্ধারণ করা উচিত এবং আপনার শর্তাদি যথাযথভাবে সংজ্ঞায়িত করা উচিত । যদি কোনও ওএসের নিজস্ব সংজ্ঞাটি মাইক্রোসফ্টের (একটি জিইউআই এবং একটি সম্পূর্ণ সফ্টওয়্যার স্যুটযুক্ত একটি ওএস) হয় তবে আপনি খুব দীর্ঘ প্রকল্পে যেতে পারেন! সর্বোপরি আমরা এখন কোথায় রয়েছি আমাদের আনতে 1960 এর দশক থেকে কয়েক হাজার মানুষ কাজ করেছে।
অবশেষে, কম্পিউটার সায়েন্টিস্টের যুদ্ধের কান্নার কথা স্মরণ করুন: ' চাকাটি কখনই পুনরুদ্ধার করবেন না! '(শেখার সময় অবশ্যই আমরা ব্যতিক্রম করতে চাই And এবং মজাদার জন্য :))