abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 07:00 | Zajímavý software

Budou to tři roky, co Canonical ukončil vývoj mj. grafického prostředí Unity8 a souvisejících projektů jako smartphone s Ubuntu Touch. Toho se ujala komunita UBports a vedle toho vznikl fork Yunit, který již neexistuje, zatímco Unity8 se dostane do Debianu. Nebude se však jmenovat Unity8, nýbrž Lomiri, jak bylo nyní oznámeno.

Fluttershy, yay! | Komentářů: 0
dnes 06:00 | Zajímavý projekt

Úrad podpredsedu vlády SR pre investície a informatizáciu vyhlásil výzvu na podporu migrácie na open source a podporu budovania inteligentných miest a regiónov. Dátum uzavretia 1. hodnotiaceho kola je 21.04.2020. Žiadatelia môžu získať od 200 000 do 1 000 000 eur.

atirage21 | Komentářů: 0
dnes 05:00 | IT novinky

Otevřená certifikační autorita Let's Encrypt oznámila, že vydala již miliardu certifikátů. Při spuštění veřejné bety Let's Encrypt, v prosinci 2015, bylo celosvětově pomocí HTTPS stahováno cca 40 % webových stránek. Dnes je to 81 %. V USA dokonce 91 %. Podrobnosti na stránce se statistikami. Let's Encrypt má aktuálně 13 zaměstnanců na plný úvazek a roční rozpočet přibližně 3,35 milionu dolarů.

Ladislav Hagara | Komentářů: 3
včera 15:33 | Komunita

Fedora stále hledá nové logo. První návrhy byly představeny již před rokem. Designérka Fedory Máirín Duffy ukázala na Twitteru aktuální verzi a žádá uživatele o zpětnou vazbu.

Ladislav Hagara | Komentářů: 6
včera 13:55 | Nová verze

Android-x86, tj. port mobilního operačního systému Android na standardní PC s architekturou x86, byl vydán v nové stabilní verze 9.0-r1. Přehled novinek v oficiálním oznámení.

Ladislav Hagara | Komentářů: 12
včera 13:11 | Komunita

Mozilla definitivně opouští IRC. Vloni začala hledat novou veřejnou komunikační platformu. Dosud používala IRC (plus interně neveřejný Slack a po nějakou dobu i Mattermost). Nicméně IRC i servery zastarávaly a zejména použitelnost na mobilních zařízeních byla často problematická. Po zvažování a zkoušení různých alternativ se Mozilla přiklonila k otevřenému protokolu Matrix (můžete také znát referenčního klienta Riot) a na konci února IRC vypne.

Ladislav Hagara | Komentářů: 15
včera 13:00 | IT novinky

Raspberry Pi slaví 8 let. Při této příležitosti bylo Raspberry Pi 4 s 2 GB RAM zlevněno o 10 dolarů. Napořád.

Ladislav Hagara | Komentářů: 1
včera 06:00 | Zajímavý článek

Článek na webu Ars Technica poskytuje úvod do problematiky softwarových licencí a přehled nejvýznamnějších „copyleftových“ a „permisivních“ licencí.

Fluttershy, yay! | Komentářů: 10
26.2. 21:11 | Nová verze

Byla vydána nová major verze 3.0.0 open source dokumentově orientované NoSQL databáze Apache CouchDB (Wikipedie). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
26.2. 17:33 | Komunita

Sketchfab, tj. platforma pro publikování, sdílení, objevování, nákup i prodej 3D modelů, ve spolupráci s 27 kulturními organizacemi z 13 různých zemí, oznámil spuštění programu na uchování 3D modelů předmětů kulturního dědictví jako volných děl (Public Domain). Organizace nahrávající své 3D modely na Sketchfab mohou nově použít licenci CC0 1.0 Univerzální (CC0 1.0) a tím potvrdit status volného díla. Podrobnosti v diskusním fóru. Aktuálně je na Sketchfabu pod CC0 cca 1700 modelů.

Ladislav Hagara | Komentářů: 1
Vydržela vám novoroční předsevzetí?
 (11%)
 (5%)
 (3%)
 (81%)
Celkem 207 hlasů
 Komentářů: 0
Rozcestník

Status: Darling - aplikace pro OS X na Linuxu

12.9.2012 12:30 | Přečteno: 1527× | Linux | Výběrový blog | poslední úprava: 12.9.2012 13:01

Z nedávného nápadu vytvořit vrstvu, která bude umět spouštět binárky pro OS X/Darwin, se stala má budoucí diplomová práce. A něco málo už i funguje.

Práce na tomto projektu má několik etap, které jsem stanovil:

  1. Funkční libSystem a další běžné "céčkové věci" jako systémová volání.
  2. Funkční výjimky v C++.
  3. Běh aplikací v Objective C.
  4. Reimplementace chybějícího API (frameworků) - vzdálená budoucnost.

