লিনাক্স কার্নেল আপডেট করা হচ্ছে, যেমন সিস্টেমের মতো বাকি রয়েছে


25

আমি ওপেনবিএসডি ব্যবহারকারী। ইন OpenBSD প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী এটা বলেছেন:

ওপেনবিএসডি একটি সম্পূর্ণ সিস্টেম, সিঙ্কে রাখার উদ্দেশ্যে। এটি কার্নেল প্লাস ইউটিলিটি নয় যা একে অপর থেকে পৃথকভাবে আপগ্রেড করা যায়।

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

সিঙ্ক কার্নেল, বেস সিস্টেম এবং / অথবা তৃতীয় পক্ষের প্যাকেজগুলির বাইরে থাকা সমস্যাগুলির একটি সম্ভাব্য উত্স এবং কম-বেশি আপনাকে অফিসিয়াল মেইলিং তালিকাগুলির থেকে কোনও গুরুতর সহায়তা পেতে অযোগ্য ঘোষণা করে।

আমি এই সঙ্গে বেশ ঠিক আছে। আসলে, আমি ওপেনবিএসডি ব্যবহার করার একটি কারণ এটি। এটি সিস্টেমকে একটি সামঞ্জস্য ইউনিট করে তোলে এবং এটির জন্য এটির মানসিক ওভারভিউ গঠন করা আমার পক্ষে সহজ করে তোলে।

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

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

কে বা কী গ্যারান্টি দেয় যে লিনাক্স সিস্টেমের বিভিন্ন সাবসিস্টেমগুলি একে অপরের থেকে স্বতন্ত্রভাবে আপডেট হওয়া সত্ত্বেও একে অপরের সাথে সহযোগিতা করতে সক্ষম হয়?

আমি জিজ্ঞাসা করার কারণটি হ'ল কারণ এই সাইটের অন্য ব্যবহারকারী আমাকে তার লিনাক্স সিস্টেমে কার্নেলের পরিবর্তে একটি নতুন সংস্করণ "করণীয়" হতে পারে কিনা তা জিজ্ঞাসা করেছিলেন। ওপেনবিএসডি বিষয়গুলি থেকে আগত, আমি এটি বলতে পারি না যে হ্যাঁ, এটি সিস্টেমটি ভঙ্গ না করার গ্যারান্টিযুক্ত হবে ।


আমি উপরে "লিনাক্স" শর্টহ্যান্ড হিসাবে "লিনাক্স বিতরণ", কার্নেল + ইউটিলিটিগুলির জন্য ব্যবহার করি।


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

উত্তর:


29

লিনাস টোরভাল্ডসের কার্নেল পরিবর্তনের বিরুদ্ধে ব্যবহারকারী জমিগুলির স্থিতিশীলতার বিরুদ্ধে খুব দৃ opinion ় মতামত রয়েছে (বিশদটির জন্য " লিনাক্স কার্নেল: ব্যবহারকারী স্থান ভাঙ্গা " প্রশ্নটি দেখুন)।

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

যখন ইউজারস্পেসটি না ভেঙে বিদ্যমান ইন্টারফেসটি পরিবর্তন করা সম্ভব হয়নি, তখন অতিরিক্ত সিস্টেম কলগুলি যুক্ত করা হয়েছে যা বর্ধিত কার্যকারিতা সরবরাহ করে। এই কারণেই তিনটি সংস্করণ dupএবং umountসিস্টেম কলের দুটি সংস্করণ রয়েছে ।

স্থিতিশীল ইউজারস্পেস থাকার নীতিটি হ'ল কার্নেল আপডেটগুলি ব্যবহারকারীর স্পেস অ্যাপ্লিকেশনগুলিতে খুব কমই সমস্যা সৃষ্টি করে এবং কার্নেলটি আপগ্রেড করার পরে আপনি সাধারণত সমস্যাগুলি আশা করেন না।

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

@PeterCordes নির্দিষ্ট যদি পরিবর্তন জন্য procfs বা সেটির sysfs আপনার ডিস্ট্রিবিউশন স্ক্রিপ্ট init দ্বারা ব্যবহৃত একটি অ্যাপ্লিকেশন বিরতি, আপনি এএ সমস্যা থাকতে পারে।

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

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


1
কার্নেল-ইউজার ইন্টারফেস (ওরফে সিস্টেম কল) এর সংক্ষিপ্তসার সহ এই ব্যাখ্যাটি প্রসারিত করতে দীর্ঘমেয়াদে কার্যকর হবে কারণ এটি বিভিন্ন পদ্ধতিতে কনফিগার করা কার্নেলগুলির দ্বারা অ্যাপ্লিকেশনগুলি না ভাঙার পদ্ধতিটি ব্যাখ্যা করে।
wallyk

