Dlaczego Androida nadal nie można zainstalować jako zwykłego systemu operacyjnego?

11

Czy istnieją jakieś techniczne lub inne powody, dla których Android nadal jest oprogramowaniem układowym, a nie systemem operacyjnym, który można po prostu zainstalować bez większych problemów?

Dlaczego nie ma uniwersalnego obrazu, który mógłby wykryć odpowiednie sterowniki (moduły jądra), podzielić NAND w jakiś standardowy sposób i skonfigurować moduł ładujący w celu uruchomienia zaktualizowanej wersji systemu operacyjnego?

Co powstrzymuje Google przed stworzeniem prawdziwego (mniej oprogramowania układowego) systemu operacyjnego (system operacyjny dla małych urządzeń ARM, x86 itp.)?

Alex Bolotov
źródło
1
Warto zauważyć, że nie dotyczy to wyłącznie Androida, innych systemów operacyjnych skupiających się na urządzeniach ARM (nawet Microsoft Windows 8 RT) nie można po prostu zainstalować na żadnej innej maszynie ARM, ale są one traktowane bardziej jak oprogramowanie układowe.
GAThrawn
To pliki nagłówkowe: theregister.co.uk/2011/03/29/...
Thufir

Odpowiedzi:

11

Co powstrzymuje Google przed stworzeniem prawdziwego systemu operacyjnego (system operacyjny dla małych urządzeń ARM, x86 itp.)?

To „prawdziwy” system operacyjny.

Dlaczego nie ma uniwersalnego obrazu, który mógłby wykryć odpowiednie sterowniki

Jak wykryć nieistniejące sterowniki? Ktoś musi je napisać. W przeciwieństwie do komputerów PC, sprzęt telefoniczny jest bardzo zróżnicowany, głównie dlatego, że użytkownicy końcowi nie są w stanie zbudować własnych elementów na podstawie ograniczeń części i rozmiarów. Niestandardowe części zamiast wymiennych i specjalne mikroukłady oznaczają, że potrzebne są bardzo specyficzne sterowniki, a system operacyjny nie może tylko dostarczyć domyślnych. Wyobraź sobie także wzdęcia - ktoś z tanim telefonem HTC z 20 MB na aplikacje nie ma miejsca na hostowanie sterowników, których nie potrzebuje.

i skonfiguruj moduł ładujący w celu uruchomienia zaktualizowanej wersji systemu operacyjnego

Programy ładujące również różnią się bardzo między urządzeniami; musiałbyś zaangażować wszystkich producentów, aby użyć jednego, a producenci raczej nie chcą zrezygnować ze swojej mocy w tym obszarze.

Matthew Read
źródło
3
… Ale mogliby dokonać dystrybucji z bardzo modułowym jądrem, a następnie zainstalować tylko potrzebne rzeczy. Sprzęt na PC różni się także od pentium z wadliwym CMD640 IDE do Core i7 z USB3. Mogą stworzyć instalator, który odczytuje VendorISs: DeviceID z istniejącego systemu operacyjnego na urządzeniu, a następnie po prostu kompiluje jądro na QEMu, a następnie po prostu przenosi je na urządzenie z nowymi rzeczami. Sądzę, że masz rację, nawet jeśli osoba może po prostu użyć menuconfig, aby stworzyć wystarczająco dobre jądro dla konkretnego urządzenia, którego nie można wykonać automatycznie za pomocą jakiegoś skryptu.
Alex Bolotov,
1
@OleksandrBolotov: Należy pamiętać, że jądro Linuksa zawiera także wiele implementacji sterowników typu open source, które są kompilowane podczas uruchamiania kompilacji. Zdecydowana większość sterowników używanych przez urządzenia mobilne jest zastrzeżona, więc nawet jeśli na pewno możesz zbudować system Android ze źródła dla dowolnego urządzenia, mając wystarczająco dużo czasu, będziesz musiał wdrożyć wszystkie sterowniki. Ponadto Google może narazić się na umowy dotyczące własności intelektualnej, jeśli zrobią to sami (nie wiem na pewno, ale z pewnością może to być w ich umowach z różnymi producentami).
eldarerathis
2
@OleksandrBolotov Z pewnością zgadzam się, że mogliby zrobić coś, aby złagodzić problemy, ale możemy jedynie założyć, że przyczyną są przyczyny, dla których nie;). Myślę, że dalsze spekulacje byłyby poza naszym zakresem.
Matthew
2
Tak, tl; dr to problem ze sterownikami. Ktoś musi zrobić sterowniki.
Bryan Denny
Z założenia lub idealny scenariusz jako taki, jądro zawierałoby wszystkie sterowniki, podczas gdy system operacyjny Android jest uniwersalny, oba mogą być sflashowane osobno lub sflashowane razem w pakiecie jako zapasowe oprogramowanie wewnętrzne (które dzisiaj często widzimy). Jeśli jądro zostało oddzielone od systemu operacyjnego, możemy być w stanie migać jądra mniej AOSP bezpośrednio na dowolnym urządzeniu, które jest jego jądro producent błysnął pierwszy? Może to już istnieje? Idk
Aaron Gillion
3

