"উবুন্টু লিনাক্স" সিস্টেমের গভীর অন্তর্দৃষ্টি - আমরা কি এটি দেখি?


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

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

সিস্টেমের ডাউন ডাউন

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

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

উবুন্টু এর পূর্ববর্তী সংস্করণগুলিতে 10.১০ এর পূর্বে পুরানো স্টাইল সাইভিনিট অন্তর্ভুক্ত ছিল যা " /etc/rcx.d "সিস্টেম প্রতিটি প্রারম্ভ এবং শাটডাউন ডিরেক্টরি। তবে, এর পরে উপস্থাপিত সিস্টেম পুরানো শৈল সিস্টিনিট সিস্টেম প্রতিস্থাপন করে, তবে এটি এর পিছনে সামঞ্জস্যতা সরবরাহ করে।

সর্বশেষ উবুন্টু সংস্করণগুলিতে এই আপস্টার্ট সিস্টেম রয়েছে, তবে উবুন্টু 6.10 থেকে এর বিবর্তন হওয়ার পরে এটি 4 version সেপ্টেম্বর, 2014 পর্যন্ত << 1.13.2 হিসাবে বর্তমান সংস্করণে বেশ কয়েকটি সংশোধন করেছে। সর্বশেষতম আপস্টার্ট সিস্টেম 2 init প্রক্রিয়া রয়েছে, এটি সিস্টেম প্রসেসের জন্য একটি এবং অন্যটি বর্তমান লগইন থাকা ব্যবহারকারী সেশনে পরিচালনা করে এবং ব্যবহারকারী কেবলমাত্র লগইন না হওয়া অবধি উপস্থিত থাকে, যাকে এক্স-সেশন ইনও বলা হয় ।

পুরো সিস্টেমটি একটি শ্রেণিবদ্ধ হিসাবে বিভক্ত করা হয়েছে, সিস্টেমের ক্ষমতা অবধি ক্ষমতা জুড়ে পূর্বপুরুষ-সন্তানের সম্পর্ক নিয়ে।

উদাহরণস্বরূপ : উভয় আরআর প্রক্রিয়াগুলির মধ্যে একটি ছোট শ্রেণিবদ্ধ সম্পর্ক হ'ল: সিস্টেম আর্ট (1) -> ডিসপ্লে ম্যানেজার (কার্নেল স্পেস) -> ডিসপ্লে ম্যানেজার (ইউজার স্পেস) -> ইউজার ইন (বা এক্স- সেশন আরম্ভ)।

সিস্টেম init দ্বারা পরিচালিত প্রক্রিয়াগুলির জন্য কনফিগারেশন ফাইলগুলি "/etc/init " তে থাকে এবং অধিবেশন init দ্বারা পরিচালিতদের জন্য "/usr/share/upstart " তে থাকে (যেমন উপরের আপস্টার্ট সংস্করণ অনুসারে 1.12 ) এবং এই কনফিগারেশন ফাইলগুলি প্রবন্ধগুলি সম্পর্কে এই নিবন্ধে বর্ণিত হিসাবে প্রক্রিয়া সম্পর্কে অনেক অনাবৃত গোপনীয়তার মূল চাবিকাঠি।

হায়ারার্কিতে আরও গভীর হওয়া

উবুন্টু দুই ধরণের প্রক্রিয়া স্বীকার করে:

  1. স্বল্পকালীন চাকরি (বা কাজের এবং মরনের কাজ)
  2. দীর্ঘকালীন চাকরি (বা থাকার-ও কাজের কাজ)

সিস্টেমে যে হায়ারার্কি তৈরি হয় তা প্রক্রিয়াগুলির মধ্যে নির্ভরতার সম্পর্কের কারণে যা আমরা তাদের কনফিগারেশন ফাইলগুলি দেখে বুঝতে পারি understand প্রথমে প্রসেসগুলির মধ্যে একটি সাধারণ শ্রেণিবদ্ধ সম্পর্ক থেকে শুরু করা যাক যা সিস্টেমগুলির বুট করতে এবং সেগুলির প্রতিটিটির তাত্পর্য বোঝে understand

