কার্নেলের উত্স গাছের মধ্যে কী রয়েছে? এটি কি লিনাক্স কার্নেলের শিরোনামগুলির সাথে সম্পর্কিত?


25

বই, আমি সাধারণত এ লিনাক্স উত্স বৃক্ষ উল্লেখ পড়া /usr/src/linuxসাবডিরেক্টরি স্বাভাবিক সেট দিয়ে ( arch, block, crypto, ...)।

আমি আশা করছিলাম যে এই গাছটি বাইনারি ফাইলগুলি কার্নেল তৈরি করে রাখবে। আমার সিস্টেমে (উবুন্টু 10.04) ...

  1. আমার কাছে থাকা বিভিন্ন কার্নেলের জন্য (স্বয়ংক্রিয়ভাবে সফ্টওয়্যার ডাউনলোডগুলি ব্যবহার করে, ম্যানুয়ালি ইনস্টল করা হয়নি), আমি এই স্থানে প্রতিটি কর্নেলের জন্য দুটি উপ-ডিরেক্টরি নিম্নলিখিত জায়গায় পেয়েছি:

    /usr/src/linux-headers-2.6.32-22
    /usr/src/linux-headers-2.6.32-22-generic
    
  2. সাব ডিরেক্টরিগুলিতে আমি অন্যদের মধ্যে বাইনারি ফাইলগুলি প্রত্যাশা করেছিলাম। যাইহোক, আমি গাছের মোটামুটি পরিমাণ পরীক্ষা করেছি এবং এখান থেকে শেষ উপ-ডিরেক্টরিতে সর্বদা একটি মনে হয় Makefile(এটি পড়ার সময় এটি সাধারণত একটি কনফিগারেশন ফাইলের মতো মনে হয় তবে একটি ইনস্টল ফাইলের মতো), এবং মাঝে মাঝে কয়েকটি বিচ্ছিন্ন অন্যান্য ফাইলও থাকে (বেশিরভাগ Kconfig)

আমার প্রশ্নটি নির্বোধ হতে পারে তবে আমি কিছুটা বিভ্রান্ত। (2) কার্নেল উত্স ট্রিতে আমার কী দেখার আশা করা উচিত; এবং কেন আমার 'শিরোনাম' এর স্পষ্ট উল্লেখ রয়েছে? আমি linux-generic-headersঅন্য কিছু সফ্টওয়্যারটির জন্য কিছুক্ষণ আগে ইনস্টল করা দরকার এবং এটি সম্পর্কিত কিনা তা সম্পর্কে আমি নিশ্চিত নই। আমি বুঝতে পেরেছি যে মেকফিলগুলি (উদাহরণস্বরূপ, / ড্রাইভার সাব-ডিরেক্টরিতে মডিউল ইনস্টল করার) জন্য যুক্তিসঙ্গত কারণ রয়েছে তবে (কেবল বেশ) কেবলমাত্র মেকফাইলগুলিই রয়েছে?

উত্তর:


30

ডিস্ট্রিবিউশন kernel-headerপ্যাকেজগুলিতে তাদের নাম অনুসারে কেবল কার্নেল শিরোনাম ফাইল (প্লাস প্রয়োজনীয় প্লাম্বিং) থাকে যা কার্নেল মডিউলগুলির মতো সফ্টওয়্যার তৈরি করতে প্রয়োজনীয়।

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

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

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

ইনস্টল করা কার্নেল বাইনারিগুলি সাধারণত /bootবুটলোডার বাইনারি এবং কনফিগারেশন ফাইল সহ ডিরেক্টরিতে ইনস্টল করা থাকে । (এটি কখনও কখনও একটি স্বতন্ত্র ফাইল সিস্টেম যা ডিফল্টরূপে মাউন্ট হয় না)) ফাইলগুলির সঠিক নাম কার্নেল এবং বিতরণের উপর নির্ভর করে। (বুটলোডারও তাই করে))

ইনস্টল করা কার্নেল মডিউলগুলি এর সাব-ডিরেক্টরিতে থাকে:

/lib/modules/`uname -r`/

সুতরাং আমার সিস্টেমে উদাহরণস্বরূপ, তারা বর্তমানে রয়েছে

/lib/modules/3.1.4-gentoo/