Aby zapewnić to, czego oczekujesz, dodatkowa warstwa (lub bardziej niezawodna) abstrakcji musiałaby zostać dodana do systemu operacyjnego, aby była mniej ściśle sprzężona ze sprzętem. Dodanie tego wymagałoby więcej pamięci i zużyłoby więcej cykli procesora na platformie, która ma niewiele do stracenia.

Wstrzymano do odwołania.
źródło
2

Trwający proces Google z Oracle!

Google ma plan wprowadzenia Androida na PC - ale nie jest to dokładnie to, co sobie wyobrażasz: Google chce dodać środowisko wykonawcze Androida do Chrome. Android mógłby - przy dużym nakładzie pracy - zostać zainstalowany na komputerach PC, ale przeniesienie go do Chrome oznacza, że ​​można go łatwo wdrożyć na 25% wszystkich komputerów (25% to udział Chrome w rynku).

Jeśli mi nie wierzysz, spójrz na e-mail z pistoletem do palenia, który Google obecnie walczy o uniknięcie procesu - odnosi się do Google wymagającego Java dla Chrome.

Nie sugeruję, że Google nagle porzuci Javę, jeśli przegra sprawę - są zbyt zaangażowani w Javę, aby to zrobić - ale chcieliby przynajmniej wiedzieć, jakie będą warunki korzystania z Java robią krok, który znacznie zwiększyłby ich zależność od tego.

Tomek
źródło
1
Google po prostu cierpi z powodu złych decyzji podjętych dawno temu przez Android Inc. To był tak okropny pomysł, aby używać Javy do tworzenia aplikacji w NOWYM systemie operacyjnym. Czy nie było wystarczająco oczywiste, że Java jest tylko zastrzeżoną pułapką, a nawet nie potrzebują jej do tworzenia kodu bajtowego maszyn wirtualnych innych niż Java dla Dalvik. Sądzę, że mają po prostu zdrajców w zarządzaniu, którzy wszystko wyjaśniają.
Alex Bolotov,
1
Wydaje się, że dodanie środowiska wykonawczego Android do Chrome może nie być takie trudne, jeśli jest to coś do zrobienia ... bluestacks.com - aplikacje na Androida działające na pulpicie Windows!
Kapitan Ropucha
2
Czy masz na to jakieś dowody, czy po prostu szalenie spekulujesz?
Dan Hulme
Z pewnością wiele się zmieniło od czasu, gdy napisałem tę odpowiedź. Co najważniejsze, Pachai zastąpił Rubina i związaną z nim reorganizację w Google. Potem wydawało się, że wszystkie znaki się zmieniły, a IO13 różniło się znacznie od IO12: najwyraźniej teraz pchają Chrome jako platformę mobilną, więc nie wierzę, że wprowadzą Androida do Chrome.
Tom
1

Inne osoby niż Google już pracują nad przeniesieniem go na platformę x86. Jeśli obejrzysz projekt Android-x86 , możesz zobaczyć różne kompilacje dostępne, aczkolwiek dla ograniczonej liczby urządzeń. Próbowałem pobrać kilka obrazów i uruchomić je w VirtualBox na moim komputerze (CrunchBang Linux oparty na Debianie na Dell Latitude D520), ale nie udało mi się go załadować. Możesz jednak być w stanie. GL!

vyse
źródło