Co to oznacza dla konsumentów, że Apple wydało jądro MacOS jako open source?

17

https://techcrunch.com/2017/10/01/apple-open-sourced-the-kernel-of-ios-and-macos-for-arm-processors/

Czy to oznacza, że ​​zobaczymy, że inne komputery (które nie są zbudowane przez Apple) obsługują system MacOS?

Jeśli nie, to co by się stało?

Z tego co rozumiem, jądro Unixa również zostało wydane i powstał Linux. Czy to samo powinno się stać z jądrem Apple?

DrWongKC
źródło
8
Linux nie jest oparty na jądrze UNIX, jest to niezależny projekt (choć próbuje odtworzyć API, aby był mniej lub bardziej zgodny z POSIX).
Ruslan
6
W rzeczywistości MacOS jest Uniksem, ale Linux nie jest Uniksem (Apple faktycznie zapłacił pieniądze, aby uzyskać certyfikat systemu operacyjnego jako Unix)
Slebetman
1
@DrWongKC blog.opengroup.org/2012/07/25/…
el.pescado
24
Wiadomość nie jest taka, że ​​jądro jest oprogramowaniem typu open source; pierwsze zdanie tego artykułu brzmi: „Apple zawsze dzieliło jądro systemu macOS po każdym głównym wydaniu”. Wiadomość jest taka, że ​​wydali wersję napisaną dla ARM. Zasadniczo ten artykuł to kliknięcia i mógł zakończyć się po pierwszym akapicie.
jscs
1
@JoshCaswell To powinna być odpowiedź, zwłaszcza, że ​​nie wymaga żadnego odniesienia poza artykułem podanym w pytaniu.
IMSoP

Odpowiedzi:

34

To nic nie znaczy. Jądro macOS / OS X zawsze było oprogramowaniem typu open source. Jądro jest tylko niewielką częścią kompletnego systemu operacyjnego, więc nie pozwala nikomu wydać własnej wersji MacOS.

Mike Scott
źródło
5
Ktoś może spróbować zbudować własny system operacyjny w oparciu o jądro macOS, np. OpenDarwin / PureDarwin . Jusr pamięta, że ​​brakuje większości innych części określających, co sprawia, że ​​macOS.
el.pescado
3
Czy ktoś tutaj z powodzeniem zbudował Xnu, który jest naprawdę identyczny z tym, co jest zainstalowany? W czasach Tygrysa skompilowałem własny i widziałem problemy. Następnie Apple powiedział, że niektórych części celowo brakuje i że niemożliwe byłoby zbudowanie funkcji pełnego jądra z tego, co zostało opublikowane. (Kiedy) to się zmieniło?
LаngLаngС
2
@LangLangC Nie, jądro Darwina jest nadal niekompletne. To, co wydali dzisiaj, to tylko już wydane komponenty, ale z niewielkimi zmianami dla procesorów ARM, których używają w iOS i tvOS.
Adam Davis
34

Wyjaśnienie:

Apple zawsze wydawało jądro MacOS w formie open source. Jądro nosi nazwę Darwin. Darwin ma cel x86. Można go przenieść na inne procesory, ale wariant Darwina, który jest kontrolowany i wypuszczany przez Apple, był dostępny tylko dla x86.

Jednak iOS, który korzysta z procesorów ARM, od samego początku używa Darwina. Apple nigdy nie wypuściło portu ARM Darwina, mimo że oczywiście go mają, ponieważ używają go w milionach urządzeń z iOS, które są już w rękach konsumentów.

To ogłoszenie jest takie, że Apple wypuszcza teraz części ARM Darwina, których wcześniej wstrzymali.

Darwin jest tylko jądrem, nie obejmuje większości tego, co sprawia, że ​​MacOS lub iOS działa tak, jak tego oczekują konsumenci. Jądro nie jest kompletnym systemem operacyjnym.

Co więcej, Darwin nie jest kompletnym jądrem. Apple nie wydaje wielu jego części.

Co to oznacza dla konsumentów, że Apple wydało jądro MacOS jako open source?

Początkowo niewiele. Nie wpłynie to na dostępność sprzętu lub oprogramowania, aktualizacji, i prawdopodobnie nie będzie nawet miało znaczącego wpływu na łamanie więzienia lub podobne alternatywne zastosowania urządzeń Apple.

Czy to oznacza, że ​​zobaczymy, że inne komputery (które nie są zbudowane przez Apple) obsługują system MacOS?

Nie wpływa to na dostępność urządzeń innych niż Apple, na których działa oprogramowanie Apple lub systemy operacyjne. To, co już jest dostępne, nie stanie się mniej lub bardziej dostępne ani mniej lub bardziej legalne.

Jeśli nie, to co by się stało?

Najbardziej prawdopodobne wyjaśnienie i korzyści dla konsumentów pochodzą z wcześniejszej wersji kodu, który Apple zwykle trzyma blisko swojej skrzynki: „ Apple potwierdza, że ​​kod jądra systemu iOS pozostawiono celowo niezaszyfrowany ”, co sugeruje:

Apple zaczął przesuwać się w kierunku większej przejrzystości, szczególnie w kwestiach bezpieczeństwa, w następstwie bitwy z FBI o odblokowanie iPhone'a używanego przez strzelankę San Bernardino. Kiedy FBI próbowało zmusić Apple'a do odblokowania telefonu, dyrektor generalny Tim Cook napisał rzadki list otwarty do klientów Apple'a, wyjaśniając jego decyzję oporu. „Uważamy, że musimy zabrać głos w obliczu tego, co postrzegamy jako przesadny zasięg rządu USA” - napisał Cook. (FBI ostatecznie zrezygnowało z żądania po zapłaceniu stronie trzeciej za włamanie się do urządzenia).

