Beágyazott rendszerek
Definíció ● Speciális feladatra tervezett számítógépes rendszer, egy vagy néhány dedikált feladatra. ● Gyakran valós idejű feldolgozást valósít meg
Követelmények ● 7/24 működés ● Önálló robusztus vezérlő szoftver ● kis erőforrás igény (memória) ● kis teljesítményfelvétel (standby) ● távoli menedzsment (serial,internet) ● opcionális adatmentés
Jellemzők I. ● Nincs, vagy csökkentett képességű fizikai kezelői felület * ● Menedzsment RS485/232, Ethernet ● TCP/IP stack
Jellemzők II. ● Viszonylag szerény, célorientált feldolgozási képesség ● Szabványos felületek a feladat megvalósításához (ethernet,LCD/TFT,audio I/O, rs485,USB,I2C,MD/SD/Compact Flash,PWM,n*GPIO) ● Egységes operációs rendszer (Linux,WinCE)
Jellegzetes példák ● PLC ● Toradex Colibri ● Routerek (xDsl,Wifi,cable) ● Webcam serverek ● Robot vezérlők
CPU platform ● Neumann,Harward,RISC, non-RISC architektúra ● 65816, 65C02, 68HC08, 68HC11, 68k, 8051, ARM, Atom, AVR, AVR32, Blackfin, C167, Coldfire, COP8, eZ8, eZ80, FR-V, H8, HT48, M16C, M32C, MIPS, MSP430, PIC, PowerPC, R8C, SHARC, ST6, SuperH, TLCS-47, TLCS-870, TLCS-900, Tricore, V850, x86, XE8000, Z80, AsA
Software fejlesztő eszközök ● fordítók, debugger, emulator, in-circuit emulator (JTAG,NEXUS) ● downloaders ● programozási nyelvek (Assembler,C,Basic*,C++,Java) ● IDE (Integrated Debugging Environment) eszközök
Kernel ● Monitor ● Kernel (Mikro, monolitikus és kevert architektúra) ● Nyílt/zárt forráskód
Linux kernel ● kevert architektúra ● Nyílt forrású ● GPL licensz alapján használható
Széles cpu választék ● Alpha AXP, Sun SPARC, Motorola 68000, PowerPC, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa, and Analog Devices Blackfin
Széles driver választék ● chipset ● network ● Memória ● I/O ● File rendszerek
Security alépítmény ● Selinux ● POSIX ● Kriptográfia API
Kommunikáció ● RS-232/485 ● IP
RS-232/RS-485 ● Hardware protokoll definició ● résztvevők ● DTE Data Terminal Equipment ● DCE Data Comunication Equipment ● Modem vezérlő jelek ● Handshaking ● NULL modem
RS-232 ● pont-pont összeköttetés ● korlátozott távolság (15-20m) ● Aszimetrikus jelszint ● Mark/Space ● -12V - +12V
RS-485 ● Party line (résztvevők száma max 32) ● max távolság 1500m ● szimmetrikus meghajtás ● 2/4 vezetékes kiépítés
Szoftver protokollok ● keretezés ● Adatvesztés elleni védelmek (kereszt/hossz- paritás,crc) ● STX/ETX ● Motorola packet formátum ● Device Bus
Ipari szabványok ● MODBUS ● CAN bus ● Profibus ● CanOpen ● Fins
RPC ● Remote Procedure Call ● programszám ● eljárások csoportja ● SUN regisztrálja ● fejlesztésre fenntartott 0x x3fffffff ● verziószám ● Kliens – Server modell
RPC II. ● Portmap ● regisztráltatni kell ● dedikált port 111 ● TCP vagy UDP alapú ● XDR External Data Representation
RPC III. ● Lokális eljáráshívás alapján ● rpcinfo ● rpcgen ● rpc nyelv ● interfész definíciók ● kliens és szerveroldali skeleton-ok előállítása ● Biztonság!
Távoli Objektum elérés ● Component Object Model ● Microsoft ● OLE->COM->DCOM->ActiveX
OMG (Object Management Group) ● CORBA (Common Object Request Broker Architecture) ● IDL (Interface Description Language)
Sun ● RMI-IIOP (Remote Method Invocation over Internet Inter-Orb Protocol)
SOA ● Service Oriented Architecture ● Több rétegű Enterprise Applikációk számára
Adatátviteli formátumok ● Bináris ● Object Serialization ● ActiveX ● Text ● HTML ● XHTML ● XML ● JSON ● SOAP (Simple Object Access Protocol)
Operációs rendszerek ● Szabad szoftver ● Nyílt forráskód ● Zárt forráskód
Szabad szoftver ● FSF (Free Software Foundation). Egyik alapító tagja Richard Stallman, aki a GNU projekt vezetője. ● jog arra, hogy futtassák a programot, bármilyen céllal, ● jog arra, hogy tanulmányozzák a program működését, és azt a szükségleteikhez igazíthassák, ● Ennek előfeltétele a forráskód elérhetősége. ● jog arra, hogy másolatokat tegyenek közzé a felebarátaik segítése érdekében, ● A jog arra, hogy tökéletesítsék a programot, és a tökéletesített változatot közzétegyék, hogy az egész közösség élvezhesse annak előnyeit.
Nyílt licencek (OSI) ● Apache License, verzió 1.0, 1.1, 2.0 ● Apple Public Source License, verzió 2 ● Artistic License 2.0 ● Berkeley Database License (vagyis a Sleepycat Software Product License) ● Common Public License, verzió 1.0 ● Eclipse Public License, verzió 1.0 ● GNU General Public License ● GNU Lesser General Public License
Nyílt forráskód ● Eric S. Raymond és Bruce Perens: Open Source Initiative (OSI),
OSD (Open Source Definition) ● Szabad terjeszthetőség ● A forráskód elérhetősége ● Származtatott művek létrehozásának engedélyezése ● A szerző forráskódja sértetlenségének biztosítása ● Személyek vagy csoportok megkülönböztetésének tilalma ● Különböző felhasználási területek megkülönböztetésének tilalma
OSD II. ● A licenc terjeszthetősége ● A licenc nem vonatkozhat kizárólag egy termékre ● A licenc nem korlátozhat más szoftvert ● A licencnek technológia-semlegesnek kell lennie
Szabad licencek ● Apache License, verzió 1.0, 1.1, 2.0 ● Apple Public Source License, verzió 2 ● Artistic License 2.0 ● Berkeley Database License ● Common Public License, verzió 1.0 ● Eclipse Public License, verzió 1.0 ● GNU General Public License ● GNU Lesser General Public License ● License of Netscape Javascript ● Modified BSD license, (FreeBSD,OpenBSD)
Szabad licencek II. ● Mozilla Public License ● Netscape Public License ● Open Software License, version 1.0 ● Original BSD license (NetBSD) ● Public Domain ● Sun Public License
Nyílt forráskódú projektek ● GNU Linux operációs rendszer ● ECLIPSE ● APACHE ● MOZILLA ● Firefox ● Thunderbird ● Bugzilla ● OpenOffice.org ● Wiki ● Opensolaris ● MySq l
Zárt forráskód ● forráskódjához kizárólag a fejlesztését végző személyek szűk csoportja férhet hozzá ● a programban alkalmazott egyedi megoldásokat külső személyek ne használhassák fel saját szoftvereikben ● nehezíti az abban rejlő hibák felfedezését
Mérlegelési szempontok ● Megbízhatóság ● TCO (total cost of ownership - a birtoklás teljes költsége) ● Kockázatok
Megbízhatóság ● megbízható eredményt a mérnöki vagy a természettudományok területén csak kölcsönös ellenőrzés segítségével érhetünk el. ● nyílt forráskód ● kölcsönös kódvizsgálat ● megbízható rendszer ● zárt forráskód ● megbízhatóság szörnyű kudarcot vall
TCO ● Zárt forráskód ● szoftver gyártója pénzt kér a bitekért, monopóliumot alakít ki a szoftverrel kapcsolatos szolgáltatások terén ● Nyílt forráskód ● bitek szabadok (esetleg ingyenesek is) ● fejlesztő nem élvez monopóliumot a szolgáltatásokkal és a frissítésekkel kapcsolatban
TCO II ● A kevés pénzzel rendelkező oktatási intézmények szeretik az olcsó szoftvereket,különös tekintettel a nyílt forrású szoftverekre, hiszen ezek lehetővé teszik, hogy a diákok tanulmányozzák a programokat és kísérletezzenek velük, ez nagyon hasznos oktatási szempontból :(
Kockázat ● Gondoljunk bele egy multinacionális vállalat informatikai vezetőjének helyzetébe, aki éppen most költött dollármilliókat, egy olyan vállalatirányítási rendszerre, amelybe nincs betekintése, amely nem módosítható és a szoftver támogatását kizárólag a gyártó végezheti. ● vajon a megrendelőnek, vagy a szoftver gyártójának hajt-e hasznot?
Kockázat II ● ha a Windows operációs rendszerek valamelyikét használod, a Microsoft az egyetlen lehetőséged – bezártad magad, csapdába estél. ● Ha a Linuxra esett a választásod, a Red Hat jó, hogyha odafigyel, hogy szolgáltatásait a megfelelő színvonalon nyújtsa, különben a vásárlói elpártolnak. ● Lelkes internet felhasználók indíthatnak új disztribúciót, a korábban már megírt, szabadon felhasználható és jó arányban hibátlan kód felhasználásával.
Operációs rendszerek ● Symbian ● Windows CE ● Embedded XP ● Android ● Linux
Symbian ● főként mobil eszközökben (PDA, mobiltelefon) alkalmazzák ● egyfelhasználós, ● többfeladatos végrehajtás, ● grafikus kezelői felület
Symbian II. ● dinamikus memória kezelés (a rendelkezésre álló összes memória felhasználható bármilyen célra) ● Kizárólagosan ARM(Advanced Risc Machine) architektúrájú processzort támogat ● 32 bites RISC architektúra, ● alacsony fogyasztás
Symbian III. ● A Nokia saját kezelőfelületet fejlesztett készülékei számára, melyet több cég is tovább licencelt. ● S60 telefonokhoz ● S80 kommunikátorokhoz ● S90 PDA okostelefon kombókhoz
Symbian IV ● UIQ Technology ● lényegesen fejlettebb a Nokia S60-nál ● nagyfelbontású, érintés érzékeny kijelző, ● kézírás felismerés ● Sony Ericcson használja
Szoftver fejlesztés ● C++ ● Carbide.c++ ● GCC for Symbian ● UIQ SDK ● S60 SDK ● Java ● Carbide ● Crystal and Quartz Java SDK ● S60 SDK
Windows CE ● A Microsoft speciálisan a beágyazott rendszerek számára fejlesztette ki. ● Erősen csökkentett képességű a normál Windows-hoz képest. ● Nem azonos a Windows XP Embedded termékkel ● Támogatott processzorok: Intel x86, MIPS, ARM és Hitachi SuperH
Szoftver fejlesztő eszközök ● Microsoft Visual Studio (.NET) ● Free Pascal és Lazarus ● Embedded Visual C++
Embedded XP ● A Windows XP embedded rendszerekhez illesztett változta ● Több mint 9000 WHQL (Windows Hardware Quality Labs)-minősítésű driver ● Több mint 1000 operációs rendszer-összetevő ● Előre meglévő tervezősablonok
Embedded XP II ● Plug and Play együttműködés (harmadik féltől származó beépülő modullal) ● Win32 API-kompatibilitás ● Integrált technológiák ● multimédiás kodekek és formátumok, ● Bluetooth, ● DirectX ●.NET-keretrendszer
Embedded XP III ● Media Player ● Internet Explorer! ● x86-alapú hardverplatformok támogatása ● addig nem kell licencdíjat fizetni, amíg meg nem kezdődik a szállítás és értékesítés ● beépített tűzfal!
Fejlesztő eszközök ● Microsoft Visual Studio ● Borland Delphi ● Code::Blocks ● DevC++
Android ● Open Handset Alliance ● Mobile szolgáltatók ● China Mobile, KDDI, NTT DoComo, Sprint Nextel, T- Mobile, Telecom Italia, Telefonica, Vodafone ● Chipgyártók ● AKM, Audience, ARM, Atheros, Broadcom, Ericcson, Intel, Marvell, Nvidia, Qualcomm, SiRF, Synaptics, Texas Instruments, Asustek, Garmin, HTC, Huawei, LG, Motorola, Samsung, Sony Ericsson, Toshiba
Open Handset Alliance ● Szoftver szolgáltatók ● Ascender, eBay, Esmertec, Google, LivingImage, Nuance, OMRON Software, PacketVideo, SkyPop, SONiVOX ● Kereskedelmi Szolgáltatók ● Aplix, Borqs, Noser, TAT, Teleca, Wind River
Android platform ● Nyílt forrású ● Ingyenes ● Android Linux ● SDK ● Java alapú ● Nem SUN JRE-t futtat ● Fejlesztői környezet ● Eclipse + Android plugin
Android platform ● Erőforrások ● Kamera, Adatabázis (SqLite), Gps, GeoLocation, (Google Maps), Mediaplayer, net(http,wifi), OpenGl, Telefon, Security, Bluetooth
Linux ● GNU Linux: (A Kernel) ● Desktop ● Server
Kernel ● C nyelven készül ● ● Linus Torvalds a fő karbantartó ● Verziók számozása ● a.b.c ● b=páros: stabil, b=páratlan:fejlesztői verzió ● git forrás management szoftver
RTOS (Real Time Operating System) ● Válaszidő ● Az érkező "trigger" jel érkezési időpontjától a kiszolgáló program indításáig eltelt időt tekintjük. ● Határidő teljesítés ● Egy beérkező jelet a beérkezés időpillanatától számított, megadott időintervallumon belül elkezdünk feldolgozni. A megadott időintervallumon belül nem determinisztikus a kezdés időpontja. ● Hiba ● Minden olyan eset, amikor sérül a határidő.
RTOS II ● Hard real-time ● minden határidősértés elfogadhatatlan, és megengedhetetlen. ● Soft real-time ● meghatározott mértékben és gyakorisággal el lehet térni a határidőktől. ● megköveteljük továbbá, hogy nyújtsanak megfelelő lehetőséget és elfogadható teljesítményt több, különböző alkalmazás egyidejű, konkurens futtatására a valósidejű alkalmazás mellett.
RTOS III ● Versenyhelyzet ● olyan működésbeli hibalehetőség, amikor két (vagy több) külön szál vagy folyamat egyidőben akar ugyanahhoz az erőforráshoz hozzáférni, és ez a hozzáférés időrendjétől függően különféle (általában nagyon nehezen nyomonkövethető) hibás működéseket mutat. Oka a több végrehajtás elégtelen szinkronizálása ● megoldásként általában az összes szál hozzáférését valamilyen közösen használt szinkronizáló primitívtől (író-olvasó zár, mutex, szemafor, stb.) szokták függővé tenni.
RTOS III ● Verziók ● Wind River ● RTAI ● XENOMAI
Disztribúciók ● a Linux-kernelre épülő terjesztések. Linux kernel mellett több-kevesebb szabad szoftvert és kereskedelmi szoftvert tartalmazhatnak. ● CentOS, Damn Small Linux, Debian, Fedora Core, Gentoo, KNOPPIX, Ubuntu, Mandriva, MEPIS, PCLinuxOS, Red Hat Enterprise Linux, Red Hat Linux, Sabayon, Slackware, SuSE Linux, Ubuntu, Vector Linux, Xandros, Zenwalk, blackPanther OS, Frugalware, Sulix, UHU-Linux, Blackware Os, LiveDosGames
Csomagok ● a telepíthető szoftverek gyűjteménye ● Formátumok ● deb (Debian) ● rpm (Red Hat) ● Mirror site-ok
Csomagkezelők ● apt ● dpkg ● synaptic ● dselect ● RedHat Package Manager ● Yast