এমন একটি অপারেটিং সিস্টেম যেখানে কর্তৃত্ব ধরে রাখতে হয়, ধরে নেওয়া যায় না
প্রায় প্রতিটি অনুপ্রবেশ একইভাবে ঘটে: একটি প্রোগ্রাম এমন কিছুতে হাত বাড়ায় যা তার ছোঁয়ার কথা ছিল না। ParanoidBSD এমনভাবে গড়া একটি অপারেটিং সিস্টেম যাতে সেটা করাই না যায়। প্রতিটি প্রোগ্রাম কেবল যা দরকার তা-ই পায়, আর বাকি সব শুধু নিষিদ্ধ নয় — নাগালেরই বাইরে। HardenedBSD-র উপরে গড়া, আধুনিক C++-এ নতুন করে লেখা, মূলটি পাশে রাখা আছে যাতে প্রতিটি পরিবর্তন তার সঙ্গে মিলিয়ে দেখা যায়।
এটি কী, এক মিনিটে
একটি প্রতিষ্ঠান যা কিছু চালায়, তার সবার নিচে থাকে অপারেটিং সিস্টেম। বেশিরভাগই দাঁড়িয়ে আছে দশকের পর দশক পুরনো কোডের উপর, আর তারা যেকোনো প্রোগ্রামকে যা খুশি চাইতে দেয় — দেওয়া হবে কি না তা সিস্টেম ঠিক করে পরে। এই কারণেই নিরীহ কোনো কিছুতে একটিমাত্র ত্রুটি, যেমন পর্দায় ফন্ট আঁকার কোডে, শেষ হতে পারে পাসওয়ার্ড চুরিতে।
ParanoidBSD বদলে দেয় একটি প্রোগ্রাম গোড়াতেই কী চাইতে পারে। অনুরোধের পরে অনুমতি যাচাই করার বদলে এটি প্রতিটি প্রোগ্রামের হাতে ধরিয়ে দেয় ছোঁয়া যাবে এমন জিনিসের একটি ছোট তালিকা, আর বাকি কিছুর নাম ধরার কোনো উপায়ই রাখে না। এক জায়গার ত্রুটি আর বাকি সবের ভিতরে ঢোকার রাস্তা থাকে না।
প্রতিরক্ষা ও সরকারি সরবরাহকারী, যাদের কাছে এখন নিরাপদ ভাষায় লেখা সফটওয়্যার চাওয়া হচ্ছে। যে যন্ত্র বছরের পর বছর মাঠে থাকে আর দ্রুত প্যাচ করা যায় না — কারখানার কন্ট্রোলার, চিকিৎসার যন্ত্র, ইউটিলিটির হার্ডওয়্যার। শিক্ষক ও গবেষক, যাঁরা এমন একটি সত্যিকারের অপারেটিং সিস্টেম চান যা গোড়া থেকে শেষ পর্যন্ত পড়ে ফেলার মতো ছোট।
পরিবেষ্টিত কর্তৃত্ব সেই বাগ যা আপনি প্যাচ করতে পারবেন না
সাধারণ একটি Unix-এ কোনো প্রসেস এই অধিকার ধারণ করে না যে সে খুলতে পারবে
/etc/master.passwd। সে শুধু চেয়ে বসে, আর প্রসেসটি নিজেকে কে বলে দাবি করছে তার ভিত্তিতে কার্নেল পরে সিদ্ধান্ত নেয়। প্রতিটি প্রসেস সিস্টেমের প্রতিটি সম্পদের নাম ধরে ডাকতে পারে। নামস্থানটি বৈশ্বিক ও পরিবেষ্টিত; পরীক্ষাটা আসে সবার শেষে, প্রায় বাড়তি ভাবনার মতো।
এই কারণেই একটি ফন্ট রেন্ডারারের একটিমাত্র পার্সিং বাগ পাসওয়ার্ড চুরিতে গড়াতে পারে। রেন্ডারারের পাসওয়ার্ড ফাইলটির কোনো দরকারই ছিল না — কিন্তু স্থাপত্যের কিছুই তাকে চাইতে বাধা দেয়নি।
HardenedBSD এখানে ইতিমধ্যেই গুরুতর কাজ করে: ঠিকানা-পরিসরের বিন্যাস এলোমেলোকরণ (ASLR), যা প্রতিবার প্রোগ্রামটিকে অন্য জায়গায় তোলে, ফলে আক্রমণকারী কিছুর অবস্থান আন্দাজ করতে পারে না; নিয়ন্ত্রণ-প্রবাহের অখণ্ডতা (CFI), যা প্রোগ্রামকে এমন কোডে চালিয়ে নেওয়া আটকায় যা চালানোর জন্য সেটি কখনও তৈরিই হয়নি; আর সেগুলির পাশে PaX থেকে আসা প্রতিরোধ, SafeStack ও কঠোরীকৃত মেমরি অ্যালোকেটর। PBSD সবই রাখে, আর নিচের প্রশ্নটার চেহারাই বদলে দেয় — “এই প্রসেসের কি অনুমতি আছে?” থেকে “এই প্রসেস কি ওটার একটা হ্যান্ডল ধরে আছে?”-তে।
একটি সিস্টেম কলের উত্তর দেওয়ার দুটি পথ
// Ambient authority — the traditional path int fd = open("/etc/master.passwd", O_RDONLY); // kernel walks a global namespace, then // checks uid/gid/MAC after the fact // Handle nucleus — the PBSD path auto f = dir_handle.open("master.passwd", Rights::Read); // there is no global namespace to walk. // no handle, no name, no operation.
পার্থক্যটার একটি দৃষ্টান্তমূলক চেহারা, একটি প্রোগ্রাম কার্নেলে যেসব কল করে — অর্থাৎ তার অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস বা API — তার হুবহু তালিকা নয়। প্রামাণিক মডেলটি আছে এখানে docs/.
একটি সিস্টেম কলকে নিউক্লিয়াসের ভিতর দিয়ে চালিয়ে দেখুন
প্রসেসটিকে কিছু হ্যান্ডল দিন, সে কী করার চেষ্টা করবে বেছে নিন, আর দুটি কর্তৃত্ব মডেলের মধ্যে অদলবদল করুন। রায় আর তার যুক্তি আপনার ব্রাউজারেই তখনই হিসাব হয় — এটি নকশাটির একটি শিক্ষামূলক মডেল, কার্নেল এমুলেটর নয়।
ক্যাপাবিলিটি নিউক্লিয়াস — রেফারেন্স মনিটর
প্রসেসটি চেষ্টা করে…
ট্রেস
প্রসেসের হাতে থাকা হ্যান্ডল
রায়
“নাগালে” গোনে যে, বর্তমান মডেলে এই প্রসেস তালিকাভুক্ত কাজগুলির মধ্যে ক-টা আদৌ করতে পারত। পরিবেষ্টিত কর্তৃত্বে নাগাল ঠিক করে পরিচয়; নিউক্লিয়াসে, তার হাতে সত্যিই যে হ্যান্ডলগুলি আছে সেগুলি।
pbsd/-এ; স্পেসিফিকেশন আছে
docs/specs/.
চারটি ধাপ, আর এমন একটি মডেল যে কখনও নিজেকে শংসা দেয় না
একটি বার্কলি সফটওয়্যার ডিস্ট্রিবিউশনের (BSD) ইউজারল্যান্ড ও কার্নেল হাতে ধরে C++23-এ পোর্ট করা এক দশকের কাজ। একটি ভাষা-মডেলকে ফাইল নতুন করে লিখতে বলে পোর্ট করা বিশ্বাসযোগ্য আবর্জনা বানানোর দ্রুত উপায়। PBSD কোনোটাই করে না।
তালিকা
tools/inventory_c_sources.py ও clang_cxx23_port.py প্রতিটি C ফাইলকে কঠিনতা অনুযায়ী নম্বর দেয় আর লেখে c_inventory.csv। পরিসর নিয়ে কিছুই আন্দাজ করা হয় না।
নির্ধারণবাদী ধাপ
run_todo_passes.py ০–৪ স্তরে নিরাপদ যান্ত্রিক পুনর্লিখন চালায়। কোনো মডেল জড়িত নেই। কোনো ধাপ যা নিতে চায় না, তা জোর না করে লগ করা হয়
refusals.jsonl ফাইলে।
এজেন্ট লুপ
pbsd.py স্টাব করা আর প্রত্যাখ্যাত ফাইলগুলি ভরে DeepSeek Flash দিয়ে, দরকারে সর্বোচ্চ রিজনিং এফর্টে Pro-তে তুলে — পূর্বনির্ধারিতভাবে ৪৮টি Flash আর ২৪টি Pro ওয়ার্কার।
Kickstarter এরই তহবিল জোগায়।
যাচাইয়ের গেট
কম্পাইল, ASan, UBSan, ডিফারেনশিয়াল এক্সিকিউশন আর কম্পাইলারের মধ্যবর্তী উপস্থাপনার (IR) স্তরে তুলনা। যে ফাইল শুধু কম্পাইল হয়, সেটি
যাচাই হয়নি। ব্যর্থতাগুলি গিয়ে জমা হয়
agent_port_failures.jsonl.
পোর্ট মানেই সমতুল্যতার একটা দাবি
একটি ফাইল পোর্ট হয়ে গেছে বলার মানে, নতুনটি পুরনোটির মতোই আচরণ করে। ওটা একটা দাবি, আর দাবির প্রমাণ লাগে। যে C++23 পুনর্লিখন কম্পাইল হয় তা বিশ্বাসযোগ্য দেখতে একটা ওয়্যারফ্রেম; সেটি এখনও সেই একই ডিমন নয়।
তাই সমান চিহ্নটাই গেট। ডিফারেনশিয়াল চালনা দুটোকেই চালিয়ে বাইরে থেকে দেখা আচরণ মিলিয়ে দেখে। IR তুলনা দেখে কম্পাইলারের কাছে দুটোর মানে এক কি না। এর একটিও না পেরোনো পর্যন্ত ফাইলটি মাইগ্রেশন লগে খোলা থাকে এবং অগ্রগতিতে গোনা হয় না — দেখতে যতই শেষ হয়ে যাওয়া লাগুক।
রিপোজিটরি সত্যিই যে নিয়মে বাঁধা
ডিফারেনশিয়াল বা IR যাচাই না পেরোনো পর্যন্ত কোনো ফাইল শেষ নয়
বিশ্বস্তভাবে পোর্ট করুন — মূলের বাগ চুপচাপ “সারিয়ে” দেবেন না
আগে নির্ধারণবাদী সরঞ্জাম; যা বাকি থাকে কেবল সেটুকুই মডেল ভরায়
কার্নেল C++ স্বাধীন: -fno-exceptions -fno-rtti
docs/specs/KERNEL_CXX_ABI.md ফাইলে, যাতে একজন অবদানকারী আন্দাজ না করেই বুঝতে পারেন কার্নেল প্রসঙ্গে কোনটা বৈধ।
শেষ বলে গোনার আগে প্রতিটি মডিউলের একটি উৎস-নির্দেশের এন্ট্রি লাগে
docs/PROVENANCE.md লিখে রাখে কোন মডিউল কোথা থেকে এসেছে আর কোন লাইসেন্সে। এর জন্যই নিচের লাইসেন্সিং বিবৃতি আকাঙ্ক্ষা না থেকে যাচাইযোগ্য হয় — আপনি মডিউল ধরে ধরে দেখতে পারেন কোন কোড HardenedBSD থেকে এসেছে আর কোনটি নতুন PBSD-র কাজ।
দুটি লাইসেন্স, সৎভাবে আলাদা করা
নতুন PBSD কোড — নিউক্লিয়াস, C++23 মডিউল, সরঞ্জাম — দেওয়া হয় Imortek-এর চালু শর্তে: GNU Affero জেনারেল পাবলিক লাইসেন্স (AGPL-3.0+), ব্যক্তিগত ব্যবহার, দাতব্য সংস্থা, শিক্ষা আর বছরে ৫০,০০০ অস্ট্রেলীয় ডলারের (AUD) কম আয়ের প্রতিষ্ঠানের জন্য বিনামূল্যে, তার উপরে স্তরভিত্তিক বাণিজ্যিক লাইসেন্স।
HardenedBSD থেকে আসা কোড তার মূল BSD লাইসেন্সেই থাকে। সেটি পুনরায় লাইসেন্স করা যায় না, আর Imortek তেমন দাবিও করে না। docs/PROVENANCE.md বলে দেয় কোনটি কোনটা।
নতুন PBSD-র কাজ
pbsd/, tools/, scripts/, ক্যাপাবিলিটি নিউক্লিয়াস, UDA, BIFROST, কম্পোজিটর ও থিম।
HardenedBSD থেকে উদ্ভূত
hbsd/ এবং সূত্র ধরে তার কাছেই ফিরে যায় এমন প্রতিটি পোর্ট করা ফাইল। মূল শর্ত, মূল কৃতিত্ব।
এমন একটি অপারেটিং সিস্টেম, যাতে ঢোকা কঠিন
বেশিরভাগ অনুপ্রবেশ একই ধরনের ভুলকে কাজে লাগায়: একটি প্রোগ্রাম এমন মেমরিতে হাত দিচ্ছে যেখানে তার কখনও যাওয়ার কথা ছিল না। ParanoidBSD একটি পরীক্ষিত সিস্টেমকে এমন একটি ভাষায় নতুন করে গড়ে যেখানে ওই ভুলটা অনেক কঠিন, আর প্রতিটি প্রোগ্রামের হাতে ঠিক ততটুকুই নাগাল তুলে দেয় যতটা তার সত্যিই দরকার।
প্রতিরক্ষা ও সরকারি সরবরাহকারী
ক্রেতারা এখন এমন সফটওয়্যারের উপর জোর দিতে শুরু করেছে যা এমন ভাষায় লেখা, যেখানে গোটা শ্রেণির আক্রমণ এমনিতেই বন্ধ। শূন্য থেকে আবার শুরু করতে এক দশক লাগে। এটি বরং একটি পরীক্ষিত সিস্টেমকে পার করে আনে, আর যে ফাইলে যা বদলেছে এবং সেই বদল কীভাবে যাচাই হয়েছে তার লিখিত হিসাব রাখে।
বছরের পর বছর মাঠে পড়ে থাকা যন্ত্রপাতি
কারখানার কন্ট্রোলার, চিকিৎসার যন্ত্র, ইউটিলিটির হার্ডওয়্যার। ত্রুটি ধরা পড়লে অনেক সময় আপনি স্রেফ একটা আপডেট ঠেলে দিতে পারেন না। এটি ঠিক করে দেয় ভিতরে ঢুকে পড়ার পর অনুপ্রবেশকারী কতদূর যেতে পারবে, কারণ কোনো প্রোগ্রামই তার হাতে যা দেওয়া হয়েছে তার বাইরে পৌঁছাতে পারে না।
বিশ্ববিদ্যালয় ও নিরাপত্তা গবেষক
একটি সত্যিকারের অপারেটিং সিস্টেম, যা গোড়া থেকে শেষ পর্যন্ত পড়ে ফেলার মতো ছোট, আর পাশেই মিলিয়ে দেখার জন্য মূলটি রাখা। পড়ানোর কাজে, আর সত্যিই চলে এমন কিছুর উপর ভাবনা পরখ করার কাজে লাগে।
পোর্টটি চলে এমন কম্পিউটে, যা তার হাতে নেই
নির্ধারণবাদী ধাপগুলি বিনামূল্যের। অবশিষ্টটুকু যে এজেন্ট লুপ ভরায় — আর যে যাচাই-চালনাগুলি সেটিকে গেটে আটকায় — সেগুলি নয়। চাওয়াটা এইটুকুই।