Uruchomienie Linuxa obok Androida

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/lukaszog/blog.lukaszogan.com/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Dostępne obecnie urządzenia mobilne bazujące na systemie Android to nie tylko aparaty służące do wykonywania rozmów telefonicznych czy pisania wiadomości tekstowych. Urządzenie daje nam wiele możliwości jeżeli wiemy jak je wykorzystać. Z telefonu komórkowego możemy zrobić dowolne urządzenie, może to być opracowany w artykule serwer telefonii SIP czy chociażby sniffer sieci Wi-Fi. Jednym słowem zastosować może być wiele. Możliwości jakie daje nam oprogramowanie bazujące na systemie Linux jest bardzo duże. Wszystkie potrzebne materiały znajdują się pod adresem https://github.com/lukaszog/AndroidLinuxSIPService-Thesis

Procesory – Architektura ARM

Procesor jest to cyfrowe urządzenie sekwencyjne, które występuje w każdym złożonym układzie elektronicznym. Istnieje podział na ze względu na architektury, czyli wspólne określenie najważniejszych z punktu widzenia budowy i funkcjonalności cech procesora (zbiór reguł). Powszechnie w komputerach stosuje się procesory produkowane przez firmę Intel lub AMD odpowiednio 32 lub 64 bitowe. Jeżeli chodzi o urządzenia mobilne lub komputery zminiaturyzowane to stosuje się procesory oparte na architekturze ARM (Advanced RISC Machine) również odpowiednio 32 lub 64 bitowe. Procesory o architekturze ARM należą do rodziny RISC, są szeroko bardzo często stosowane w systemach wbudowanych ze względu na swoją energooszczędną architekturę. Oprócz telefonów komórkowych procesorów ARM używa się między innymi w dyskach twardych, routerach, kalkulatorach, tramwajach czy autobusach. Aby móc zainstalować system operacyjny na urządzeniu, które jest wyposażone w procesor ARM, musimy posiadać system który jest przeznaczony na tą architekturę. Przykładem takiego systemu jest Android, który obecnie dominuje na rynku urządzeń mobilnych. System Linux możemy zainstalować na procesorach ARM które posiadają jednostkę MMU (Memory Managment Unit). Na procesory, które nie mają jednostki MMU istnieje projekt uClinux (czyt. “you see linux”).

Emulacja

Mamy do dyspozycji jako system operacyjny Windows lub Linux oparty na architekturze Intel lub AMD i uruchomimy na nim poprzez emulacje inny system operacyjny, który docelowo jest przeznaczony na architekturę ARM.

Scenariusz:
– host: Windows 8 64-bit (słowa, adresy, jednym słowem mówiąc dane mieszczą się w najwyżej 64 bitach pamięci)
– gość: Debian 32-bit ARM

Do takiej operacji służy nam wcześniej wspomniana emulacja czyli programowe symulowanie działania określonego oprogramowania lub platformy sprzętowej przez inny system lub na sprzęcie innego typu. Dostępnych jest wiele projektów mających na celu zapewnienie wsparcia dla emulacji konkretnych urządzeń.

Lista popularnych emulatorów:

  • VirtualBox
    VMWare
    KVM (Kernel-based Virtual Machine)
    QEMU (QEMU – emulator napisany przez Fabrice Bellarda. Jest Bardzo szybki przez co wyprzedza konkurencje. Niestety jest trudniejszy w obsłudze niż inne emulatory)
    Softgun
    SkyEye
    ARMWare

Jednym z popularnych emulatorów jest QEMU http://wiki.qemu.org/. Jest to szybki emulator, który na bieżąco tłumaczy wykonywany kod maszynowy. Potrafi emulować procesory x86, ppc, arm, sparc, mips. Na tym emulatorze skupie się w dalszej części.

QEMU pracuje w dwóch trybach:

1. Emulacja pełnego systemu – procesora i peryferii

2. Emulacja interfejsu jądra dla przestrzeni użytkownika – umożliwia uruchamianie pojedynczych programów w systemie o innej architekturze.
Przykład: uruchomienie w systemie o architekturze x86 z zainstalowanym QEMU Busyboxa skompilowanego dla architektury ARM:

Do uruchomienia konkretnej aplikacji potrzebna jest biblioteka standardowa w wersji dla architektury docelowej oraz wszystkie dodatkowe biblioteki, których może wymagać aplikacja. Ścieżkę do bibliotek podajemy po parametrze -L.
Instalacja:

Lista obsługiwanych platform (urządzeń)

Analogicznie, do wyświetlenia listy procesorów służy polecenie:

Dla systemów bazujących na architekturze ARM9 (armv5) dobrym wyborem będzie emulowanie przez QEMU urządzenie ARM Versatile.
W celu uruchomienia przygotowanego w emulatorze systemu na urządzeniu należy:
1. Skompilować wersje jądra z opcjami i sterownikami dla konkretnego urządzenia.
2. Przygotować bootloader dla konkretnego systemu.
3. Przenieść bootloader, jądro oraz system plików na urządzenie, na docelowy typ pamięci.

Uruchomienie emulatora:

Domyślna ilość pamięci operacyjnej to 128MB. Opcje uruchamiania mają za zadanie:
1. Wskazać jądro systemu operacyjnego.
2. Ustawić parametry konsoli oraz przekazać parametry do uruchamianego jądra.

Wszystkie opcje, wraz z przykładami:

Emulacja Debiana przeznaczonego na architekturę ARM

Potrzebne pliki znajdują się pod adresem: https://people.debian.org/~aurel32/qemu/armel/
Uruchomienie:

Sterownik loop w systemie Linux udostępnia urządzenia blokowe /dev/loopX (istnieje w systemie plików jako /dev/loop (/dev/loop0, /dev/loop1, …). Sterownik, którego zadaniem jest udawanie urządzeń blokowych (np. dysk twardy), wykorzystuje do tego zwykły plik}. Sterownik loop umożliwia podłączanie do struktury katalogów zawartości obrazów płyt oraz dysków twardych. Możemy również przygotować obraz systemu.

Przełącznik -t pozwala nam na wskazanie systemu plików.

Plik ISO zostaje wtedy podłączony do pierwszego wolnego urządzenia /dev/loopX, które jest montowane na katalogu /mnt. W przypadku gdy dysponujemy obrazem całego dysku lub karty SD z partycjami musimy skorzystać z polecenia losetup (polecenie losetup służy do kojarzenia urządzeń loop z plikami lub urządzeniami blokowymi), ponieważ polecenie mount spodziewa się pliku w którym struktury systemu plików zaczynają się od początku.

Parametr -o w tym przypadku oznacza adres w bajtach, od którego zaczynają się struktury systemu plików.
Adresy kolejnych partycji można odczytać poleceniem fdisk.

Narzędzia linuksowe do tworzenia odseparowanego systemu plików

System Linux oferuje kilka narzędzi w postaci komend, za pomocą których jesteśmy w stanie stworzyć odseparowany system plików. chroot (ang. change root) – polecenie, które służy do zmiany głównego katalogu (/). Po zmianie głównego katalogu, w nowym środowisku będą działać procesy potomne. Komenda może być użyta jako narzędzie do ochrony przed atakami, atakujący będzie miał dostęp tylko do wydzielonego fragmentu systemu. Sprawdza się również podczas testowania programów, ponieważ ewentualne szkody nie będą dotyczyły głównego systemu. Polecenia może używać tylko superużytkownik root. Nie jest to jednak metoda, która mogłaby się sprawdzić na serwerach dużych korporacji – w takim przypadku korzysta się z technik wirtualizacyjnych.
Składnia polecenia – Manual – http://linux.die.net/man/1/chroot:

Drugim parametrem jest ścieżka do shella, nie trzeba go używać gdyż domyślnie jest to /bin/sh.
Przykład:

Inną komendą, która działa podobnie jest pivot\_root. Jest jedna jedna różnica, która polega na tym że po wykonaniu polecenia pivot\_root mamy dostęp do starego systemu plików, który możemy umieścić w wybranym przez nas katalogu.

Składnia polecenia:

Przykład:

Uruchomienie dystrybucji Linuxa na telefonie z systemem Android