উদ্যোগ হ'ল প্রথম প্রক্রিয়াটি সিস্টেমটিতে শক্তি প্রয়োগ করা শুরু করে এবং কাজ-ও থাকুন কাজের অধীনে শ্রেণিবদ্ধ করা হয় কারণ এটি কখনই নিহত হয় না এবং কেবল দীক্ষা নিহত হওয়ার সময়টি চালু থাকে পাওয়ার ডাউন ডাউন অর্থাত্ কেবল মরণ হয় এবং এটিও প্রতি সেশনে একবার এবং এটি পাওয়ার ডাউন হয়। পাওয়ার আপ হওয়ার পরে, init সিস্টেমের প্রথম অর্থ ইভেন্ট শুরু করে অর্থাৎ স্টার্টআপ ইভেন্ট। “/ইত্যাদি/init ” এর প্রতিটি কনফিগারেশন ফাইলের দুটি লাইন থাকে যা ইভেন্টটিকে সংজ্ঞায়িত করে যা প্রক্রিয়াটি শুরু করে এবং থামিয়ে দেয়। এই লাইনগুলি নীচের চিত্রে যেমনটি হাইলাইট করা হয়েছে:

এটি একটি প্রক্রিয়ার কনফিগারেশন ফাইল ফেলসএফ-এক্স এবং এগুলি শুরু হয় এবং শর্তগুলি বন্ধ হয় সেই ইভেন্টটি বর্ণনা করে যেখানে প্রক্রিয়াটি শুরু হবে। আরম্ভ প্রক্রিয়া দ্বারা প্রারম্ভিক ইভেন্টের প্রজন্মের প্রারম্ভিক অবস্থার প্রারম্ভিক অবস্থাগুলি যেমন প্রারম্ভিক অবস্থার সাথে সমান্তরালভাবে সঞ্চালিত হয় এবং এটি কেবল শ্রেণিবদ্ধতা সংজ্ঞায়িত করে এবং প্রারম্ভকালে সঞ্চালিত সমস্ত প্রক্রিয়া থ্রির শিশু children

প্রারম্ভিকালীন যে প্রক্রিয়াগুলি শুরু হয় সেগুলি নীচে হিসাবে তালিকাভুক্ত করা হয় এবং এগুলি হ'ল সমস্ত কাজ-মরা কাজ:

1 হোস্টনাম - এটি এমন একটি প্রক্রিয়া যা কেবলমাত্র তার নাম/হোস্টনাম ফাইলের মধ্যে সংজ্ঞাযুক্ত হোস্টনামের সিস্টেমকে বলে।

2 কেমড - কার্নেল মডিউলগুলি লোড করে অর্থাত্/etc/মডিউল ফাইল থেকে সমস্ত ড্রাইভার।

3 মাউন্টল - এই প্রক্রিয়াটি প্রচুর ইভেন্ট উত্পন্ন করে এবং স্থানীয় ফাইল সিস্টেম এবং রিমোট ফাইল সিস্টেমগুলি সহ বুটে সমস্ত ফাইল সিস্টেমকে শোক করার জন্য দায়ী responsible

/proc ফাইলটিও এই খুব প্রক্রিয়া দ্বারা মাউন্ট করা হয় এবং সমস্ত মাউন্টিংয়ের পরে এটির দ্বারা নির্মিত সর্বশেষ ইভেন্টটি ফাইল-সিস্টেম ইভেন্ট যা আরও স্তরক্রমকে আরও এগিয়ে নিয়ে যায়।

4 প্লাইমাউথ - এই প্রক্রিয়া মাউন্টল শুরু করার ক্ষেত্রে কার্যকর হয় এবং সিস্টেম স্টার্টআপে দেখা যায় যে কালো পর্দা নীচের মতো কিছু দেখায়:

5 প্লাইমাউথ প্রস্তুত - ইঙ্গিত করে যে প্লাইমাউথ আপ রয়েছে is

নীচে প্রধান প্রক্রিয়াটি রয়েছে, অন্য যেগুলি প্রারম্ভকালে চালানো হয় সেগুলির মধ্যে অন্তর্ভুক্ত রয়েছে << udev-ফলব্যাক-গ্রাফিকস ইত্যাদি boot

1 । প্রারম্ভকালীন ইভেন্টের প্রজন্মের সাথে init

2 মাউন্টল ফাইল-সিস্টেমগুলি মাউন্ট করা, প্লাইমাউথ (মাউন্টল শুরু করার সাথে সাথে) স্প্ল্যাশ স্ক্রিন প্রদর্শিত হবে এবং কোমড লোডিং কার্নেল মডিউলগুলি।

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