সম্পূর্ণ কার্নেল উত্স কোড : উবুন্টুতে, আপনি যদি নিজেই কার্নেল তৈরির জন্য সম্পূর্ণ কার্নেল উত্স চান তবে আপনার এখানে নির্দেশাবলীর অনুসরণ করে ইনস্টল করা উচিত ।

আপনি kernel.orgকোথাও একটি উত্স টারবল ডাউনলোড করতে এবং এটিকে কোথা থেকে আনপ্যাক করতে পারবেন ( আপনি যদি এই টারবালটি ব্যবহার করেন তবে উবুন্টু-ইনস্টল করা ফাইলগুলি ওভাররাইট করবেন না , আপনার ব্যক্তিগত জিনিস এবং আরপিএম দ্বারা পরিচালিত স্টাফ আলাদা রাখবেন))

/usr/src/linuxকার্নেল উত্স স্থাপনের জন্য একটি traditionalতিহ্যবাহী জায়গা, তবে কোনও কিছুই আপনাকে অন্যত্র কার্নেল উত্স স্থাপন থেকে বাধা দেয় না। এই পথটি প্রায়শই একটি ডিরেক্টরিতে কেবল একটি প্রতীকী লিঙ্ক হয়। যেমন আমার মেশিনে এটি রয়েছে:

 $ ls -l /usr/src/linux
lrwxrwxrwx 1 root root 18 Dec  7 17:03 /usr/src/linux -> linux-3.1.4-gentoo

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


এই বিস্তারিত এবং বরং সম্পূর্ণ উত্তরের জন্য আপনাকে অনেক ধন্যবাদ। এটি কিছুক্ষণের জন্য আমাকে বগল করে চলেছে। যদি আমি আমার স্বাগতকে বাড়াবাড়ি না করে থাকি এবং যদি আপনি সময়টি খুঁজে পান তবে আমি দয়া করে নিম্নলিখিত বিষয়গুলি অনুসরণ করতে পারি: (ক) আমি উপরেরটি পড়তে পারি আমার ক্ষেত্রে (স্ব-ইনস্টল করা কার্নেল নয়), কিছু (একটি) সাব ডিরেক্টরিতে (হতে পারে) কার্নেল সি এবং এসেম্ব্লার উত্স কোড থাকা উচিত। এটি কোথায় থাকবে - সম্পূর্ণ তালিকা নয়, কেবলমাত্র আমার ডিরেক্টরিগুলিতে 20 - 30 সাব-ডিরেক্টরিগুলির মধ্যে, আমি কখনই একটিকে দেখতে পাইনি? আমি কার্নেল.org থেকে কার্নেল উত্স ফাইলগুলি ডাউনলোড করেছি; আমি বলতে চাইছি আমার সিস্টেমটি আরও ভালভাবে বোঝা। (খ) ...
জিনোমেটরিউল

... সুতরাং যখন আপনি নিজের মতো কার্নেলটি ইনস্টল করবেন না তখন (সাধারণভাবে) কার্নেল বাইনারিগুলি কোথায় অবস্থিত? (গ) আপনি "শিরোনাম প্যাকেজগুলি" উল্লেখ করেন যা আমি 'লিনাক্স-জেনেরিক-শিরোনাম' হিসাবে নিয়েছি। গাছগুলি কি আমি এই প্যাকেজগুলি থেকে দেখছি? যদি হ্যাঁ, তারা ইনস্টল করার আগে উত্স গাছটি যেখানেই ছিল সেগুলি স্থানান্তরিত করে? আবার অনেক ধন্যবাদ।
gnometorule

(যদি আপনি উত্তর দেন, 'উত্তর' মন্তব্যটি ব্যবহার করুন যাতে আমি আপনার সাহায্যের জন্য আপনাকে কমপক্ষে আবারো উপকৃত করতে পারি)
জিনোমেটরুল

কিছুটা প্রসারিত হয়েছে। শিরোনাম প্যাকেজগুলি শিরোনামের জন্য। সম্পূর্ণ উত্স প্যাকেজগুলি সম্পূর্ণ উত্স কোড সরবরাহ করে। বাইনারি প্যাকেজগুলি কেবল বাইনারি সরবরাহ করে।
মাদুর

5
linux-sourceপ্রবাহিত উত্স ধারণ করে, apt-get source linux-image-$(uname -r)উবুন্টু প্যাচগুলির সাহায্যে কার্নেলের জন্য উত্স পাওয়া যায়।
লেকেনস্টেইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.