সিস্টেম 5 init
আপনাকে গল্পের একটি ছোট্ট অংশ বলবে।
লিনাক্স বিশ্বকে প্রভাবিত করে এমন এক ধরণের মায়োপিয়া রয়েছে। লোকেরা মনে করে যে তারা "সিস্টেম 5 init
" নামে একটি জিনিস ব্যবহার করে এবং এটি প্রচলিত এবং শুরু করার সেরা জায়গা উভয়ই। উভয়ই বাস্তবে ঘটনাটি নয়।
Suchতিহ্য আসলে এই জাতীয় লোকেরা যা বলে তা সূচনার জন্য নয়। সিস্টেম 5 init
এবং সিস্টেম 5 rc
তারিখের এটিএন্ডটি ইউনিক্স সিস্টেম 5 এর তারিখ, যা লিনাক্স-ম্যান্ড্রেকের প্রথম সংস্করণের পরে আমরা এখন (বলা) যতটা প্রথম ইউএনআইএক্সের পরে ছিল তার প্রায় দূরে ছিল।
প্রথম সংস্করণ ইউনিক্স কেবল ছিল init
। এটা ছিল না rc
। 1 ম সংস্করণ সমাবেশের ভাষা init
( যার কোডটি পুনরুদ্ধার করা হয়েছে এবং ওয়ারেন টমে এট আল দ্বারা উপলব্ধ করা হয়েছে ) 12 টি getty
প্রক্রিয়া সরাসরি তৈরি এবং পুনরুদ্ধার করা হয়েছে , একটি বিল্ট-ইন টেবিল থেকে 3 হার্ডওয়ারযুক্ত ফাইল সিস্টেমগুলি মাউন্ট করেছিল এবং সরাসরি একটি হোম ডিরেক্টরি থেকে একটি প্রোগ্রাম চালায় ব্যবহারকারী নাম mel
। getty
টেবিল প্রোগ্রাম ইমেজ সরাসরি ছিল।
ইউএনআইএক্স সিস্টেম 5 এর পরে আরও দশক পরে তথাকথিত "traditionalতিহ্যবাহী" লিনাক্স থিম সিস্টেমটি উপস্থিত হয়েছিল। 1992 সালে, মিকেল ভ্যান স্মোরেনবার্গ (পুনরায়) একটি লিনাক্স init
+ rc
এবং তাদের সম্পর্কিত সরঞ্জামগুলি লিখেছিলেন , যেগুলি এখন লোকেরা "সিস্টেম 5 init
" হিসাবে উল্লেখ করে , যদিও এটি আসলে ইউনিক্স 5 সিস্টেমের সফ্টওয়্যার নয় (এবং কেবল এটি নয়) init
)।
সিস্টেম 5 init
/ rc
শুরু করার সেরা জায়গা নয় এবং এমনকি যদি কেউ সিস্টেমড জ্ঞান যোগ করে তবে যা জানার আছে তার অর্ধেকটি কভার করে না। একা গত দুই দশকে ঘটে যাওয়া ডিআইডি সিস্টেম ডিজাইনের ক্ষেত্রে (লিনাক্স এবং বিএসডিগুলির ক্ষেত্রে) প্রচুর কাজ হয়েছে। সমস্ত ধরণের ইঞ্জিনিয়ারিং সংক্রান্ত সিদ্ধান্তগুলি আলোচনা করা, তৈরি, নকশা করা, বাস্তবায়ন এবং অনুশীলন করা হয়েছে। বাণিজ্যিক ইউনিয়নগুলিও অনেক কিছু করেছিল।
অধ্যয়ন এবং শিখতে বিদ্যমান সিস্টেমগুলি
এই দুটি ব্যতীত অন্য কয়েকটি প্রধান init সিস্টেমগুলির একটি অসম্পূর্ণ তালিকা এবং তাদের (বেশ কয়েকটি) মূল পয়েন্টগুলির মধ্যে একটি বা দুটি এখানে রয়েছে:
- জোয়াচিম নীলসনের ফাইনটি আরও বেশি মানব-পঠনযোগ্য কনফিগারেশন ফাইল ব্যবহারের পথে চলেছে।
- ফেলিক্স ভন লেটনারের মিনিটটি একটি ফাইল-সিস্টেম-ই-দ্য-ডাটাবেস কনফিগারেশন সিস্টেম, ছোট মেমরির পদচিহ্নগুলি এবং শুরু হয়ে যায় এমন
init
কিছুগুলির মধ্যে নির্ভরতা / স্টপ নির্ভরতা শুরু করে।
- জেরিট পেপের রানিট আমার আগে যা বর্ণিত হয়েছে কেবলমাত্র চারটি শেল স্ক্রিপ্টের পদ্ধতির হিসাবে বর্ণনা করেছে for
- ইনিএনজি-র লক্ষ্য নির্ভরতা, নামযুক্ত টার্গেট, একাধিক কনফিগারেশন ফাইল এবং আরও বেশি নমনীয় কনফিগারেশন সিনট্যাক্সের জন্য শিশু প্রসেসের জন্য আরও বেশি সেটিংস রয়েছে load
- আপস্টার্টটি সম্পূর্ণ পুনরায় ডিজাইনের জন্য গিয়েছিল, সিস্টেমকে পরিষেবা এবং আন্তঃনির্ভরতা হিসাবে নয়, বরং ইভেন্ট এবং কাজগুলির দ্বারা চালিত হিসাবে মডেলিং করেছে।
- নোশের ডিজাইনে সার্ভিস ম্যানেজমেন্টের সমস্তগুলিকে (এমনকি
getty
স্প্যানিং এবং জম্বি কাটা সহ ) আলাদা সার্ভিস ম্যানেজারের মধ্যে চাপ দেওয়া এবং কেবল অপারেটিং-সিস্টেম-নির্দিষ্ট "এপিআই" ডিভাইস / সিমলিঙ্ক / ডিরেক্টরি এবং সিস্টেম ইভেন্টগুলি পরিচালনা করা অন্তর্ভুক্ত।
- sinit একটি খুব সহজ উদ্যোগ। এটি
/bin/rc.init
প্রোগ্রাম, মাউন্ট ফাইলসিস্টেম ইত্যাদির কাজ কারটি সম্পাদন করে এটি এর জন্য আপনি মিনিসার মতো কিছু ব্যবহার করতে পারেন ।
তাছাড়া, 10 বছর আগে, সেখানে daemontools ব্যবহারকারী এবং ব্যবহারের অন্যদের মধ্যে আলোচনা ছিল svscan
# 1 প্রক্রিয়া, যা এর মতো প্রকল্পগুলি নেতৃত্বে যেমন পল Jarc এর svscan প্রক্রিয়া 1 অধ্যয়ন যেমন , Gerrit Pape, এর ধারনা , এবং লরেন্ট Bercot প্রক্রিয়াকে 1 svscan ।
যা আমাদের # 1 প্রোগ্রামগুলি কী প্রক্রিয়াতে নিয়ে আসে।
# 1 প্রোগ্রামগুলি কী প্রক্রিয়া করে
# 1 কী প্রক্রিয়াটি করা উচিত তা "তাদের ধারণা" তার স্বভাবগত বিষয়ভিত্তিক are একটি অর্থবহ উদ্দেশ্যমূলক নকশার মানদণ্ড হ'ল নূন্যতম 1 টি প্রক্রিয়াটি কী করতে হবে। কার্নেল এটিতে বেশ কয়েকটি প্রয়োজনীয়তা চাপায়। এবং সর্বদা কিছু অপারেটিং-সিস্টেম-নির্দিষ্ট জিনিস বিভিন্ন ধরণের যা করতে হয়। # 1 প্রক্রিয়াটি tradition তিহ্যগতভাবে কী প্রক্রিয়াটি করেছে তা যখন আসে , তখন আমরা সেই সর্বনিম্ন নই এবং সত্যই কখনও ছিলাম না।
বিভিন্ন অপারেটিং সিস্টেমের কার্নেলগুলি এবং প্রক্রিয়া # 1 এর অন্যান্য প্রোগ্রামগুলির চাহিদা রয়েছে যেগুলি কেবল পালাতে পারে না।
লোকেরা আপনাকে বলবে যে fork()
জিনিসগুলিকে আইং করা এবং অনাথ প্রক্রিয়াগুলির পিতামাতার ভূমিকায় অভিনয় করা # 1 প্রক্রিয়াটির প্রধান কাজ function হাস্যকরভাবে, এটি অসত্য। এতিম প্রক্রিয়াগুলির সাথে ডিল করা (সাম্প্রতিক লিনাক্স কার্নেলগুলির সাথে, যেমন https://unix.stackexchange.com/a/177361/5132 তে ব্যাখ্যা করা হয়েছে ) এমন একটি অংশ যা সিস্টেম # 1 প্রক্রিয়া থেকে অন্য প্রসেসগুলিতে অনেকাংশে ফ্যাক্টর করতে পারে, যেমন একটি উত্সর্গীকৃত পরিষেবা পরিচালক । এই সমস্ত হ'ল সার্ভিস ম্যানেজার, যা প্রক্রিয়া # 1 ছাড়িয়ে চলেছে:
- আইবিএম এইআইএক্স
srcmstr
প্রোগ্রাম, সিস্টেম রিসোর্স কন্ট্রোলার
- Gerrit Pape, এর
runsvdir
runit থেকে
- ড্যানিয়েল জে বার্নস্টেইনের
svscan
ডিমনটোলস থেকে, অ্যাডাম স্যাম্পসনসকে ফ্রিডsvscan
থেকে , ব্রুস গুয়েন্টারস ডিমনটোলস-এনকোয়ার থেকে এবং লরেন্ট বেরকোটস এস -6 থেকেsvscan
s6-svscan
- ওয়েইন মার্শাল
perpd
হতাশ থেকে
- সোলারিস 10 এ পরিষেবা পরিচালনার সুবিধা
service-manager
জখলাবার থেকে
একইভাবে, https://superuser.com/a/888936/38062 তে বর্ণিত হিসাবে , পুরো /dev/initctl
ধারণাটি # 1 এর কাছাকাছি হওয়ার দরকার নেই। হাস্যকরভাবে, এটি অত্যন্ত কেন্দ্রিয় সিস্টেমড যা দেখায় যে এটি প্রক্রিয়া # 1 থেকে সরিয়ে নেওয়া যেতে পারে।
বিপরীতভাবে, বাধ্যতামূলক জিনিষ init
, যে মানুষ সাধারণত তাদের বন্ধ-টপ-এর-মাথা নকশার ভুলে যেমন হ্যান্ডলিং যেমন জিনিস SIGINT
, SIGPWR
, SIGWINCH
, এবং তাই ঘোষণা কার্নেল থেকে পাঠানো এবং বিভিন্ন সিস্টেম স্থিতি পরিবর্তন পাঠানো অনুরোধ প্রারম্ভিক প্রোগ্রামগুলি থেকে "জানে" যে # 1 প্রক্রিয়া করার জন্য নির্দিষ্ট সংকেতগুলির অর্থ নির্দিষ্ট জিনিস। (উদাহরণস্বরূপ: https://unix.stackexchange.com/a/196471/5132 তে SIGUSR1
বর্ণিত হিসাবে , BSD সরঞ্জামসেটগুলি "জানেন" যার একটি নির্দিষ্ট অর্থ রয়েছে))
আবার একবারে আরম্ভকরণ এবং চূড়ান্তকরণের কাজগুলিও রয়েছে যে কেউ পালাতে পারে না, বা না করার ফলে ভোগ করবে, যেমন "এপিআই" ফাইল সিস্টেম মাউন্ট করা বা ফাইল সিস্টেম ক্যাশে ফ্লাশ করার মতো।
"এপিআই" ফাইল সিস্টেমগুলির সাথে কাজ করার মূল বিষয়গুলি init
রোম 1 ম সংস্করণ ইউনিক্সের অপারেশনের থেকে কিছুটা পৃথক : একটিতে প্রোগ্রামটির মধ্যে হার্ডওয়ার্ড করা তথ্যের একটি তালিকা রয়েছে এবং তালিকার mount()
সমস্ত এন্ট্রিগুলির মধ্যে একটি রয়েছে। আপনি বাসদ (এসআইসি!) হিসাবে বিভিন্ন হিসাবে সিস্টেমের মধ্যে এই প্রক্রিয়া পাবেন init
, জখলাবার মাধ্যমে system-manager
, systemd করতে।
"একটি সহজ শেল জন্য সিস্টেম সেট আপ"
যেমন আপনি পর্যবেক্ষণ করেছেন, init=/bin/sh
"এপিআই" ফাইল সিস্টেমগুলি মাউন্ট করা পান না, কোনও ধরণের exit
( https://unix.stackexchange.com/a/195978/5132 ) হয়ে গেলে কোনও ক্যাস ফ্লাশহীন একটি অসদৃশ ফ্যাশনে ক্রাশ হয় এবং সাধারণভাবে এটি ছেড়ে যায় (সুপার) ব্যবহারকারীর কাছে ম্যানুয়ালি এমন ক্রিয়াগুলি করতে হবে যা সিস্টেমকে ন্যূনতম ব্যবহারযোগ্য করে তোলে।
প্রক্রিয়া # 1 প্রোগ্রামে করা ছাড়া কোনটির আসলে কোন বিকল্প নেই তা দেখার জন্য, এবং এভাবে আপনার বিবৃত নকশার লক্ষ্যটির জন্য আপনাকে একটি ভাল কোর্সে সেট করা যায়, আপনার সেরা বিকল্পটি হ'ল জেরিট পেপের রুনিটের অপারেশনটিতে ওভারল্যাপগুলি লক্ষ্য করা, ফেলিক্স ভন system-manager
নাইট প্যাকেজ থেকে লাইটনারের মিনিট এবং প্রোগ্রাম। প্রাক্তন দু'জন ন্যূনতম হওয়ার দুটি প্রচেষ্টা দেখায়, তবুও এমন জিনিসটি পরিচালনা করে যা এড়ানো অসম্ভব।
পরেরটি দরকারী, আমি system-manager
প্রোগ্রামটির বিস্তৃত ম্যানুয়াল এন্ট্রির জন্য যা "এপিআই" ফাইল সিস্টেমগুলি ঠিক মাউন্ট করা আছে, কোন আদিকরণের কাজগুলি পরিচালনা করা হয় এবং কোন সংকেতগুলি পরিচালনা করা হয় তা বিশদ করে; যে সিস্টেমে ডিজাইন অনুসারে সিস্টেম ম্যানেজারটি কেবলমাত্র আরও তিনটি জিনিস তৈরি করে থাকে (সার্ভিস ম্যানেজার, একটি সহযোগী লগার এবং রাষ্ট্র পরিচালনার জন্য প্রোগ্রামটি পরিবর্তন করে) এবং প্রক্রিয়াটিতে কেবল অনিবার্য হয় # 1।