3
এমনকি প্রোফস ( /proc) এবং সিএসএফস ( /sys) কে যথাসম্ভব স্থিতিশীল রাখা হয়, একইভাবে "ব্যবহারকারী-স্থান ভাঙবেন না" নীতি / দর্শন অনুসরণ করে। এছাড়াও, ioctl()ডিভাইস ফাইলগুলিতে কোডগুলি en.wikedia.org/wiki/Ioctl । এটা তোলে পর্যন্ত সহজ সিস্টেম-কল ABI- র সামঞ্জস্য ছাড়াইয়া যায়, কিন্তু আপনি বলতে যখন একটি ভাল কারণ, জিনিষ পরিবর্তন না /procএবং /sys। এটি বেশিরভাগ প্রোগ্রামগুলি সরাসরি ভাঙবে না, তবে এটি যদি আপনার ডিস্ট্রোর ইনডি স্ক্রিপ্টগুলি ব্যবহার করে একটি নিম্ন-স্তরের ব্যবহারকারী-স্পেস প্রোগ্রাম ভাঙায় তবে আপনার সমস্যা হতে পারে। ভাগ্যক্রমে এটি বিরল।
পিটার

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

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

1
নতুন কার্নেলগুলিতে আরও ক্ষেত্র যুক্ত করার জন্য ব্যবহারকারী / স্পেসে কীভাবে সেগুলি পড়তে হবে এবং / প্রো ফাইল এবং সিস্টেম ফাইলগুলির জন্য গাইডলাইন রয়েছে। উদাহরণস্বরূপ / proc / স্ট্যাট, বা / proc / মেমিনফো। ব্যবহারকারীর স্থানটি যুক্ত ক্ষেত্রগুলিকে উপেক্ষা করবে বলে আশা করা হচ্ছে।
ঝ্যান লিংস 21

11

লিনাক্স কার্নেল এবং লিনাক্স ডিস্ট্রিবিউশনের ব্যবহারকারীর স্থান, যা Nতিহাসিকভাবে জিএনইউ প্রকল্পের দ্বারা বিকাশকৃত সরঞ্জামগুলির দ্বারা আধিপত্য ছিল, আলগাভাবে মিলিত হয়। অংশে এটি নকশা দ্বারা এবং কিছু অংশে এটি প্রয়োজনীয়তা দ্বারা।

বিএসডি থেকে পৃথক, যেখানে কার্নেল পাশাপাশি বেস ব্যবহারকারীর স্থান একসাথে ডিজাইন করা এবং রক্ষণাবেক্ষণ করা হয়, লিনাক্স কার্নেল এবং এর ব্যবহারকারীর স্থানটি বিকাশ করা হয়েছিল এবং বিভিন্ন লোক দ্বারা রক্ষণাবেক্ষণ করা হয়। সুতরাং তাদের দৃ it়তার সাথে একত্রে রাখা শক্ত হয়ে উঠবে, এমনকি সম্প্রদায়টি এটি পছন্দ করলেও, যা আমি এটি মনে করি না does

লিনাক্স কার্নেল প্রকল্পের একটি প্রধান নীতি হ'ল এটির ব্যবহারকারীর স্থানটি ভঙ্গ করা উচিত নয় @ কোনটি অবশ্যই আলগা দম্পতি কার্যকর করার আরেকটি কারণ।

যাইহোক, এখনও কিছু ডিগ্রি সংযোজন আছে। পর্যাপ্ত পুরানো লিনাক্স কার্নেলটি আধুনিক বিতরণগুলির সাথে কাজ করবে না।


2
@ অ্যাবিগেইল এটি নিট-পিকিং, তবে ফরওয়ার্ডস সামঞ্জস্যতা সরবরাহ করা যেতে পারে, যদি ইউজারস্পেসে কার্নেলের বৈশিষ্ট্যগুলি হারিয়ে যাওয়ার জন্য উপযুক্ত ফলব্যাক (এমনকি অবনমিত ফ্যালব্যাকস) প্রয়োগ করে। এটি প্রায়শই কাম্য নয় এমনকি এটির পক্ষে মূল্যবানও নয়, স্বীকার করেও কিছু সফ্টওয়্যার এটি করে ( glibcউদাহরণস্বরূপ)। (তবে হ্যাঁ, এটি কোনও কর্নেলের প্রতিশ্রুতি নয়, এটি একটি ব্যবহারকারী স্থানের প্রতিশ্রুতি।)
স্টিফেন কিট

7

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

সিস্টেমে দুটি কার্নেল প্যাকেজ স্যুট ইনস্টল করা এখন সাধারণ - বর্তমানে ব্যবহৃত প্যাকেজ, এবং পূর্বে ইনস্টল করা প্যাকেজটি সাধারণ। আপগ্রেড করার সময়, নতুন সংস্করণটি সঠিকভাবে কাজ করার বিষয়টি নিশ্চিত করার পরে, প্রাচীনতমটি সরিয়ে ফেলা যেতে পারে এবং আপনার এখনও একটি জ্ঞাত-নিরাপদ ফলব্যাক রয়েছে। উদাহরণস্বরূপ, রেড হ্যাট (এবং এর কাজিন্স) এটি package-cleanup --oldkernels --count 2স্বয়ংক্রিয়ভাবে করতে হবে।


এমনকি কোমডের মতো কিছু , যা আপনি মনে করেন যে কার্নেল সংস্করণে আবদ্ধ হওয়া দরকার , এটির সংস্করণগুলির সাথে এটি কার্যকরভাবে কাজ করবে bit
Ignacio Vazquez-Abram

4

এখানে সমস্ত ভাল যুক্তি ছাড়াও, আমি কয়েকটি পয়েন্ট যুক্ত করতে পারি যা সাহায্য করবে।

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

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

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

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

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