কিভাবে একটি লিনাক্স কার্নেল এত ছোট হতে পারে?


56

একটি সাধারণ স্থিতিশীল 3 * কার্নেল এখন প্রায় 70 এমবি। তবে সফ্টওয়্যার এবং বাক্সের বাইরে থাকা অন্যান্য স্টাফ সহ 30-10 এমবি এর সামান্য লিনাক্স বিতরণ রয়েছে।

এই ডিস্ট্রোজে লিনাক্স কার্নেলটি এত ছোট হতে পারে কীভাবে? কেবল অপ্রয়োজনীয় মডিউল এবং ড্রাইভারকে নাটকীয়ভাবে আকার হ্রাস করতে পারে? কার্নেলের আকার কমাতে আর কী করা হয়?


3
আর একটি বিকল্প হ'ল সংকলন করার সময় আকারের অপ্টিমাইজেশন ব্যবহার করা, তবে আমি নিশ্চিত না যে এটি কতটা বড় প্রভাব ফেলতে পারে।
AndrejaKo

5
"লিনাস আহ্বান লিনাক্স 'স্ফীত এবং বিপুল'" theregister.co.uk/2009/09/22/linus_torvalds_linux_bloated_huge
আকি

1
@ আন্দ্রেজাওকো - প্রচুর। (আপনি যদি ছোট আকারের জন্য যান))
অ্যাপাচি

19
70 এমবি হ'ল উত্সের আকার। একটি স্ট্যান্ডার্ড সংকলিত এবং সংক্রামিত কার্নেল প্রায় 2 এমবি, 10 এমবি এর মতো মডিউল।
অট--

1
হ্যাঁ, প্রকৃতপক্ষে, এটির 3.6 এমবি যখন আমার ডিস্ট্রোতে 21 মিমি থাকে
বিস্মিত tux

উত্তর:


37

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

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

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

ছোট কার্নেল সহ ডিস্ট্রোস:


কেবলমাত্র একটি সামান্য সংযোজন - [এক্স] এর অর্থ এটি কার্নেলের মধ্যে সংকলিত হবে , সুতরাং কেন এটি সর্বদা লোড হয়।
লরেন্স

"newbies আশা" একটি পেশাদার কম্পিউটার প্রযুক্তি এবং 20 বছরের লিনাক্স অভিজ্ঞ হিসাবে কথা বলতে ... আমি আশা করি জিনিসগুলি কেবলমাত্র কাজ করবে।
ক্লিফ আর্মস্ট্রং

20

টমস রুট-বুট , মুলিনাক্স , ডায়েট-রাউটার , (এখন অবনমিত ) এলওএএফ এবং আরও অনেকের মতো প্রারম্ভিক লিনাক্স ডিস্ট্রিবিউশনগুলি এখন সমস্ত চলমান লিনাক্স সিস্টেমে এক বা দুটি 1.44 মেগাবাইট ডিস্কে ফিট করে।

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

দেখুন: কার্নেল সাইজের টিউনিং গাইড - eLinux.org

আপনি যদি Linux_tiny.pdf পড়েন তবে আপনি এটি দেখতে পাবেন

  • historicতিহাসিক 0.99pl15 কার্নেল: স্ল্যাকওয়্যার 1.1.2, 1994 301 কে
  • ফেডোরা কোর 2 1.2 মি
  • সুস 9.1 1.5 মি
  • 2.6.5-tiny1 পরীক্ষা কনফিগারেশন: আইডিই, ext2, টিসিপি, এনআইসি 363 কে

11

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

কার্নেল মডিউলগুলি ইনস্টল করার সময়, INSTALL_MOD_STRIP=1বিকল্পটি সংযোজন করুন । এটি সমস্ত ডিবাগিং প্রতীকগুলি ছিনিয়ে নেবে এবং আমার জন্য আকারটি 92% হ্রাস করবে (892892 কেবি থেকে 69356 কেবি)) নোট করুন এটি কেবল ইনস্টল করা মডিউলগুলিকেই প্রভাবিত করবে না কার্নেল (vmlinuz) নিজেই:

make INSTALL_MOD_STRIP=1 modules_install

থেকে নথিপত্র / kbuild / kbuild.txt :

INSTALL_MOD_STRIP
--------------------------------------------------
INSTALL_MOD_STRIP, if defined, will cause modules to be
stripped after they are installed.  If INSTALL_MOD_STRIP is '1', then
the default option --strip-debug will be used.  Otherwise,
INSTALL_MOD_STRIP value will be used as the options to the strip command.

3
বাহ, 1897996 কেবি প্রায় 2 জিবি!
নেটভোপ

3

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


1

এটি বেশ সহজ, একটি ন্যূনতম সিস্টেমে বুটলোডার + কার্নেল প্রয়োজন যদিও এটি প্রায় অকেজো। প্রতিদিন ব্যবহৃত বেশিরভাগ কমান্ড হ'ল সিস্টেমের জন্য shচ্ছিক বাইনারি, যেমন শ, এলএস ইত্যাদি you একটি ভাল সূচনা পয়েন্ট।


নোট করুন যে বুজিবক্স বেশিরভাগ "দৈনন্দিন" জিনিসগুলির যত্ন নেয়।
new123456

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