- সিস্টেমডি ২৬০ স্থায়ীভাবে সিস্টেম ভি স্ক্রিপ্টের সমর্থন সরিয়ে দেয় এবং সকল সার্ভিসের জন্য নেটিভ ইউনিট আবশ্যক করে।
- এই সংস্করণটি TPM2-এর সাথে ইন্টিগ্রেশনকে আরও শক্তিশালী করে, যার মধ্যে SRK ম্যানেজমেন্ট এবং tpm2_id ও systemd-pcrexend-এর মতো ইউটিলিটিগুলো অন্তর্ভুক্ত রয়েছে।
- স্যান্ডবক্সিং সক্ষমতা, নেটওয়ার্ক নিয়ন্ত্রণ এবং প্রতিটি পরিষেবার জন্য বরাদ্দকৃত রিসোর্স উল্লেখযোগ্যভাবে প্রসারিত করা হয়েছে, এর পাশাপাশি কন্টেইনার ও ক্ষণস্থায়ী মেশিনের জন্য নতুন বিকল্প যুক্ত করা হয়েছে।
- অবদানের মান উন্নত করার জন্য এই প্রকল্পে এআই এজেন্টদের জন্য নির্দিষ্ট ডকুমেন্টেশন এবং নতুন সহায়ক পর্যালোচনা কর্মপ্রবাহ অন্তর্ভুক্ত করা হয়েছে।

