Budowa platformy mobilnej

0

Witajcie,

Jest gdzieś opisane lub ogólnie określone z czego musi składać się płyta główna smartfona i jakiego rodzaju złącza/porty/magistrale (jak np. w PC jest SATA, IDE, PCI, PCI-E, sockety)? Wiadomo np. z czego musi się składać komputer PC, jakie ma standardy złącz czy tam magistrale, jakie elementy do minimalnego działania muszą być przyłączone. Wiadomo, że musi mieć pamięć ROM, RAM, HDD, GPU (nie wiem jak jest z serwerami bo tam pewnie to wygląda inaczej, ale ja mówię o takim typowym PC). Na pycie głównej ATX wiadomo też że musi być Mostek północny i Mostek południowy do komunikacji tego wszystkiego ze sobą.

Dlaczego o to pytam? Ciekawi mnie jak to działa, że taki Android, żeby działać na konkretnym modelu telefonu musi zostać pod niego przystosowany albo także, na telefon na którym jest Android nie możemy zainstalować np. WP albo iOS tak jak maa to miejsce w przypadku platformy PC i systemów na nią. Czy może to jest specjalne zachowanie wywołane przez korporacje w celu konkurencji.

1

Dlaczego nie można zainstalować innego systemu? Oczywiście że można. Filozofii tu nie ma żadnej innej niż w komputerze osobistym, jak są sterowniki to można uruchomić dany sprzęt :)

1

Hej,

Może zamiast odpowiadać na pierwszą część pytania, odpowiem na drugą.

Android rozwijany jest przez AOSP (Android Open Source Project), które definiuje szereg wymagań dla producentów sprzętu. Są to raczej wymagania dotyczące tego jak urządzenie komunikuje się z użytkownikiem, jakie obsługuje funkcje, a nie wymagania dotyczące szczegółów architektury. Jeśli cię to ciekawi, zajrzyj tutaj: https://static.googleusercontent.com/media/source.android.com/pl//compatibility/android-cdd.pdf Kolejnym etapem weryfikacji jest certyfikacja urządzenia poprzez wykonanie testów CTS (Compatibility Test Suite).

Nie wiem czy istnieją jakiekolwiek wytyczne co do architektury. Wydaje mi się, że nie. W końcu większość urządzeń oparta jest o architektury ARM, a jednak Intel dostarcza urządzenia oparte o x86. Są też Androidy oparte o np. aarch64. Sam kernel obsługuje zresztą znacznie więcej architektur. Problemem może być to jak działa maszyna wirtualna Androida. Kod kompilowany jest z bytecodu javy (Smali) do kodu natywnego. Trzeba więc albo napisać odpowiedni translator, albo wykorzystać jakiś trick (np. moduł Houdini odpowiada za translacje instrukcji ARM na x86). Trzeba po prostu przeportować strasznie dużo kodu, zapewnić sterowniki sprzętu etc.

Pogooglaj sobie, kilku osobom udało się odpalić iOS-a na telefonach dedykowanych Androidowi.

Twoje pierwotne założenie co do architektury PC też nie jest do końca zgodne z prawdą :) Co rozumiesz jako PC? IBM-PC? Dowolny desktop? Czy jeśli hobbysta zbuduje komputer w garażu, to zbuduje PC-ta? :)

0

Myślę że to pytanie mogę podpiąć do tego wątku. Jak sa różne procesory dla hobbystów czy do fabryk itp. jak np STM32 czy jakies z NXP to maja w sobie flasha i RAM i startuja od razu z flasha. W telefonach też tak jest czy RAM i Flash jest w osobnym chipie? A jak jest osobno to pewnie sa dodatkowe wyprowadzenia tak jak by ten Flash był wewnątrz? Chyba inaczej nie mogl by zbootowac. W Androidzie kernel Linuxa siedzi w pamieci flash czy gdzie indziej. W ogóle jakie nośniki danych znajdują się w telefonie? Na pewno RAM i Flash. W ARM jest tak samo jak w x86 ze booutloader jest gdzies we Flashu (w sumie tak też jest w AVRach). Sorrki za niektóre błędy, pisane w nocy na telefonie.

1

Jest gdzieś opisane lub ogólnie określone z czego musi składać się płyta główna smartfona i jakiego rodzaju złącza/porty/magistrale

Możesz sobie zbudować z czego chcesz. Ale system operacyjny ma swoje wymagania. Albo się do nich dostosujesz, albo przekonasz producenta systemu do dostosowania go do twojego sprzętu, albo sam dostosujesz system, albo napiszesz własny.

Na pycie głównej ATX wiadomo też że musi być Mostek północny i Mostek południowy do komunikacji tego wszystkiego ze sobą.

Musi? Jest jakaś dyrektywa unijna w tej sprawie? ;-)

Dlaczego o to pytam? Ciekawi mnie jak to działa, że taki Android, żeby działać na konkretnym modelu telefonu musi zostać pod niego przystosowany albo także, na telefon na którym jest Android nie możemy zainstalować np. WP albo iOS tak jak maa to miejsce w przypadku platformy PC i systemów na nią

Jest tak właśnie dlatego, że nie ma jednego standardu na "smartfon" który musi być spełniony.

Współpraca między producentem telefonu a systemu operacyjnego musi być, jeżeli to nie jest ten sam producent.

W telefonach też tak jest czy RAM i Flash jest w osobnym chipie?
Nie wiem, ale to bez znaczenia. Szczegół implementacyjny.

W Androidzie kernel Linuxa siedzi w pamieci flash czy gdzie indziej.
Taśm magnetycznych, pamięci ferrytowych ani kart perforowanych w smartfonach się raczej nie spotyka, więc gdzie miałby być indziej...

0

W Androidzie kernel Linuxa siedzi w pamieci flash czy gdzie indziej.

Taśm magnetycznych, pamięci ferrytowych ani kart perforowanych w smartfonach się raczej nie spotyka, więc gdzie miałby być indziej...

Z tym Flashem miałem na myśli to, że procesor ma tam tego swojego tego flasha z którego bootuje, ale telefony mają ten Internal SD. W PC to na początku dysku siedzi bootloader, który wczyta coś tam z systemu plików i zrobi skok do kernela (chyba, że właśnie telefony bootują z Internal SD), jak jest w smartfonach nie mam pojęcia.

1

Inernal SD to wewnętrzna karta sd (nie wiem czemu się akurat tak nazywa) to nic innego jak partycja, na której użytkownik moze trzymać swoje pliki. Nie ma ona nic do systemu.

System jest a partycji /system, programy są instalowane na partycji /data, jeszcze inna partycja to bootloader, kolejne to recovery, efs i mogą być jeszcze inne w zależności od wymagań hardware.
A wszystkie te partycje są w wewnętrznej pamięci flash emmc urządzenia, na dobrą sprawę wszystko działa analogicznie jak na pc.

0

To jest na dobrą sprawę offtop, ale napiszę bo jednak jest coś wspólne. Czy jest sens kupienie jakiegoś taniego używanego telefonu na allegro, żeby pisać na niego program :D ? Da się tak w ogóle pisać od zera system czy jakieś programy?

btw. Na tej pamięci eMMC jest też tablica partycji jak na x86 czy inna (jaka?)?

1

Noooo! Na Androida da się pisać programy :D ale heca, nie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1