منصوبے کے بارے میں

Takibi ایک ریسرچ پروٹوٹائپ ہے جس میں ایک کسٹم سسٹم لینگویج اور اس کے مطابق ایک مونو لیتک کرنل شامل ہے۔ اس پروجیکٹ کا مقصد کرنل کی سطح پر ہونے والی عام ناکامیوں—جیسے کہ buffer overflows، resource leaks، اور context violations—کو ختم کرنا ہے، جس کے لیے ان ذمہ داریوں کو براہ راست ٹائپ سسٹم میں کوڈ کیا گیا ہے۔ اہم تکنیکی خصوصیات میں شامل ہیں: - لینگویج ڈیزائن: ثابت شدہ array indices کے لیے refinement types، ریسورس مینجمنٹ کے لیے affine اور linear ownership، اور execution contexts (مثلاً blocking بمقابلہ interrupt contexts) کو ٹریک کرنے کے لیے ایک effect system کا نفاذ۔ - کمپائلر: اسے OCaml میں لکھا گیا ہے اور نیٹو کوڈ جنریشن کے لیے LLVM 19 کا استعمال کرتا ہے۔ - کرنل کی صلاحیتیں: یہ کرنل Linux-ABI کے ساتھ ہم آہنگ ہے، جس سے یہ موجودہ AArch64 ELF binaries کو چلانے کے قابل بنتا ہے۔ یہ Linux syscalls کے ایک سب سیٹ، demand-grown page tables، copy-on-write، اور ایک ext2 root filesystem کو سپورٹ کرتا ہے۔ - نیٹ ورکنگ: اس میں اپنا TCP/IP اسٹیک شامل ہے جو ARP، IPv4/IPv6، ICMP، اور TCP کو سپورٹ کرتا ہے۔ - ہارڈ ویئر سپورٹ: یہ QEMU/AArch64 اور Raspberry Pi 5 پر بوٹ ہوتا ہے، اور Alpine BusyBox چلانے اور HTTPd کے ذریعے فائلیں فراہم کرنے کی صلاحیت رکھتا ہے۔ یہ پروجیکٹ ایک ریسرچ گاڑی کے طور پر کام کرتا ہے تاکہ یہ دریافت کیا جا سکے کہ کس طرح ایک زبان کو حقیقی دنیا کے سسٹم پروگرامنگ مسائل کو حل کرنے کے لیے تیار کیا جا سکتا ہے، تاکہ رن ٹائم ٹریپس کے بجائے درستگی کے اسٹیٹک ثبوتوں کی طرف بڑھا جا سکے۔