ইউনিক্স / লিনাক্স সিস্টেমে কার্নেলটি পরিবর্তন করা সম্ভব?


16

আমি জানতে চেয়েছিলাম যে কার্নেলগুলি পরিবর্তন করা সম্ভব কিনা, উদাহরণস্বরূপ, ফেডোরার লিনাক্স কার্নেলটি ফ্রিবিএসডি এর পরিবর্তে।

এখন, ইতিমধ্যে সেখানে দেবিয়ান জিএনইউ / কেফ্রিবিএসডি উপস্থিত রয়েছে । বিএসডি কার্নেল ধারণ করার জন্য কি আমার পক্ষে লিনাক্স ডিস্ট্রো কাস্টমাইজ করা সম্ভব?


3
ম্যাকোসএক্স একটি সম্পূর্ণ পসিক্স কমপ্লায়েন্ট বিএসডি ভিত্তিক কার্নেল। এবং লিনাক্সের বিপরীতে, যা ইউনিক্স সিস্টেম নয় বলে দাবি করে, ওএসএক্স একটি ইউনিক্স সিস্টেম (এটি ইউনিক্স ট্রেডমার্কের মালিক দ্য ওপেন গ্রুপ দ্বারা প্রত্যয়িত)। আপনি ম্যাকের উপর লিনাক্স অ্যাপ্লিকেশনগুলি পরিচালনা করতে পারবেন না এবং আপনি লিনাক্সে ম্যাক অ্যাপ্লিকেশন চালাতে পারবেন না যদিও উভয়ই ইন্টেল সিপিইউতে (ভাল, প্রযুক্তিগতভাবে AMD64)
চালায়

উত্তর:


21

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

উদাহরণস্বরূপ, আপনি যদি epoll_createফ্রিবিএসডি ব্যবহার করার চেষ্টা করেন তবে প্রত্যাশার মতো জিনিসগুলি কাজ করবে না।

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


1
আমি MOOL কার্নেলটিতে আপনার মতামতটি শুনতে চাই , ইতিমধ্যে একটি OS রয়েছে যা এটি গ্রহণ করে, বোস লিনাক্স।
শ্রী হর্ষ চিলকাপতি

এটি কী ঘটেছিল তা দেখতে আকর্ষণীয় হবে তবে আমি এ সম্পর্কে বুদ্ধিমান কিছু বলার জন্য এটি যথেষ্টভাবে দেখিনি।
ব্র্যাচলে

1
সুতরাং, আপনার বক্তব্যটি কী, যদি আমি একটি জিএনইউ ব্যবহারকারীল্যান্ড ভিত্তিক বিএসডি সিস্টেম তৈরি করতে চাই তবে আমাকে বিএসডি কার্নেলের জন্য সমস্ত জিএনইউ সফ্টওয়্যারটি পুনরায় সংকলন করতে হবে। আমি কি সঠিক?
স্যুইচ করুন

1
লিনাক্স-আইএসএস ব্যবহার করে এমন কিছু যা বেশ কিছুটা হবে। কেফ্রিবিএসডি দিয়ে শুরু করা এবং সেখান থেকে যেতে আরও সহজ হতে পারে।
ব্র্যাচলে

16

ফ্রিবিএসডি একটি লিনাক্স কার্নেল ব্যবহার করে না - যেমন এর নাম অনুসারে এটি BSD কার্নেল ব্যবহার করে।

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

উদাহরণস্বরূপ, আপনি উল্লেখ করেছেন, হ্যাঁ একটি জিএনইউ বিতরণ একটি লিনাক্স কার্নেল বা BSD কার্নেলের জন্য তৈরি করা যেতে পারে। অনেক ক্ষেত্রে, #ifdefদুটির জন্য সংকলিত প্রোগ্রামগুলির মধ্যে সংকলন-সময় পার্থক্য রয়েছে (যেমন ) কার্নেলগুলি একই এবিআইয়ের বিজ্ঞাপন দিলেও। সর্বনিম্ন, সি রানটাইম লাইব্রেরির মতো নিম্ন-স্তরের গ্রন্থাগারগুলিকে আলাদা আলাদা কার্নেল এবিআই সমন্বিত করতে হবে।


সি রানটাইম লাইব্রেরি পরিবর্তনের উল্লেখের জন্য বুস্ট করুন।
জোশুয়া

2

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

সোলারিস কার্নেলটি কিছু ডিগ্রিতে এভাবে পোর্ট করা হয়েছে, ফলে ওপেনসোলারিস জিনোম পরিবেশে চলমান running

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

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