Moda na opensource: Apple upublicznia źródła Darwin dla macOS 10.12 Sierra
Być może niektórych to zaskoczy, ale zgodnie z wieloletnią tradycją Apple udostępniło kod źródłowy systemu Darwin na barkach którego zbudowano najnowszy macOS 10.12 Sierra. Tradycja ta sięga roku 2000 i jest odnawiana z pojawieniem się każdej nowej wersji systemu Apple. Wraz ze zmianą nazwy całego systemu na macOS, Apple pozostało wierne konwencji OS X dla źródeł opensource.
Darwin jest najniższą warstwą całego systemu macOS. Stanowi on mariaż kernela Mach-3, kodu zaczerpniętego z BSD (FreeBSD, NetBSD) i zestawu sterowników oraz innych otwartych rozwiązań. Jest kluczowym elementem dla takich produktów Apple jak macOS, iOS, watchOS oraz tvOS. Jednocześnie, nie jest on macOSem sam w sobie, podobnie jak macOS bez Darwina nie jest samodzielnym systemem. Nie uruchomimy na nim (Darwinie) programów przeznaczonych dla Maca – tę warstwę i ogólną „miodność” systemu Apple zapewniają zamknięte komponenty macOS – Carbon, Cocoa APIs, Quartz Compositor oraz Aqua. To właśnie pilnie strzeżone kolejne warstwy zapewniają wyjątkowość wyglądu oraz obsługę oprogramowania dla macOS. Jednak bez kernela system nie miałby racji bytu i tak oto kółko wzajemnej zależności się zamyka.
Aktualny kod Darwina udostępniany jest krótko po wydaniu głównym. Dlatego nie było totalnym zaskoczenia, że stosowne źródła pojawiły się pod tym adresem. Za jakiś czas pojawią się zapewne również i na opensource.apple.com.
Do czego może się przydać taka „atrapa” macOS? Wbrew pozorom z wykorzystaniem tego kodu stworzono wiele projektów. Jak choćby modyfikacja „Darwin-on-arm” pozwalająca uruchomić kod na innych platformach typu Raspberry Pi. Wokół Darwina powstało też kilka dystrybucji – OpenDarwin i PureDarwin.
Warto pamiętać o tym, że to nie jedyna inicjatywa opensource ze strony ekipy od nadgryzionego jabłuszka. Nie tak dawno temu udostępnili oni też kod źródłowy języka Swift, co co wprost proporcjonalnie przełożyło się na jego popularność.
Czy można uruchomić na Linuksie program z maka?.dmg?
Krótko? Nie. Istnieje projekt Darling: https://github.com/darlinghq ale nie uruchomisz z jego pomocą żadnej aplikacji GUI. Ogólnie stan na dzisiaj jest mniej więcej taki (nie tylko chodzi o Darling):
– możesz, przy odrobinie szczęścia oraz mając odpowiedni kernel, zamontować obraz *.dmg (to jest coś w rodzaju pliku *.iso); możesz przeglądnąć jego zawartość z zafrasowaną miną i… na tym skończyć (wymaga pewnych modułów w kernelu oraz odpowiedniego oprogramowania),
– możesz użyć Darling (prawdopodobnie kompilując, bo pewnie żadnych binarek dla żadnej dystrybucji – przynajmniej z głównych nie ma) i przy odrobinie szczęścia uruchomisz narzędzie konsolowe MacOS (wymaga fuse, o ile wiem również oprogramowania dla montowania dmg i samego darling),
– możesz ściągnąć specjalnie spreparowaną wersję MacOSa i zainstalować to na wirtualce (najlepiej zdaje się, że się sprawdza qemu), a następnie spróbować zainstalować w tej maszynie aplikację MacOSa; UWAGA – to rozwiązanie nie jest legalne!!!
– użyć hackintosh jako system operacyjny (i tu również olbrzymie problemy z legalnością),
– zapomnieć o takiej możliwości co jest rozwiązaniem najpraktyczniejszym, albowiem najmniej czasu stracisz, nie będziesz sfrustrowany niekompatybilnością czy to sprzętu, czy to – po żmudnej pracy – nadal brakiem możliwości uruchomienia programów itd. itp.
PS: Być może istnieje gdzieś w mrokach netu rozwijany jakiś niezależny projekt, oparty raczej o inżynierię odwrotną (nielegalne w tym przypadku), który umożliwi uruchamianie takich programów. Nie spotkałem się jednak z czymś takim. Zasadniczy problem, to zamkniętoźródłowe warstwy oprogramowania “leżące” ponad Darwinem, które odpowiadają m.in. za możliwość, mówiąc trywialnie, wyrysowania okien aplikacji MacOS i komunikację z nią.
dziękuję
Chodzi o program do pracy,który działa na ipadzie.Wersja na android będzie we wrześniu-październiku.
Zatem zaczekam,dzięki za info
iOS to lekko inna para kaloszy, ale ogólnie – to samo. Z Androidem również nie będzie super łatwo (na komputerze), ale przynajmniej jest kilka możliwości.