Otwarcie kodu jądra na inspekcję może osłabić rynek wad bezpieczeństwa, takich jak ten, który FBI przypuszczał, że dostał się do iPhone'a z San Bernardino. Jeśli wady zostaną ujawnione szybko i szeroko, spowoduje to obniżenie cen przez organy ścigania, a czarne rynki będą za nie płacić - i może to oznaczać szybsze poprawki dla klientów Apple.

Korzyścią dla konsumenta jest to, że więcej oczu, w szczególności badaczy bezpieczeństwa, zwróci się na kod, i mam nadzieję, że ujawni to słabości zabezpieczeń, umożliwiając Apple ulepszanie bezpieczeństwa klientów, a nie dowiadywanie się o ich bezpieczeństwie, gdy rząd lub strona trzecia jest w stanie odebrać czyjeś prawa bez należytego procesu.

To, czy gra się pozytywnie, zależy od naukowców, którzy zgłaszają się na ochotnika do przeczesywania kodu.

Z tego co rozumiem, jądro Unixa również zostało wydane i powstał Linux. Czy to samo powinno się stać z jądrem Apple?

Apple zaczął od oryginalnego kodu BSD, który przy użyciu licencji BSD nie wymaga, aby firmy lub osoby publikowały zmiany w kodzie osobom, którym dystrybuują skompilowane oprogramowanie. Rzeczywiście, wybrali to specjalnie dla jądra Linuksa, aby mogli zachować pewną własność intelektualną w tajemnicy (oczywiście z wielu innych powodów).

Nie mają więc prawnego obowiązku udostępnienia całego swojego kodu. Niektóre z używanych przez nich programów mają inne licencje, takie jak GPL, co wymaga utrzymywania ich jako oprogramowania typu open source. Wiele z nich jest już dostępnych w Apple.

Wskazuje to jednak również na inną możliwość: wydano wiele części jądra, aby programiści mogli opracować sprzęt MacOS i specjalistyczne oprogramowanie. Jest to o wiele głębiej w systemie niż twórcy aplikacji mają dostęp do urządzeń z systemem iOS.

Ta wersja sugeruje jedną lub obie z dwóch silnych możliwości (i to jest kompletna hipoteza):

  1. Apple przygotowuje się do wydania komputerów MacOS za pomocą procesorów ARM z serii A.
  2. Apple przygotowuje się, aby umożliwić programistom tworzenie oprogramowania na wyższym poziomie dla urządzeń z systemem iOS.

Powiedziałbym, że komputery MacOS korzystające z procesorów ARM są bardziej prawdopodobne, ponieważ najnowszy układ A11, zastosowany w iPhone'ach 8 i X, pokonuje najnowszy układ Intel i5 , zastosowany w MacBooku 13 ". Apple wciąż ma wiele do zrobienia mogą zastąpić procesory Intela na całej linii, jednak w ciągu roku lub dwóch możemy zobaczyć słabsze komputery MacOS z układami A12 lub A13, zastępując wcześniej używane układy Intel.

Zapewniłoby to znaczącą korzyść Apple (szczególnie jej wynik końcowy).

Jednak bez oficjalnego oświadczenia nie ma sposobu, aby dowiedzieć się, jakie są powody, dla których Apple wypuszcza części ARM swojego już w dużej mierze otwartego jądra Darwina.

Wpływ na konsumenta będzie bardzo niewielki, jeśli w ogóle, a jeśli tylko pośredni.

Adam Davis
źródło
Może komputer MacOS z niższej półki, taki jak Mac mini? :-)
nohillside
1
@patrix Wiem, że wiele osób czeka na nowy!
Adam Davis
Łatwo najlepsza odpowiedź; dziękuję za tak jasne wyjaśnienie!
Wildcard
1
Gdyby tylko wyniki Geekbencha rzeczywiście sugerowały coś o rzeczywistych osiągach… ;-)
Cody Gray
Bardzo niesamowita odpowiedź. Dziękujemy za podzielenie się swoją wiedzą.
DrWongKC
18

Główny wpływ wywarł na bezpieczeństwo oprogramowania. Jądro iOS nie było wcześniej otwarte: źródła publiczne poprzednio obejmowały tylko platformy x86 / x64, bez żadnej części ARM / ARM64 działającej na iOS. Jądro było wcześniej zaszyfrowane w oprogramowaniu iOS i bardzo trudno jest je wyodrębnić, co utrudniało wcześniej ocenę bezpieczeństwa jądra iOS - rodzaj „bezpieczeństwa przez zaciemnienie”.

Dzięki otwartemu dostępowi do jądra i pozostawieniu jądra niezaszyfrowanemu, jądro iOS może być teraz bardziej swobodnie analizowane i sprawdzane pod kątem luk w zabezpieczeniach ( https://techcrunch.com/2016/06/22/apple-unencryptrypted-kernel/ ). Będzie to ogólnie pozytywny krok dla bezpieczeństwa jądra, ponieważ oznacza, że ​​badania podatności jądra iOS będą bardziej otwarte dla zwykłych badaczy, którzy mogą ujawnić problemy Apple, a nie tylko ograniczone do np. Podmiotów finansowanych przez państwo.

nneonneo
źródło