Pytanie:
Co by się stało, gdybym wymusił zainstalowanie sterownika Linuksa w Mac OS X?
Kaz Wolfe
2015-01-27 13:01:44 UTC
view on stackexchange narkive permalink

Niedawno dostałem system Mac i planowałem zainstalować kartę Intel WiFi (jako uaktualnienie do obecnej karty). Teraz, jak wiemy, Apple i Intel nie dogadują się pod względem WiFi.

Jednak ta sama karta działa w Linuksie.

Co by się stało, gdybym zmusił Intel sterowniki dla jądra Linux do Mac OS X? Czy to zadziała? Czy doszłoby do poważnej niestabilności lub utraty danych? Czy to w ogóle możliwe?

Prawie to samo, co by się stało, gdybyś zmusił sterowniki Windowsa do OS X ... API jądra jest inne i nie będzie działać.
Co oznacza „wymuszenie sterowników Intel” w systemie OS X? Samo umieszczenie pliku w systemie plików jest wynikiem netto wszelkich możliwych działań, jakie widzę. Co właściwie byś zrobił?
@bmike Użyj (nieistniejącego) `modprobe` lub podobnego narzędzia.
@bmike „Co oznacza„ wymuszenie sterowników Intel ”na OS X?” Weź kwadratowy kołek niekompatybilnego sterownika i włóż go do okrągłego otworu systemu.
@JakeGould Problem: Kwadratowy kołek może pasować do okrągłego otworu!
@JakeGould Coś jak [The Elegant Gentleman's Guide to Knife Fighting?] (Https://www.youtube.com/watch?v=WEKhJ3CYWz4)
@bmike „Przeprowadził dobry wywiad…” Bez komentarza! ;)
Pięć odpowiedzi:
Giacomo1968
2015-01-27 14:17:03 UTC
view on stackexchange narkive permalink

Co by się stało, gdybym wymusił sterowniki Intel dla jądra Linuksa w Mac OS X? Czy to zadziała? Czy doszłoby do poważnej niestabilności lub utraty danych? Czy to w ogóle możliwe?

W najlepszym razie? 100% nic. W najgorszym? Zepsuć cały system i uczynić go bezużytecznym lub nawet niemożliwym do uruchomienia.

Podczas gdy Mac OS X i Linux to różne „smaki” Uniksa, nie możesz po prostu pobrać części z jednego systemu operacyjnego i zainstalować go w z innymi systemami operacyjnymi i oczekuj, że będą działać.

To powiedziawszy, jeśli gdzieś jest kod źródłowy sterownika, możesz potencjalnie skompilować je dla Mac OS X przy użyciu pakietu rozwojowego Xcode narzędzi.

Ale to jest jedno wielkie jeśli . Rzeczywistość jest taka, że ​​kompilowanie kodu źródłowego aplikacji Linux w systemie Mac OS X z systemu Linux to bzdura. Czasami to działa i możesz używać fajnych narzędzi Linuksa w systemie Mac OS X. Ale czasami to po prostu nie działa. I to na poziomie aplikacji. Na poziomie kierowcy jest to jeszcze mniej prawdopodobne lub wykonalne; a nawet gdyby było to wykonalne, byłoby to w najlepszym przypadku trudne.

To powiedziawszy, wydaje się, że próbowano skompilować sterowniki Intel dla Linuksa dla Mac OS X, jak widać tutaj. Należy jednak pamiętać, że wersje Mac OS X, o których mowa, to Mac OS X 10.4 i 10.5; nic bardziej nowoczesnego.

Marek Bettman
2015-01-27 18:30:37 UTC
view on stackexchange narkive permalink

Nic by się nie stało, ponieważ nie działałyby (moduły jądra). MacOS i Linux mają 2 zupełnie różne jądra. To tak, jakby próbować przełączyć silnik z jednej marki samochodu na inną: nie będzie działać, ponieważ wszystkie połączenia / specyfikacje są zupełnie inne.

Poza tym w systemie Mac OS nie ma poleceń lsmod / insmod / modbrobe / rmmod X ...

Teraz, jeśli wypróbujesz sterowniki binarne, byłoby to tak, jak - przepraszam za moje porównania do samochodów - zdobycie materiałów na fotelik samochodowy (zgodnie ze specyfikacjami dla marki A) i próba zbuduj (skompiluj) fotelik dla marki B. Jeśli te dwie marki samochodów są kompatybilne w obszarze fotelików samochodowych, prawdopodobnie byś to zrobił i może faktycznie zadziałać. Ale jeśli spróbujesz zbudować fotelik wyścigowy z materiałów do 20-letniego samochodu, będziesz miał ciężką jazdę, jeśli nie rozbijesz się i zranisz.

Porównanie silnika samochodu nie jest zbyt dobre, ponieważ hot rodders faktycznie robią to cały czas.
Może to też nie jest najgorsze, bo są projekty, które pozwalają uruchamiać sterowniki dla Windowsa na Linuksie przy użyciu warstwy adaptacyjnej (każdy `ndiswrapper`?). Więc chociaż z pewnością nie zadziała po wyjęciu z pudełka, teoretycznie * może * być możliwe dla niektórych zaawansowanych użytkowników, aby dostosować sterownik do innego systemu operacyjnego. W każdym razie OP lepiej kupić kolejną kartę WiFi.
„Jeśli spróbujesz zmusić moduł jądra Linuksa do OSX, nie będziesz się dobrze bawić”. https://www.youtube.com/watch?v=6Ls5j5iz2eA
Ponadto * istnieje * odpowiednik `modprobe` w OS X: [` kextload`] (https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/kextload.8.html )
John Keates
2015-01-28 09:21:47 UTC
view on stackexchange narkive permalink