Aktuálně jsem ve fázi 1 s tím, že zkoumám možnosti ve fázích 2 a 3. Darling dokáže spustit wget pro OS X a s drobnými fígly dokáže jakž takž spustit mc. U MC je hlavím problémem GSlice v glib, který začne dělat v paměti blbosti a pak spadne. Přitom jediné důležité volání je v něm posix_memalign(), ve kterém ale nevidím žádný problém. GSlice se dá ale zakázat, pak jsou alokace nahrazeny mallocem(), který funguje dobře. MC má pak ještě další obtíže - nějaké bufferování stisknutých kláves a chybějící text v editoru, ale to jsou relativně už jen drobnosti.

Výjimky v C++

Pro funkčnost výjimek je nutné mít libc++abi (poskytuje __cxa_throw volané z kódu), libunwind od Apple a podpůrné funkce v dynamickém loaderu. Hlavní překážkou je to, že výjimka není fakticky "hozena" z místa, kde je příkaz throw, ale o dvě volání dále v libunwind. Throw aktuálně selže na tom, že dynamický loader Mach-O nedokáže poskytnout informace pro výjimky právě pro tato dvě volání navíc. Ta jsou už v ELF.

Nabízejí se dvě řešení: upravit házení tak, aby k němu fakticky docházelo ze skutečného umístění throw, anebo zkompilovat libc++abi/libunwind pro Darwin, to ale komplikuje build.

Objective C runtime

ObjC runtime GNU a Apple nejsou kompatibilní. Zatím nevím, do jaké míry přesně, na první pohled má Applí runtime více funkcí pro posílání zpráv a symboly jsou jinak nazývány. Zatímco linuxový Clang/GCC názvy "metod" krásně dekoruje, Applí GCC se neštítí strkat do názvů symbolů mezery a další hegeš.

Dá se ale očekávat, že nekompatibilita půjde ještě hlouběji. I k Hello worldu vypsaném z třídy ObjC bude asi daleko.

Takovou jednoduchou aplikací, kterou bych rád viděl funkční "do dvou let", je The Unarchiver, grafické klikátko pro rozbalování archivů.

Ladění aplikací

Abych si ulehčil ladění aplikací (s GDB to není úplně ono), kompletně jsem přepsal funkci "trampolín" z původního maloaderu. Ještě to nemá všechny schopnosti, které bych rád viděl, navíc je třeba to přeportovat na 32bitové x86, ale je to pěkné.

Oč jde? Dynamický loader nahradí všechny bindy (volání mezi Mach-O objekty, tedy mezi binárkami/knihovnami) svým wrapperem, který pak na základě souboru s definicemi dokáže zobrazovat, jaká funkce byla zavolána, s jakými parametry a co vrátila.

g_strdup(?)
 strlen(0x7fff380c4327 "/bin/bash")
 -> 9
 malloc(10)
 -> 0x14aa9e0
 memcpy(0x14aa9e0, 0x7fff380c4327, 10)
 -> 0x14aa9e0
-> ?

Detailnější ukázku můžete vidět zde. Posledními novinkami jsou podpora procesů, co se forkují, a vypisování časových údajů k voláním.

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

xvasek avatar 12.9.2012 13:45 xvasek | skóre: 21 | blog: | Zlín
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
Myslím, že zásadní otázka (podobně jako u Wine) - fungují Bulánci? :-) (Tím, že není klon pro Mac si tuto diskusi nebudeme kazit, ne?)

A kdy pojede Steam z MacOSu? :-)
Luboš Doležel (Doli) avatar 13.9.2012 13:06 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
Tím, že není klon pro Mac si tuto diskusi nebudeme kazit, ne?
Bacha na to, pro OS X je Darwine (port Wine).
12.9.2012 13:55 smazáno | skóre: 18 | blog: smazáno
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
Vypada to skvele. Takhle rychle prijit s funcknim zakladem pousteni osx binarek na linuxu :-) Nechapu :-D.
AsciiWolf avatar 12.9.2012 14:55 AsciiWolf | skóre: 39 | blog: Blog
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
Vypadá to dost hezky. Dobrá práce!
12.9.2012 19:37 pavel
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
Už na tom jede Misrosoft Office 2010?
12.9.2012 19:41 tomvec | skóre: 24 | Kojetín
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
Ten si strč tam, kam slunce nesvítí. Navíc MS Office 2011 je nativně pro OS X. Mě by zajímalo, kdy na tom pojede Tumult Hype.
Limoto avatar 13.9.2012 12:07 Limoto | skóre: 32 | blog: Limotův blog
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu

 

Navíc MS Office 2011 je nativně pro OS X.

No, kdyby nebyl, tak by ten dotaz postrádal smysl, nemyslíš?

 

Luboš Doležel (Doli) avatar 13.9.2012 12:19 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
To je jako ptát se kutila, co staví vlastní auto a má už podvozek, kdy to auto bude řídit samo.
14.9.2012 01:15 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
U MC je hlavím problémem GSlice v glib, který začne dělat v paměti blbosti a pak spadne. Přitom jediné důležité volání je v něm posix_memalign(), ve kterém ale nevidím žádný problém.
G_SLICE=always-malloc ?
Luboš Doležel (Doli) avatar 14.9.2012 08:51 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
Takhle to obcházím, ale to není řešení.
Luboš Doležel (Doli) avatar 17.9.2012 00:17 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Status: Darling - aplikace pro OS X na Linuxu
Nuže, výjimky v C++ už fungují.

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.