پاپ کورن در حال توسعه یک سیستم اجرای رشته توزیع شده برای هسته لینوکس است.
ویرجینیا تک مطرح برای بحث توسط توسعه دهندگان هسته لینوکس، مجموعه ای از وصله ها با پیاده سازی یک سیستم اجرای رشته توزیع شده ذرت بو داده (Distributed Thread Execution)، که به شما امکان می دهد اجرای برنامه ها را در چندین رایانه با توزیع و انتقال شفاف نخ ها بین میزبان ها سازماندهی کنید. با پاپ کورن، برنامه ها را می توان روی یک هاست راه اندازی کرد و سپس بدون وقفه به هاست دیگری منتقل کرد. در برنامه های چند رشته ای، مهاجرت رشته های جداگانه به هاست های دیگر مجاز است.
برخلاف پروژه CRIUبا اجازه دادن به ذخیره وضعیت فرآیند و از سرگیری اجرا در سیستم دیگری، Popcorn مهاجرت یکپارچه و پویا را بین میزبان ها در طول اجرای برنامه فراهم می کند، بدون نیاز به اقدام کاربر و اطمینان از ثبات حافظه مجازی در تمام میزبان هایی که رشته های همزمان دارند.
فرم پشته نرم افزار پاپ کورن تکه ها به هسته لینوکس و کتابخانه با آزمایش هایی که نشان می دهد چگونه می توان از فراخوانی های سیستم پاپ کورن برای انتقال رشته ها در برنامه های توزیع شده استفاده کرد. در سطح هسته، برنامههای افزودنی برای زیرسیستم حافظه مجازی با پیادهسازی حافظه مشترک توزیع شده پیشنهاد شدهاند که به فرآیندهای میزبانهای مختلف اجازه میدهد به یک فضای آدرس مجازی مشترک و سازگار دسترسی داشته باشند. انسجام صفحه حافظه مجازی توسط پروتکلی تضمین می شود که صفحات حافظه را هنگام خواندن به هاست تکرار می کند و هنگام نوشتن صفحات حافظه را باطل می کند.
تعامل بین میزبان ها با استفاده از یک کنترل کننده در سطح هسته برای پیام های ارسال شده از طریق یک سوکت TCP انجام می شود. ذکر شده است که TCP/IP برای سادهسازی اشکالزدایی و آزمایش در طول فرآیند توسعه استفاده میشود. توسعه دهندگان می دانند که از منظر امنیتی و عملکرد، TCP/IP بهترین راه برای انتقال محتویات ساختارهای هسته و صفحات حافظه بین میزبان ها نیست. همه هاست هایی که برنامه های توزیع شده را اجرا می کنند باید از همان سطح اعتماد برخوردار باشند. پس از تثبیت الگوریتم های اصلی، از روش حمل و نقل کارآمدتری استفاده خواهد شد.
پاپ کورن از سال 2014 به عنوان یک پروژه تحقیقاتی برای مطالعه امکان ایجاد برنامه های کاربردی توزیع شده در حال توسعه است که رشته های آن را می توان بر روی گره های مختلف اجرا کرد. ناهمگون سیستمهای محاسباتی که میتوانند هستهها را بر اساس معماریهای مجموعه دستورالعملهای مختلف (Xeon/Xeon-Phi، ARM/x86، CPU/GPU/FPGA) ترکیب کنند. مجموعه وصلههایی که به توسعهدهندگان هسته لینوکس پیشنهاد میشوند، فقط از اجرا بر روی هاستهایی با CPU x86 پشتیبانی میکنند، اما یک نسخه کاربردیتر از Popcorn Linux نیز وجود دارد که به برنامهها اجازه میدهد روی میزبانهایی با معماریهای CPU مختلف (x86 و ARM) اجرا شوند. برای استفاده از پاپ کورن در محیط های ناهمگن باید از یک مخصوص استفاده کنید گردآورنده بر اساس LLVM برای اجرای توزیع شده روی هاست هایی با معماری یکسان، بازسازی با یک کامپایلر جداگانه مورد نیاز نیست.
علاوه بر این، می توان به آن اشاره کرد اعلامیه پروژه تا حدودی مشابه تله فورک با اجرای یک API نمونه اولیه برای راهاندازی پردازشهای فرزند در رایانههای دیگر در خوشه (مانند fork()، اما فرآیند فورک شده را به رایانه دیگری منتقل میکند.
این کد به زبان Rust نوشته شده است و تاکنون تنها امکان شبیه سازی فرآیندهای بسیار ساده ای را فراهم می کند که از منابع سیستم مانند فایل ها استفاده نمی کنند. هنگامی که یک تماس تله فورک برقرار می شود، ساختارهای مربوط به حافظه و فرآیند به میزبان دیگری که کنترل کننده سرور (تله پد) را اجرا می کند، شبیه سازی می شود. با استفاده از ptrace، انعکاس حافظه یک فرآیند سریالی می شود و همراه با وضعیت پردازش و ثبت به میزبان دیگری منتقل می شود. API همچنین به شما امکان می دهد وضعیت فرآیند را در یک فایل ذخیره کرده و آن را از طریق آن بازیابی کنید.