প্রথমত, "পূর্বপুরুষ" "পিতামাতার" মতো জিনিস নয়। পূর্বপুরুষ পিতামাতার পিতামাতার… পিতামাতার পিতামাতা হতে পারে এবং কার্নেলটি কেবল একটি স্তরের ট্র্যাক রাখে। যাইহোক, যখন কোনও প্রক্রিয়াটি মারা যায়, এর শিশুরা ডিআইআই দ্বারা গৃহীত হয়, তাই আপনি অনেকগুলি প্রক্রিয়া দেখতে পাবেন যার পিতামাতারা একটি সাধারণ সিস্টেমে 1 জন।
আধুনিক লিনাক্স সিস্টেমে অতিরিক্ত কয়েকটি প্রক্রিয়া রয়েছে যা কার্নেল কোড চালায়, তবে সময়সূচী সম্পর্কিত হিসাবে ব্যবহারকারী প্রসেস হিসাবে পরিচালিত হয়। (কার্নেল কোড চালাচ্ছেন বলে তারা সাধারণ মেমরি পরিচালনার নিয়ম মানেন না)) এই প্রক্রিয়াগুলি সমস্তই তৈরি করা হয় kthreadd
(এটি কার্নেল থ্রেডের সূচনা)। আপনি তাদের প্যারেন্ট প্রসেস আইডি (2) বা সাধারণত ps
তাদের বর্গাকার বন্ধনীগুলির মধ্যে একটি নামের সাথে তালিকার সাথে বা /proc/2/exe
(সাধারণত কার্যকরভাবে প্রক্রিয়াটির কার্যকর করার জন্য একটি প্রতীকী লিঙ্ক) পড়া যায় না এমন তথ্য দ্বারা তাদের সনাক্ত করতে পারেন।
1 ( init
) এবং 2 ( kthreadd
) প্রক্রিয়াগুলি বুট সময়ে সরাসরি কার্নেল দ্বারা তৈরি করা হয়, সুতরাং তাদের কোনও পিতামাতাই নেই। তাদের পিপিড ক্ষেত্রে 0 টি মানটি এটি নির্দেশ করতে ব্যবহৃত হয়। 0 কে এখানে "কর্নেল নিজেই" অর্থ হিসাবে ভাবেন।
লিনাক্সের কার্নেলের ব্যবহারকারীর প্রসেস শুরু করার জন্য কিছু সুবিধা রয়েছে যার অবস্থানটি নির্দিষ্ট পরিস্থিতিতে সিসটেল প্যারামিটারের মাধ্যমে নির্দেশিত হয় । উদাহরণস্বরূপ, কার্নেলটি মডিউল লোডিং ইভেন্টগুলিকে ট্রিগার করতে পারে (উদাহরণস্বরূপ যখন নতুন হার্ডওয়্যার সন্ধান করা হয়, বা যখন কিছু নেটওয়ার্ক প্রোটোকল প্রথম ব্যবহৃত হয়) প্রোগ্রামটিকে kernel.modprobe
সিসেক্টল মানটিতে কল করে । যখন কোনও প্রোগ্রাম কোর ডাম্প করে, কার্নেল প্রোগ্রামটি kernel.core_pattern
যদি কল করে তবে তা কল করে ।
init
সব "পূর্বপুরুষ" হয়user threads
, যখন[kthreadd ]
সব "পিতা বা মাতা" হয়kernel threads
, ঠিক? ধন্যবাদ!