Jak już napisano: nie jest to możliwe.

Po pierwsze, nie ma czegoś takiego jak „wymuszona instalacja”. Nie ma nic do zainstalowania, a nawet jeśli było coś do zainstalowania, nie można tego „wymusić”. Instalacja może mieć różne znaczenia, ale te dwa odpowiadają Twojemu pytaniu:

  1. Instalacja oznacza instalację pakietu Mac OS X przy użyciu instalatora OS X. Jest to pakiet zawierający pliki do zainstalowania i instrukcje dla systemu instalacyjnego, aby wiedział, gdzie umieścić, co i jak to zrobić.

  2. Instalacja oznacza pobranie sterownika dla część sprzętu załadowana do jądra. OS X działa przy użyciu tak zwanych rozszerzeń jądra (pliki .kext lub oficjalnie „pakiety”, ponieważ nimi są) w celu dodania funkcjonalności do jądra. Takim dodatkiem jest sterownik, a funkcjonalność polegająca na możliwości sterowania elementem sprzętu.

Oba przypadki są ściśle związane z systemem operacyjnym. Oznacza to, że nie możesz „zainstalować” czegoś bez dopasowania punktów 1 i 2. Chociaż technicznie możesz pominąć punkt 1, ręcznie używając programu „kextload” do załadowania pliku jako rozszerzenia jądra, nie byłbyś w stanie dopasować punktu 2: tylko rozszerzenia jądra mogą być ładowane do jądra. Rozszerzenia jądra muszą pasować do ABI i API jądra. Te dwa akronimy (nie wahaj się ich wyszukać, ich pełna nazwa i znaczenie nie mają znaczenia dla odpowiedzi) są porównywalne do dopasowywania gniazdek elektrycznych do wtyczek elektrycznych. Są interfejsami.

Gdybyś próbował mieszać i dopasowywać pliki binarne (ponieważ tym są rozszerzenia jądra, moduły i sterowniki), to nie zadziała, ponieważ nie są one kompatybilne z jądrem, aw niektórych przypadkach procesorem, który musi wykonać kod. Ta kompatybilność z jądrem jest tym, gdzie dochodzimy do części ABI i API: te interfejsy są jak połączenia gazowe, wodne i elektryczne. Powiedzmy, że Windows to gaz, Linux to prąd, a OS X to woda. Jeśli spróbujesz podłączyć wtyczkę elektryczną Linuksa do kranu z wodą OS X, nic nie zadziała. Woda nie przepływa przez wtyczkę elektryczną, a wtyczka elektryczna nie pobiera prądu z wody.

Gdybyś spróbował załadować sterownik linux (który nazywa się modułem jądra) do jądro OS X, używając kextload z wiersza poleceń w OS X, po prostu powie ci, że nie wie, co zrobić z dostarczonym plikiem. Nie ma w tym żadnej siły, po prostu nie można nic zrobić z tym plikiem, tak jak nie można zmusić żarówki do pracy z kranu w domu.

A co do problemu: co próbujesz osiągnąć ? Jeśli masz problem z połączeniem bezprzewodowym, zwykle jest on związany z siecią lub środowiskiem. Jeśli brakuje Ci niektórych funkcji, takich jak różne częstotliwości lub nowsze protokoły bezprzewodowe, możesz spróbować po prostu zainstalować lepszą obsługiwaną kartę. W Internecie znajdują się listy natywnie obsługiwanych kart bezprzewodowych, które będą działać dobrze. Intel nie jest jednym z nich.

Mam nadzieję, że to pomoże Ci i wyjaśni wszystko tak jasno, jak to tylko możliwe.

Mike Scott
2015-01-27 13:04:31 UTC
view on stackexchange narkive permalink

Nie, to niemożliwe, tak samo jak nie możesz uruchomić innych plików binarnych Linuksa w OS X (bez użycia maszyny wirtualnej).

Jeśli już, jest to mniej możliwe. Pliki binarne przestrzeni użytkownika Linuksa, które ograniczają się do POSIX, powinny działać w systemie MacOSX tylko z niestandardowym programem ładującym i cienką warstwą tłumaczeniową. Sterowniki Linuksa (pliki binarne obszaru jądra) są ściśle powiązane z jądrem, do tego stopnia, że ​​często nie działają na innych wersjach jądra * Linux *, a tym bardziej na jądrze MacOSX.
Angelos
2015-01-29 13:16:09 UTC
view on stackexchange narkive permalink

Na marginesie, jeśli masz jakieś urządzenia USB, które dostarczają tylko sterownik dla Linuksa, ale nie mają sterownika OS X, możesz rozważyć użycie urządzenia, uruchamiając Linuksa na maszynie wirtualnej (VirtualBox?), a następnie przekierować połączenie USB z komputera Mac do maszyny wirtualnej z systemem Linux.

Następnie, jeśli potrzebujesz użyć narzędzi GUI, możesz również skonfigurować przekazywanie X na pulpit systemu OS X za pomocą XQuartz.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...