4 লোকাল-ফাইল সিস্টেম প্রসেস নেটওয়ার্কের ফলে শুরু হওয়া ডিবিএস এবং স্ট্যাটিক-নেটওয়ার্ক-আপ ইভেন্টের সাথে স্থানীয় লোকাল-ফাইল-সিস্টেম ইভেন্টেও চালিত হওয়ার ফলে নেটওয়ার্ক-ম্যানেজার চালিত হতে পারে।

5 ভার্চুয়াল-ফাইল সিস্টেম ইভেন্ট মাউন্টল দ্বারা উত্পন্ন উত্সটি চালানোর কারণ হয়। (udev হ'ল লিনাক্সের জন্য ডিভাইস ম্যানেজার যা ডিভাইসগুলির হট-প্লাগিং পরিচালনা করে এবং/ডিভ ডিরেক্টরিতে ফাইল তৈরি এবং সেগুলি পরিচালনা করার জন্যও দায়ী u) দেবী রাম, রোম ইত্যাদির জন্য/ডিভ ডিরেক্টরিতে ফাইল তৈরি করেন যা মাউন্টল ভার্চুয়ালটি সমাপ্ত করে ফেলেছে -ফাইলেস সিস্টেমগুলি এবং ইভেন্টটি ভার্চুয়াল-ফাইল-সিস্টেমটি/dev ডিরেক্টরিকে মাউন্ট করার জন্য উত্পন্ন করেছে।

6 উদেব আপস্টার্ট-উদেব-সেতু চালিত করে যা স্থানীয় নেটওয়ার্কটি আপ দেখায়। তারপরে মাউন্টল শেষ ফাইল সিস্টেমটি মাউন্ট করা শেষ করে এবং ফাইল সিস্টেম ইভেন্ট তৈরি করেছে।

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

9 আরসি-সিসিনিট টেলিনিট কমান্ড চালায় যা সিস্টেম রানলেভেলকে বলে।

10 । রানলেভেল পাওয়ার পরে, ডিরেক্টরি 'এস' বা 'কে' দিয়ে শুরু হওয়া স্ক্রিপ্টগুলি চালিয়ে যায় (তাদের নামের শুরুতে 'এস' রয়েছে এমন চাকরী শুরু করে এবং 'কে' রয়েছে তাদের নামের শুরুতে হত্যা করে) ডিরেক্টরিতে/ইত্যাদি/আরসিএক্স.ডি (যেখানে 'এক্স' বর্তমান রানলেভেল)।

ইভেন্টগুলির এই ছোট সেটটি প্রতিবার যখনই আপনি এটি চালিত করেন ততক্ষণে সিস্টেম শুরু হয়। এবং, প্রক্রিয়াগুলির এই ইভেন্টটি ট্রিগার করাই হায়ারার্কি তৈরির জন্য দায়ী thing

এখন, উপরে আরও একটি অ্যাড অন ইভেন্টের কারণ। প্রক্রিয়াটির একই কনফিগারেশন ফাইলটিতে কোন ইভেন্টটি নির্দিষ্ট করা হয়েছে তা কোন প্রক্রিয়াটির ফলে এই লাইনে নীচে দেখানো হয়েছে:

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

সুতরাং, এখানে আমরা দুটি পদ সংজ্ঞা দিচ্ছি:

  1. ইভেন্ট জেনারেটর : এর কনফিগারেশন ফাইলটিতে লাইন থাকা ‘এক্সএক্সএক্সএক্সকে’ প্রকাশ করে যেখানে xxx এটি মালিকানাধীন বা উত্পন্ন ইভেন্টের নাম।
  2. ইভেন্ট ক্যাচার : এক্সএক্সএক্স হিসাবে শুরু হওয়া বা বন্ধ হওয়া শর্তটি যা ইভেন্ট জেনারেটরগুলির মধ্যে একটি উত্পন্ন ইভেন্টটি শুরু বা বন্ধ করে দেয় One

সুতরাং, স্তরক্রম অনুসরণ করে এবং তাই প্রক্রিয়াগুলির মধ্যে নির্ভরতা:

Event generator (parent) -> Event catcher (child)

এখন অবধি, আপনি নিশ্চয়ই বুঝতে পেরেছেন যে ইভেন্ট ট্রিগার প্রক্রিয়াটি একটি সাধারণ বুট-আপ প্রক্রিয়াটির মাধ্যমে প্রক্রিয়াগুলির মধ্যে পিতা-মাতা/সন্তানের নির্ভরতা কীভাবে নির্ধারিত হয়।

এখন, এই শ্রেণিবিন্যাস কখনও কখনও এক সন্তানের এক সন্তানের একমাত্র পিতা-মাতার সম্পর্ক হয় না। এই শ্রেণিবিন্যাসে আমাদের এক বা একাধিক বাবা-মা থাকতে পারে এক বা একাধিক সন্তানের পিতা বা মাতা হওয়ার জন্য। এটি কীভাবে সম্পন্ন হয় ?? ঠিক আছে উত্তরটি নিজেই কনফিগারেশন ফাইলের মধ্যে রয়েছে।

এই লাইনগুলি প্রক্রিয়া থেকে নেওয়া হয়েছে - নেটওয়ার্কিং এবং এখানে শর্তের শুরুটি বেশ কিছু জটিল বলে মনে হচ্ছে যথা - লোকাল-ফাইল সিস্টেমগুলি , udevtrigger , ধারক , রানলেভেল , নেটওয়ার্কিং

লোকাল-ফাইল সিস্টেমগুলি মাউন্টল দ্বারা নির্গত হয়, udevtrigger একটি কাজের নাম, ধারক-সনাক্তকরণ দ্বারা ধারক ইভেন্ট নির্গত হয়, আরসি-সিসিনিট দ্বারা নির্গত রানলেভেল ইভেন্ট এবং নেটওয়ার্কিং আবার একটি কাজ।

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

পূর্বে সংজ্ঞায়িত হিসাবে, আমরা হয় স্বল্পকালীন (বা কাজের-ডাই চাকুরী) অথবা দীর্ঘজীবী (বা থাকার-কাজ ) কাজ থাকতে পারি তবে কীভাবে পার্থক্য করতে হয় তাদের ??

যে সকল কাজগুলি তাদের কনফিগারেশন ফাইলগুলিতে নির্দিষ্ট করা হয়েছে এবং তাদের মধ্যে < টাস্ক 'শব্দ রয়েছে তাদের উভয়ই <<< শুরু ' এবং ' বন্ধ করুন ' শর্ত রয়েছে কনফিগারেশন ফাইলটি হ'ল ওয়ার্ক-এন্ড ডাই কাজ যা উত্পন্ন ইভেন্ট থেকে শুরু হয়, তাদের স্ক্রিপ্ট বা এক্সিকিউট বিভাগ চালায় (মৃত্যুর সময় তারা তাদের দ্বারা ঘটে যাওয়া ঘটনাগুলি ব্লক করে) এবং তারপরে মারা যায় তার পরে যে ইভেন্টগুলি তারা অবরুদ্ধ করেছিল তা প্রকাশ করে die ।

যে চাকরিগুলিতে তাদের কনফিগারেশনের ফাইলে ‘ বন্ধ থাকা ’ শর্ত নেই, তারা দীর্ঘকালীন বা থাকুন এবং কাজ চাকরি করেন এবং তারা কখনই মারা যায় না। এখন থাকা এবং কাজের কাজগুলিকে আরও শ্রেণিবদ্ধ করা যেতে পারে:

  1. যাদের রেসপন শর্ত নেই এবং তারা রুট ব্যবহারকারী দ্বারা হত্যা করতে পারে
  2. যাদের কনফিগারেশন ফাইলে রেসপন শর্ত রয়েছে এবং তাই তাদের কাজ শেষ না হওয়া পর্যন্ত তারা নিহত হওয়ার পরে পুনরায় চালু হয়

উপসংহার

সুতরাং, লিনাক্স এর প্রতিটি প্রক্রিয়া কিছুটির উপর নির্ভরশীল এবং এর উপর কিছু প্রক্রিয়া নির্ভর করে এবং এই সম্পর্কটি অনেকের সাথে অনেকগুলি এবং প্রসেসের অন্যান্য বিবরণ সহ আপস্টার্ট সিস্টেমের সাথে নির্দিষ্ট করা হয়।