Darling (dasturiy ta'minot) - Darling (software)

Azizim
Darling project logo.png
MacOS (chapda) va GNU / Linux (o'ngda) da oddiy
MacOS (chapda) va GNU / Linux (o'ngda) da oddiy "HelloWorld" kakao dasturi namoyish etildi.
Asl muallif (lar)Lyubosh Dolejel
Omborhttps://github.com/darlinghq/darling
Operatsion tizimGNU /Linux
TuriMuvofiqlik qatlami
LitsenziyaHar xil, birinchi navbatda GPLv3[1]
Veb-saytsevgilim.org

Azizim a bepul va ochiq manbali macOS muvofiqlik qatlami GNU / Linux uchun. Funktsiyalarini takrorlaydi macOS macOS dasturlari chaqiradigan kutubxonalar va ramkalarning muqobil bajarilishini ta'minlash orqali.[2] Ushbu takrorlash usuli, taqlid qilinishi mumkin bo'lgan boshqa usullardan farq qiladi, bu erda macOS dasturlari a da ishlaydi virtual mashina. Darlingni hamkasbi deb atashdi VINO OS X dasturlarini ishga tushirish uchun.[3]

Loyiha 2012 yilning yozida boshlangan va vaqt yetishmasligi sababli to'xtatilgan maloader nomli avvalgi loyihaga asoslanadi. Ishlab chiquvchi dasturlarni sinovdan o'tkazmoqda, masalan Yarim tunda qo'mondon yoki Unarchiver qatlamda. Hozirgacha qatlam ko'pchilik bilan ishlashi ko'rsatilgan konsol ilovalari, lekin hozirda qo'llab-quvvatlamaydi grafik dasturlar.[4][5] Darling an qazib olish qobiliyatiga ega Apple Disk tasviri.[6]

Loyiha ham qo'llab-quvvatlanishi mumkin iOS kelajakda dasturlar.[7]

Arxitektura

Darling tizimining kirish qismida yuklagich mavjud Mach-O ikkilik fayllar, uchun bajariladigan format Olmalar operatsion tizimlar. Darlingning salafi maloader, Apple-ning hamma narsasini takrorlashga urinib, muammoga maksimalist yondashishni taklif qildi. dinamik kutubxona loader dyld qiladi. Bu juda qiyin bo'lib chiqdi va 2017 yildan beri "Mach-O o'tish" Darling uning o'rniga ochiq manbali Apple dyldini ishga tushirish uchun etarlicha engil yuklagichdan foydalanmoqda.[8]

MacOS ikkiliklarini a bilan ta'minlash yadro, Darling o'zgartirilgan foydalanadi XNU Linuxga o'ralgan yadro yadro moduli. Ushbu modul odatdagi ishni bajaradi Mach yadrosi, asosan Portlar IPC ishlov berish.[9] Litsenziyalash bilan bog'liq ba'zi muammolar aziz-mach modulida mavjud, chunki jamoa qo'shmoqda GNU GPL ga o'zgartirishlar APSL yadro.[10]

Yadrodan balandroq ildiz muhiti. Darling, xuddi WINE kabi, qo'llab-quvvatlaydi chroot prefikslar, Linux yordamida amalga oshirildi ustki qatlamlar (WINE-da yo'l tarjimasidan farqli o'laroq). PID A yaratish uchun, IPC va UTS nom maydonlaridan foydalaniladi idish ichidagi Darvin tizimi uchun.

Darlingdagi ramkalar va tizim kutubxonalari, iloji boricha, asoslanadi manba kodi Apple tomonidan chiqarilgan. Mach-O o'tish bu ramkalarni osonroq tuzilishiga imkon beradi, chunki ular endi Mach-O formati uchun qurilgan.[8] Kabi ko'plab yuqori darajadagi ramkalar uchun bo'shliqlarni to'ldirish uchun Kakao, Darling Cocotron kodidan foydalanadi, ApportableFoundation va GNUstep.[11]

Adabiyotlar

  1. ^ https://github.com/darlinghq/darling/blob/master/LICENSE
  2. ^ Brodkin, Jon (2013 yil 6-avgust). "OS X dasturlari GNU / Linux-da ishlaydigan Mac dasturlari uchun sharobga o'xshash emulyator bilan ishlaydi". Ars Technica. Olingan 23 yanvar 2014.
  3. ^ Linch, Jim. "Biz hech qachon Darling bilan OS X dasturlarini Linuxda ishlay olamizmi?". InfoWorld. Olingan 2018-07-23.
  4. ^ "Loyiha holati". Darling loyihasi. Olingan 23 yanvar 2014.
  5. ^ "Darling loyihasi hanuzgacha Linuxda macOS / OSX dasturlarini ishga tushirishga urinmoqda - Phoronix". www.phoronix.com. Olingan 2018-07-23.
  6. ^ "A C ++ salom dunyosi va pushti oltin bilan o'ralgan azob bog'i". Hacker Noon. 2018-01-29. Olingan 2018-07-23.
  7. ^ Xit, Nik (2013 yil 15-iyul). "Darling loyihasi iltifoti bilan Linuxga yo'l olayotgan OS X dasturlari". ZDNet. Olingan 23 yanvar 2014.
  8. ^ a b Bugaev, Sergey. "Mach-O bog'lash va o'rnatish fokuslari". Olingan 12 yanvar 2020.
  9. ^ "Qurilish bo'yicha ko'rsatmalar". Azizim. Darling yadro modulidan foydalanib, OS X-ning o'ziga xos xususiyatlarini, asosan Mach Ports IPC-ni taqdim etadi. Ushbu modulsiz biron bir OS X dasturini ishga tushirish mumkin emas, chunki Libc ishga tushirish uchun Mach portlarini talab qiladi va hatto uxlash () kabi juda oddiy narsalar uchun.
  10. ^ "Muammo: APSL bo'yicha Apple kodi GPL bilan mos kelmaydi". GitHub. Olingan 12 yanvar 2020.
  11. ^ "Uy sahifasida tez-tez so'raladigan savollar". Darling loyihasi. Olingan 12 yanvar 2019.