Pred predstavením samotných technológií virtualizácie, teda virtuálneho stroja (VM) a kontajnerov pod systémom TwinCAT/BSD, sa na tento systém poďme pozrieť bližšie. Systém TwinCAT/BSD aj jeho názov vznikol spojením dvoch softvérových častí: run-time softvérového riadenia TwinCAT 3 a operačného systému FreeBSD.
Krátke zhrnutie: TwinCAT 3 je automatizačný modulárny softvér schopný premeniť PC na real-time riadenie. Samotný operačný systém FreeBSD nebol v žiadnom predchádzajúcom článku podrobnejšie rozobraný, preto si ho teraz v kocke predstavíme. FreeBSD je operačný systém postavený na unixovom jadre. Ide o open-source systém podľa podmienok licencie BSD (typ licencie), čo okrem iného umožňuje bezproblémovú implementáciu TwinCAT 3 run-time. Tento systém je veľmi odolný, stabilný a vyniká bezpečnosťou, preto sa často využíva na serverových a embedded aplikáciách. Vďaka relatívne nízkej náročnosti samotného systému nemá také vysoké nároky na hardvér, obzvlášť v porovnaní s veľkými operačnými systémami Windows, pričom ponúka podobné možnosti a funkcionality. FreeBSD je v podstate nástupca systému BSD a je najrozšírenejší zo všetkých systémov BSD, má teda za sebou veľmi silnú komunitu, ktorá posúva vývoj FreeBSD dopredu. To všetko z tohto systému robí veľmi dobrého kandidáta na použitie v automatizačnom odvetví.
Poďme sa pozrieť na základné rozdiely medzi VM a kontajnerom. Obe tieto technológie slúžia na virtualizáciu, ale ich fungovanie je odlišné.
Virtuálny stroj (VM)
Softvérovo vytvorené emulované prostredie, ktoré simuluje fyzický počítač, umožňuje fungovanie operačného systému a aplikácií v izolovanom prostredí. Hypervízor môže byť hardvér alebo softvér, ktorý umožňuje fungovanie viacerých operačných systémov na jednom hardvéri, teda virtuálny stroj.
Hypervízor má dva typy: typ 1 beží priamo na hardvéri, typ 2 beží nad hostiteľským operačným systémom. Vďaka tomu, že každý virtuálny stroj má svoju vlastnú inštanciu operačného systému, sú tieto systémy od seba kompletne izolované. Virtuálny stroj umožňuje fungovanie najrôznejších OS, ako je Windows, Linux, BSD a ďalšie. Kvôli tejto architektúre vyžaduje virtuálny stroj veľkú réžiu práve preto, že každá inštancia OS potrebuje vlastné zdroje hostiteľského hardvéru, ako je procesorový čas, pamäť RAM, úložisko vrátane prístupu sieťového rozhrania.
Kontajnery
Ide o izolované prostredie na fungovanie aplikácií a ich závislostí. Toto prostredie kontajnerizuje všetky potrebné komponenty na spustenie aplikácie vrátane kódu, knižníc, konfigurácií a ďalších súborov. Kontajnerový systém tak poskytuje iba základnú izoláciu od ostatných kontajnerov. Jednotlivé kontajnery majú spoločné jadro hostiteľského operačného systému, môžu tak nastať interakcie medzi jednotlivými kontajnermi. Samotné využitie rovnakého jadra OS sa prejavuje veľkou efektivitou kontajnerov, čo sa týka rýchlosti a réžie. Teda hardvérové požiadavky sú oveľa nižšie ako pri VM. Kontajnery sú najčastejšie spájané s názvom Docker, čo je asi najpopulárnejší kontajnerový virtualizačný nástroj, ale zďaleka nie jediný.
TwinCAT/BSD umožňuje využiť obe tieto technológie virtualizácie, čo ponúka nové možnosti v prístupe použitia. V rámci virtuálneho stroja TwinCAT/BSD využíva bhyve typ 2, teda BSD hypervízor typu 2 (obr. 3). Ide o riešenie, keď priamo na hardvéri beží operačný systém FreeBSD spolu s TwinCAT 3 run-time a nad ním bhyve, teda hypervízor, ktorý umožňuje hosťovanie najrôznejších operačných systémov, ako sú Windows, Linux a ďalšie varianty BSD.
Ako praktické využitie tejto štruktúry môžeme uviesť tento príklad: na pozadí na úrovni hostiteľského operačného systému TwinCAT/BSD beží TwinCAT 3 behové prostredie v reálnom čase a v popredí používateľské prostredie virtuálneho stroja s vizualizáciou. V takomto prípade máme teda úplne oddelené OS, čo môžeme využiť na zaistenie ešte väčšej stability a zabezpečenia stroja. Používatelia tak môžu mať prístup len k prostrediu VM v popredí, a to aj v prípade akéhokoľvek nekorektného zaobchádzania či problému, ktorý by zapríčinil poškodenie systému; poškodený bude len systém virtuálneho stroja a samotný hostiteľský systém TwinCAT/BSD na pozadí vykonávajúci riadenie stroja nie je ovplyvnený, zostáva teda nezasiahnutý a plne funkčný. Týmto spôsobom sa dá ešte zvýšiť už aj tak dobrá ochrana samotného riadenia stroja.
V rámci využitia kontajnerov TwinCAT/BSD sa prirodzene ponúka virtualizačný nástroj Jails. Tento kontajnerový nástroj nie je však ani zďaleka taký populárny a rozšírený ako už spomínaný Docker, preto je podporované integrovanie aj práve spomínaného Dockera.
Na záver možno povedať, že TwinCAT/BSD predstavuje modernú a efektívnu platformu pre automatizačné technológie kombinujúce výhody osvedčeného automatizačného softvéru s odolným a flexibilným operačným systémom. Je to tak veľmi zaujímavá alternatíva, ktorá ponúka rôzne technologické funkcionality vrátane virtualizácie. Využitím technológie virtualizácie sa opäť viac prelína svet automatizácie s IT svetom, čo umožňuje využiť moderný prístup k aplikáciám v uzavretom prostredí bez ovplyvnenia ostatných aplikácií či systémov. Týmito technológiami môžeme vo výsledku docieliť zvýšenie stability a bezpečnosti stroja.