Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Linux dla platform mobilnych

ghost666 05 Feb 2022 16:13 1734 0
Computer Controls
  • Linux dla platform mobilnych
    Rys.1. Ubuntu Touch
    W ciągu ostatnich pięciu lat rozpowszechnienie i wykorzystanie Linuxa w zakresie mobilnych systemów operacyjnych (OS) wzrosło do 60 milionów sztuk rocznie, głównie u różnych dostawców telefonów komórkowych, takich jak Motorola, NEC, Panasonic czy Samsung. Ogólnie rzecz biorąc, adaptacja oprogramowania ma miejsce wtedy, gdy szacuje się, że cena istniejącego dla nowej platformy jest niższa niż koszt budowy świeżego. Przy dostosowaniu oprogramowania szczególnie ważne są trzy główne kroki:

    * Wstępna modyfikacja bieżącego oprogramowania systemowego w celu ponownego wykorzystania funkcjonalności zaadaptowanego systemu;
    * Utrzymanie systemu, aby był on na bieżąco aktualizowany;
    * Korekcja systemu, w celu naprawy nowych błędów wprowadzonych w fazie rozwoju i adaptacji.

    Te trzy kroki mogą być droższe niż się wstępnie zakłada, szczególnie jeśli dostosowanie oprogramowania nie zostanie wykonane prawidłowo. Liczne inicjatywy zostały wdrożone wyłącznie przez społeczność open-source w celu opracowania: „pojedynczego” środowiska mobilnego pulpitu — w szczególności GPE bazującego na GTK i Qtopia opartego na QT. Niestety te dwa projekty nie powiodły się ze względu na małą kompatybilność sprzętową. Później, dzięki Nokii i zespołowi programistycznemu jądra ARM, sytuacja zmieniła się drastycznie, osiągając godny pozazdroszczenia poziom stabilności i sprawności energetycznej. Innym niekwestionowanym bohaterem mobilnej panoramy Linuxa jest Palm ze swoimi smartfonami Pre i Pixi. Projekt stał się pierwszym prawdziwym komercyjnym sukcesem marki.

    Ubuntu Touch: główne cechy

    Ubuntu Touch korzysta z dotykowego interfejsu użytkownika Qt5 i kilku struktur programowych, pierwotnie opracowanych dla Maemo i MeeGo, takich jak oFono i Maliit. System może być często używany z jądrem Androida, dzięki czemu można go łatwo przenieść na najnowsze smartfony. Ubuntu Touch korzysta z tych samych podstawowych technologii, co wersja desktopowa, dzięki czemu aplikacje przeznaczone na daną platformę mogą działać na urządzeniach mobilnych. Co więcej, po podłączeniu do zewnętrznego monitora lub stacji dokującej użycie komponentów pulpitu zapewnia pełne doświadczenie pracy z urządzeniami dotykowymi. Ubuntu Touch zawiera podstawowe aplikacje społecznościowe, multimedialne (takie jak Facebook, YouTube i czytnik RSS), a nawet standardowe typu kalkulator, klient poczty e-mail, budzik, menedżer plików i terminal. Inne bazowe są obecnie w fazie rozwoju. Kilka aplikacji Ubuntu Touch działa w wersji na komputery, w tym przeglądarka, kalendarz, zegary, galeria, notatki, przypomnienia, terminal i prognoza pogody. Użytkownicy mogą zdobyć dostęp do całego systemu, przesuwając palcem od krawędzi ekranu. Lewa krawędź umożliwia natychmiastowy akces. Dostęp do wielozadaniowości Ubuntu Touch można uzyskać, przesuwając palcem od prawej krawędzi ekranu do lewej. Podczas gdy ruch od dołu do góry pozwoli pokazać lub ukryć pasek narzędzi, co daje telefonowi Ubuntu możliwość domyślnego uruchamiania aplikacji.

    Synergia między komputerami PC i urządzeniami mobilnymi może być również interesująca dla korporacyjnych działów IT, które używają obecnie Ubuntu do obsługi swoich serwerów, jako że pozwala to na szerszy dostęp do różnej gamy sprzętów. Co może również wpłynąć na dostępność i zarządzanie w danej firmie. Urządzenia mobilne będą mogły łączyć się z większymi ekranami i innymi instrumentami peryferyjnymi, takimi jak klawiatury bezprzewodowe. Aplikacje Windows będą także dostępne z serwerów firmowych na urządzeniu mobilnym, co usprawnia przesyłanie danych.

    Rynek dla Ubuntu Touch jest dość trudny, ale wciąż rośnie, ponieważ firmy dostosowały się już do korzystania z aparatów z systemem Android i iOS. Podczas gdy korzyść płynąca z wykorzystania Ubuntu Touch jest, wciąż niewielka. Możliwości uruchamiania deskopowych lub laptopowych aplikacji Linux na smartfonach są obecnie rzadko wykorzystywane. Jednak są dostępne komercyjne filmy pokazujące programistów Ubuntu używających smartfonów pod dane zastosowanie, co sugeruje nadchodzący sukces, który pozwoli na dobre wejście na rynek mobilny.

    W przeciwieństwie do Androida, iOS i Windows Phone, które przyzwyczaiły nas do panelu domowego złożonego z tła i wielu aplikacji, Ubuntu Touch oferuje wyjątkowe wrażenia użytkownika. Aby wyróżnić się na tle konkurencji, firma Canonical wprowadziła technologię Scopes, która jest już znana wszystkim właścicielom komputerów stacjonarnych. Scopes zawierają informacje, mogą uruchamiać aplikacje i służą do dostarczania treści, których odbiorcy faktycznie potrzebują. Na przykład, jeśli szukasz konkretnego utworu, zobaczysz wyniki wyszukiwania pliku na telefonie offline. Później (online) pojawią się sugestie zakupu lub przesłuchania tej zawartości.

    W wersji Ubuntu Touch 14.04 możemy znaleźć następujące główne funkcjonalności:

    * Wsparcie dla wielu SIM;
    * Jednoczesne połączenia z dwoma kartami SIM;
    * Systemy geolokalizacji;
    * Synchronizacja kalendarza i kontaktów;
    * Powiadomienia o zdarzeniach systemowych.

    Android kontra Ubuntu Touch

    Android bazuje na jądrach Linux 2.6 i 3.x (od wersji 4.0), z bibliotekami C i oprogramowaniem działającym na platformach zawierających biblioteki Java oparte na Apache Harmony. Działa z różnymi aplikacjami na smartfony, w tym z klientami poczty e-mail, niezbędnymi do aparatu, zsynchronizowanym kalendarzem w chmurze z przypomnieniem dźwiękowym. A także z tymi mogącymi włączać i wyłączać Wi-Fi lub Bluetooth oraz zmieniać jasność ekranu w zależności od lokalizacji smartfona, lub pory dnia.

    System operacyjny Android uruchamia się, ładując jądro systemu Linux (rysunek 2) i sterowniki urządzeń peryferyjnych w taki sam sposób, jak w przypadku standardowej dystrybucji, ale nie obsługuje jednakich aplikacji, co bazowa wersja na komputery stacjonarne. I odwrotnie, aplikacje na system Android nie mogą działać pod GNU/Linux. Z kolei Ubuntu Touch pracuje z klasycznym oprogramowaniem GNU/Linux, takim jak to, które można znaleźć na komputerach stacjonarnych i laptopach. Nie jest dostarczany z zainstalowanym systemem X-Windows lub kompatybilnym pulpitem. Dlatego niektóre oprogramowania graficzne dla typowych systemów GNU/Linux (jak na przykład Firefox i LibreOffice) nie będą działać, dopóki nie zostanie zainstalowany X-Windows. Oczekuje się, że oprogramowanie komputerowe GNU/Linux będzie pracować na Mir lub Wayland, eliminując potrzebę stosowania X-Windows do grafiki (Ubuntu Touch używa Mir). Mir to serwer graficzny dla systemu operacyjnego Linux opracowany przez Canonical i zaprezentowany 4 marca 2013 roku. Został stworzony, aby ułatwić rozwój Unity 8, nowej generacji interfejsu użytkownika Unity firmy Canonical, który zastąpił GNOME i pochodne na pulpicie Ubuntu.

    Główne cechy Androida można podsumować w 3 kluczowych punktach:

    * Jest oparty na Linuxie, ponieważ używa jego jądra jako podstawowego odniesienia;
    * Natywne aplikacje dla systemu Android nie mogą działać w dystrybucjach Linux, ponieważ brakuje w nich bazowych komponentów;
    * Android używa maszyny wirtualnej lub określonego środowiska wykonawczego jako: „pośredniego” poziomu między aplikacjami a jądrem.

    Z drugiej strony zalety Ubuntu Touch można podsumować w następujący sposób:

    * Obiecuje długą żywotność baterii, coś, czego użytkownicy Androida chcieli od lat;
    * Aplikacje nie mogą działać w tle, dzięki czemu telefon funkcjonuje lepiej;
    * Każda aplikacja pracuje oddzielnie od pozostałych, więc nawet gdyby jej wykonanie zostało naruszone, nie mogłaby uszkodzić całego systemu.

    Główną wadą Ubuntu OS (a także Firefox OS) jest, natomiast ograniczona dostępność do aplikacji (przynajmniej na razie). Obecnie istnieje jakaś społeczność programistów i entuzjastów z około 200 dostępnymi aplikacjami, ale liczba ta ma wzrosnąć.

    Linux dla platform mobilnych
    Rys.2. Ogólna architektura systemu Linux.


    Rynek mobilnych systemów operacyjnych

    Android i iOS dominują na obecnym rynku smartfonów z udziałem 80% używanych systemów operacyjnych. Nowe mobilne systemy, oprócz Ubuntu Touch pojawiają się od 2012 roku wspierane przez wysoce wydajne funkcje bezpieczeństwa. Kilka firm wydało lub wyda niebawem systemy operacyjne w nadchodzących latach.

    Firefox OS od Mozilli (wcześniej znany jako: „Boot to Gecko” lub: „B2G”) jest zbudowany w całości na standardach otwartej sieci z zaawansowanymi technikami HTML5 i interfejsem JavaScript API, umożliwiającym bezpośredni akces do sprzętu. W rezultacie aplikacje w Firefox OS nie są tradycyjne; są to raczej skróty do aplikacji internetowych z uprawnieniami dostępu do danych w telefonie i funkcji systemu operacyjnego. Ponieważ aplikacje HTML5 są stosunkowo mało zależne od sprzętu telefonu, Mozilla uważa, że jej system operacyjny może lepiej konkurować z aparatami z niższej półki, które są podatne na problemy z wydajnością. Z tego powodu organizacja skierowała uwagę na kraje rozwijające się i plany uczynienia z Ameryki Południowej swojego rynku początkowego. Pierwsza fala urządzeń z Firefox OS będzie również dostępna na Węgrzech, w Czarnogórze, Polsce, Serbii i w Hiszpanii.


    Współpraca Samsunga i Intela doprowadziła do opracowania systemu operacyjnego Tizen, platformy mobilnej typu open source opartej na Linuxie, która ma wiele wspólnego z Androidem pod względem wyglądu i obsługi. Jednak, podczas gdy Android w wielu swoich funkcjach opiera się na usługach Google, Tizen będzie można łatwo zmodyfikować, aby obsługiwał zasoby inne niż te oferowane przez ww. giganta. Ta adaptacja jest szczególnie ważna w Azji, ponieważ usługi Google są w dużej mierze zablokowane w Chinach, a amerykańska marka pozostaje w tyle za firmami takimi jak Baidu i Yahoo Japan. Jolla Sailfish OS to reinkarnacja MeeGo, mobilnego systemu operacyjnego opartego na Linuxie opracowanego przez grupę byłych pracowników Nokii. Chociaż Sailfish, wciąż jest w fazie rozwoju, zestaw do tworzenia oprogramowania systemowego został udostępniony do bezpłatnego pobrania dla użytkowników Linuxa.

    Nadal nie jest jasne, w jaki sposób Ubuntu Touch, Firefox OS, Tizen i Sailfish wpłyną na rynek smartfonów, a także jak Google i Apple zareagują na wysyp nowych platform mobilnych. Trzeba jeszcze trochę poczekać, zanim będzie można zdobyć prawdziwy sprzęt zgodny z alternatywnymi systemami operacyjnymi, ale fakt, że tak wiele znanych firm i różnych organizacji zajmuje się rozwojem urządzeń mobilnych, czyni to całkiem obiecującym. Ubuntu Touch będzie pierwszym prawdziwym krokiem. Każdy, kto docenia oprogramowanie typu open source, ma pewne powody do optymizmu, co do tego trendu, patrząc na przyszłość telefonii komórkowej.

    Mobilne środowisko programistyczne

    Proces tworzenia dla urządzenia mobilnego bywa inny w przypadku oprogramowania pracującego na stacji roboczej czy serwerze. Często wymagane jest utworzenie od podstaw pełnego obrazu systemu operacyjnego w środowisku pracy, a następnie instalacja na urządzeniu docelowym. W przypadku projektu Ubuntu Mobile programista ma dostęp do pełnego zestawu zbudowanych pakietów, a także do wielu złożoności związanych z mobilnymi systemami operacyjnymi. Różne narzędzia mogą wypełnić lukę między rozwojem Ubuntu Mobile a normalną dystrybucją. Podczas opracowywania urządzenia mobilnego o infrastrukturze innej niż stacja robocza, takiego jak komputer stacjonarny i386 i sprzęt z architekturą Intel o niskim poborze mocy, ważne jest, aby środowiska hosta i klienta były oddzielone. Wirtualizacja jest obecnie najczęstszym sposobem na realizację danego ujęcia.

    Ten proces całkowicie oddziela system operacyjny od podstawowych zasobów platformy, co można osiągnąć przy użyciu różnych technologii. Ubuntu zdecydowało się skoncentrować wysiłki na wirtualizacji na maszynie wirtualnej opartej na jądrze (KVM), łacie dla jądra Linuxa, która pozwala systemom-gościom: „siedzieć” na sprzęcie hosta. KVM wykorzystuje również Quick Emulator (QEMU) do włączania samego jądra Linuxa jako hypervisora. Dlatego KVM (patrz rysunek 3), jest przeznaczony dla systemów, w których procesor obsługuje sprzętową wirtualizację i ma to tę zaletę, że ponownie odwołuje się do QEMU, jeśli nie jest dostępny.

    Systemy dla gościa pojawiają się jako procesy Linuxa i można nimi zarządzać jak każdą inną aplikacją. Systemy KVM nie oferują obecnie graficznego interfejsu użytkownika, który mógłby pomóc nowemu programiście Ubuntu Mobile w szybkim rozwoju. Składa się z ładowalnego modułu jądra, kvm.ko, który zapewnia podstawową infrastrukturę wirtualizacji oraz modułu specyficznego dla procesora, KVM-intel.ko lub KVM-amd.ko. Aby sprawdzić to w systemie, należy wykorzystać następujące polecenie:

    Code: bash
    Log in, to see the code


    Jeśli w danych wyjściowych pojawi się: „vmx” lub: „SVM”, sprzęt (CPU) będzie wspierał KVM. Jeśli informacja ta nie jest wydrukowana w terminalu, procesor nie obsługuje wirtualizacji sprzętowej, a system będzie odwoływał się do programowej opartej na QEMU, dzięki szybkości emulacji uzyskanej za pomocą techniki translacji dynamicznej. QEMU składa się z dwóch części: tej dotyczącej rzeczywistej emulacji oraz emulatora samego systemu.

    Linux dla platform mobilnych
    Rys.3. Ogólna architektura KVM.


    Jednostka zarządzania energią

    Urządzenia mobilne wyposażone są w kamery, różnego rodzaju nadajniki radiowe, zaawansowane systemy multimedialne i inne funkcje, które pobierają dużo prądu. Żywotność baterii wynosząca około sześciu godzin jest obecnie uważana za absolutne minimum i dlatego ważne jest, aby programiści spróbowali dowiedzieć się, jak zaoszczędzić dużo więcej energii już na etapie programowania. Najlepsza wydajność baterii zależy od wielu czynników, w tym struktury sprzętowej, sposobu użytkowania i samego kodu oprogramowania stosowanego w aplikacjach. Deweloperzy będą musieli uzupełnić kod, aby zapewnić odpowiednią kontrolę zasilania baterii, ponieważ wymagania klientów dotyczące trwałości wydają się rosnąć wykładniczo.

    Użytkownicy powinni mieć nie tylko możliwość określenia zużycia energii, ale także nadpisania domyślnych ustawień systemowych. Ugruntowany kod w Linuxie z interfejsami Advanced Configuration and Power Interface (ACPI) i Hardware Abstraction Layer (HAL) został skonsolidowany ze sobą w celu optymalizacji poboru mocy. Każdy z tych pakietów można traktować jako kontroler zasilania dla określonego podsystemu na platformie opartej o Linux. Na przykład: „cpufreq” zarządza zasilaniem podsystemu procesora, a interfejs: „iwconfig” mocą specyficzną dla urządzenia dla podsystemu sieciowego (WLAN).

    ACPI to otwarta specyfikacja przemysłowa opracowana wspólnie przez firmy Hewlett-Packard, Intel, Microsoft, Phoenix i Toshibę (patrz rysunek 4). Definiuje standardowe interfejsy, które umożliwiają konfigurację systemu operacyjnego do zarządzania energią i temperaturą dla platform mobilnych, stacjonarnych i serwerowych. Z drugiej strony HAL to podsystem programowy dla systemów operacyjnych typu UNIX, który zapewnia warstwę abstrakcji sprzętowej. D-Bus IPC, który ukrywa sprzęt za opartym na obiektach mechanizmem RPC, umożliwia aplikacjom komunikację z HAL. Każde logiczne urządzenie sprzętowe jest reprezentowane jako obiekt D-Bus, a jego adres magistrali jest używany jako unikalny identyfikator.

    Od wersji Ubuntu 9.04 pojawił się nowy demon, który można zainstalować z dostępnych repozytoriów, a zapewniający scentralizowaną usługę zarządzania informacjami o zużyciu energii. DeviceKit-power to nazwa urządzenia, do której można uzyskać dostęp za pośrednictwem interfejsu D-Bus.

    Najczęstsze stany oszczędzania energii to:

    * Włącz: Wszystkie komponenty urządzenia są uruchomione;
    * Tryb gotowości: Procesor nadal działa, ale niektóre elementy, takie jak dysk twardy można wyłączyć. W stanach pracy i gotowości szybkość procesora można dostosować do wykonywanych czynności;
    * Zawieszenie: Procesor jest zatrzymywany;
    * Hibernacja: Wszystkie urządzenia są wyłączone, a status systemu jest zapisywany na dysku twardym przed wejściem w stan hibernacji.

    Zarówno APM, jak i ACPI będą dostępne, jeśli jądro zostało skompilowane z pakietami zarządzania energią (co jest standardem w Ubuntu). Uruchamiając:

    Code: bash
    Log in, to see the code


    można zobaczyć domyślną konfigurację jądra. APM zapewnia dostęp do informacji o stanie baterii i może pomóc w oszczędzaniu zasobów energetycznych w zależności od sposobu jego wdrożenia. Został zastąpiony przez ACPI w nowszych systemach gospodarowania energią.

    GNOME Power Manager to program z graficznym interfejsem do organizacji zdarzeń związanych z zarządzaniem energią. Na przykład pokazuje on stan użycia baterii w laptopach i przyciemnia ekran podczas pracy przy braku zasilania. Jeśli użytkownik jest zalogowany, może również wyłączyć lub hibernować komputer po predefiniowanym okresie bezczynności, lub zanim bateria się wyczerpie. Oprogramowanie jest w rzeczywistości zarządzane przez warstwę abstrakcji sprzętowej.

    Zestaw DeviceKit zastępuje podstawową funkcjonalność HAL i implementuje interfejs jakości usług do kontroli opóźnień. Jest to konieczne w przypadku urządzenia, które zużywa mało energii, gdy jest bezczynne i ma pracować z odpowiednią prędkością. DeviceKit Power zapewnia interfejs D-Bus dla źródeł zasilania sprzętów i do sterowania zarządzaniem energią na poziomie urządzenia. Można go zainstalować za pomocą następującego kodu:

    Code: bash
    Log in, to see the code
    .


    Linux dla platform mobilnych
    Rys. 4. ACPI.


    Rozwój aplikacji

    Budowanie aplikacji mobilnych to proces, w którym tworzone jest oprogramowanie dla urządzeń przenośnych. Aplikacje te mogą być preinstalowane na telefonach podczas produkcji, pobierane przez klientów z różnych platform dystrybucji oprogramowania mobilnego lub dostarczane jako software internetowy. Twórcy oprogramowania aplikacyjnego muszą również wziąć pod uwagę wiele czynników, takich jak zmniejszanie się rozmiaru ekranu w porównaniu ze zwykłym komputerem stacjonarnym. A także różne konfiguracje ze względu na silną konkurencję w oprogramowaniu mobilnym i zmiany związane ze stosowaniem systemu na każdej platformie. Ponadto tworzenie aplikacji powinno być zaprojektowane z myślą o obsłudze dotykowej nawigacji przyjaznej dla palców, bardzo spójnym wyglądzie i interfejsie, który dobrze wykorzystuje ograniczone zasoby dostępne na urządzeniach mobilnych.

    Oto kilka dodatkowych kluczowych aspektów, o których należy pamiętać podczas projektowania aplikacji mobilnej:

    * Ekrany i okna dialogowe muszą zmieścić się na pulpicie;
    * Aplikacje z wieloma ekranami powinny mieć łatwy sposób poruszania się między nimi;
    * System plików nie jest widoczny dla użytkownika, ponieważ znajduje się w normalnym środowisku graficznym. W związku z tym odbiorcy nigdy nie powinni znać nazw plików; powinni oni wchodzić w interakcję tylko z metadanymi;
    * W miarę możliwości należy unikać tradycyjnego otwierania okien dialogowych, chociaż ważna jest możliwość kopiowania i wklejania między aplikacjami;
    * Funkcja: „Załącz plik” musi zawierać listę obiektów możliwych do załączenia;
    * Liczba ustawień konfiguracyjnych powinna być zminimalizowana dzięki inteligentnym wartościom domyślnym. Opcje powinny być uwzględniane tylko wtedy, gdy są łatwo zrozumiałe dla komputera lub przydatne dla dużej liczby użytkowników;
    * Użytkownicy uwielbiają natychmiastowy feedback. Celem każdej interakcji z aplikacjami jest możliwość wydawania opinii o ich skuteczności. Ogólnie rzecz biorąc, informacje zwrotne to proces, w którym komunikaty z przeszłości wpływają na teraźniejszość (lub przyszłość) i są sposobem na kontakt z odbiorcą systemu;
    * Żywotność baterii jest głównym celem optymalizacji dla platformy mobilnej Ubuntu. Aplikacje muszą być zgodne z technikami programowania zarządzania energią, zarówno z punktu widzenia sprzętu, jak i oprogramowania;
    * W przypadku problemu komunikaty o błędach powinny sugerować użytkownikowi prostą i jasną drogę do ich rozwiązania;
    * Badania wykazały, że podczas interakcji z ekranem dotykowym użytkownicy wolą używać opuszka palca niż innych narzędzi. To ważne, ponieważ oznacza to, że elementy interfejsu powinny mieć nie mniej niż 1 cm. Należy zauważyć, że minimalny rozmiar przycisku dla palca jest funkcją gęstości pikseli, a nie rozdzielczości ekranu. Gęstość pikseli jest miarą rozdzielczości urządzeń w różnych kontekstach. Można ją uzyskać za pomocą programu xdpyinfo, wykorzystując komendę:

    Code: bash
    Log in, to see the code


    Źródło: https://www.eeweb.com/linux-mobile-ubuntu-and-much-more/

    Cool? Ranking DIY
    About Author
    ghost666
    Translator, editor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 wrote 11701 posts with rating 9875, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • Computer Controls