Sklep Google Play oferuje aplikacje, za pomocą których możemy uruchomić wybraną dystrybucje systemu Linux:
1. Linux Deploy (http://github.com/meefik/linuxdeploy) – Debian, Ubuntu, Arch Linux, Fedora, OpenSUSE, KaliLinux, Gentoo, RootFS (instalacja jako plik lub partycja).
– Wspierane systemy plików: ext2, ext3, ext4
– Obsługiwane architektury: ARM, x86. Obsługa: SSH, VNC, X, framebuffer. Srodowiska graficzne: XTerm, LXDE, Xfce, GNOME, KDE.
– Wspierane języki: Angielski, Rosyjski.

Dostęp do kodu źródłowego: https://github.com/meefik/linuxdeploy. Aplikacja napisana jest w języku Java, wykorzystuje skrypty napisane w Bashu (w tym również polecenie chroot). Zadaniem programu jest stworzenie obrazu IMG na karcie pamięci, zamontowanie go oraz zainstalowanie na nim wybranej dystrybucji. Do poprawnego działania aplikacja potrzebuje dostęp do root oraz internetu. Szacowane czasy instalacji systemu Debian wheezy/armhf na telefonie Samsung Galaxy S II:

Without GUI ~ 0:12 / 260 MB
XTerm ~ 0:14 / 290 MB
LXDE ~ 0:19 / 450 MB
XFCE ~ 0:20 / 495 MB
GNOME ~ 0:55 / 1.3 GB
KDE ~ 1:20 / 1.3 GB

Prędkości zapisuj i odczytu dla określonych systemów plików:

vfat: prędkość odczytu 14.1 MB/s; prędkość zapisu 12.0 MB/s
ext2: prędkość odczytu 14.9 MB/s; prędkość zapisu 3.9 MB/s
ext4: prędkość odczytu 14.9 MB/s; prędkość zapisu 16.6 MB/s
ext2 (loop): prędkość odczytu 17.0 MB/s; prędkość zapisu 7.4 MB/s
ext4 (loop): prędkość odczytu 17.2 MB/s; prędkość zapisu 8.8 MB/s

Komunikacja z wykorzystaniem protokołu VNC

Po zainstalowaniu aplikacji Linux Deploy, pobraniu wybranej dystrybucji i jej zainstalowaniu jesteśmy w stanie połączyć się z zainstalowaną dystrybucją za pomocą protokołu VNC. VNC (ang. Virtual Network Computing) jest systemem przekazywania obrazu z wirtualnego lub fizycznego środowiska graficznego. Protokół VNC działa w architekturze klient-serwer. Pakiet jest dostępny na najpopularniejsze systemy operacyjne: Android, Windows, Linux, BSD, Mac OS, Solaris, AmigaOS, SCO, Haiku i inne. Konkurentem dla VNC jest NX, który działa z większą wydajnością. Domyślnie VNC korzysta z portów TCP 5900 – 5906, gdzie każdy z portów oznacza odrębną sesje (:0 do :6). Istnieje możliwość konfiguracji programu klienta i serwera do pracy na innych portach. Popularnym programem, który implementuje protokół VNC jest wieloplatformowy RealVNC opracowany przez giganta w świecie telekomunikacji AT\&T Laboratories, który jest dostępny na stronie http://realvnc.com/. Oprogramowanie składa się z części klienta i serwera. Po zainstalowaniu pakietu jesteśmy w stanie połączyć się z serwerem VNC, który jest uruchomiony na innej maszynie. Mamy ku temu dwie możliwości:
– Poprzez GUI programu VNC Viewer,
– Za pomocą przeglądarki internetowej – podając odpowiedni adres i numer portu, uruchamiany jest wtedy aplet napisany w języku Java, który umożliwia nam sterowanie.
Inne implementacje VNC:
– Tight VNC – darmowa implementacja,
– Apple Remote Desktop – oprogramowanie filmy Apple przeznaczone dla systemów Mac OS X,
– Ultra VNC – darmowa implementacja, która umożliwia szyfrowanie połączenia,
– x11vnc – serwer VNC pozwalający na kontrolowanie zwykłej sesji X11,
– TridiaVNC – zmodyfikowana wersja RealVNC.

Debian – historia

Autorem systemu Debian jest Ian Murdock (zmarł 28 grudnia 2015), niemiecki programista. Powstanie systemu datuje się na 16 sierpinia 1993r. kiedy to na grupie com.os.linux.\linebreak development Ian Murdock opublikował Manifest Debiana, który definiował stworzenie otwartej dystrybucji opartej na systemie Linux i licencji GNU. Dystrybucja została zbudowana na postawie SLS. Softlanding Linux System (SLS) to jedna z pierwszych dystrybucji Linixa. Została stworzona w 1992 roku przez Petera McDonalda. Była to pierwsza dystrybucja zawierająca nie tylko jądro, ale i również dodatkowe programowanie. Początkowo Debian rozwijał się wolno, wersja 1.x została wydana w 1996. W późniejszych latach system zaczyna rozwijać się bardziej dynamicznie. W 2002 została wydana wersja 3.0 “Woody”, która działa na 11 różnych architekturach sprzętowych. 4 maja 2013 została wydana póki co najnowsza wersja stabilna Debiana 7.0 – Wheezy. Wersja 7.0 umożliwia obsługę wielu architektur jednocześnie (multiarch), pozwala to na instalacje pakietów z wielu architektur na tej samej jednostce oraz uruchamianie 32 i 64 bitowych programów.
Debian jest rozwijany w 3 równoległych gałęziach:
– stablina (stable)
– testowa (testing)
– niestabilna (eksperymentalna)

Pakiety

Pakiet to skompilowane źródła danego programu gotowe do instalacji. Pakiety dla Debiana i dystrybucji bazujących na Debianie, mają rozszerzenie .deb (od wersji 0.93 systemu pliki deb są implementowane jako archiwum ar). Typ MIME pliku .deb to application/vnd.debian.binary-package. Pakiet .deb występuje wraz z instalatorem dpkg, który zapewnia zaawansowaną kontrolę powiązań i zależności pomiędzy poszczególnymi składnikami systemu (programy, biblioteki).
Nazwy plików pakietów binarnych systemu Debian są podporządkowane następującej konwencji: VersionNumber-DebianRevisionNumber.deb
Pakiet .deb to archiwum ar z trzema plikami:
– plik debian-binary, w którym zawarta jest informacja o wersji pakietu,
– plik kontrolny control.tar.gz – zawiera zależności pakietu, sumy kontrolne oraz skrypty instalacyjne,
– plik danych data.tar.gz – pliki konfiguracyjne, binarne, biblioteki, dokumentacja.
W pakietach .deb stosuje się również silne kompresujące formaty jak bzip2, lzma, xz.
Wypakowanie pakietu .deb

Podgląd pliku control.tar.gz

Wypakowanie tylko pliku data.tar.gz

 

Instalacja pakietów

Do instalacji pakietów .deb służy wcześniej wspomniane narzędzie dpkg.
Informacje na temat pakietu:

Instalacja pakietu

Usunięcie pakietu

Lista zainstalowanych pakietów

Rekonfiguracja pakietu

Narzędzia deweloperskie:
– dpkg-source pakuje i rozpakowuje pliki źródłowe pakietu,
– dpkg-deb pakuje i rozpakowuje pakiety binarne,
– dpkg-gencontrol generuje na podstawie informacji zawartych w plikach źródłowych pakietu, plik control dla pakietu binarnego,
– dpkg-shlibdeps obliczają zależności od bibliotek,
– dpkg-genchanges czyta drzewo katalogów źródłowych po zbudowaniu pakietu i generuje na tej podstawie plik kontrolny (.changes),
– dpkg-buildpackage to skrypt pozwalający na automatyczne zbudowanie pakietu,
– dpkg-distaddfile dodaje plik do debian/files,
– dpkg-parsechangelog czyta plik z zapisem zmian (changelog) rozpakowanego pakietu źródłowego i tworzy opis zmian.

APT jako narzędzie do pobierania i instalacji pakietów

Narzędzie apt-get (część APT) służy to pobierania i instalacji pakietów z uwzględnieniem zależności w bardzo prosty sposób. To przeglądania pakietów i operacji na nich służy polecenie aptitude, jest bardziej zaawansowanym narzędziem od apt-get. Miejsca skąd można pobierać pakiety to repozytoria, które dzielimy na oficjalne i nieoficjalne. Lista repozytoriów znajduje się w pliku /etc/apt/sources.list.
Przykładowy wpis z pliku /etc/apt/sources.list

deb-src informuja nas o typie archiwum, w tym przypadku są to źródła pakietów, które można ściągnąć i skompilować. Dalszą część wpisu stanowi adres repozytorium oraz nazwa dystrybucji. Po nazwie dystrybucji jest sekcja.
W Debianie wyróżniamy trzy sekcje:
– main – w niej znajdują się wszystkie wolne pakiety,
– non-free – tutaj znajdują się wszystkie niewolne pakiety, czyli takie, które mają zamknięty kod źródłowy,
– contrib – tutaj znajdują się wszystkie pakiety wolne, które zależą od pakietów niewolnych.

Debootstrap

Pakiet debootstrap (http://linux.die.net/man/8/debootstrap, https://www.debian.org/releases/stable/amd64/apds03.html.en) jest narzędziem, które umożliwia przygotowanie wybranej dystrybucji Debiana w podkatalogu uruchomionego już systemu. Proces nie wymaga użycia płyty CD, a jedynie dostęp do domyślnego repozytorium Debiana.
Syntaktyka polecenia debootstrap

Przykładowy scenariusz z wykorzystaniem pakietu debootstrap:

Nowy katalog dla Debiana:

Instalacja pakietu debootstrap z repozytorium:

Instalacja pakietu debootstrap z pliku .deb – http://ftp.debian.org/debian/pool/main/d/debootstrap/

Deboostrap – instalacja dystrybucji

Instalacje należy rozpocząć od utworzenia katalogu /wheezy-chroot

Mamy do wyboru następujące architektury: alpha, amd64, arm, armel, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc. Po poprawnym wykonaniu polecenia deboostrap dodajemy repozytoria do pliku /wheezy-chroot/etc/apt/sources.list:

Oraz do pliku /wheezy-chroot/etc/network/interfaces adresy IP serwerów DNS:

Opcjonalnie można z katalogu w którym znajduje się nowy system zrobić obraz.

Tworzenie pliku obrazu o rozmiarze 2GB – polecenie dd służy do niskopoziomowego kopiowania surowych danych:

Za pomocą polecenia mkfs.ext4 zakładamy system plików na obrazie img.

Zamontowanie obrazu:

Przekopiowanie zawartości katalogu /wheezy-chroot:

Odmontowanie:

W następnym kroku przystępujemy do zamontowania katalogów: /proc, /dev, /sys.
Ważne jest aby zamontować wyżej wspomniane katalogi, ponieważ:

/proc – zawiera informacje o procesach, za pośrednictwem znajdujących się tam plików jądro udostępnia nam informacje na temat parametrów pracy systemu.
/proc w przeciwieństwie do innych systemów plików przechowywany jest w pamięci, a nie na dysku.
Każdy katalog, którego nazwa jest liczbą odpowiada uruchomionemu w systemie procesowi. Liczby te informują o numerze PID procesu.
Sprawdzenie wersji jądra

Inne informacje zawarte na katalogu /proc:
/proc/cpuinfo – informacje o procesorze
/proc/meminfo – informacje o fizycznej pamięci RAM, obszarze wymiany
/proc/mounts – lista zamontowanych systemów plików
/proc/devices – lista dostępnych urządzeń
/proc/filesystems – wspierane systemy plików
/proc/modules – lista załadowanych modułów
/proc/version – wersja jądra
/proc/cmdline – parametry przekazane do jądra podczas uruchomienia
/dev – katalog zawierający pliki specjalne, które odpowiadają urządzeniom. Pliki urządzeń tworzone są podczas instalacji. (komunikacja niskopoziomowa)
/dev/sdb – dysk twardy
/dev/console – plik odpowiedzialny za klawiaturę
/dev/cdrom – plik optycznego nośnika danych, CDROM
/sys – katalog zawierający pliki systemowe, w których można zmieniać parametry jądra
Modyfikacja pliku fstab tak aby katalogi montowały się automatycznie:

Montowanie wszystkich systemów plików z fstab:

Opcjonalnie kopiujemy pliku hosts i mounts.

Zmiana głównego katalogu plików:

Jeżeli uruchamiamy system który jest w innej architekturze niż komputer hosta konieczne jest dokończenie instalacji.

Istnieje również pakiet o nazwie dchroot http://linux.die.net/man/1/dchroot, który umożliwia uruchomienie programu, który jest zainstalowany w systemie do którego mamy dostęp za pomocą chroot.

Protokół SIP

SIP (Session Initiation Protocol) to protokół drugiej warstwy modelu OSI, który działa w architekturze klient-serwer opisany w dokumencie RFC3261 (https://www.ietf.org/rfc/rfc3261.txt). Dokument można znaleźć na stronach organizacji IETF (Internet Engineering Task Force). Jego zadanie to inicjowanie sesji pomiędzy jednym lub wieloma klientami,
pozwala również na modyfikacje i zakończenie sesji. Uściślając, główne zadanie protokołu to dostarczenie zestawu funkcji obsługi połączenia. Obecnie jest to dominujący protokół sygnalizujący dla telefonii Voice over IP. Nie jest protokołem transportowym, dlatego konieczne jest jednoczesne zastosowanie protokołu RTP. SIP jest alternatywą dla H.323. Pomysłodawcami protokołu są: M. Handley, H. Schulzrinne, E. Schooler i J. Rosenberg

Protokół składa się z 2 komponentów:
– user agents – użytkownicy
– network agents – serwery sieciowe

User agent (UA) jest punktem końcowym, może odbierać i ustanawiać połączenia. User agent client (UAC) inicjuje żądania SIP. Serwer user agent server (UAS) odbiera żądania od UAC i zwraca odpowiedź do usera.

SIP obsługuje pięć funkcji połączenia i zakończenia komunikacji
– lokalizacja użytkownika – określenie systemu końcowego, który będzie wykorzystywany do komunikacji
– dostępność użytkownika – sprawdzenie gotowości użytkownika, który ma być wywołany do komunikacji
– możliwości użytkownika – lista parametrów użytkownika
– połączenie sesji – dzwonienie, zestawienie sesji po obu stronach połączenia
– zarządzanie sesją – modyfikowanie parametrów sesji

SIP można zdefiniować jako komponent, który można użyć z innymi protokołami IETF aby zbudować kompletną architekturę multimedialną. Należy tutaj wymienić protokoły takie jak Real-time Transfer Protocol (RTP) dla transportu danych w czasie rzeczywistym i dostarczania informacji o QoS (jakości usług). Kolejnym protokoły to Real-Time Streaming protocol (RTSP), który wykorzystywany jest do sterowania strumieniem medialnym, Media Gateway Control Protocol (MEGACO) wykorzystywany do sterowania bramami w sieci publicznej PSTN oraz Session Description Protocol (SDP) dla opisania sesji.

Protokół dostarcza również szereg usług bezpieczeństwa, które między innymi chronią przed atakami DOS (denial-of-service), dbają o uwierzytelnienie, chronią integralność, oferują możliwość szyfrowania. SIP jest kompatybilny z protokołem IPv4 oraz IPv6.

Elementy sieci SIP

Terminale końcowe (nodes) to aplikacje uruchamiane na komputerze lub na aparatach telefonicznych, które używają protokołu SIP i RTP.

Rejestrator SIP (registrar) baza danych, która komunikuje się z węzłami SIP w celu zbierania i archiwizacji informacji na temat użytkowników SIP. Zebrane dane są wykorzystywane w trakcie nawiązywania połączenia do odnajdowania w sieci węzłów docelowych.

Połączenia SIP, które nie są lokalne muszą być przekazywane przez serwery pośredniczące SIP proxy.

Działanie protokołu SIP

Dzwoniący do siebie użytkownicy stosują identyfikacje SIP URI (Uniform Resource Identifier). Adres wygląda następująco:

Gdzie korzysta się z domyślnego numeru portu 5060.
SIP jest podobny do protokołu HTTP, dzieli z nim wiele zasad konstrukcyjnych między innymi używa zwykłego tekstu i wykorzystuje mechanizm żądanie-odpowiedź. SIP jest w stanie zagwarantować bezpieczne, szyfrowane połączenie TLS (Transport Layer Security) SIPS URI. Protokół zbudowany jest warstwowo co oznacza, że jego zachowanie jest opisane przez niezależne stany przetwarzania z luźnym powiązaniem między poszczególnymi stanami (stadiami). Najniższą warstwą SIP jest składnia i kodowanie, które wykonywane jest przy użyciu gramatyki BNF (Backus-Naur Form). Warstwa transportowa plasuje się na drugim miejscu w hierarchii. Jej zadanie to określenie w jaki sposób klient wysyła żądania i otrzymuje odpowiedzieć oraz jak serwer wysyła/odbiera żądania/odpowiedzi poprzez sieć. Trzecia warstwa to warstwa transakcyjna. Transakcja jest żądaniem wysyłanym przez transakcje klienta do transakcji serwera, z wszystkimi odpowiedziami na żądanie, wysłanymi z transakcji serwera do klienta. Warstwa obsługuje retransmisje warstwy aplikacyjnej, dopasowanie odpowiedzi do żądań. Ostatnia warstwa to warstwa użytkownika transakcji. Każdy z użytkowników jest użytkownikiem transakcji.
Protokół SIP korzysta z następujących metod:
INVITE – zapoczątkowanie wywołania przez zaproszenie użytkownika do sesji
ACK – potwierdza odebranie odpowiedzi na żądanie INVITE
BYE – zakończenie wywołania
CANCEL – anulowanie żądania trwającego
REGISTER – rejestrownie agenta użytkownika
OPTIONS – odpytanie o możliwości serwera
INFO – przenoszenie informacji dodatkowej, np. cyfr DTMF
Kody odpowiedzi SIP (podobieństwo do kodów odpowiedzi protokołu HTTP):
1xx – Wiadomości informacyjne
2xx – Odpowiedzi pozytywne
3xx – Odpowiedzi przekierowania
4xx – Odpowiedzi błędnych żądań
5xx – Odpowiedzi błędu serwera
6xx – Odpowiedzi błędów globalnych
Wyżej wspomniane metody oraz odpowiedzi używane są do ustanowienia sesji połączenia.

Architektura składa się z następujących elementów:

Nagłówek SIP ma postać tekstową dzięki czemu jest łatwy do odczytania:

Implementacje protokołu SIP w systemie Linux – miniSipServer

MiniSIPServer (https://www.myvoipapp.com/) to profesjonalny, wielopratformowy serwer VoIP. Serwer, do którego można pobrać klienta tej samej firmy o nazwie miniSIPPhone jest oparty o standard SIP. Autorzy oprogramowania zadbali również o to aby system był kompatybilny z urządzeniami, które oparte są na procesorze ARM.

Instalacja

Przed zainstalowaniem serwera SIP, należy zainstalować niezbędne biblioteki.

Jeżeli wszystko się powiedzie to pliki serwera znajdą się w katalogu /opt/sipserver/

Uruchomienie

Serwer uruchamiamy za pomocą polecenia:

Możliwość zarządzania serwerem jest możliwa z poziomu przeglądarki internetowej. W tym celu należy w oknie przeglądarki wpisać własny numer IP i port 8080.

Rynek telefonii SIP

Jednym z problemów związanym z protokołem SIP, który wchodzi w skład VoIP jest niewłaściwa konfiguracja zapory sieciowej co uniemożliwia zainicjowanie połączenia z zewnątrz. Rozproszona natura protokołu utrudnia spełnienie wszystkich prawnych wymagań nałożonych na operatorów telekomunikacyjnych. Na polskim rynku jest co raz więcej rozwiązań telefonicznych opartych o protokół SIP, oferują je między innymi firmy Orange, HaloNet, Tlenofon, Freeconet, HopIn.pl, INTERFON, IPFON, EuroTC, DigiTEL, Siec T2, Actio, Newfon, easyCALL, PLFON, iFON. Duże firmy telekomunikacyjne takie jak 3Com, Avaya, Cisco oraz Nortel umożliwiają współpracę z sieciami SIP. Na polskim rynku telefonii dla firm najwięcej sprzedaje się klasycznych systemów telefonicznych, ale rozwiązania telefonii IP cieszą się coraz większym zainteresowaniem. Głównymi odbiorcami systemów telefonii IP są firmy średniej wielkości, które zatrudniają 300 – 800 pracowników oraz duże korporacje. Infonetics Research prognozuje, że do 2018 rynek usług VoIP przeznaczonych dla odbiorów domowych i biznesowych wzrośnie do 88 miliardów dolarów na świecie. Najszybciej rośnie segment hostowanych usług VoIP oraz Unified Communications przeznaczonych dla przedsiębiorstw. Największe przychody w grupie usług biznesowych generują usługi IP PBX. Z usług operatorów VoIP korzystają mieszkańcy Francji, Dani i Niemiec. Polska ma swój udział w około 4%.

Uruchomienie serwera SIP na systemie Linux obok Androida

Celem projektu jest uruchomienie serwera SIP miniSIPServer na systemie Debian Wheezy 7.0 obok systemu Android oraz przygotowanie aplikacji na system Android do zarządzania dystrybucją systemu linux oraz serwerem SIP. Zadanie obejmuje następujące czynności:
– przygotowanie dystrybucji systemu Linux na system Android
– zainstalowanie środowiska graficznego Xfce na przygotowanej dystrybucji
– zainstalowanie programu miniSipServer na przygotowanej dystrybucji
– zainstalowanie serwera SSH oraz serwera VNC Tightvnc
– przygotowanie skryptów startowych dla SSH i Tightvnc i umieszczenie ich w nowo przygotowanej dystrybucji
– uruchomienie przygotowanej dystrybucji razem z serwerem SIP na telefonie z systemem Android
– przygotowanie aplikacji na system Android do zarządzania systemem Linux.

Przygotowanie dystrybucji

Dystrybucja przygotowywana jest za pomocą narzędzia debootstrap.

Następnie tworzony jest obraz z powstałego katalogu.

W następnym kroku przygotowany zostaje skrypt w języku Bash, który ma za zadanie:

– zamontowanie przygotowanego obrazu
– zamontowanie katalogów /proc, /dev, /sys
/sys zawiera pliki systemowe w których można zmieniać parametry jądra,
/dev/pts to wirtualny system plików, który zawiera informacje o pseudo terminalach
– opcjonalnie uruchomienie serwera SSH i serwera SIP w “nowym systemie” wykorzystując polecenie chroot i skryptów startowych
– zatrzymanie uruchomionych usług
– odmontowanie katalogów /proc, /dev, /sys, /dev/pts
– odmontowanie przygotowanego obrazu
Skrypt:

Jako serwer SIP wykorzystywany jest wcześniej wspominany miniSipServer w wersji 22. miniSipServer jest wieloplatformowym serwerem. Firma udostępnia również dystrybucje na procesory ARM, dedykowaną na Raspberry Pi. Serwer ten został wybrany ze względu na stabilność działania na systemie w architekturze ARM.

Linux Settings – zakładka umożliwia wybranie obrazu systemu, który ma być montowany. Plik wybieramy z okna dialogowego, w razie wybrania niepoprawnego pliku zostaniemy o tym poinformowani. Kolejno jest możliwość uruchomienia trzech usług: serwera SSH, serwera miniSipServer oraz serwera VNC Tightvnc. Wybrane opcje są zapamiętywane w pamięci programu i są wczytywane przy kolejnym uruchomieniu programu.
SIP Settings – zakładka umożliwia zarządzania serwerem miniSipServer. Do zarządzania wykorzystywane jest API, które oferuje miniSipServer. W tej części mamy dostęp do:
– dodania nowego użytkownika
– wyświetlenie listy użytkowników
– usunięcie użytkownika
– jeżeli chcemy zarządzać serwerem miniSipServer, który nie jest uruchomiony na naszym urządzeniu możemy podać inny adres IP
Start – zakładka pozwala na uruchomienie systemu bądź jego zatrzymanie z dostępem do logu.

miniSipServer oferuje zarządzanie serwerem poprzez stronę internetową. Interfejs webowy jest dostępny od wersji 3.1. Razem ze startem serwera SIP startuje serwer HTPP, którego zadaniem jest umożliwienie dostępu do strony internetowej. Domyślnie miniSipServer dla serwera HTTP otwiera port TCP 8080. Po wpisaniu http://adresip:8080/ w przeglądarkę internetową wejdziemy na stronę umożliwiającą zarządzanie serwerem SIP. Repozytorium: https://github.com/lukaszog/AndroidLinuxSIPService-Thesis

Dostępne obecnie urządzenia mobilne bazujące na systemie Android to nie tylko aparaty służące do wykonywania rozmów telefonicznych czy pisania wiadomości tekstowych. Urządzenie daje nam wiele możliwości jeżeli wiemy jak je wykorzystać. Z telefonu komórkowego możemy zrobić dowolne urządzenie, może to być opracowany w pracy serwer telefonii SIP czy chociażby sniffer sieci Wi-Fi. Możliwości jakie daje nam oprogramowanie bazujące na systemie Linux jest bardzo duże. Rynek telefonii SIP rozwija się z każdym rokiem. Praktycznie każda większa firma powinna mieć własną sieć telefoniczną, a instalacja takiej sieci w cale nie musi oznaczać dużej inwestycji.

 

Polecam inne artykuły z kategorii informatyka:

Steganografia z poziomu teoretycznego i programowalnego

Algorytmiczne generowanie muzyki

Źródła

Marcin Bis,
Linux w systemach Embedded, btc Warszawa 2011
Karim Yaghmour,
Embedded Android, O’Reilly 2013
https://dug.net.pl/tekst/193/instalacja_debiana_metoda_debootstrap/
http://androlinux.com/android-ubuntu-development/how-to-build-chroot-arm-ubuntu-images-for-android
http://androlinux.com/
http://ingvar.blog.redpill-linpro.com/2011/05/20/running-fedora-on-the-galaxy-s/
http://www.cyberciti.biz/faq/unix-linux-chroot-command-examples-usage-syntax/
https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
http://linux.die.net/man/2/chroot
http://linux.die.net/man/8/pivot_root
http://students.mimuw.edu.pl/SO/Projekt04-05/temat4-g4/mikrokontrolery.htm
https://github.com/meefik/linuxdeploy
http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/

Uruchomienie Linuxa obok Androida – jak to wykorzystać?
5 (100%) 2 votes
Share: