23.2.15

Basic Android topic (Guide for Noobs)

Summary:
========================

Basic of Unix-like systems (ROOT)

  • su, root, rooting, superuser app - what is it, why we need it
  • sh, bash, user/root shell - what is bash, sh; what is user shell; what is root shell; how I can recognise it each other 
  • Bussybox - what is BusyBox, basic list of commands from BusyBox

 

 Android platform tools

  • adb shell - what is it, for what it is
  • Android SDK - what is it, tool which provides, where to download
  • Tools for work with Android, adb shell - Terminal Emulator, ADB shell from Android SDK and how to use it

 

Custom recovery

What is custom recovery - what custom recovery is
Tools which custom recovery provides - list of tools with description which custom recovery bringin:
  • ADB as root user
  • USB-MS Toggle
  • Backup/Restore
  • Flash ZIP from sdcard
  • Wipe menu
  • Partition sdcard + etx2, ext3, ext4 filesystem description
  • Mounts
  • Others
Is it save to install? - possible problems, why should I try it?, backup/restore of original recovery

 

Custom ROM

  • What custom ROM is?
  • Is it save to install custom ROM? - potential problems
  • What I need for install?
  • What can custom ROM brings - kernel, update, performance, customization, theme, ....
  • what is ...
    • deodexed, zipaglined, png-optimized
    • JIT, HW:acceleration, VM.Heap Size, stagefright
    • apps2sd + dalvik2sd
    • custom kernel (recompiled, ...)
 ===========================================

 

 

Basic of Unix-like systems (ROOT)

su
Also referred as substitute user - is command for changing of the account in current terminal (usually black screen with blinking cursor). Default account is root account. So if you insert into terminal 'su' and hit enter, you will become root user.

root
Root alias superuser or poweruser is special user account for system administration. Similar to windows having its administrator account, unix-like system have system have the root. With this user you can do anything and if you will run command for delete whole system, unix will just do it! No asking, no confirming. So, watch your steps!

rooting
Rooting is just enabling power of root for applications or our proposes. You can read great article about Rooting on androidpolice.

Superuser app
After rooting is done, you will see new app called superuser in app drawer. This app can delegate applications to use su (root) feature. When app ask for first use, popup window will appear asking if the application should be allowed to use root permission.

sh, bash
is a command-line interpreter or shell that provides a traditional user interface for the Unix operating system and for Unix-like systems. So simply, it is some interface, which can execute command(s), which you have entered. Many shells exist, but in scope of android you can (as far as I know) use only sh (standard - Bourne-shell) or bash (compiled in BusyBox or separately on XDA). Both are basically same, but bash has much more future and it is comfortable. It's too big to describe here, so if you are interested in learning more, follow links in sources section.

user/root shell

How do I know if I'm root or normal user? It's simple. Root's shell is ended with # (usually it's shell looks like "bash-3.2# _") and user's ends with $ (usually bash-3.2$ _). In terminal emulator you also can have only [path]($|#) (for root for example "/etc # _")

BusyBox
also called "The Swiss Army Knife of Embedded Linux" is a tool which brings into Android basic tools known from unix system, but is much more smaller than standard tools is. But this "packing" brings also limits in possibilities in comparison to standard tools in unix-system (missing special modes of tool, color output and so on). Many application use this. For example busybox grep (filtering of text) is needed for application called Market enabler.