সিস্টেমডি ২৬০- এর আগমনের সাথে সাথে , লিনাক্স ডিস্ট্রিবিউশনগুলো ক্লাউড এনভায়রনমেন্ট, ভার্চুয়ালাইজেশন এবং অটোমেশনের জন্য আরও আধুনিক ও সুরক্ষিত একটি ইকোসিস্টেমের দিকে আরও একটি গুরুত্বপূর্ণ পদক্ষেপ নিচ্ছে। এই সংস্করণটি শুধু খুঁটিনাটি বিষয়গুলোকেই পরিমার্জন করে না, বরং এটি বুটিং, সার্ভিস ম্যানেজমেন্ট, নেটওয়ার্কিং, ডেটার অখণ্ডতা ও এনক্রিপশনের জন্য TPM2-এর ব্যবহার এবং ড্রাইভ-লেভেল স্যান্ডবক্সিং সক্ষমতার মতো বিষয়গুলোতেও উল্লেখযোগ্য পরিবর্তন এনেছে।
একই সাথে, প্রকল্পটি তার ডকুমেন্টেশন এবং কৃত্রিম বুদ্ধিমত্তা এজেন্টদের সাথে কাজ করার পদ্ধতিকে আরও শক্তিশালী করছে , যা থেকে এটা স্পষ্ট যে systemd একটি অত্যন্ত গুরুত্বপূর্ণ স্তম্ভ, যার সাথে ক্রমশ আরও বেশি ডেভেলপমেন্ট এবং অবজার্ভেবিলিটি টুল সংযুক্ত হচ্ছে। আপনি যদি সার্ভারে, ক্লাউডে, কর্পোরেট ডেস্কটপে বা ল্যাবে লিনাক্স সিস্টেম পরিচালনা করেন, তবে আপডেট এবং কনফিগারেশন সমন্বয়ের পরিকল্পনা করার জন্য এই সমস্ত নতুন ফিচারগুলো পর্যালোচনা করতে একটু সময় নেওয়া উচিত।
সিস্টেম ভি-কে চূড়ান্ত বিদায় এবং নেটিভ ড্রাইভের উপর সম্পূর্ণ নির্ভরতা
সিস্টেমডি ২৬০-এর অন্যতম উল্লেখযোগ্য পরিবর্তন হলো সিস্টেম ভি স্ক্রিপ্টের জন্য সমর্থনের সম্পূর্ণ অপসারণ । /etc/init.d-ভিত্তিক ক্লাসিক বুট প্রক্রিয়াটি বহু বছর ধরেই পর্যায়ক্রমে বন্ধ করে দেওয়া হচ্ছিল, কিন্তু এখন এটি সিস্টেমডি কোড থেকে কার্যত অদৃশ্য হয়ে গেছে।
এর অর্থ হলো, SysV স্ক্রিপ্ট এবং নেটিভ ইউনিটের মধ্যে সংযোগ স্থাপনের জন্য দায়ী উপাদানগুলো সরিয়ে ফেলা হয়েছে: systemd-rc-local-generator, rc-local.service, systemd-sysv-generator, এবং systemd-sysv-install-এর আর অস্তিত্ব নেই। ফলে, যে সমস্ত সার্ভিস এখনও এই পুরোনো পদ্ধতিগুলোর উপর নির্ভরশীল, সেগুলো systemd 260 গ্রহণকারী সিস্টেমগুলোতে আর চালু হবে না।
পরিষ্করণ প্রক্রিয়ার সময়, বেশ কিছু মেসন বিল্ড অপশনকেও অপ্রচলিত হিসেবে চিহ্নিত করা হয়েছে বা সরিয়ে ফেলা হয়েছে। -Drc-local=, -Dsysvinit-path=, এবং -Dsysvrcnd-path= ফ্ল্যাগগুলোকে আর্কাইভে স্থানান্তরিত করা হয়েছে, অন্যদিকে -Dintegration-tests= এবং -Dcryptolib= এর মতো অন্যান্য ফ্ল্যাগগুলোকে সম্পূর্ণরূপে সরিয়ে ফেলা হয়েছে। এর মাধ্যমে একটি স্পষ্ট বার্তা দেওয়া হচ্ছে: এখন থেকে সবকিছু অবশ্যই নেটিভ ইউনিট এবং আধুনিক সিস্টেমডি পরিকাঠামোর মাধ্যমে পরিচালনা করতে হবে।
অনেক ইউরোপীয় পরিকাঠামো, যেগুলো এখনও পুরোনো উপাদানের উপর নির্ভরশীল, তাদের জন্য এই পরিবর্তনটি অভ্যন্তরীণ পরিষেবা, কাস্টম স্ক্রিপ্ট এবং লিগ্যাসি ডেপ্লয়মেন্ট পর্যালোচনা করা আবশ্যক করে তুলেছে। সুনির্দিষ্ট ইউনিট ফাইলে স্থানান্তরিত হওয়া এখন আর শুধু সুপারিশযোগ্য নয়; systemd 260 সংহতকারী ডিস্ট্রিবিউশনগুলিতে পরিষেবা চালানো চালিয়ে যেতে চাইলে এটি বাধ্যতামূলক।
উচ্চতর কার্নেল প্রয়োজনীয়তা এবং বর্তমান পরিবেশের উপর মনোযোগ
নতুন সংস্করণটি কার্নেলের মানকে আরও উন্নত করেছে: এখন থেকে সর্বনিম্ন সমর্থিত লিনাক্স সংস্করণ হলো ৫.১০ , যা ৫.৪-এর মতো অনেক পুরোনো শাখাগুলোকে পেছনে ফেলে দিয়েছে। এছাড়াও, প্রকল্পটি নির্দেশ করে যে ব্যবহারকারীদের জন্য আদর্শগতভাবে ৫.১৪ বা তার উচ্চতর কার্নেল ব্যবহার করা উচিত এবং উপলব্ধ সমস্ত বৈশিষ্ট্যের পূর্ণ সুবিধা নিতে বিশেষভাবে ৬.৬ সিরিজ ব্যবহারের সুপারিশ করা হয়েছে।
প্রয়োজনীয়তার এই বৃদ্ধি সাধারণত আধুনিক ডিস্ট্রিবিউশনগুলিতে কোনো সমস্যা নয়, কিন্তু এটি অত্যন্ত রক্ষণশীল পরিবেশ বা বহু বছর ধরে রক্ষণাবেক্ষণ করা এমবেডেড সলিউশনগুলির ক্ষেত্রে বিষয়টিকে জটিল করে তুলতে পারে। systemd 260-তে আপগ্রেড করার আগে, কোন কার্নেল ব্যবহার করা হচ্ছে তা যাচাই করে নেওয়া বাঞ্ছনীয়, বিশেষ করে দীর্ঘমেয়াদী ডেপ্লয়মেন্ট বা কাস্টম ইমেজ ব্যবহারকারী ইউরোপীয় ডেটা সেন্টারগুলির ক্ষেত্রে।
অন্যদিকে, আর্চ লিনাক্স বা ওপেনসুস টাম্বলউইডের মতো রোলিং রিলিজ ডিস্ট্রিবিউশনগুলো, যা সর্বশেষ ফিচার ব্যবহারকারীদের মধ্যে খুব জনপ্রিয়, দ্রুত নতুন কার্নেল এবং সিস্টেমডি-র নতুন শাখা উভয়ই অন্তর্ভুক্ত করে থাকে। ফেডোরার মতো অন্য ডিস্ট্রিবিউশনগুলো প্রতিটি রিলিজের জীবনচক্র জুড়ে সিস্টেমডি-র প্রধান সংস্করণে একটি নির্দিষ্ট মাত্রার স্থিতিশীলতা বজায় রাখে, যা মাইগ্রেশনের পরিকল্পনা করার জন্য কিছুটা বেশি সময় দেয়।
TPM2, বুট ইন্টিগ্রিটি, এবং উন্নত SRK সাপোর্ট
সিস্টেমডি যে ক্ষেত্রগুলোতে সবচেয়ে বেশি বিকশিত হচ্ছে, তার মধ্যে অন্যতম হলো টিপিএম২ (ট্রাস্টেড প্ল্যাটফর্ম মডিউল ২.০) -এর সাথে এর সমন্বয় । এই চিপটি, যা আধুনিক ইউইএফআই মাদারবোর্ড এবং মাঝারি ও উচ্চ-মানের হার্ডওয়্যারে ক্রমশ সাধারণ হয়ে উঠছে, তা সিস্টেম স্টেটের সাথে গোপনীয় তথ্য সংযুক্ত করতে, বুট পর্যায় পরিমাপ করতে এবং পরিবেশ প্রত্যাশিত অবস্থায় থাকলে স্বয়ংক্রিয়ভাবে এনক্রিপ্টেড ভলিউম আনলক করতে সক্ষম করে।
সিস্টেমডি ২৬০ বুট প্রক্রিয়ার বিভিন্ন ধাপের জন্য টুল ও সার্ভিস যুক্ত করে এই ইন্টিগ্রেশনকে আরও উন্নত করে। এর একটি মূল উপাদান হলো সিস্টেমডি-টিপিএম২-সেটআপ , যা টিপিএম-এর স্টোরেজ রুট কী (এসআরকে)-কে ঘিরে অবকাঠামো প্রস্তুত করার দায়িত্বে থাকে । এই রুট কী চিপের সাথে যোগাযোগ সুরক্ষিত করতে এবং অন্যান্য গোপনীয় তথ্য নিরাপদে সংরক্ষণ করার জন্য ক্রিপ্টোগ্রাফিক ভিত্তি হিসেবে কাজ করে।
বুট করার সময় দুটি পর্যায় চিহ্নিত করা হয়: একটি খুব প্রাথমিক পর্যায় যা initrd-তে ঘটে এবং অন্যটি রুট সিস্টেমে। প্রথম পর্যায়ে, "Early TPM SRK Setup" নামক একটি সার্ভিস পরীক্ষা করে দেখে যে TPM-এ আগে থেকেই কোনো সংরক্ষিত SRK আছে কিনা এবং যদি না থাকে, তবে সেটি তৈরি করে /run/systemd/tpm2-srk-public-key.*- এর অধীনে সাময়িকভাবে উপলব্ধ করে । পরে, আসল ফাইলসিস্টেম মাউন্ট হয়ে গেলে, সার্ভিসটি SRK-টিকে সুসংহত করে এবং যাচাই করে যে /var/lib/systemd/tpm2-srk-public-key.pem- এ সংরক্ষিত কী-টি TPM-এর কী-টির সাথে মেলে কিনা।
সঠিকভাবে কনফিগার করা থাকলে, "SRK ইতিমধ্যেই TPM-এ সংরক্ষিত আছে" -এর মতো জার্নাল এন্ট্রি এবং SRK ফুটপ্রিন্ট প্রত্যাশিতটির সাথে মিলে গেছে এমন বার্তা প্রদর্শিত হবে। তবে, যদি পরিবেশটি সঠিকভাবে কনফিগার করা না থাকে (উদাহরণস্বরূপ, Yocto ব্যবহার করা সেটআপে অথবা Raspberry Pi-এর মতো বোর্ডে যেখানে SPI-ভিত্তিক TPM এবং U-Boot ও measured boot-এর মতো কাস্টম বুট পদ্ধতি ব্যবহৃত হয়), তাহলে এমন পরিস্থিতি তৈরি হতে পারে যেখানে systemd, /var/lib/systemd-এর অধীনে এই ফাইলগুলি তৈরি করতে ব্যর্থ হয়, যা SRK সঠিকভাবে কনফিগার করা হয়েছে কিনা সে সম্পর্কে সন্দেহ তৈরি করে।
যখন TPM-এর অবস্থা পরিবর্তিত হয়, পার্টিশনগুলি সংশোধন করা হয়, বা বুট সিকোয়েন্স পরিবর্তন করা হয়, তখন সংশ্লিষ্ট পলিসিটি আর বৈধ নাও থাকতে পারে। এই ধরনের ক্ষেত্রে, কিছু রক্ষণাবেক্ষণকারী TPM স্লট বা পলিসিটি মুছে ফেলার এবং কী-টি পুনরায় রেজিস্টার করার পরামর্শ দেন । এর জন্য openSUSE-এর মতো পরিবেশে TPM সহ ডিস্ক এনক্রিপশন গাইডে বর্ণিত পদ্ধতির অনুরূপ পদ্ধতি অনুসরণ করতে হয়, যেখানে PCR পলিসি পুনরায় তৈরি করা এবং ভলিউম আনলকিং পুনরায় লিঙ্ক করার বিস্তারিত বিবরণ দেওয়া থাকে।
SRK ছাড়াও, আরেকটি কার্যকরী উন্নতি হলো udev-এ tpm2_id নামক একটি অভ্যন্তরীণ ইউটিলিটির সংযোজন । সিস্টেম যখন কোনো TPM2 ডিভাইস শনাক্ত করে, তখন এই সমন্বিত টুলটি চালু হয় এবং স্বয়ংক্রিয়ভাবে প্রস্তুতকারক ও মডেল শনাক্তকারী বের করে নেয় । এটি নিরাপত্তা হার্ডওয়্যারের তালিকা তৈরিকে সহজ করে তোলে, যা সরকারি প্রশাসন, নিয়ন্ত্রিত সংস্থা বা গুরুত্বপূর্ণ অবকাঠামোগুলোর জন্য অত্যন্ত উপযোগী, যেখানে ঠিক কোন TPM মডিউলগুলো স্থাপন করা হয়েছে তা জানা অপরিহার্য।
systemd-pcrexend-এর মতো নির্দিষ্ট ইউনিটগুলির মাধ্যমে বুট পরিমাপ পরিকাঠামোর সাথে একীকরণ আরও শক্তিশালী হয় , যা বিভিন্ন PCR-এ (যেমন, PCR 11) "enter-initrd", "leave-initrd", "sysinit", এবং "ready"-এর মতো ইভেন্টগুলি লগ করে। এক্সটেনশনগুলির এই ক্রম TPM-কে বুট ফ্লো-এর একটি ক্রিপ্টোগ্রাফিকভাবে যাচাইযোগ্য রেকর্ড সংগ্রহ করতে সাহায্য করে, যা পরবর্তীতে ট্রাস্টেড বুট পলিসি বা UKI (ইউনিফাইড কার্নেল ইমেজ) -এর জন্য কী রিলিজ করার আগে মেশিনের অবস্থা যাচাই করতে ব্যবহার করা যেতে পারে।
সিস্টেমডি ব্যবহার করে সার্ভিসগুলোর নিরাপত্তা ব্যবস্থা ও স্যান্ডবক্সিং
সিস্টেমডি শুধু প্রসেস চালু করে না, বরং কোনো নিরাপত্তা লঙ্ঘনের ক্ষেত্রে সার্ভিসগুলোকে বিচ্ছিন্ন করতে এবং ক্ষতি সীমিত করার জন্য স্যান্ডবক্সিং নির্দেশাবলীর একটি ব্যাপক সেটও প্রদান করে । এই "গভীর প্রতিরক্ষা" পদ্ধতিটি সিগ্রুপস, নেমস্পেস, কার্নেল ক্যাপাবিলিটিস এবং সিস্টেম কল ফিল্টার (সেকম্প)-এর উপর নির্ভর করে।
কোনো নির্দিষ্ট সার্ভিসের নিরাপত্তা মূল্যায়ন করার জন্য, systemd-তে systemd-analyze নামক একটি নিরাপত্তা টুল অন্তর্ভুক্ত রয়েছে । এটি চালালে ০ থেকে ১০ স্কেলে একটি এক্সপোজার স্কোরসহ রিপোর্ট তৈরি হয়, যেখানে কম স্কোরকে ভালো বলে ধরা হয়। রিপোর্টটিতে বিস্তারিতভাবে দেখানো হয় কোন কোন সুরক্ষা ব্যবস্থা চালু বা বন্ধ আছে (যেমন নেটওয়ার্ক আইসোলেশন, ফাইল সিস্টেম অ্যাক্সেস, ডিভাইস অ্যাক্সেস ইত্যাদি), যার ফলে কোনো অনুপস্থিত সেটিংস শনাক্ত করা এবং পরিবর্তনগুলো আসলেই স্কোরের উন্নতি ঘটায় কিনা তা যাচাই করা সহজ হয়।
মূল ইউনিটটি সম্পাদনা করার পরিবর্তে—যা ভবিষ্যতের প্যাকেজ আপডেটে হারিয়ে যাবে—একটি তৈরি করার পরামর্শ দেওয়া হয়। অগ্রাহ্য করা en /etc/systemd/system/mi-servicio.service.d/ উদাহরণস্বরূপ, একটি ফাইলের সাথে, sandbox.confএটি পরিবর্তন করার পর, কেবল কনফিগারেশনটি পুনরায় লোড করুন systemctl ডেমন-রিলোড এবং পরিষেবাটি পুনরায় চালু করুন যাতে নতুন বিধিনিষেধগুলো কার্যকর হয়।
ফাইল সিস্টেম পর্যায়ে, সবচেয়ে গুরুত্বপূর্ণ বিকল্পগুলির মধ্যে একটি হলো প্রোটেক্টসিস্টেম=যেমন মূল্যবোধ strict, full o true তারা ট্রি-এর বিভিন্ন অংশ রিড-অনলি মোডে মাউন্ট করে। প্রচলিত রীতি হলো, যখন সম্ভব হয়, ব্যবহার করা। ProtectSystem=strictএর ফলে সার্ভিসটির জন্য /usr, /boot, /efi, এবং /etc ডিরেক্টরিগুলো শুধুমাত্র পঠনযোগ্য (read-only) হয়ে যায়। যদি কোনো অ্যাপ্লিকেশনের নির্দিষ্ট ডিরেক্টরিতে লেখার প্রয়োজন হয়, তবে তাকে এটি ব্যবহার করে তা করার অনুমতি দেওয়া হয়। ReadWritePaths=/path unityক্যে
গোপনীয়তা আরও জোরদার করার জন্য, `ProtectHome=true` ব্যবহার করে ব্যবহারকারীর ডিরেক্টরিতে প্রবেশাধিকার সীমিত করার পরামর্শ দেওয়া হয় , যা সার্ভিসটিকে `/home`, `/root`, বা `/run/user` পড়তে বাধা দেয়। এছাড়াও, `PrivateTmp=true` বিচ্ছিন্ন `/tmp` এবং `/var/tmp` স্পেস তৈরি করে, যা প্রসেসগুলোর মধ্যে টেম্পোরারি ফাইলগুলোর পারস্পরিক দৃশ্যমানতা রোধ করে।
ডিভাইসগুলোর ক্ষেত্রে, `PrivateDevices=true` প্রকৃত `/dev` ট্রি-কে আড়াল করে এবং এর পরিবর্তে একগুচ্ছ নিরাপদ ছদ্ম-ডিভাইস (নাল, জিরো, র্যান্ডম, ইত্যাদি) ব্যবহার করে। যদি কোনো ড্রাইভের একটি নির্দিষ্ট ডিভাইসের (যেমন, একটি সিরিয়াল পোর্ট বা একটি ডিস্ক ব্লক) প্রয়োজন হয়, তবে `DeviceAllow=/dev/xxx rw` ব্যবহার করে অথবা রিড-অনলি মোডে তার অনুমতি দেওয়া যেতে পারে।
নেটওয়ার্কটিও একটি মূল বাহক। সাথে প্রাইভেটনেটওয়ার্ক=সত্য একটি বিচ্ছিন্ন নেটওয়ার্ক নেমস্পেস তৈরি করা হয়, যেখানে শুধুমাত্র লুপব্যাকটি থাকে; সার্ভিসটি ফিজিক্যাল ইন্টারফেস দেখতে পাবে না এবং বাইরের জগতের সাথে যোগাযোগ করতে পারবে না। বিকল্পভাবে, আপনি এটি কোন অ্যাড্রেস ফ্যামিলিগুলো ব্যবহার করতে পারবে তা সীমাবদ্ধ করতে পারেন। ঠিকানা পরিবার সীমাবদ্ধ করুন=IPv4/IPv6-এর জন্য শুধুমাত্র AF_INET এবং AF_INET6, লোকাল সকেটের জন্য AF_UNIX অথবা এমনকি none নেটওয়ার্ক সক্ষমতা সম্পূর্ণরূপে জাপানিকরণ করা।
প্রিভিলেজের ক্ষেত্রে, `NoNewPrivileges=true` ডিরেক্টিভটি সবচেয়ে শক্তিশালীগুলোর মধ্যে একটি: এটি সেটইউআইডি বাইনারি বা ক্যাপাবিলিটি পরিবর্তনের মাধ্যমে প্রসেসটিকে নতুন প্রিভিলেজ অর্জন করা থেকে বিরত রাখে। সংক্ষেপে, সার্ভিসটি ঝুঁকিপূর্ণ কোড চালালেও, প্রচলিত পদ্ধতির মাধ্যমে এর রুটে উন্নীত হওয়ার কথা নয়। `CapabilityBoundingSet=`- এর সাথে মিলিতভাবে , যা অনুমোদিত ক্যাপাবিলিটিগুলোর একটি সুনির্দিষ্ট তালিকা নির্ধারণ করে (উদাহরণস্বরূপ, লো পোর্টে লিসেন করার জন্য শুধুমাত্র `CAP_NET_BIND_SERVICE`), আক্রমণের ক্ষেত্রটি সংকুচিত হয়ে আসে।
আরও এক ধাপ এগিয়ে, systemd সিস্টেম কল ফিল্টার করার অনুমতি দেয় যার মাধ্যমে সিস্টেমকলফিল্টার=সিস্টেম কলগুলির একটি ম্যানুয়াল তালিকা রক্ষণাবেক্ষণ করার পরিবর্তে, পূর্বনির্ধারিত গ্রুপ ব্যবহার করা হয়, যেমন @system-service, @network-io, @basic-io অথবা অস্বীকার করুন যেমন ~@privileged। সঙ্গে systemd-analyze syscall-filter কোন নির্দিষ্ট কলগুলো প্রতিটি গ্রুপের অন্তর্গত, তা পরীক্ষা করা সম্ভব। এর ফলে একটি অত্যন্ত সীমিত এক্সিকিউশন প্রোফাইল তৈরি করা যায়, যা একটি ডেডিকেটেড স্যান্ডবক্সের সুবিধার অনুরূপ।
অন্যান্য প্রাসঙ্গিক সেটিংসের মধ্যে রয়েছে `ProtectKernelTunables=true` , যা `/proc/sys` এবং `/sys`-এ কার্নেল প্যারামিটার পরিবর্তন ব্লক করে; `ProtectKernelModules=true` , যা মডিউল লোড বা আনলোড করা প্রতিরোধ করে; `ProtectKernelLogs=true` , যা কার্নেল লগ পড়া প্রতিরোধ করে; এবং `ProtectControlGroups=true` , যা cgroups হায়ারার্কিতে লেখা ব্লক করে। এই সবকিছু ` PrivateUsers=full`-এর মতো নতুন ইউজার আইসোলেশন ক্ষমতার সাথে নির্বিঘ্নে কাজ করে , যা সংস্করণ ২৬০-এ ইউজার আইডির সম্পূর্ণ পরিসর ম্যাপ করার জন্য আপডেট করা হয়েছে, ফলে নেস্টেড systemd এনভায়রনমেন্টের জন্য প্রয়োজনীয় পূর্ববর্তী ওয়ার্কঅ্যারাউন্ডগুলো দূর হয়েছে।
প্রাইভেটইউজার্স, এক্সঅ্যাক্সেস, এবং নতুন ডিভাইস অ্যাক্সেস নিয়ন্ত্রণ
প্রাইভেটইউজার্স মেকানিজম , যা সার্ভিসগুলোকে একটি বিচ্ছিন্ন ইউজার আইডি স্পেসে চালানোর সুযোগ দেওয়ার জন্য ডিজাইন করা হয়েছিল, তা সিস্টেমডি ২৬০-এ সংহত করা হয়েছে। প্রাইভেটইউজার্স=ফুল অপশনটি এখন আইডেন্টিফায়ারের সম্পূর্ণ পরিসরকে ম্যাপ করে, যা কন্টেইনারে এবং পুরোনো সংস্করণ (২৫৭-এর পূর্ববর্তী) ভিত্তিক নেস্টেড সিস্টেমডি ইনস্ট্যান্সযুক্ত সিস্টেমগুলোতে কাজকে সহজ করে তোলে। এই উন্নতির ফলে সেইসব হ্যাকগুলো দূর করা হয়েছে যা পূর্বে এই পুরোনো ইনস্ট্যান্সগুলোকে শনাক্ত করতে ব্যবহৃত হতো।
এর পাশাপাশি, systemd-logind এবং systemd-udevd-এর মতো কম্পোনেন্টগুলো xaccess- এর ধারণাটি চালু করে । এই পদ্ধতিটি uaccess- এর চিরায়ত যুক্তির পরিপূরক , যা স্থানীয় মেশিনে ফোরগ্রাউন্ড গ্রাফিক্স সেশন থাকা ব্যবহারকারীদের নির্দিষ্ট কিছু ডিভাইসে (যেমন, অডিও বা ভিডিও) অ্যাক্সেস দেয়। xaccess-এর মাধ্যমে, বিশেষভাবে চিহ্নিত সেশন থাকা দূরবর্তী ব্যবহারকারীদের কাছে অনুমতি অর্পণ করা যায় , যাতে উদাহরণস্বরূপ, রিমোট ডেস্কটপের মাধ্যমে সংযুক্ত একজন ব্যবহারকারী পুরো সিস্টেমে ব্যাপক অনুমতি না দিয়েই স্থানীয় GPU রেন্ডারিং ডিভাইসগুলো অ্যাক্সেস করতে পারে।
এই সেশনগুলির কনফিগারেশনে PAM-এর মাধ্যমে প্রকাশিত এনভায়রনমেন্ট ভেরিয়েবল জড়িত থাকে, বিশেষত PAMXDG_SESSION_EXTRA_DEVICE_ACCESS= , যা এই লজিকে কোন নির্দিষ্ট ডিভাইসগুলি অন্তর্ভুক্ত হবে তা নির্ধারণ করার সুযোগ দেয়। এই পদ্ধতিটি ইউরোপীয় ইউনিয়নের নিয়ন্ত্রক সম্মতি এবং ডেটা সুরক্ষা প্রয়োজনীয়তার সাথে অত্যন্ত সামঞ্জস্যপূর্ণ, যেখানে সংবেদনশীল হার্ডওয়্যারে অ্যাক্সেসের জন্য সূক্ষ্মতা এবং শনাক্তযোগ্যতা দাবি করা হয়।
mstack, systemd-mstack এবং নতুন কন্টেইনার টুলস
কন্টেইনারাইজেশন ক্ষেত্রে, সিস্টেমডি ২৬০ যে কার্যকারিতাটি চালু করেছে এমস্ট্যাক এবং একটি সংশ্লিষ্ট কমান্ড, সিস্টেমডি-এমস্ট্যাকmstack-এর পেছনের ধারণাটি হলো একটি সংজ্ঞায়িত করার সুযোগ দেওয়া। ওভারলেএফএস একটি বিশেষ ডিরেক্টরির কাঠামোর উপর ভিত্তি করে যার নাম .mstack/, যা এর স্তরগুলো বিন্যস্ত করার জন্য একটি নির্দিষ্ট নিয়ম অনুসরণ করে।
নতুন কমান্ড-লাইন টুল, systemd-mstack, এই ফাইল সিস্টেম স্ট্যাকগুলির সাথে ইন্টারেক্টিভভাবে কাজ করা সহজ করে তোলে, যা কন্টেইনার বা অত্যন্ত বিচ্ছিন্ন পরিষেবাগুলির জন্য স্তরযুক্ত পরিবেশ সেট আপ করার ক্ষেত্রে নমনীয়তা যোগ করে। এই কার্যকারিতাটি systemd-importd- এর উন্নতির সাথেও যুক্ত, যা OCI ইমেজ ডাউনলোড এবং পরিচালনার জন্য এর সমর্থন প্রসারিত করে , ফলে কন্টেইনারাইজেশন এবং স্যান্ডবক্সিং ইঞ্জিন হিসাবে systemd-এর ভূমিকাকে আরও শক্তিশালী করে, যা ইউরোপীয় ক্লাউড সরবরাহকারী এবং আধুনিক হোস্টিং প্ল্যাটফর্মগুলির মধ্যে খুবই সাধারণ একটি বিষয়।
নেটওয়ার্ক: মোডেমম্যানেজারের সাথে ইন্টিগ্রেশন এবং নতুন পারফরম্যান্স অপশন
নেটওয়ার্ক লেয়ারে systemd-networkd-এর গুরুত্ব ক্রমাগত বাড়ছে। এর অন্যতম উল্লেখযোগ্য নতুন বৈশিষ্ট্য হলো "simple connect" প্রোটোকলের মাধ্যমে ModemManager-এর সাথে এর ইন্টিগ্রেশন , যা কোনো বাহ্যিক টুলের উপর নির্ভর না করে সরাসরি networkd থেকে মডেম এবং মোবাইল সংযোগ পরিচালনা করার সুযোগ দেয়।
এই প্রবাহকে সমর্থন করার জন্য একটি নতুন বিভাগ যোগ করা হয়েছে। কনফিগারেশন ফাইলগুলিতে, প্যারামিটার সহ যেমন APN=, AllowedAuthenticationMechanisms=, User=, Password=, IPFamily=, AllowRoaming=, PIN=, OperatorId=, RouteMetric= y UseGateway=এটি স্থাপনা সহজতর করে মোবাইল নেটওয়ার্ক ভিত্তিক সংযোগ সহ গ্রামীণ এলাকা বা পরিবেশইউরোপের কিছু নির্দিষ্ট অঞ্চলে এর ব্যাপক উপস্থিতি রয়েছে, যেখানে সবসময় ফাইবার বা উন্নত মানের ল্যান্ডলাইন পাওয়া যায় না।
পারফরম্যান্সের দিক থেকে, systemd-networkd .link ফাইলগুলোতে বিশেষভাবে ইথারনেট ডিভাইসগুলোর জন্য নতুন অপশন অন্তর্ভুক্ত করা হয়েছে। এগুলোর মধ্যে রয়েছে ScatterGather, ScatterGatherFragmentList, TCPECNSegmentationOffload, TCPMangleIdSegmentationOffload, GenericReceiveOffloadList, এবং GenericReceiveOffloadUDPForwarding । এই অপশনগুলো হার্ডওয়্যার এবং ড্রাইভারের কাছে কাজের অফলোডিং সূক্ষ্মভাবে নিয়ন্ত্রণ করার সুযোগ দেয়, যা কর্পোরেট নেটওয়ার্ক, ডেটা সেন্টার এবং পরিষেবা প্রদানকারীদের জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ তাদের প্রতিটি মিলিসেকেন্ডের ল্যাটেন্সি কমাতে হয়।
এছাড়াও, systemd-networkd-এর Varlink এবং JSON ইন্টারফেসগুলো এখন আইপি অ্যাড্রেসকে একটি ইন্টিজার অ্যারে হিসেবে উপস্থাপন করার পাশাপাশি, এটিকে সহজে পাঠযোগ্য ফরম্যাটে (স্ট্রিং) রিপোর্ট করতে পারে। এর ফলে মনিটরিং ড্যাশবোর্ড, ম্যানেজমেন্ট স্ক্রিপ্ট বা এমন থার্ড-পার্টি টুলগুলোর সাথে ইন্টিগ্রেশন সহজ হয়, যেগুলো দুর্বোধ্য সাংখ্যিক ফরম্যাট নিয়ে কাজ করতে চায় না।
পরিষেবা বহনযোগ্যতা, ক্ষণস্থায়ী ভার্চুয়াল মেশিন এবং বিশেষাধিকারবিহীন পরিষেবা
systemd-portabled কম্পোনেন্ট , যা ইমেজে প্যাকেজ করা 'পোর্টেবল' সার্ভিসগুলো পরিচালনার জন্য দায়ী, একটি অত্যন্ত আকর্ষণীয় ক্ষমতা অর্জন করেছে: এটি এখন একটি ইউজার-লেভেল সার্ভিস হিসেবে চলতে পারে । এর মানে হলো, সাধারণ ব্যবহারকারীরা তাদের স্বাভাবিক সেশনে sudo বা উচ্চতর প্রিভিলেজের সাহায্য না নিয়েই নিজেদের স্পেসের মধ্যে পোর্টেবল সার্ভিসগুলো চালু ও পরিচালনা করতে পারবেন।
এছাড়াও, এই সংস্করণ থেকে শুরু করে, পোর্টেবলড একটি পোর্টেবল সার্ভিসের সাথে যুক্ত ইমেজকে পলিসি তৈরি করতে ও লক করতে পারে , যা সেটিকে পুনরায় সংযুক্ত না করে ইমেজটির পরিবর্তন প্রতিরোধ করে। এটি ব্যবহারকারীদের অতিরিক্ত অপরিবর্তনীয়তার নিশ্চয়তাসহ স্বয়ংসম্পূর্ণ পরিবেশ তৈরি করার সুযোগ দেয়, যা ল্যাব, ডেভেলপমেন্ট এনভায়রনমেন্ট এবং টেস্ট স্যান্ডবক্সের জন্য একটি বিশেষভাবে আকর্ষণীয় বৈশিষ্ট্য।
অন্যদিকে, systemd-vmspawn— যা systemd-এর সাথে সমন্বিতভাবে ভার্চুয়াল মেশিন চালু করার জন্য ডিজাইন করা একটি টুল— ব্যবহারকারীর সেশনের মধ্যেই systemd-machined-এর সাথে রেজিস্টার করার জন্য এর সক্ষমতা প্রসারিত করে। এটি একটি ‘-ephemeral’ অপশনও চালু করেছে , যার মাধ্যমে ক্ষণস্থায়ী মেশিন তৈরি করা যায় যা ব্যবহার শেষে ধ্বংস হয়ে যায়। এটি CI/CD পাইপলাইন, ভার্চুয়াল ক্লাসরুম বা ইউরোপীয় শিক্ষামূলক প্ল্যাটফর্মগুলির জন্য একটি আদর্শ সমাধান, যেখানে ভার্চুয়াল মেশিনের দ্রুত এবং নিয়ন্ত্রিতভাবে তৈরি ও ধ্বংস করার প্রয়োজন হয় ।
SCHED_EXT এবং THP-এর মাধ্যমে সিপিইউ, মেমরি এবং শিডিউলিং-এর সূক্ষ্ম নিয়ন্ত্রণ।
সিস্টেমডি ২৬০ নতুন পলিসির মাধ্যমে পারফরম্যান্স নিয়ন্ত্রণেও গভীরভাবে কাজ করে। সার্ভিস অপশন সিপিইউ শিডিউলিং পলিসি= এখন মানটি গ্রহণ করুন extযা শিডিউলারকে সক্রিয় করে SCHED_EXTএই বিকল্প পরিকল্পনাকারী দ্বার উন্মোচন করে বিভিন্ন পরিকল্পনা নীতি নিয়ে পরীক্ষা-নিরীক্ষা কার্নেল স্ট্যান্ডার্ডের ক্ষেত্রে, যা গবেষণা ও উন্নয়ন পরীক্ষাগারে অথবা অত্যন্ত বিশেষায়িত প্রয়োগের ক্ষেত্রে আগ্রহের বিষয় হতে পারে।
মেমোরি এরিয়াতে আপনি `MemoryTHP=` অপশনটি পাবেন, যা আপনাকে প্রতিটি সার্ভিসের জন্য আলাদাভাবে ট্রান্সপারেন্ট হিউজ পেজ (THP)- এর ব্যবহার নিয়ন্ত্রণ করার সুযোগ দেয় । সিস্টেম-ব্যাপী কোনো গ্লোবাল সেটিং-এর পরিবর্তে, আপনি সিদ্ধান্ত নিতে পারেন যে কোনো নির্দিষ্ট ইউনিট THP ব্যবহার করবে, এটিকে নিষ্ক্রিয় করবে, নাকি মধ্যবর্তী কোনো মোড গ্রহণ করবে। ব্যাংকিং, বীমা বা সরকারি খাতের গুরুত্বপূর্ণ অ্যাপ্লিকেশনগুলোর জন্য, এই সূক্ষ্ম নিয়ন্ত্রণ ল্যাটেন্সি, মেমোরি ব্যবহার এবং পারফরম্যান্সে একটি উল্লেখযোগ্য পার্থক্য তৈরি করতে পারে ।
systemctl-এর নতুন কমান্ড এবং Varlink-এর বর্ধিত ব্যবহার
পরিচিত systemctl কমান্ডের সাথে একটি নতুন কমান্ড যুক্ত হয়েছে: enqueue-marked । এই অ্যাকশনটি অভ্যন্তরীণভাবে D-Bus মেথড EnqueueMarkedJobs() কল করে এবং আগে থেকে চিহ্নিত জব ও সার্ভিসের কিউ নিয়ে কাজ করার সুযোগ দেয়। যদিও এটিকে একটি ছোটখাটো বিষয় বলে মনে হতে পারে, কিন্তু বড় আকারের সার্ভার ফার্ম পরিচালনাকারী অপারেশনস টিমের জন্য এটি ডেপ্লয়মেন্ট এবং অটোমেশন ওয়ার্কফ্লোকে আরও উন্নত করার একটি অতিরিক্ত উপায়।
এর পাশাপাশি, প্রকল্পটি কম্পোনেন্টগুলোর মধ্যে যোগাযোগের মাধ্যম হিসেবে ভারলিংকের ব্যবহার প্রসারিত করে চলেছে । সিস্টেমডি-র অনেক অংশ স্থিতিশীল ভারলিংক ইন্টারফেস প্রদান করে, যা এমন সব এক্সটার্নাল টুল, কাস্টম ড্যাশবোর্ড বা মনিটরিং এজেন্টের সাথে ইন্টিগ্রেশন সহজ করে, যাদের সিস্টেম তথ্যে কাঠামোগত অ্যাক্সেসের প্রয়োজন হয়।
সিস্টেম শনাক্তকরণ ক্ষেত্র এবং ব্যবহারকারীর অভিজ্ঞতা
কিছু ডিস্ট্রিবিউশনের জন্য একটি কৌতূহলোদ্দীপক কিন্তু দরকারী নতুন বৈশিষ্ট্য হলো ফিল্ডের প্রবর্তন। ফ্যান্সি_নাম= সংরক্ষণাগারে /etc/os-releaseএই ফিল্ডটি PRETTY_NAME-এর অনুরূপ, কিন্তু এটি অনুমতি দেয় ANSI ক্রম এবং আরও বিশদ ইউনিকোড অক্ষরএর ফলে, নির্দিষ্ট বিতরণ ও সংস্করণগুলোকে আরও আকর্ষণীয় বা স্বতন্ত্র নামে উপস্থাপন করা যায়।
systemd-hostnamed ব্যবহার করে অথবা hostnamectl কোয়েরি করার মাধ্যমে systemd ম্যানেজার থেকে FANCY_NAME-এর মান দেখা যায় । যদিও এটি একটি ছোট পরিবর্তন, ডেস্কটপ এনভায়রনমেন্ট এবং গ্রাফিক্যাল অ্যাডমিনিস্ট্রেশন প্যানেলে এটি পরিচালিত সিস্টেমটিকে দ্রুত শনাক্ত করার জন্য কার্যকর হতে পারে, বিশেষ করে যখন এর অনেকগুলো ডেরিভেটিভ ভ্যারিয়েন্ট পরিচালনা করতে হয়।
এআই এজেন্ট এবং সহায়ক পর্যালোচনা কর্মপ্রবাহের জন্য নির্দিষ্ট ডকুমেন্টেশন
systemd-এর বিকাশের অভিমুখের অন্যতম আকর্ষণীয় একটি লক্ষণ হলো কৃত্রিম বুদ্ধিমত্তা এজেন্টদের জন্য বিশেষভাবে তৈরি ডকুমেন্টেশনের আবির্ভাব । এই রিপোজিটরিতে একটি AGENTS.md ফাইল রয়েছে, যা কোড বিশ্লেষণ টুল এবং প্রোগ্রামিং অ্যাসিস্ট্যান্টদের এই প্রজেক্টের আর্কিটেকচার, স্টাইল, ডেভেলপমেন্ট ফ্লো এবং কন্ট্রিবিউশন গাইডলাইন আরও ভালোভাবে বুঝতে সাহায্য করার জন্য ডিজাইন করা হয়েছে। এছাড়াও এখানে কিছু টেকনোলজি গাইডও রয়েছে।
এই ডকুমেন্টে কম্পোনেন্ট, বিল্ড পাথ, টেস্ট ও ইন্টিগ্রেশন চালানোর পদ্ধতি এবং গ্রহণযোগ্য প্যাচ তৈরির নির্দেশিকা বর্ণনা করা হয়েছে। এর উদ্দেশ্য হলো, কোড পর্যালোচনা বা পরিবর্তনকারী এআই এজেন্টদেরকে systemd-এর গঠন সম্পর্কে একটি সুস্পষ্ট ধারণা দেওয়া , যার ফলে ভুলত্রুটি এবং ভুল জায়গায় দেওয়া পরামর্শ কমে যায়।
AGENTS.md ফাইলের পাশাপাশি CLAUDE.md নামে একটি ফাইল রয়েছে , যা স্পষ্টভাবে পূর্ববর্তী ফাইলটিকে নির্দেশ করে এবং এটি বহুল ব্যবহৃত এআই-ভিত্তিক ডেভেলপমেন্ট অ্যাসিস্ট্যান্টগুলোর অন্যতম ক্লড কোড টুলকে পথনির্দেশনা দেওয়ার জন্য ডিজাইন করা হয়েছে। এভাবে, প্রকল্পটি তার ডেভেলপমেন্ট চক্রে সুস্পষ্টভাবে এআই-কে অন্তর্ভুক্ত করে।
এছাড়াও, একটি কনফিগারেশন ফাইল অন্তর্ভুক্ত রয়েছে। claude-review.ymlযেখানে ক্লড কোডের সাহায্যে পরিবর্তন অনুরোধ (পুল রিকোয়েস্ট) বিশ্লেষণের প্রক্রিয়াটি কীভাবে পর্যালোচনা করা হবে তা সংজ্ঞায়িত করা হয়েছে। এই প্রেক্ষাপটে, যে অবদানগুলিতে এআই ব্যবহার করা হয়েছে, সেগুলিকে অন্তর্ভুক্ত করতে হবে। প্রকাশ লেবেল Como Co-developed-by প্যাচগুলোতে এমন প্রমাণ পাওয়া যায় যে, কোডটি তৈরিতে একটি স্বয়ংক্রিয় টুল অংশ নিয়েছে।
লিগ্যাসি সাপোর্টের পরিচ্ছন্নতা, স্যান্ডবক্সিংয়ের পরিমার্জন, TPM2 ও SRK-এর উন্নয়ন, উন্নত নেটওয়ার্ক ইন্টিগ্রেশন, নতুন পোর্টেবিলিটি সক্ষমতা এবং ইন্টেলিজেন্ট এজেন্টদের জন্য ডিজাইন করা ডকুমেন্টেশনের মতো এই ব্যাপক পরিবর্তনগুলোর মাধ্যমে systemd 260 আধুনিক লিনাক্স ইকোসিস্টেমে তার কেন্দ্রীয় ভূমিকাকে আরও শক্তিশালী করেছে। স্পেন এবং ইউরোপের অ্যাডমিনিস্ট্রেটর ও ডেভেলপারদের জন্য তাৎক্ষণিক চ্যালেঞ্জ হলো কার্নেল পর্যালোচনা করা, বুট কনফিগারেশন ও সার্ভিসগুলোকে মানিয়ে নেওয়া এবং বর্তমান সিস্টেম ব্যবহারের সাথে সামঞ্জস্যপূর্ণ আরও সুরক্ষিত ও স্বয়ংক্রিয় পরিকাঠামো তৈরির জন্য এই বৈশিষ্ট্যগুলোকে কাজে লাগানো।