Software
23 Apr 2023Software je sada všech počítačových programů používaných v počítači, které provádějí nějakou činnost.
Základní dělení SW
Podle funkce můžeme software rozdělit do několika skupin:
Systémový software
Je to speciální programové vybavení, které umožňuje uživateli s počítačem pracovat, ovládat ho, spouštět aplikace apod. Nachází se na pomezí hardware a aplikačního software a běžný uživatel s ním přímo nepracuje (na rozdíl od aplikací). Mezi systémový software patří operační systém, pomocné nástroje a firmware. Umožňuje efektivní používání počítače.
- firmware (mikroprogramové vybavení) - software, který slouží pro řízení nějakého vestavěného systému. Například operační systém pro mobilní telefon obsahuje firmware (např. Android, Windows Phone, iOS), ale samotný telefon obsahuje firmware pro komunikační čip mobilní telefonní sítě, bezdrátový Wi-Fi čip, apod.
- operační systém - základní programové vybavení počítače, které umožňuje běh programů a ovlivňuje, jak bude počítačový systém komunikovat s uživatelem.
- jádro OS (včetně ovladačů zařízení)
- pomocné systémové nástroje - pro správu OS (formátování disků, nastavení oprávnění, utility, démoni…)
Aplikační software
Umožňuje uživateli vykonávat nějakou užitečnou činnost (řešení konkrétního problému, interaktivní tvorbu uživatele - např. textový procesor). Aplikace využívají pro interakci s uživatelem grafické nebo textové rozhraní, případně příkazový řádek.
- kancelářské balíky: textový editor, tabulkový procesor, prezentační program…
- grafické programy: vektorový a rastrový grafický editor
- vývojové nástroje: vývojové prostředí, překladač
- zábavní software: počítačové hry
- řídící (pracovní) software: řízení strojů, informačních systémů,…
MS Word
- je textový procesor od firmy Microsoft, který je součástí kancelářského balíku Microsoft Office
- umožňuje vytvářet a upravovat dokumenty, formátovat text, vkládat další objekty, …
- standardizovaný formát textových dokumentů v rámci komunikace s úřady
- jednoduché ovládání a přehledné rozhraní
- provázání s dalšími aplikacemi MS Office
- cloudové úložiště OneDrive
MS Excel
- je to tabulkový procesor od firmy Microsoft
- zpracovává různě velkou tabulku informací, samotná tabulka je složena z jednotlivých buněk
- v minulosti se především využíval v bankovním sektoru - dnes se používá všude, kde je potřeba zpracovávat a analyzovat libovolná data
- rozsáhlé matematické, logické, vyhledávací nebo převodní funkce
Zpracovávání fotografií a videa - GIMP
- GIMP je svobodný a otevřený rastrový grafický editor, který se používá zejména pro retušování a úpravy obrázků a fotografií
Rastrová grafika (bitmapová grafika)
- jeden ze dvou základních způsobů, jakým počítače ukládají a zpracovávají obrazové informace
- celý obrázek je popsán pomocí jednotlivých barevných kódů (pixelů)
- body jsou uspořádány do mřížky, každý bod má určen svou přesnou polohu a barvu v nějakém barevném modelu (př. RGB),
- tento způsob popisu obrázku používá např. televize nebo digitální fotoaparát
- kvalitu záznamu obrázku ovlivňuje zejména rozlišení a barevná hloubka
- nevýhody:
- změna velikosti vede k zhoršení kvality obrázku
- zvětšování jen v omezené míře
- velké nároky na paměťové zdroje
- výhody:
- přirozená volba pro digitální fotografii
- pořízení obrázku je velmi snadné
Vektorová grafika
- jeden ze dvou základních způsobů, jakým počítače ukládají a zpracovávají obrazové informace
- vektorový obrázek je složen ze základních, přesně definovaných útvarů, jako jsou body, přímky, křivky a mnohoúhelníky
- výhody:
- obrázky jde libovolně zmenšovat a zvětšovat bez ztráty kvality
- je možné pracovat s každým objektem v obrázku odděleně
- výsledná paměťová náročnost je u jednotlivých barevných obrázků menší
- nevýhody:
- složitější pořízení obrázku
- překročí-li složitost grafického objektu určitou mez, začne být vektorová grafika náročnější na operační paměť a procesor
- nehodí se na zápis složitých barevných ploch, např. fotografie
- používá se zejména pro počítačovou sazbu, tvorbu ilustrací, diagramů, logotypů, animace,…
Škodlivý software
Software může provádět i nezamýšlenou činnost a v takovém případě hovoříme buď o programátorské chybě nebo o počítačových virech, malware, spyware, trojských koních apod. Proto existují antivirové programy, antispyware apod., které leží na pomezí aplikačního a systémového software a pokouší se činnost nežádoucího software eliminovat.
Dělení SW podle licence
- Open-source: Program, ke kterému je dostupný zdarma nejen vlastní program, ale i jeho zdrojové kódy. Licence programu následně upravuje možné nakládání se zdrojovými kódy, např. jeho úpravy a další distribuce. Příklady: OS Linux, databázový systém MySQL, vektorový editor Inkspace, bitmapový editor GIMP
- Freeware: Program, který je dostupný zdarma za podmínek, které vydal autor, většinou si takový program nikdo nesmí vydávat za vlastní ani ho upravovat. Již se jedná o tzv. uzavřený software, nejsou dostupné zdrojové kódy. Některé programy mohou být freeware pouze pro nekomerční využití. Příklady: Správce ovladačů a grafického nastavení her nVidia GeForce Experience, internetový prohlížeč Google Chrome
- Shareware: Program, který je možné volně šířit, ale uživateli dává obvykle určitý čas na vyzkoušení programu, po uplynutí této doby, případně podle toho, jak často program uživatel používá ho ve většině případů vyzve k zaplacení licence. Příklady: Souborový manažer Total Commander, kompresní program WinRAR
- Trial: Podobné shareware, v tomto případě se však jedná o čistě komerční software. Trial verze bývá časově omezena, pokud je omezená funkčně, nazývá se demo verze. Příklady: Bitmapový editor Zoner Photo Studio, mutlimediální balík Nero, simulátor Bus Driver
- Adware: Program, který je volně šiřitelný, ale zobrazuje reklamu většinou stahovanou z internetu. Příklady: Jednorázová virová kontrola počítače Eset Online Scanner, přehrávač BSPlayer
- Komerční software: Standardní placený software, většinou vyvíjený nadnárodními korporacemi. Typické pro počítačové hry, které nedovolují program vyzkoušet. Příklady: OS Microsoft Windows, simulátor Euro Truck Simulator 2, hra GTA V
Autorská práva a autorský zákon
Software je považován za autorské dílo a vlastnictví softwaru tedy řeší autorský zákon. Vlastníkem software je vždy jeho autor. Autorská práva nelze prodat, nelze se jich vzdát a jsou nepřevoditelná, jsou předmětem dědického řízení. Lze však postoupit výkon autorských práv - výkon autorských práv je v případě software vytvořeného vlastními zaměstnanci a software vytvořeného na smlouvu o dílo přenesen na zaměstnavatele (zadavatele smlouvy o dílo).
Softwarové právo se zabývá těmito oblastmi:
- software a jeho vývoj - vlastnická práva na software a zdrojové kódy
- vlastnictví dat
- licencování software
- právní aspekty implementace a dodání software
- právní aspekty servisu a údržby
- outsourcing
- softwarové pirátství
- internetové právo
- registrace doménových jmen
- odpovědnost za provoz internetových stránek
- internetové obchodování
- autorská práva na internetu
- e-government
Historie SW
Historii softwaru můžeme rozdělit do několika fází:
- Fáze před rokem 1950: Ada Lovelace a Alan Turing jsou předchůdci konceptu software.
- 50.-70. léta: Software se změnil z teoretického abstraktního konceptu na uznávaný jako nepostradatelný faktor pro vynález a vývoj zařízení nebo strojů. Poprvé vytvořen pojem “softwarové inženýrství” na NATO konferenci. Nejpoužívanější jazyky: COBOL a FORTRAN
- 80.-90. léta: Velká poptávka převyšovala nabídku profesionálů v tomto odvětví. Windows spuštěn v roce 1985 a Linux v roce 1992. Vznik HTML je navíc díky vzestupu WWW, jednoho z hlavních milníků digitálního věku.
- 21.století: Velký pokrok - od příchodu smartphonu může integrovaný software provádět úkoly, které dříve vyžadovaly počítače. Velký boom AI nebo kryptoměn.
Ochrana dat v počítači
Zálohování dat
Záloha (backup) je kopie dat uložená na jiném datovém nosiči (nebo i místě). Záložní data jsou využívána v případě ztráty, poškození nebo jiné potřeby práce s daty uloženými v minulosti.
- základní dělení - manuální a automatické (automatické je bezpečnější, ale počítač musí být zapnutý a médium, na které zálohujeme připojené = pro domácí zálohování je praktičtější manuální)
- online (Cloud, NAS) a offline (HDD, pásky)
Zařízení pro zálohování dat: HDD, USB disky, Cloud
Počítačové viry
Jako virus se označuje program, který se dokáže šířit bez vědomí uživatele. Pro množení se vkládá do jiných spustitelných souborů či dokumentů. Viry jsou jedním z druhů malwaru, zákeřného softwaru.
Ochrana proti škodlivému SW
Počítačová ochrana ve 3 základních krocích:
- prevence - ochrana před hrozbami (riziky)
- detekce - odhalení neoprávněných činností a slabých míst v systému
- náprava - odstranění slabých míst v systému
Počítačová bezpečnost, zabezpečení informací v počítači, tj. odhalení a zmenšení rizik spojených s používáním počítače, zahrnuje:
- omezení fyzického přístupu k počítači a jeho zařízením, ochrana před manipulováním se zařízeními počítačového systému
- ochrana informací před krádeží
- použití hardwarových zařízení, např. hardwarových klíčů
- využití mechanismů OS
- omezení množství programů, kterým je nutné důvěřovat
- využití záznamů o změnách v programech a systémech (logování a verzování)
- zabezpečení OS
- využití bezpečného šifrování
- využití bezpečného ukládání a zálohování údajů
Operační systémy
Operační systém je základní programové vybavení počítače, které umožňuje běh programů a ovlivňuje, jak bude počítačový systém komunikovat s uživatelem.
Kromě počítačů používají OS i některá zařízení, která za počítač nepovažujeme, ale mají v sobě nějaký druh počítače zabudovaný - mobilní telefony, herní konzole, televizory, set top boxy, routery, apod. Použití OS v určitém zařízení usnadňuje vývoj programového vybavení.
Historie OS
První počítače OS neměly. Zárodky OS lze vysledovat v knihovnách pro obsluhu vstupních a výstupních zařízení. První OS byly dodávány k sálovým počítačům (mainframe) - 60. léta.
Struktura OS
Operační systém bývá zpravidla uložen ve formě programů a dalších souborů ve vnější paměti, odkud se načítá při startu počítače nebo při zapnutí zařízení. OS lze rozdělit na několik částí (toto členění se může u různých autorů lišit a bývá ovlivněno i konkrétním OS):
- zavaděč operačního systému (boot loader) - program, který při bootování spuštěn po provedení POST testů BIOSu a jeho cílem je aktivace nějakého OS
- jádro operačního systému (kernel) - část OS, která je při startu počítače zavedena do operační paměti, kde zůstává až do vypnutí počítače.
- po zavedení do paměti je jádru předáno řízení, jádro dokončí inicializaci hardwaru (vytvoření jednoduchého API) a následně zajišťuje správu prostředků (mazání a vytváření souborů), umožňuje spuštění programů a poskytuje jim své služby
- hlavní úkol jádra spočívá v přidělování paměti a času procesoru programům, ovládání zařízení počítače a abstrakcí funkcí
- základem pro komunikaci s kernelem by měl být shell (u Windows omezeno)
- na základě struktury rozdělujeme na 3 druhy:
-
- monolitické jádro - všechny podstatné služby spouští kernel jako svoje procesy (tj. spouští se v prostoru paměti vyhrazeném jádru, kam uživatel nemá přístup); komunikace s aplikacemi je zajištěna přes API, proti mikrojádru je jednodušší na správu a opravování chyb, zároveň velmi bezpečný a rychlý; nevýhoda je teoreticky menší stabilita - např. Linux, Unix
-
- mikrojádro - obsahuje jen nezbytné funkce (API, správa procesů, virtuální paměť, přidělování hardwaru), zbytek běží jako aplikace (servery - např. komunikace po síti, souborové systémy), komunikují s kernelem pomocí speciálního volání, výhodou je rychlost, rozšířitelnost, stabilita (pokud se nějaká funkce pokazí stačí restartovat server, nemá vliv na jádro), při dobrém návrhu i bezpečnost; nevýhodou je komplikovaný návrh a nižší výkon - např. macOS
-
- hybridní jádro - kombinace předchozího, základní jádro je větší než u mikrojádra, ale přece jen jeho část běží jako servery, využívá MS Windows
-
- ovladače zařízení - zajišťují řízení hardware a zároveň komunikuje se zbytkem operačního systému pomocí obecnějších rozhraní, která zajišťuje abstrakci zařízení
- vrstva abstrakce hardwaru - vytváří jednotné rozhraní (API) ovládající různě fungující hardware
- implementace různých podsystémů (souborových systémů, protokolových zásobníků, síťových a dalších služeb, apod.) v podobě modulů, procesů, knihoven, ovladačů, apod.
- interpret příkazů - program, který přijímá od uživatele příkazy nebo povely zadávané pomocí příkazového řádku a ihned je vykonává (interpretuje)
- vizuální prostředky jako fonty, ikony, dialogy, popis terminálu apod.
- konfigurace různých součástí OS
- systémové programy
Konfigurace OS
Každý OS se dodává se sadou programů, které umožňují ho nastavit, kontrolovat jeho běh a upravovat ho.
Ve Windows je základním nástrojem Nastavení, které je doplněné řadou programů pro specifičtější úkoly (zobrazení systémových zpráv, práce s disky, čištění systému, zobrazení HW informací, registr), které vesměs zůstávají určené profesionálnějším uživatelům, zvláště u registrů špatná dokumentace.
Linux se primárně konfiguruje úpravou textových konfiguračních souborů (v Unixu vše soubor, tímto způsobem jde nastavit vše od tapety na ploše až po úroveň jasu monitoru), ta může být buď přímá nebo přes terminálový program; typicky dobrá dokumentace; s rozšiřováním Linuxu se u uživatelsky zaměřených distribucí objevuj klasické plnohodnotné grafické programy na nastavení PC (i když neobsahují vše běžnému uživateli bohatě stačí)
Android - nastavení pomocí předinstalovaného nastavení, nebo reinstalací programů, konfigurace obvykle dost strohá
OS pro počítače
Mezi nejpoužívanější druhy operačních systémů osobních počítačů patří Microsoft Windows, macOS a Linux.
Microsoft Windows
- Windows je označení pro několik různých operačních systémů od firmy Microsoft
- všechny mají grafické uživatelské rozhraní, avšak liší se použitím jádrem systému, úrovní podpory multitaskingu (současného běhu více úloh najednou) i používanými knihovnami a účelem použití
- současně je v jádře systému podpora pro rozlišení jednotlivých uživatelů a jejich procesů spolu s omezením jejich možností zasahovat si navzájem do své práce
Linux
- samotný Linux je pouze jádro a základní služby (ty lze do jádra zahrnout, nebo je vynechat)
- pro uživatele by bylo vytvoření Linuxového OS komplikované, proto vychází ve formě distribucí = předpřipravený systém se vším, co uživatel potřebuje
- masivní použití na internetových serverech, v superpočítačích, v drobné elektronice, zabudovaných systémech (auta, ledničky, průmyslové stroje)
- v domácnostech méně - spíše programátoři, technici a fanoušci - ale začíná i v komerční sféře (Windows značně potlačen politikou Microsoftu), použití Linux přináší několik výhod - lepší bezpečnost, snadná editovatelnost, levnější
- distribuce obvykle obsahuje DE (desktop environment - grafická podoba systému + kompletní sada grafických nástrojů pro práci s počítačem - např. GNOME, KDE, Cinnamon), program a systém pro instalování programů (atp, rmp, pacman), další programy usnadňující práci s počítačem (webový prohlížeč, kancelářské programy), přednastavení systému apod.
- základem správy a práce s Linuxem na vyšší úrovni zůstává terminál (převzato z Unixu), na rozdíl od Windows, který do terminálu přejal pár příkazů z DOSu, lze na Linuxu ovládat a nastavovat celý systém pouze přes terminál (výhoda u serverů, vzdálená správa)
- distribuce např. pro uživatele (Ubuntu, Mint, Fedora, MX), serverové (Debian, Rocky), přenosné (Tails, Slax), profesionální (Kali Linux - testování sítí), pro náročné (Gentoo, Arch)
- celý systém je svobodný a otevřený tj. každý si může prohlédnout a upravit zdrojové kódy, přispívat do projektu, vydávat vlastní verze
- hlavní výhodou je bezpečnost, podpora všemožných technologií
- Linux je největší projekt opensource, ke kterému se poté přidalo velké množství softwaru; část z něj dosáhla kvality komerčních programů a je používána i mimo Linux (Firefox, Libre Office, Blender, GIMP, VLC, Shotcut…)
OS pro mobilní telefony, tablety
- před příchodem chytrých telefonů nebyl OS moc podstatných, telefony uměly volat, psát SMS + jednoduché hry
- základním problémem je hardware telefonu - malé rozměry, malá spotřeba, malé zahřívání a velký výkon - OS musí být specificky upraven pro konfiguraci každého zařízení, což nejde bez podpory výrobců
- 1.smartphone představila firma Apple - vyrábí dodnes, určuje trendy na poli chytrých telefonů, má ale podobné nevýhody jako PC systém - malá konfigurovatelnost, uzavřenost jejich systému; výhodou je provázanost s ostatními produkty; drahé
- 2.dnes používaný systém vyvíjí Google - Android
- staví na Linuxu - i když Google si upravil Linux a nad ním staví dodnes
- stejně jako Linux upravitelný, ale uživateli tyto možnosti obvykle nejsou přístupné (systémy si upravují výrobci pro své telefony, na základě polotovaru od Google)
- upravitelnost systému - např. možnost změnit vzhled domovské obrazovky, instalace alternativních programů (část systému je natvrdo nastavena Googlem a výrobci)apod.
- řešení: rootnutí systému, to vyžaduje reinstalaci zavaděče a poté buď přeinstalování celého systému (alternativní derivace je např. LineagOS, GrapheneOS) nebo doinstalování binárního programu se (umožňujícího získat práva root) do současného systému - v tomto stavu už se systém téměř neliší od Linuxu
- je rozšířen i mimo telefony - chytré televize, tablety, auta
- kvůli licenci je základ Androidu vydáván jako svobodný software - Android Open source project; nad tím teprve staví Google a ostatní proprietární verze
- problémy s aktualizacemi
- dodnes existuje několik nezávislých výrobců těchto systémů nebo úprav svobodného Androidu, ale tyto verze existují jen pro omezené spektrum zařízení