BusyBox commands
list of commands is really wide, so it's not possible explain all, so I pickup only top few. (hint: if you want what some command do, just search on google for "man <command_name>" for example man mv or enter command here
  • cd - cange directory - same like in windows. You can switch directory. example: cd /sdcard
  • ls - list of files in actual directory (have few switches like for example: ls -l /sdcard/*.png (detailed listing)
  • cat - print file into standart output (like more in windows) Example: cat /sdcard/data.txt
  • vi - editing of file. But on limited phone keyboard (no keyboard) it is little harder Read more about vi
  • cp - copy of one or more file. Example: cp /sdcard/bike.jpg /sdcard/media/bike-wallpaper.jpg
  • mv - moving/rename files, Example: mv /sdcard/bike.jpg /sdcard/media/renamed-moved-bike.jpg
  • rm - delete file (rm -R for recursive, or for delete whole folder), Example: rm -R /sdcard/wallpaper-bad/*
  • find - search for files, Example find / -name "best-chopper-ever.avi"
  • mkdir - make directory - creates directory, Example: mkdir mynewdir
  • chmod - changes access of files
  • less - similar like cat, but you can scroll in it and it doesn't produce any output. Example: less /sdcard/funnytext.txt
Please, take note that man pages are documentation of unix tools. For BusyBox's tool help, just enter BusyBox <command_name> -h.

Many time, when is BusyBox installed, are also symbolic links created. It means, that is not necessary do BusyBox <command>, but only <command> will be enough.

Kernel
http://en.wikipedia.org/wiki/Kernel_%28computing%29

 

Android platform and it's specifics

ADB - Android Debug Bridge is a versatile tool lets you manage the state of an emulator instance or Android-powered device. It is a client-server program that includes three components:

  • A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
  • A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
  • A daemon, which runs as a background process on each emulator or device instance.
Generally it can be compared with standard cmd prompt in windows (you can write commands which will be executed locally, for example in Terminal Emulator) or it can be just like SSH in unix-like system (you connect to terminal through adb client (in Android SDK) and commands will be run remotely.

Android SDK
Android software development kit is complex set of tools for developing app on Android. It includes fully usable emulator of Android OS on your PC, where you can do everything. You can install/delete apps, browse web page in embedded web browser, play games or make your own application in Eclipse (widely used IDE for development). Of course, with emulator you can use also GPS or camera. Emulated android phone is just like "normal" phone.

Android SDK tools
Tools for work with Android adb shell
You have two ways ho to connect into ADB service - locally and remotely.
Locally - for local access you will need some application which can connect to local adb shell.
  • Terminal Emulator (free) - probably most commonly used app from market, which works and looks like standard unix shell.
  • ConnectBot (free) - same as Terminal Emulator, but it can be also used for connecting via SSH or telnet
  • Remotelly- For remote connection you need phone configuration adjustment:

Home desktop -> [menu button] -> Settings -> Applications -> Development -> USB debugging [ON].
Also you need connect your phone via USB (or finds on market some widget/app, witch enable using ADB also via wi-fi)

adb tool from Android SDK
After download Android SDK, extract archive somewhere (in example I extracted it in c:/AndroidSDK). Then follow instruction on developer.android.com for installation of SDK Platform-tools (contains adb). After installation click on start menu and in Run... (in Windows7 in search bar) enter 'cmd' and press Ok or [enter]. Then write in cmd line:
cd c:\AndroidSDK\android-sdk-windows\tools [enter]
now you can enter following command to connect to phone's adb shell if you don't have more connected device (virtual or real-one)
adb shell
If you have more then one, you need explicitly say which one should be used for connection. So list connected devices with
adb devices
which shows you serial number of connected devices. Than use
adb -s <serial-number> shell

 

Custom recovery

What is custom recovery
Recovery is image (binary data) stored in internal memory. This image contains something like "program" maybe better say "tool", which can boot-up independently on Android system. In other words, when this tool is running (booted up), than Android system is not. This tool is part of phone system, and in PC terminology recovery can by compared to BIOS with some added features. This recovery state can be reached on all phone, but if you don't have custom recovery, it will do offten, but not always so-called HW reset and automatically restart itself into standard boot mode. So what is difference between original recovery and custom recovery? Custom recovery didn't call master reset after start and also didn't restart itself.

Tools which custom recovery provides

Let's go check what custom recovery brings.

ADB as root user

USB-MS Toggle :mounts sdcard as mass storage
It just mounts your phone as USB-mass storage (USB disk) so in PC you will see new disk where you can see folders based on mountes (lower) and were you can upload what you want.

Backup/Restore:
Absolutely GREAT feature. With NAND you can do 1:1 copy (image) of your actual system (phone's memory). It means, that you didn't backup only SMS, contacts or apps, but whole system with all configuration, customization, wallpapers, system's tweaks... just everything - it creates image of whole phone system. This image will be written to your SD card which you are then free to copy around and back up on your computer.

What it means? You find custom ROM which looks awsome so you create NAND backup and install new ROM, but after few hour/days... you know, ROM before was better. So you boot into recovery, use NAND restore of your old ROM backup and .... woala you have your system just like before backup - as if nothing had happened. For about 2 minutes!! It sounds great, isn't? But one, little problem exist. You can not use for restore only some part of backup. You have to restore all, or nothing.

Flash Zip From Sdcard
This tool is designed for install of custom ROM or for tweaks. If you have instruction to install via custom recovery, and file have .zip extension than you should use this menu. Never unzip file, because file contain meta-information about itself with some validate-checks so if you edit it, or unpack and pack back, it shouldn't work. And of course you can't select *.zip file if it doesn't exist because you unpack it, also you have not to rename it to update.zip, you can just select file to update in list of .zip files.

Wipe

Wipe data/factory reset: wipes data & cache
wipe of users data (contacts, apps, configuration, ...) and cache (caches of applications)

Wipe cache
wipe cache only

Wipe Dalvik cache : Wipes Dalvik cache in all possible locations if moved by apps2sd
wipe of Dalvik cache?

Wipe SD:ext : Wipes Apps2sd ext partition
if you used Partition SDcard option, you can wipe it here

Wipe Battery Stats
If you think, that your battery life is too short, you can try delete battery stats. Than let phone fully charge. (more)

Partition Sdcard:
will create ext2 partition (you will be asked for size of ext2 and cache) Than you can use this space as part of system memory.
  • ext2 - file system for the Linux kernel (no journal, fast but not recovery of I/O error)
  • ext3 - file system for the Linux kernel (journal, slower than ext2 because of journal, but provides recovery on I/O error)
  • ext4 - file system for the Linux kernel (journal, enhanced version of ext3)
Mounts:
Mounting of filesystem parts


Install or not to install?
  • Where can problems arise? 
  • loss of warranty - service have much more advanced software and hardware and they can check what problem caused - make dump of memory and so on. They mostly doesn’t do, but they can. 
  • bricking of phone - if something goes wrong, then phone may not start at all 
  • deletion of all data if installation fails - if old recovery remains, than hw reset will be performed
  • custom recovery doesn't work at all - incompatible devices
Why to try?
  • NAND backup/restore - the most useful tool ever
  • you can install custom ROM
  • high count of successful flashing of custom recovery
  • for now (what I read on forum), when you had said that you brick your phone by standard manufacturer tool, your warranty repair would be probably approved

 

What is custom ROM?

Custom ROM is every somehow changed manufacturer's ROM or ROM compiled from source code of Android. "Change/s" can starts with adding/removing default application and can extend to kernels, cpu over/under-clocking, enable/disable features (ROOT, HW acceleration, ...), themes (frameworks, color, ...), keyboards and many other features.

Custom ROM is mostly distributed like signed ZIP package with included installation script for custom recovery. This ZIP is flashed via custom recovery tool.


Is it save to install custom ROM?

Yes, it is. May be I can say, that installation of custom ROM is almost mandatory, because it cost you only few minute if you will not be satisfied - you can just restore your old ROM from NAND backup, if you will be satisfied, you can keep it. And yes, you can also use backup tools like for example Astro for backup of your apps or Titanium Backup backup everything (SMS, call list, preferences, APNs, ...) and restore this in your new ROM (NOTE: In this case it's strongly recommended that both ROM should have same or very similar source/base ROM).


So, it is really simple:

  1. Do NAND backup
  2. Try new ROM
  3. Keep new, or restore old one.

What I need for install?

  1. Rooted phone
  2. Installed custom recovery
  3. Signed .ZIP file of ROM compatible with recovery
  4. RECOMMENDED: NAND backup of your actual ROM

What does custom ROM bring

Custom ROM brings almost every feature you can image.

ex:

  1. optimization for maximal power (games), long battery life, calling, texting, playing videos,...
  2. awsome look - changed icons, colors, animations, wallpapers, menu, ....
  3. simple work - feature that will short some work (add restart button, reorganized menu, shorts, gestures, ...)
  4. allow tweaking - overclok/underclok your device, ROOT, ....
  5. and many other
It's really not possible describe here every possibility what you can do/get with custom ROM.

what is ...

deodexed - needed for using themes. If you want replace/change some file in system (change theme) you need deodex file which you want change. In most cases it's going on services.jar which contains definition of colour for clock for example.

APKs zipaligned - optimization of APK archive, so it takes less memory and is much faster.

png-optimized - png files takes less memory, are loads faster

JIT - just-in-time compilation also known as dynamic translation, is a method to improve the runtime performance of computer programs, but it takes some time to convert into it on start.

HW:acceleration - using of HW acceleration for rendering GUI. Little increase battery consumption.

VM.Heap Size - maximum memory an application can consume

stagefright - In Android 2.2 new media framework that supports local file playback and HTTP progressive streaming

Apps2SD - (mostly DarkTremor's a2sd) If you create ext partition on your SD card, you can mount it like internal memory (you will have more space on phone memory) and move app on SD.
Dalvik2SD - move of Dalvik into SDcard (saves space)
custom kernel - compiled standard unix kernel (can bring support for features like support ext4 for example)




Links/sources
----------------------------------------------------
su (Unix); wikipedia.org
Superuser; wikipedia.org
Bourne shell (sh); wikipedia.org
Bourne-Again shell (bash); wikipedia.org
BusyBox; benno.id.au; BusyBox.net
Kernel; wikipedia.org

How to increase battery life; androidforums.com
Comparison of file systems; wikipedia.org
ZeroXtreme's filesystem answer (thanks); forum.xda-developers.com

ADB; android-dls.com; developer.android.com
Android SDK; wiki.androidforum.cz [CZ]
Basic adb/shell commands for noobs; forum.xda-developers.com
15 Useful Android Terminal (ADB Shell) Commands; gadgetsdna.com

P500 custom ROM list; forum.xda-developers.com
What's Deodex and Odex?; forum.xda-developers.com
What Is Zipalign In Android www.addictivetips.com
PNG compress; http://www.gotow.net/creative/wordpress/?p=79
Just-in-time compilation; wikipedia.org
VM Heap size; forum.cyanogenmod.com
Stagefright; developer.android.com




Flash paměti

Flash paměti


Historie pamětí uchovávající hodnotu po odpojení napájení začíná pamětí typu EPROM. Ta umožňovala zápis dat elektrickou cestou a pro její vymazání bylo potřeba čip nasvítit ultrafialovým světlem, čímž došlo k vymazání celé paměti. Logicky se tato metoda zrovna moc nehodila pro běžné použití jako záznamové medium s velkým množstvím zápisů/přepisů.
Jako první zástupce flash paměti můžeme považovat Simultaneously Eraseble EEPROM - zkráceně SE-EEPROM. Tuto technologii v roce 1980 předvedl vývojový tým profesora Fujio Masuko, dnešní název flash paměť však tyto čipy dostaly až později, pravděpodobně při představení roku 1984 na IEEE konferenci, kde ohromila na svou dobu vysokou rychlostí mazání oproti tehdy známé EEPROM - vylepšené verzi EPROM - proto zmiňovaný název “flash”. Kromě rychlosti spočívá výhoda hlavně v použití jen jednoho tranzistoru pro uložení informace o velikosti jednoho bitu - toho je docíleno zapojením tranzistorů odpovídající negovanému součinu (NAND).



Obr 1


Profesor Masuoka a jeho první 256kilobitový (256 kb = 32 kB) flash čip představený na konferenci IEEE


I přes poměrně dlouhé období po které je technologie flash pamětí známá, trvalo poměrně dlouho, než se na trhu objevila zařízení o nějaké rozumné kapacitě a zároveň kompaktnějších rozměrů. Dostatečné hustoty integrace se dosáhlo až koncem 90. let minulého století, kdy se začaly objevovat první, klasické, dnes tolik známé a používané flashdisky. Postupným dalším vývojem, integrací a vylepšováním flash technologií se nyní do popředí dostávají solid state drive, alias SSD.

Jak to celé funguje?


Základem je SLC (single level cell) paměťová buňka, jejíž funkce je založená na principu MOSFET tranzistoru, jenom je zde plovoucí hradlo mezi bránou a substrátem, které je izolováno pomocí oxidu křemíku a umožní nám uchování náboje - za běžných okolností po mnoho let. Pokud plovoucí hradlo uchovává náboj, pak snižuje účinek napětí na bráně (control gate - CG) což zásadním způsobem mění prahové napětí. Při čtení buňky je na bránu (CG) přivedeno prahové napětí. V závislosti na přítomnosti nebo nepřítomnosti náboje na plovoucím hradle pak dojde ke vzniku logické jedničky (vodivé spojení) nebo nuly (nevodivé spojení) mezi vstupem a výstupem paměťové buňky.
 
Obr 2

Jak je vidět, SLC uchovává na jednu paměťovou buňku jedinou logickou hodnotu - buď 1 nebo 0 - tedy jeden bit. Nicméně toto řešení není úplně ideální, protože pro dosažení velkých kapacit je potřeba mnoho paměťových buněk, tím pádem mnoho materiálu pro výrobu a tím nám roste cena. Velmi známým a problematickým je pak omezený počet zápisu jedné takové buňky. Každým zápisem dojde k poškození izolační vrstvy, což má za následek jeho postupnou degradaci a tím pádem stále snižující se rozdíly napětí mezi logickou jedničkou a nulou, až nakonec dojde k tak nízkému rozdílu, že již není možné buňku použít.

SLC (single level cell)


Pro zápis každého bitu použijeme jedné paměťové buňky.

Charakteristika

Menší opotřebovávání buněk (~100 000 zápisů)
Hlavní důvod hraje zejména velký rozdíl mezi potenciály napětí mezi jednotlivými hodnotami. Tím pádem i poměrně velké časové období pro opotřebení izolační vrstvy natolik, že výrazný rozdíl mezi potenciály logické 1 a 0 začne být příliš malý.

Malá kapacita oproti MLC nebo 3BPC technologii.


MLC (multilevel cell)


Velikost náboje v plovoucím hradle nám zároveň mění úroveň prahového napětí. To znamená, že pokud máme na plovoucím hradle vetší náboj, pak vetší napětí na bráně je potřeba pro překonání. To samé ovšem platí pro menší náboje. Z toho vyplývá možnost užití různých napěťových úrovní a tím pádem i uložení více bitu na jednu paměťovou buňku.


Obr 3

Charakteristika

Dvojnásobné zvýšení kapacity
Výhody jsou zcela zjevné - při použití čipu o velikosti 16 GB SLC dostaneme při použití MLC  najednou již dvojnásobnou velikost - 32 MB paměťové kapacity.

Rapidní snížení životnosti (~10 000 zápisů)
Rapidní snížení životnosti oproti SLC. Příčina spočívá v meších rozdílech potenciálů bázového napětí pro možnosti určení logické hodnoty a tím pádem daleko dříve se dostaneme vlivem opotřebení izolační vrstvy na hodnoty, které již není možně od sebe bezpečně rozeznat.

Zhoršení rozpoznávání logických hodnot = větší chybovost
Se zmiňovaným rozdělením a přiblížením úrovně jednotlivých logických stavů, se zvyšuje pravděpodobnost chybného přečtení hodnoty. Je proto potřeba využívat kvalitních oprav a kontroly dat.

Zhoršení rychlosti čtení i zápisu
nutnost testování buňky různými logickými hodnotami a několika násobné čtení (až 4x)

eMLC (Enterprise Multi-level cell)

jedná se o MLC buňky, u kterých byly provedeny dílčí úpravy pro zvýšení spolehlivosti, rychlosti a životnosti (~50 000 zápisů)

3BPC (3 bit per cell)

Uložení třech bitů na jednu paměťovou buňku

Shodné s předchozím - pokud znovu rozdělíme úrovně na dvě další napětí, získáme již prostor pro uložení 3 bitů, nicméně za cenu ještě větší chybovosti.


Obr 4


Charakteristika

Další navýšení kapacity - 3-násobek SLC a 2-násobek MLC - při užití 16 GB čipu, získáme 64 GB dat pro uložení

Další degradace výkonu kvůli dalšímu zhoršení rozpoznávání logických hodnot, větší chybovost oproti MLC a zároveň následuje další snížení výdrže paměťových buněk schopných uchovat 3BPC hodnoty.

NAND/NOR flash

U flash pamětí se standardní paměťové buňky zapojují dvěma možnými způsoby - NAND a NOR - podle toho je pojmenováváme NAND flash a NOR flash.

Zapojením vice paměťových buňek do celku získáme další vlastnosti vyplývající ze zapojení

Společnou vlastností zapojení je, že je vždy potřeba paměť vymazat před jejím zápisem, protože není možné paměť přepsat. Pro uložení nové hodnoty je potřeba nejdříve paměťové buňky nastavit do výchozího stavu (NOR - 1, NAND - 0)

NOR flash

U NOR flash pamětí je jeden konec zapojen na zem a druhý přímo na bytový výstup - NOR brány Diky tomuto zapojení můžeme adresovat jednotlivé bity pro čtení a zápis (nikoliv však výmaz). Pokud chceme zapisovat data, je potřeba provést nejprve výmaz celého NOR bloku.

 
Obr 5

Ve výchozím stavu je se zapojení jeví jako 1, programováním (zapísem) měníme stav na 0.

Výhody
možnost čtení jednotlivých bitu v paměti, stejně jako jejich naprogramovaní
velmi vysoká rychlost čtení (přístup na každé místo v paměti je konstantní)
nedochazí k chybám při čtení
Nevýhody
pro výmaz je potřeba smazat celý blok
Použití
NOR flash se používá všude tam, kde nedochází k velkému počtu změn nebo zápisu a je požadováno čtení jednotlivých bitu z paměti. Nejčastěji jsou to tedy paměti v telefonech a jiných embeded systémech, kde je procesoru umožněno číst samotné instrukce přímým adresováním jednotlivých bitů paměti.

NAND flash

Zapojeni jako NAND brána. Více přechodů je zapojeno v serii a pouze pokud všechny členy serie obsahuji 1 na hradle pak, dostaneme logickou 0 ve výsledku.


Obr 6


Výhody
díky menšímu množství vodičů je paměť méně náročná na výrobu a je možné dosáhnout vyšších integrací (větší kapacity na čipu)
funguje jako blokové zařízení, což vyhovuje užití jako paměťové medium

Nevýhody
větší náchylnost na chyby a stím související problematičtější čtení dat
pomalejší zápis - nedají se programovat jednotlivé bity samostatně
je potřeba “resetovat” celý blok před zápisem

Použití
NAND díky možnostem minimalizace díky své menšímu množství propjení, jednoduchosti a přesto i nadále solidní rychlosti zápisu/čtení jsou využívány v klasických flash zařízeních tak jak je známe - USB flashdiscich, SSD discích atd, nejřastěji v kombinací s MLC technologí použití paměťové buňky.

Problémy flash pamětí a jejich řešení

Pokud vycházíme z podstaty zapojení a principů fungování uložení informace v flash pamětech, dostáváme několik negativních efektů, které se snažíme odstranit, nebo alespoň redukovat. Největší problémy jsou pak svázané primárně s limitní velikostí počtu přepisů paměťové buňky a nutností výmazu buněk před samotným zápisem.


Wear level (Rovnoměrné opotřebení)
jeden z problémů souvisejících s opotřebováním je zajištění pokud možno co nejrovnoměrnějšího opotřebovávání všech buněk. Díky tomu si disk získá svoji maximální kapacitu po co nejdelší časový úsek.

Pro dosažení rovnoměrného opotřebení firmware disku postupně jednotlivé buňky rovnoměrně střídá, tak aby pokud možno všechny byly opotřebovávané stejně. Samotný wear leveling má 3 možné druhy:
1) žádný - žádná optimalizace se nekoná

2) dynamický - optimalizace probíhá pouze napříč prázdným místem. Jsou střídany jen prázdné buňky, obsazené se nechávají tak jak jsou.

3) statický - snaží se o rovnoměrné využití všech buněk napříč celým paměťovým médiem. Pro tento způsob je potřeba přesunovat data na jiná místa na disku a uvolněná místa pak “rovnoměrně opotřebit”


Garbage collection
Rozdíly mezi minimální velikostí dat pro zápis (stránka) a minimální velikostí pro výmaz (blok) způsobují po výmazu (respketive označení jako smazaných) volné místo, které ale nemůže být uvolněno, protože smazat je možné pouze celý blok. Proto jsou data přesunuta na nový, prázdný blok a celý blok je smazán. Pro správnou funkčnost je však potřeba udržovat volné místo na na disku.


Obr 7


TRIM
SATA příkaz řeší problém komunikace mezi řadičem a OS způsobený rozdílností fuknce SSD disku a standardního HDD. Pokud chceme smazat nějaká alokovaná data, ta nejsou fyzicky smazaná (změněna na 0), ale pouze označena jako smazaná v tabulce řadiče a na samotném disku zůstávají v nezměněné podobě. Vzhledem k tomu, že flash paměť je potřeba před samotným zápisem vymazat, vzniká problameatická situace, kdy je potřeba nejprve data vymazat a následně je znovu zapsat - tedy provedení zápisu jakoby dvakrát, což znamená zpomalení zápisu. To není zrovna efektivní, proto byl definován příkaz TRIM, který v případě nečinnosti disku “nuluje” takto označená data. Tento příkaz je podporován od Windows 7 a u Linuxu od jádra 2.6.33.


Write Amplification

Jeden z negativních efektů souborového systému. Disk umí zapisovat pouze po celých stránkách, a pokud není stránka plně využita, dojde k jejímu doplnění a uložení. Takže pokud chceme uložit 13 kB  dat a máme stránky velikosti 512 kB, finální množství uložených dat je 512 kB a prostor není plnohodnotně využit. Klasické moderní disky často však reálně zapisují více dat, než ve skutečnosti obdržely od operačního systému. Lepších výsledků je možné dosáhnout díky větší cache určené pro přípravu dat spolu s pokročilými algoritmy pro optimalizaci, případně kompresi (například SandForce od Intelu).

Write apmplification je číselná hodnota vypočítaná poměrem dat reálně zapsaných na disk a množstvím dat obdržených od operačního systému.



Spare area

náhradní prostor s paritními informacemi sloužící jako náhrada v případě nečitelnosti obsahu buňky či v případě špatného zápisu dat.


Použitá literatura



Wikipedia.org - Write apmplification
Wikipedia.org - Flash memory




22.2.15

Mobilní datové sítě

0G - Sítě 0. generace (precellurar)

V podstatě se jednalo o naprosté začátky rádiové mobilní telekomunikace vůbec a o nějakém posílání dat nemohla být ani řeč. Hmotnost a velikost zařízení dosahovala mezních hodnot mobility.

Technologie:
Technologií bylo mnoho, v podstatě si každý používal nebo vymyslel tu svoji. Jmenujme například:

Mobile Telephone System (MTS) - VHF radio system
Improved Mobile Telephone Service (IMTS) - VHF/UHF radio system
Advanced Mobile Telephone System (AMTS) systems

 

1G - Sítě 1. generace

Sítě založené na analogovém signálu kde standard je založen takřka výhradně na přenos hlasu a s daty počítáno v podstatě nebylo. Přenos dat bylo možné jen pomocí integrovaného modemu na základě zakódování signálu. Z pohledu sítě nebyl zásadní rozdíl mezi modulací hlasu, nebo datového signálu, nicméně protokol pro opravu chyb musel být daleko robustnější než v případě klasické pevné linky kvůli daleko většímu rušení signálu. Datový tok tak v případě AMPS modemu mohl v případě dobrých podmínek dosahovat az 14.4 Kbps, v případě horších rychlost klesala k 4.8 Kbps. Dalším problémem bylo zpoždění, které mohlo být klidně víc jak 20 sekund než došlo k samotnému navázání spojení.

Z výše popsaných skutečností, spolu s neúměrnými cenami za tato "datová volání" tato varianta datového spojení rozhodně nebyla zrovna v oblibě, což je také pravděpodobně důvod v poměrně pomalém rozjezdu mobilních dat oproti hlasovým službám vůbec. Zatímco se hlas i přes vysoké ceny těšil relativně oblibě, o data už tak velký zájem nebyl.

Velký počet různých technologických "standardů" z minulosti také nesl problémy mobility.

Technologie:

NMT (Nordic Mobile Telephone) používaný v skandinávských zemích, ve východní Evropě a Rusku
AMPS (Advanced Mobile Phone System), používaný převážně ve Spojených státech.
NTT (Nippon Telegraph and Telephone) - japonsko

a další standardy používané v různých zemích

 

2G - Sítě 2. generace (1990)

Na počátku 1990 se začínají rýsovat sítě druhé generace, které jsou již plně digitalizovány což přineslo zejména:
  • lepší kvalitu hlasu
  • zvýšenou bezpečnost (značné snížení možnosti odposlechu, možnost šifrování)
  • navýšilo celkovou možnou kapacitu
  • SMS
  • datové přenosy
  • hlasová schránka, přesměrování hovorů, zobrazení tel. čísla
  • použití časového dělení umožňuje využití jednoho kmitočtu v jedné buňce více uživateli současně a zároveň značně snižuje spotřebu (telefon vysílá jenom zlomek času hovoru).
  • použití SIM karty umožňuje snadnou změnu mobilního telefonu.
  • siť druhé generace sebou přinesla snahu o globalizaci standardu za účelem sjednocení a použitelnosti jednoho zařízení ve vícero zemích a možnost roamingu jako takového.
  • výsledkem této globalizace je standard GSM - Global System for Mobile Communications
  • GSM je kolekce standardů, aplikací a vlastností dostupných pro uživatele mobilních telefonů na celém světě.
  • GSM také přínáší v podstatě první standard pro mobílní data - CSD
  • GSM standard je postupem času stále rozšiřován o další technologie
Od Sítí druhé generace se můžeme bavit o “datových sítích”

CSD - circuit switched data - v podstatě první standardizovaná metoda přenosu dat v digitální síti. Datová komunikace založená přenosu digitálního signálu v podobě 1 a 0 bez nutnosti převodů do analogové podoby.
  • Rychlosti se pohybují od 9.6 Kbps až po 14.4 Kbps
  • účtování na základě času stráveného datovým spojením, nikoliv objemu dat
  • dochází k využívání celého slotu, což přinásí garanci minimální propustnosti
Ostatní 2G technologie:

CDPD
iDEN
PDC
PHS

 

2.5G - Sítě 2.5 Generace (2000)

Pozdější specifikace a rozšíření 2G standardu. Přechod na Packetově přepínané sítě pro data znamená další zefektivnění využití sítě,  navýšení propustnosti a změnu účtování spotřebovaných dat, namísto časové jednotky.

HSCSD - High-speed circuit-switched dat
  • rozšíření CSD implementace
  • vícero úrovní opravy chyb podle kvality připojení (GSM CSD ma pouze jednu robustní)
    • to může v případě dobrého signálu znamenat 14.4 kbps oproti 9.6 kbps u CSD
  • souběžné použití více časových slotů zaráz (max. 4)
    • v ideálním případě tedy můžeme dosáhnout 4 x 14.4 kbps = 57.6 kbps
    • Kombinací až 9 GSM časových slotů může být finální kapacita navýšena na 115 kbps.
  • poněkud postatná nevýhoda spočívá v tom, že operátor účtuje všechny obsazené sloty, což znamená, že platíte počet použitých kanálů x CSD připojení (4xCSD), což službu velmi prodražuje oproti GPRS
  • nicméně oproti GPRS zůstáva garance minimální rychlosti
GPRS - General Packet Radio Service
  • vůbec první připojení, kde se data účtují na základě množství, nikoliv časové jednotky
  • 4 úrovně kódování (opravy chyb) signálu na základě kvality signálu
  • rychlost odvislá od konfigurace timeslotů (uplink+downlink)
    • nastavených operátorem
    • počtem možných slotů samotného zařízení (až 10 (5 downlink + 5 uplink), max 6 aktivních souběžně)
    • v případě idálních podmínek (5+1 slot, CS-4 kódování) je možné dosáhnout 5x20 kbps =100 kbps downlink
  • ve většině případů však rychlosti dosahují 20 - 40 kbps
  • narozdíl od CSD není garantována minimální přenosová rychlost, protože jsou využívány aktuálně nevyužité kánaly přenosového pásma a navíc jsou tyto sdíleny.
Kódové schéma
GPRS
Rychlost
(kbit/s)
CS-1
8.0
CS-2
12.0
CS-3
14.4
CS-4
20.0



EDGE - Enhanced Data rates for GSM Evolution
  • další rozšíření GSM pro datová spojení
  • obsahuje rozšíření jak Enhanced GPRS (EGPRS) - prepínání packetů tak i Enhanced CSD (ECSD) - přepojování okruhů
  • ve většině případů je kvůli cenové nákladnosti CSD implementováno pouze EGPRS
  • hlavní vylepšení spočívá ve využití modulace 8-PSK ,která dovoluje přenést 3 informační bity pomocí jednoho symbolu na rádiové vrstvě
  • v případě ideálních podmínek (5+1 slot, MCS-9 kódování) můžeme dosáhnout až 5x61.85 = 309.25 kbps downlink. V praxi se jedná o rychlosti kolem 100 - 150 kbps

Kódové a modulační schéma
EDGE (MCS)
Rychlost  
(kbit/s/slot)
MCS-1
8.80
GMSK
MCS-2
11.2
GMSK
MCS-3
14.8
GMSK
MCS-4
17.6
GMSK
MCS-5
22.4
8-PSK
MCS-6
29.6
8-PSK
MCS-7
44.8
8-PSK
MCS-8
57.05
8-PSK
MCS-9
61.85
8-PSK

 

3G - Sítě 3. generace (2001)

UMTS - Universal Mobile Telecommunications System
  • 3. generace mobilních systémů založených na GSM standardech
  • na rozdíl od 2G sítí se přešlo na rychlost “na buňku”, tedy rychlosti, které je nereálné dosáhnout...
  • několik “Release” lišících se zeména podporovanými rychlostmi a různými technologickými vylepšeními
    • Release 99 (64 kbps přepínaný okruh, 384 kbps packetově přepínané)
    • Relase 4 (TD-SCDMA)
      • spíše technologické změny
    • Relase 5 (HSDPA, High Speed Downlink Packet Access)
      • vylepšení downlinku
      • 1,2 později 3,6 Mbit/s downlink
    • Relase 6 (HSUPA, High-Speed Uplink Packet Access)
      • vylepšeni uplink
      • 14,4 Mbit/s downlink
      • 5,76 Mbit/s na uplink.
    • Relase 7 (HSPA+)
      • rovnou zdvojnásobení rychlosti
      • 28 Mbit/s downlinku
      • 11,5 Mbit/s uplink
      • definuje i 56 Mbit/s / 22 Mbit/s avšak zatím nejsou reálně  podporovány
    • Relase 8 (obchodně označeno jako LTE - (Dual-Cell HSDPA, Dual-Cell HSUPA)
      • další navyšování rychlostí
      • pod marketingovým nátlakem, pojmenováno jako LTE (4G LTE  = LTE Advanced!! nikoliv samotné LTE)
      • 299.6 MBit/s download
      • 75.4 Mbit/s
    • Release 9 (“LTE”)
      • spíše drobná vylepšení a úpravy LTE specifikace

 

4G - Sítě 4. generace (2011)

Zatím poslední generace, s uvolněnými specifikacemi. Pro 4G sítí se předpokládá využití LTE technologie.

LTE Advanced - (Long Term Evolution)
  • 1. kandidát na síť 4. generace již v roce 2009
  • založeno na GSM/EDGE a  UMTS/HSPA technologii
  • 3GPP Release 10 a 11
  • up to 3 Gbit/s downlink
  • up to 1.5 Gbit/s uplink

 

5G - Sítě 5. generace (plánováno 2020)

Prozatím nejsou uvolněné žádné specifikace, nicméně mluví se o Li-Fi alias light fidelity, což by měla být síť páté generace založená na viditelném světle. Nicméně to se netýká aktuálně tak úplně mobilních sítí a tak si budeme muset na nové technologie pravděpodobně ještě chvilku počkat.

Zdroje:

http://www.teqlog.com/1g-vs-2g-vs-3g-vs-4g-vs-5g-comparison-differences-and-analysis.html
http://www.dailywireless.org/2013/01/16/what-is-lte-advanced/
http://www.businessvize.cz/datove-prenosy-a-site/jak-se-vyznat-v-mobilnich-datovych-sitich-gsm-gprs-edge
http://www.internetprovsechny.cz/mobilni-bezdratove-datove-prenosy-v-roce-2013/
http://www.3gpp.org
http://www.unwiredinsight.com/2012/3gpp-lte-releases
http://en.wikipedia.org/wiki/3GPP_Long_Term_Evolution
http://www.speedguide.net/faq_in_q.php?qid=365

Jiří Peterka - archiv mobilní články
http://www.earchiv.cz/i_mobil.php3

Souhrn generací a technologií
http://en.wikipedia.org/wiki/Advanced_Mobile_Telephone_System

Tabulka frekvencí
http://en.wikipedia.org/wiki/Cellular_frequencies