লিনাক্স কার্নেলটি নিজেই সংকলন করে আমি কী উপকার পেতে পারি? আপনার হার্ডওয়্যার এটিকে কাস্টমাইজ করে আপনি তৈরি করতে পারেন এমন কিছু দক্ষতা আছে কি?
লিনাক্স কার্নেলটি নিজেই সংকলন করে আমি কী উপকার পেতে পারি? আপনার হার্ডওয়্যার এটিকে কাস্টমাইজ করে আপনি তৈরি করতে পারেন এমন কিছু দক্ষতা আছে কি?
উত্তর:
আমার মনে, আপনার নিজের লিনাক্স কার্নেলটি সঙ্কলন করে আপনি কেবলমাত্র লাভটি হ'ল:
আপনার নিজের লিনাক্স কার্নেলটি কীভাবে সংকলন করতে হয় তা শিখুন।
এটি আরও গতি / মেমরি / এক্সএক্সএক্স যাই হোক না কেন আপনার প্রয়োজন এমন কিছু নয় । আপনার বিকাশে আপনি যে পর্যায়ে এসেছেন বলে মনে করেন সেই পদক্ষেপটি করা যদি মূল্যবান জিনিস a এই পুরো "ওপেন সোর্স" জিনিসটি কী, কার্নেলের বিভিন্ন অংশগুলি কীভাবে এবং কী সম্পর্কে রয়েছে তা যদি আপনি গভীরভাবে বুঝতে চান তবে আপনার এটিকে একবার চালিয়ে যাওয়া উচিত। যদি আপনি কেবল নিজের বুটের সময়টি 3 সেকেন্ডের মধ্যে গতি বাড়িয়ে তুলতে চান তবে ... কী কথা ... এসএসডি কিনুন। আপনি যদি কৌতূহলী হন, আপনি যদি শিখতে চান, তবে আপনার নিজের কার্নেল সংকলন করা একটি দুর্দান্ত ধারণা এবং আপনি সম্ভবত এটি থেকে অনেক কিছু পেয়ে যাবেন।
এর সাথে বলা হয়েছে, কিছু নির্দিষ্ট কারণ রয়েছে যখন আপনার নিজের কার্নেলটি সংশ্লেষ করা উপযুক্ত হবে (যেমন বেশিরভাগ লোক অন্যান্য উত্তরে নির্দেশ করেছেন)। সাধারণত এগুলি আপনার নির্দিষ্ট ফলাফলের জন্য নির্দিষ্ট প্রয়োজন থেকে উদ্ভূত হয়, উদাহরণস্বরূপ:
ইস্যুটি এই ভাবনায় নিহিত যে আপনার নিজের কার্নেল সংকলনের কিছু অভ্যন্তরীণ সুবিধা রয়েছে যখন সমস্ত কিছু ইতিমধ্যে এটির মতো কাজ করছে এবং আমি মনে করি না এটি আছে। যদিও আপনি আপনার প্রয়োজন না এমন জিনিসগুলি অক্ষম করে এবং টুইকযোগ্য জিনিসগুলি টুইটারে অগণিত সময় ব্যয় করতে পারেন, তবে সত্য যে লিনাক্স কার্নেল বেশিরভাগ ব্যবহারকারীর পরিস্থিতিতে ইতিমধ্যে বেশ ভালভাবে সুরক্ষিত (আপনার বিতরণ করে) ।
বেশিরভাগ ব্যবহারকারীর নিজস্ব কার্নেল সংকলন করার দরকার নেই, তাদের বিতরণটি তাদের জন্য এই কাজটি করেছে। সাধারণত বিতরণগুলিতে ডিস্ট্রিবিউশনটি যেভাবে কাজ করে তার কিছু অংশের সাথে একীভূত করার জন্য প্যাচগুলির একটি সেট অন্তর্ভুক্ত করা হবে, ডিভাইস ড্রাইভারের ব্যাকপোর্টগুলি এবং নতুনদের থেকে ফিক্সগুলি, তবে কার্নেলের অপ্রকাশিত সংস্করণ বা বৈশিষ্ট্য যা তারা তাদের ব্যবহারকারীদের সাথে অগ্রণী ভূমিকা পালন করছে।
আপনি যখন নিজের কার্নেলটি সঙ্কলন করেন, তখন আপনার কাছে কয়েকটি বিকল্প থাকে, আপনি একটি অফিসিয়াল লিনাস টোরভাল্ডস কার্নেল সংকলন করতে পারেন, এটিতে আপনার বিতরণ যুক্ত হওয়া কোন প্যাচ বা কাস্টমাইজেশন অন্তর্ভুক্ত হবে না (যা ভাল বা খারাপ হতে পারে) বা আপনি করতে পারেন আপনার নিজস্ব কার্নেল তৈরি করতে আপনার বিতরণ পুনর্নির্মাণের সরঞ্জামটি ব্যবহার করুন।
আপনি যে কার্নেলটি পুনর্নির্মাণ করতে চাইতে পারেন তার মধ্যে রয়েছে:
অনেক বিকাশকারী এম্বেড থাকা সিস্টেম বা সেটটপ বাক্সগুলির জন্য যেখানে তাদের বিশেষ ডিভাইস ড্রাইভারের প্রয়োজন হয় বা তাদের প্রয়োজন নেই এমন কার্যকারিতা অপসারণ করতে চান তার জন্য কার্নেলের নিজস্ব কাস্টম সংস্করণ তৈরি করতে এটি ব্যবহার করে।
bisect
বাগটি কোথায় যুক্ত হয়েছিল তা সন্ধান করা উচিত ...
কার্নেলটি নিজেই সংকলন করার মাধ্যমে আপনাকে কেবলমাত্র আপনার কম্পিউটারের সাথে সম্পর্কিত অংশগুলি অন্তর্ভুক্ত করতে পারবেন যা এটি ছোট এবং সম্ভাব্য দ্রুততর করে তোলে, বিশেষত বুট করার সময়। জেনেরিক কার্নেলগুলিকে যথাসম্ভব হার্ডওয়ারের জন্য সমর্থন অন্তর্ভুক্ত করা উচিত; বুট করার সময় তারা সনাক্ত করে যে কোন হার্ডওয়্যারটি আপনার কম্পিউটারের সাথে সংযুক্ত রয়েছে এবং উপযুক্ত মডিউলগুলি লোড করে, তবে এটি সমস্ত কিছু করতে সময় লাগে এবং তাদের কোডটি সরাসরি কার্নেলের মধ্যে বেকড না করে গতিশীল মডিউলগুলি লোড করা দরকার। আপনার কম্পিউটারে কেবল একটি মাত্র যখন রয়েছে তখন আপনার কার্নেলকে 400 টি আলাদা সিপিইউ সমর্থন করার কোনও কারণ নেই বা ব্লুটুথ ইঁদুরগুলিকে সমর্থন করার জন্য যদি আপনার কাছে এটি না থাকে তবে এটি সমস্ত স্থান নষ্ট করে আপনি মুক্ত করতে পারেন
আমি বিশ্বাস করতে পারি না গৃহীত উত্তরটি এখানে বলে শুরু করে "আরও গতি / মেমরি / এক্সএক্সএক্স যাই হোক না কেন এটির জন্য আপনাকে কিছু করা দরকার" "
এটি সম্পূর্ণ মিথ্যা। আমি নিয়মিতভাবে আমার কার্নেলগুলি দু'টি অপ্রয়োজনীয় কোড মুছে ফেলার পাশাপাশি বেশিরভাগ হার্ডওয়্যার সম্পর্কিত পারফরম্যান্স বর্ধনকারী কোড সহ কাস্টম তৈরি করি। উদাহরণস্বরূপ, আমি কিছু পুরানো হার্ডওয়্যার চালিয়েছি এবং এই বিল্ট-ইন থাকা কিছু পুরানো মোবোসগুলিতে খুব কমই সক্ষম করা কার্নেল ড্রাইভার যেমন এইচপিটি 36 এক্স চিপসেট সমর্থন সক্ষম করে কিছু কর্মক্ষমতা অর্জন করতে পারি।
আরেকটি উদাহরণ, স্ল্যাকওয়ারের অধীনে বিআইজি এসএমপি হ'ল ডিফল্ট এবং একটি ডেল ২৮০০-তে, উদাহরণস্বরূপ, জিএফএসডি (কার্নেল মডিউল হিসাবে নয়) চালানোর জন্য একটি বড় আকারের মুদ্রণ ব্যবহার করবে যা উপায় দ্বারা, সিপিইউ টিকিগুলি আমি কোনও কিছুর জন্য খায়? দরকার নেই তেমনি এনএফএসডি এবং অন্যান্য ক্যাচ-অল সকলের জন্য সমস্ত মানসিকতা খুশি করার জন্য যা আপনি যদি কেবল একটি বাক্সে লিনাক্স পাওয়ার চেষ্টা করছেন এবং চলছে তবে আপনি যদি "গতি / স্মৃতি / এক্সএক্সএক্সএক্স যাই হোক না কেন" যত্নবান হন তবে এই বিষয়গুলি গুরুত্বপূর্ণ এবং কাজ করে ।
আমার সমস্ত প্রোডাকশন বাক্স কাস্টম কার্নেলগুলি। যদি আমি সাধারণ হার্ডওয়্যার যেমন ডেল সিরিজ (2800, 2850, 2900, ইত্যাদি ...) এ থাকি তবে কার্নেলের .config ফাইলটি প্রতিটি বাক্সের চারপাশে অনুলিপি করা এবং কার্নেল সংকলন এবং ইনস্টল করা সহজ বিষয়।
এখানে কিছু পরিস্থিতি রয়েছে যেখানে আপনার নিজস্ব কার্নেল সংকলন করা আপনার উপকার করবে:
মডিউল লোডিং অক্ষমযুক্ত একটি কার্নেল আরও সুরক্ষিত। এটির জন্য আপনাকে প্রয়োজনীয় মডিউলগুলি নির্বাচন করতে হবে এবং মডিউল হিসাবে তাদের সংকলনের বিপরীতে কার্নেলের অংশ হিসাবে সেগুলি অন্তর্ভুক্ত করতে হবে।
/ Dev / kmem এর জন্য সমর্থন অক্ষম করা, বা উপযুক্ত সংকলক বিকল্পের সাথে এটি পঙ্গু করা সুরক্ষার পক্ষে ভাল। আমি মনে করি বেশিরভাগ ডিগ্রোরা ডিফল্টরূপে এটি করে।
আমি সম্ভব হলে initrd এর ব্যবহার না করা পছন্দ করি। আপনার কার্নেলটিকে হার্ডওয়্যার থেকে কাস্টমাইজ করা এটি আরআরডিটি সরিয়ে দেয়।
কখনও কখনও কার্নেলের পরবর্তী সংস্করণে আপনার প্রয়োজনীয় বৈশিষ্ট্য উপস্থিত থাকবে তবে এটি আজ খুব বিরল। আমার মনে আছে আমি যখন প্রথম ডেবিয়ান ব্যবহার শুরু করলাম তখন এটি ২.৪ কার্নেল ব্যবহার করছিল, তবে উদেব সহায়তার জন্য আমার একটি ২.6 কার্নেল প্রয়োজন।
আপনার প্রয়োজন নেই নেটওয়ার্কিং প্রোটোকল / অপশনগুলি অক্ষম করা আপনার টিসিপি / আইপি কর্মক্ষমতা দ্রুততর করতে পারে।
অপশনগুলি অক্ষম করা আপনার প্রয়োজন নেই কার্নেলের মেমরির পদচিহ্নগুলি হ্রাস করে, যা কম র্যাম পরিবেশে গুরুত্বপূর্ণ। আপনি যখন রাউটার হিসাবে 256MB র্যাম সিস্টেম ব্যবহার করছেন তখন এটি সহায়তা করে।
আমি সিস্টেমে সমস্ত দেব "tty" ডিভাইসগুলি বিরক্ত করি / যেখানে আমি সাধারণত সিরিয়াল বা এসএসএসের মাধ্যমে লগ ইন করি।
আপনার নিজস্ব কার্নেল সংকলন কর্নেল বিকাশ প্রক্রিয়াতে অংশ নিতে আপনাকে অনুমতি দেয়, এটি কোনও সহজ ড্রাইভার যেমন পিসিআই / ইউএসবি ডিভাইস আইডি সরবরাহ করা যেমন কোনও নতুন চালকের পক্ষে আপনার জন্য নতুন ডিভাইস কাজ করতে পারে, মূল জগতে গভীরভাবে জড়িত হতে পারে কার্নেল উন্নয়ন।
এটি আপনাকে আপনার হার্ডওয়্যারে বিকাশ কার্নেলগুলি পরীক্ষা করতে এবং যদি আপনার কোনও প্রতিক্রিয়া লক্ষ্য করে তবে প্রতিক্রিয়া সরবরাহ করার অনুমতি দেয়। এটি আপনার এবং অন্যদের জন্য বিশেষত সহায়ক হতে পারে যদি আপনার কোনও হার্ডওয়ারের অস্বাভাবিক অংশ থাকে। আপনি যদি কোনও ডিস্ট্রো কার্নেলের জন্য অপেক্ষা করেন তবে আপনার সমস্যার প্রতিবেদনগুলি থেকে নতুন ডিস্ট্রো কার্নেল রিলিজে ফিল্টার করতে কিছুক্ষণ সময় নিতে পারে।
আমি ব্যক্তিগতভাবে কেবল আমার কাছে থাকা হার্ডওয়্যারটির জন্য সমর্থন অন্তর্ভুক্ত করার জন্য আমার নিজস্ব কার্নেলগুলি সংকলন করতে চাই। আপনি যখন ডিস্ট্রো কার্নেলগুলি চালনা করেন এবং এর আউটপুটটি lsmod(8)
দেখেন, তখন আপনার কাছে নেই এমন হার্ডওয়ারের জন্য প্রচুর মডিউল লোড হওয়া দেখতে পাবেন। এটি মডিউল তালিকা, / proc, / sys এবং আপনার লগগুলিকে দূষিত করতে পারে যে আপনি যখন কোনও কিছুর সন্ধান করছেন তখন শব্দের মধ্যে লুকিয়ে থাকতে পারে; আপনি 100% নিশ্চিত হতে পারবেন না যে এই মডিউলগুলি আপনি যে সমস্যাটি নির্ণয়ের চেষ্টা করছেন তাতে অবদান রাখছে না।
আমি দ্বিতীয় গ্যাবে। এর উত্তর (আমার মন্তব্যটি দীর্ঘ দীর্ঘ তাই আমি উত্তর হিসাবে পোস্ট করছি)।
যদি আপনি একটি উচ্চ বিশেষজ্ঞের উদ্দেশ্য না পেয়ে থাকেন (যেমন এম্বেডেড মেশিন, কঠোর সুরক্ষা প্রোফাইলিং), আমি আপনার নিজের কার্নেলটি কীভাবে এটি সম্পন্ন করেছি তা সংকলন করার জন্য কোনও ব্যবহারিক সুবিধা দেখতে পাচ্ছি না। পদ্ধতিগতভাবে বিকল্পগুলি পর্যালোচনা করে, সিস্টেমটি তৈরি করতে তারা একে অপরের সাথে কীভাবে যোগাযোগ করে তা আপনার সিস্টেম কীভাবে কাজ করে তা বোঝার একটি দুর্দান্ত উপায়। আপনি যে উপাদানগুলি সম্পাদনের চেষ্টা করছেন তার কোনও উদ্দেশ্য নেই বলে মনে হচ্ছে না এমন উপাদানগুলি সরিয়ে দেওয়ার চেষ্টা করার সময় আপনি কী খুঁজে পেয়েছেন তা আশ্চর্যজনক।
তবে সতর্ক হোন - খরগোশের গর্তের নিচে লাফিয়ে দেওয়া নিঃসন্দেহে কেন উদ্দীপনাজনক, এটি আপনার যতটা সম্ভব ভেবেছিল তার চেয়ে বেশি রাত এবং সাপ্তাহিক ছুটি পিছনে ফিরে আসবে!
কর্মক্ষেত্রে, আমরা বৃক্ষের বাইরে গাছের প্যাচগুলি যেমন ভেসার এবং ইউনিয়নফ প্রয়োগ করতে হ্যান্ড রোল্ড কার্নেলগুলি ব্যবহার করি।
বাড়িতে, আমি কোন বাগটি সম্মুখীন হয়েছি তা কোন প্রতিশ্রুতিবদ্ধ তা আবিষ্কার করার জন্য আমি হ্যান্ড রোল্ড কার্নেলগুলি সংকলন করছি। একবার এটি শেষ হয়ে গেলে, আমি সম্ভবত বিতরণ (ডিবিয়ান) -র মধ্যে বাগটি ঠিক না করা পর্যন্ত আমি একটি হাত দ্বারা ঘূর্ণিত কর্নেলের সাথে আটকে থাকব, যার পরে আমি আবার তাদের কার্নেলগুলিতে ফিরে যাব।
এই থ্রেডটি পুরানো এবং এখনও প্রশ্নটি যখন জিজ্ঞাসা করা হয়েছিল ঠিক তেমন বৈধ!
উত্তরটি হল: আপনি আপনার প্রয়োজন এবং প্রয়োজনীয়তা অনুসারে আপনার পছন্দের লিনাক্স কার্নেলটি সংকলন করুন।
অনেক পরিস্থিতিতে বৈধ:
আপনি একজন প্রকৌশলী এবং আপনার সিস্টেমের জন্য পারফরম্যান্স এবং সুরক্ষা প্রয়োজনীয়তা / চাহিদা পূরণের জন্য আপনার বিল্ডের প্রয়োজন, আপনি নির্দিষ্ট মানদণ্ডগুলি পূরণ এবং / অথবা ছাড়িয়ে যাওয়ার জন্য পুনরায় রচনা করেন।
আপনি একজন সাধারণ ব্যবহারকারী এবং আপনার একটি পুরানো সিস্টেম রয়েছে যা আপনি যতক্ষণ পারেন চালিয়ে যেতে চান, আপনি আপনার পুরানো সিস্টেমটি অপটিমাইজ রাখার জন্য উপাদানগুলি যোগ / অপসারণ পুনরায় কম্পাইল করে।
আপনি সর্বশেষতম হার্ডওয়্যার সহ সাধারণ ব্যবহারকারী এবং এতে পর্যাপ্ত মেমরি / র্যাম রয়েছে। পুনরায় কম্পাইল করার দরকার নেই তবে আপনি যদি আপনার সিস্টেম সম্পর্কে আরও কিছুটা জানতে আগ্রহী হন তবে আপনি তা করতে পারেন।
আপনি কেবল মাইক্রোসফ্ট এবং / অথবা ম্যাক দৈনন্দিন ব্যবহারকারীর মতো হতে চান, পুনরায় সংকলন করবেন না এবং কেবল আপনার আপস্ট্রিম ডিস্ট্রো থেকে আপডেটগুলি নিয়ে যান।
দৃশ্যপটগুলি আগমন করুন :-)
ম্যাক / উইন্ডোজ ব্যবহারকারীদের মতো নয়, লিনাক্স যা সরবরাহ করে তা হ'ল পছন্দ। আপনার প্রয়োজনীয়তার সাথে এটিকে সহজ বা বিকল্পটিকে অনুকূলিত করার পছন্দ The
বেশিরভাগ ব্যবহারের জন্য জেনেরিক কার্নেলগুলি কার্যত যে কোনও হার্ডওয়্যারের পক্ষে ভাল। অতিরিক্তভাবে তারা সাধারণত (সম্পাদনা) বিতরণ-নির্দিষ্ট প্যাচগুলি ধারণ করে যাতে আপনার নিজস্ব কার্নেল সংকলন করতে পারে (সম্ভবত) সমস্যা তৈরি করতে পারে।
আপনার নিজস্ব কার্নেল সংকলন করার জন্য রজন হ'ল:
যদি আমি উত্স-ভিত্তিক ডিস্ট্রো ব্যবহার না করতাম তবে আমি কার্নেলটি মোটেই সংকলন করব না।
আমি অবাক হয়েছি যে কাস্টম কার্নেল সংকলনের জন্য কেউ এই কারণটির উল্লেখ করেনি:
কারণ আপনি একটি ভিন্ন সি / সি ++ সংকলক ব্যবহার করতে চান। লিনাক্স কার্নেল সংকলনের জন্য জিসিসি বেশ ভাল। তবে সেখানে বাইরে রয়েছে আরও উন্নত সংকলক! জিসিসির অপ্টিমাইজেশানগুলি ইনটেলের সি / সি ++ সংকলক থেকে কিছুটা পিছনে। এবং ইন্টেল পারফরম্যান্স আদিম গ্রন্থাগারগুলি এবং ভিটিউন সরঞ্জাম সরবরাহ করে, উভয়ই উচ্চ-পারফরম্যান্স লিনাক্স কার্নেল তৈরির জন্য অপরিহার্য। আপনি কেবলমাত্র জিসিসি এবং জি ++ দিয়ে পেতে পারেন। ব্যবহারিকভাবে আপনি ফলাফলটি যা কিছু করেন তা কম্পাইলার দ্বারা সীমাবদ্ধ থাকবে। সুতরাং, আমি ইন্টেল সংকলক এবং পারফরম্যান্স লাইব্রেরি ব্যবহার করি এটি কিছুটা বড় - 1.5 জিবি ডাউনলোড, তবে এটি একটি ভাল সংকলকটিতে কী কী রয়েছে তার একটি ধারণা দেয়।
ইনটেলের সি / সি ++ সংকলক অ বাণিজ্যিক ব্যবহারের জন্য বিনামূল্যে উপলভ্য। তবে ইন্টেলের ওয়েবসাইট অনুসন্ধান করার জন্য অ-বাণিজ্যিক লাইসেন্স ইন্টেল সি ++ সংকলক ডাউনলোড পৃষ্ঠাটি গুগল করা সহজ। আমি সাধারণত কোনও কিছুর জন্য GCC / G ++ ব্যবহার করি না। এবং আপনার প্রোগ্রামার হওয়ার দরকার নেই। আপনি কেবল আপনার পরিবেশ সেট করেছেন এবং মেক ফাইলটিতে দুটি লাইন পরিবর্তন করে ইন্টেলের সংকলকটি নির্দেশ করেছেন।
তাহলে আপনি কিছু মারাত্মক গতি পেতে পারেন!
What are the pros and cons of compiling your own kernel?
কনস = জিজ্ঞাসা করা সহজ হবে, সহজ নয়, অনেক পরিস্থিতিতে কোনও মূল্য যুক্ত হয় না। পেশাদাররা = সুরক্ষা, কর্মক্ষমতা, আপনি কী করছেন তা যদি জানেন তবে উদাহরণস্বরূপ, NAS ডিভাইসগুলি, কিছু হার্ডওয়্যার কাজ করার জন্য লিনাক্স ব্যবহার করে এবং নেটওয়ার্কিং এবং গ্রাফিক ক্ষমতা রয়েছে।