Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 76 reacties

Huawei komt met een opensourcebesturingssysteem voor internet-of-things-toepassingen dat tien kilobytes in beslag neemt. Volgens het bedrijf gaat het om de lichtste software in zijn soort. Huawei voorspelt dat in 2025 wereldwijd honderd miljard apparaatjes een internetverbinding hebben.

Huawei toonde het os, LiteOS genaamd, op het Huawei Network Congress. Dat is een eigen evenement van het bedrijf dat woensdag en donderdag plaatsvindt in Beijing. Op het evenement, dat gericht is op de toekomst van netwerken en internet-of-things, worden tweehonderd presentaties gehouden door 41 bedrijven.

LiteOS was al langer in ontwikkeling, maar vanaf versie 1.0.0 moet het systeem opensource worden. Onduidelijk is onder welke licentie het systeem wordt vrijgegeven. Huawei wil een unified platform gaan aanbieden dat het OS, middleware en api's bevat. Het bedrijf ziet de grote variëteit aan hardware die ingezet wordt voor iot-toepassingen als een van de uitdagingen die daarbij komt kijken. Het universele platform moet ervoor zorgen dat internet-of-things-ontwikkelaars zich kunnen richten op het bouwen van applicaties. Het bedrijf verwijst daarbij naar de 'Open IOT Community', een Chinese opensourcecommunity met Huawei en hardwaremaker Wrtnode als partners.

Het realtime-OS kan in combinatie met zowel microcontrollers als arm- en x86-processors draaien. Het OS bevat daartoe de benodigde drivers, evenals ondersteuning voor communicatiestandaarden als zigbee, lte, bluetooth en wifi. Huawei belooft dat de software met 10kB niet alleen het kleinste OS voor internet-of-things-toepassingen is: het bedrijf zegt ook dat de energieconsumptie laag blijft bij het draaien ervan. Daarnaast zou de software zero configuration, autodiscovery en autonetworking ondersteunen, en breed inzetbaar zijn. Huawei ziet toepassingen in smart homes, wearables en voertuigen.

Huawei LiteOSWilliam Xu, Chief Strategy en Marketing Officer van Huawei, kondigt LiteOS aan op het Huawei Network Congress.

Moderatie-faq Wijzig weergave

Reacties (76)

Wat ik verrassend vind is dat het besturingssysteem LiteOS al langer bestaat: http://www.liteos.net/
Deze software is gemaakt voor een draadloos sensornetwerk (http://en.wikipedia.org/wiki/Wireless_sensor_network). Hiervoor is een lichtgewicht OS nodig omdat sensoren en actuatoren of nodes vaak energie zuinig moeten zijn. Om dit te kunnen bereiken hebben deze nodes vaak weinig rekenkracht, memorie en opslag mogelijkheden. Ook moet het OS zo gemaakt zijn dat dat het geschikt is voor dit soort eisen en architectuur. Windows is hier helemaal niet geschikt voor omdat die deze ontworpen is voor veel krachtigere CPUs met een heel andere gebruikers model.

Het zou mij niks verbazen dat Huawei draadloze sensor netwerken wil gaan gebruiken en daarom liteOS heeft gepakt en verder ontwikkelt.

[Reactie gewijzigd door nyxus op 21 mei 2015 08:50]

Is het zo klein houden van het OS een doel op zich geworden? Ik bedoel, met de huidige grootte en de prijzen van geheugen had 10Mb of 100Mb weinig verschil gemaakt in de kosten voor geheugen lijkt mij, maar had het waarschijnlijk meer functionaliteit kunnen bieden.

Daarnaast...10 Kb: de meeste drivers op mijn Windows 8-machine zijn al een paar 100 (!) Kb groot?

EDIT: Mijn redelijke onschuldige post heeft aardig wat reacties opgeleverd. Ik ben daardoor een stuk wijzer geworden op dit soort licht gewicht OS-en. Bedankt allemaal! :)

[Reactie gewijzigd door brain75 op 21 mei 2015 11:07]

Efficient programmeren is in het verleden altijd een doel geweest van de goede programmeur. Het is juist jammer dat er zo makkelijk gedacht word tegenwoordig over geheugengebruik.

"Ach, geheugen kost toch niks"

Geheugen, als in, de fysieke transistoren in de chips, moet ook voorzien worden van prik om te werken, dus het OS klein houden werkt impliciet ook door in het zuinig houden van het systeem. Het gaat dan misschien over kleine beetjes, maar alle kleine beetjes samen is toch wat :)

Dat een OS (neem Windows 8 even als voorbeeld) al 4GB RAM nodig heeft om lekker te werken, en 30GB op de schijf inneemt is iets wat we tegenwoordig als normaal zien, maar als er wat efficienter geprogrammeerd zou worden, dan zou het misschien teruggebracht kunnen worden naar 4MB. (Misschien erg optimistisch, maar je snapt wat ik bedoel)
Grappig dat je Windows als voorbeeld neemt, want Microsoft is juist laatste jaren druk bezig de systeemeisen terug te brengen. Daarnaast zijn ze druk bezig om hun OS exact hetzelfde maken hoe VMWare gebruikt maakt van een Hypervisor. Al zijn hyper-v en ESXi beide een type 1 hypervisor, kan je die van WMware op een SD-kaart installeren. Die kant gaat Microsoft ook met de Nano server.
Dat een OS (neem Windows 8 even als voorbeeld) al 4GB RAM nodig heeft om lekker te werken, en 30GB op de schijf inneemt is iets wat we tegenwoordig als normaal zien, maar als er wat efficienter geprogrammeerd zou worden, dan zou het misschien teruggebracht kunnen worden naar 4MB. (Misschien erg optimistisch, maar je snapt wat ik bedoel)
Dit waren eisen voor Windows Vista, maar tegenwoordig is dat allang niet meer het geval.

Om weer on topic te raken, ben erg benieuwd naar de ontwikkelingen van IOT. Komen steeds meer leuke projecten uit en zeker als IT-er is het onmogelijk om niet bepaalde dingen te kopen om ermee te hobby-en.

[Reactie gewijzigd door vali op 20 mei 2015 16:29]

Dat Microsoft daar nu mee bezig is bewijst alleen maar mijn punt :) Microsoft ziet dus ook in dat het een stuk efficienter kan en moet.
Dat de windows 8.1 tablets met een zwakke atom en 1 gb aan ram voor minder dan 150 euro toch positieve user reviews krijgen bewijst dan weer dat microsoft verder is dan je zou verwachten.

zie: pricewatch: Acer Iconia Tab 8 W1-810 Wit
Installeer maar eens Android op zo'n ding en het is waarschijnlijk nog 10x sneller.
Dat durf ik toch aardig zeker te zeggen dat dit niet het geval is. Genoeg tablets in mijn handen gehad met vergelijkbare specs, waar Android niet op vooruit te branden is. Dus een factor 10 is al helemaal niet realistisch.
Dat is natuurlijk - zowel bij de windows als de android tablet - heel erg afhankelijk van de stock rom en alle aanwezige bloatware
Ze zijn rond Vista ook begonnen met een project om vooral de kernel maar ook het OS te optimalizeren. De NT kernel heeft enorme overhauls gehad van 6.0 naar 6.1 en 6.2/6.3. Dat waren niet zo maar .point releases, maar volledige nieuwe versies.

Dat is niet iets recents, alhoewel ze natuurlijk altijd verder gaan.

Wel aardig leesvoer mocht je interesse hebben
http://blogs.msdn.com/b/b...-memory-in-windows-8.aspx
Dit waren eisen voor Windows Vista, maar tegenwoordig is dat allang niet meer het geval.
Ja maar ze ruilen daar cpu cycles in voor minder schijfruimte. Dat vind ik een beetje valsspelen :D. Hoe verschilt dit eigenlijk met ntfs folder en filesystem compression ?
Tip (voor als je het nog niet wist).
"Ach, geheugen kost toch niks"
Daarnaast wordt vergeten dat het enige geheugen dat snel genoeg is om de huidige processoren bij te houden de interne registers zijn.
Dat is maar een heel klein aantal bytes...
De L1 cache is al te langzaam, L2 nog langzamer, etc.

Kijk bijvoorbeeld hier voor gegevens van een Core i7-2600:
L1 latency: 4
L2 latency: 11
L3 latency: 25

Als je dus een algorithme hebt wat uit L3 loopt, scheelt het al een factor 25... (Of is het 25+11+4?)
Het werkgeheugen is weer factoren langzamer en als je gaat swappen: Vergeet het dan maar.
Gelukkig doet een i7 aan latency hiding dmv pipelining, re-ordering, pre-fetching, hyper-threading, etc (en is een groot deel van je geheugen ops dus effectief gewoon ~1 cycle; een cache miss is enorm duur)

[Reactie gewijzigd door Zoijar op 20 mei 2015 18:39]

Het is maar wat je efficiŽnt programmeren noemt, voor een groot divers OS als Windows is het juist wenselijk dat de code leesbaar, voorspelbaar en simpel aan te passen, dat komt de efficiŽntie bij aanpassingen ten goede.
Maar de leesbaarheid mag weer niet ten koste gaan van de performance en optimalisaties, anders krijg je teletubbie crapware
Jewel, dat mag het wel. In enorm veel gevallen moet je tussen makkelijk lees- en begrijpbare code enerzijds, en efficientere code anderzijds kiezen. Slecht lees- en begrijpbare code zorgt uiteindelijk voor langzamere ontwikkeling en meer bugs. Windows 95 heeft minder overhead dan Windows 8, maar loopt om de haverklap vast. En SW die voortdurend vastloopt is voor mij Crapware.
Er zijn toch onderzoeken die anders bewijzen dan je stelling. Hier bijv. een artikel over een onderzoek "..research finds that, contrary to popular belief, restructuring software code to be more maintainable and efficient may not be worth the time and effort". http://www.itworld.com/article/2891140/study-finds-that-refactoring-doesn-t-improve-code-quality.html
Dat is wel een conclusie gebasseerd op een vrij beperkt onderzoek. Daarnaast is de winst van refactoring ook afhankelijk van de kwaliteit van de ontwikkelaar. Ik weet niet hoe de kennis over het algemeen is van software development in Sri Lanka, maar het land is niet het eerste wat in mij opkomt als het gaat om een sterk technisch land. Maar ik kan mij natuurlijk vergissen.
Wat een heleboel van die "vroeger was alles beter" mensen vergeten is dat geheugen vaak gebruikt wordt juist omdat het goedkoop is. Neem zoiets als fonts. Je kunt elke letter iedere keer dat je'm tekent opnieuw renderen, of je kunt de vorm bewaren in RAM. Wat is er beter? Als RAM duur is, dan is opnieuw renderen de goede keuze. Vandaag de dag is het beter om de (high-res, anti-aliased) fonts te bewaren.

Of neem zoiets als TCP/IP. Als de verbinding hikt, en je 1 pakketje mist, dan kun je alle volgende pakketjes even bufferen en de zender om 1 nieuw pakketje vragen, of je gooit alles weg en vraagt de zender om alles opnieuw te sturen. Het eerste kost geheugen, het tweede vreet bandbreedte. En zeker met een 1 Gbit/s verbinding kun je een heleboel pakketjes hebben die je moet bufferen.
En dus is het handig dat je je geheugen daar voor kan gebruiken, en niet nodig hebt om een bloated OS in te zetten waardoor er voor dit soort (nuttige) toepassingen amper meer geheugen beschikbaar is. Het beste is als de uiteindelijke leverancier bepaalt hoe er met resources omgegaan word ipv het OS zodat je het voor allerlei doeleinden kan efficient kan gebruiken, en niet alleen voor 1 specifieke use case.
De font-rendering en de TCP/IP-stack zijn onderdelen van het OS. Het is echt geen goed idee om ieder programma een eigen fontrendering en TCP/IP-stack te laten draaien. Ook zou Multitasking waarschijnlijk onmogelijk worden als altijd maar 1 applicatie de netwerkkaart kan beheren. En als elk programma een voorraad gerenderde fonts bewaart, heb je uiteindelijk alle fonts 20x in het geheugen in plaats van 1 keer.

Verder kun je er van uitgaan dat bugs in TCP/IP-stacks dan nooit gepatcht worden en dat dingen als high-DPI-monitoren nooit zullen gaan werken, want de oude applicaties kunnen het niet.

Uiteindelijk zijn alle huidige OSen ongeveer hetzelfde opgebouwd, en dat is zo gedaan omdat dat het beste werkt. Een leverancier die alles zelf moet kunnen doen is een leverancier die een eigen OS moet bouwen. Dat kan, maar dat doet vrijwel niemand, want het is veel te complex.
Ik denk dat de doelgroep van dit soort OSen doorgaans niet bezig zullen zijn met fonts renderen en dergelijke dingen. Ook multitasken zal niet heel extreem gaan gebeuren, dus alleen basisondersteuning voor taken in het OS, en de geavanceerde/gespecialiseerde dingen voor een toepassing zullen gewoon in de applicatie belanden die er op gedraait gaat worden.

Het renderen van verschillende anti-aliased fonts enzo voor een lichtschakelaar of een thermostaat zie ik niet echt populair worden. en dus als een verspilling van geheugen en opslag zien. Als ontwikkelaars dat per-se willen, dan zullen ze dat soort "luxe" features waarschijnlijk toch echt zelf moeten gaan implementeren.
aaaaahhh OK, ik dacht dat je bedoelde dat een OS in het algemeen zo min mogelijk moet doen. Als je het over dit mini-RTOS hebt ben ik het met je eens.
Efficient wil niet perse zeggen klein natuurlijk..
de meeste IOT apparaten werken niet als een pc Bram, de PIC heeft maar een beperkt geheugen. kijk maar eens naar de veel door tweakers gebruikte Arduino's die hebben een geheugen van 32 KB. en de meeste programma's die ik daar zelf voor schrijf blijven nog makkelijk onder de 25 kb hoor.

Dus 10 kb footrpint zou mooi zijn voor de standaard kernels en api's.
de meeste IOT apparaten werken niet als een pc Bram,
Hangt er denk ik allemaal van af wat het "thing" is. Is het een domotica sensor dan niet, maar een wasmachine/koelkast zal toch wel een microprocessor hebben met een goede brok geheugen.
Een wasmachine die alleen maar wat TCP pakketjes moet ontvangen/versturen en een paar sensoren en switches moet aansturen?
Mag toch hopen dat daar niet een volledige computer voor gebruikt wordt maar een hele simpele SoC met alleen dat wat nodig is...
Tuurlijk kan je op de prijs van een wasmachine ook wel een paar euro extra smokkelen voor 8Gb geheugen chips en dan een serverapplicatie schrijven die zo slecht geoptimaliseerd is dat het niet 10KB maar 900MB aan geheugen vreet maar wat is het nut daarvan ;)
Zo simpel mogelijk systeem, kan minder kapot, minder code om bugs te bevatten en minder ontwikkelingskosten omdat je programmeurs gewoon aan de slag kunnen in plaats van wekenlang de code doornemen om nog niet te begrijpen waarom een simpele functie zoveel regels inneemt :)
Een wasmachine die alleen maar wat TCP pakketjes moet ontvangen/versturen en een paar sensoren en switches moet aansturen?
Mag toch hopen dat daar niet een volledige computer voor gebruikt wordt maar een hele simpele SoC met alleen dat wat nodig is...
Daar zal uiteraard geen Pentium met SSD inzitten. Maar wel een MIPS, ARM met wat flash geheugen en enkele tientallen/honderden MBs RAM. Net zoals andere consumentenelektronica: routers, switches, printers, camera's, mp3 spelers, ...
Ik zou iets duidelijk kleiners gebruiken, zo lang als het programmeren niet moeilijker wordt door de slechte hardware.
De voorbeelden die jij noemt zijn complexe apparaten die inderdaad 10-100 MB RAM nodig hebben. Maar een wasmachine of een magnetron heeft veel minder nodig.
De kosten voor de CPU zullen (zeker bij een magnetron) niet verwaarloosbaar zijn; je kunt er van uitgaan dat de CPU bij alle wasmachines van een generatie hetzelfde is0 en dat betekent dat de CPU ook bij de goedkoopste wasmachine die het bedrijf verkoopt betaalbaar moet zijn.
Hangt er denk ik allemaal van af wat het "thing" is. Is het een domotica sensor dan niet, maar een wasmachine/koelkast zal toch wel een microprocessor hebben met een goede brok geheugen.
Hoe mooi zou het zijn als ook die koelkasten en wasmachines dan geen complete microprocessor en brok geheugen nodig hebben voor de simpele data die ze het internet op sturen.

De tendens van tegenwoordig is om alles maar groter, meer en sneller te krijgen, zonder energy footprints en efficiency in acht te nemen. Ik juich zulke initiatieven als die van Huawei alleen maar toe.
De IoT is juist zo populair omdat alles wireless/connected maken betaalbaar is geworden. Dat bereik je door met zo goedkoop mogelijke hardware de taak uit te voeren.

Immers de technologie is al jaren beschikbaar.. 400MHz/2.4GHz radio's, PC's/microcontrollers, ethernet, sensors/actuators, etc. is niets gloednieuws aan.

Een Celeron uit de jaren 2000 had toch ook al 100Mbit ethernet via een PCI kaartje, en kan toch ook met randapparatuur praten via USB? Zou je dus ook een besturing mee kunnen bouwen. Praktisch? Absoluut niet: duur, groot, onzuinig, ingewikkeld, etc.

De "holy grail" van high-volume elektronica is single chip design. Alles op 1 chip geintregreerd met precies afgemeten hoeveelheid geheugen etc. Dan is een klein RTOS en communicatie stack erg belangrijk. Misschien kost een chip met 32kB ROM wel 10 cent meer dan de 16kB ROM variant. 10 cent x 1 miljoen units = 100,000 euro. Daar mag een ontwikkelaar (of team) wel een tijdje aan stoeien om het dan toch in de 16kB chip te krijgen.

In termen van rekenkracht kunnen zware microcontrollers zoals STM32F4xx al aardig mee komen met de Intel Celerons uit ~2000. (De nieuwe STM32F7xx gaan er al over heen)
In absolute termen klinkt het echt vreselijk traag, maar zo'n STM32F4 chip ~6 euro kost in tegenstelling tot de Celeron die vele honderden guldens moest kosten.
En waarschijnlijk is de STM32F4xx chip al zwaar overkill voor een TCP/IP stack en wat poortjes schakelen en inlezen.

[Reactie gewijzigd door Hans1990 op 20 mei 2015 19:30]

de meeste IOT apparaten werken niet als een pc Bram, de PIC heeft maar een beperkt geheugen. kijk maar eens naar de veel door tweakers gebruikte Arduino's die hebben een geheugen van 32 KB. en de meeste programma's die ik daar zelf voor schrijf blijven nog makkelijk onder de 25 kb hoor.
Het originele DOS was ook maar 12kB, en daar draaide wel een hele PC op ;)
Is het zo klein houden van het OS een doel op zich geworden? Ik bedoel, met de huidige grootte en de prijzen van geheugen had 10Mb of 100Mb weinig verschil gemaakt in de kosten voor geheugen lijkt mij, maar had het waarschijnlijk meer functionaliteit kunnen bieden.

Daarnaast...10 Kb: de meeste drivers op mijn Windows 8-machine zijn al een paar 100 (!) Kb groot?
De IOT devices moeten zo goedkoop mogelijk te produceren zijn. Ze moeten ook in goedkope devices komen.
Kijk als voorbeeld naar dit NXP LPC1768 IOT device.
It is based on the NXP LPC1768, with a 32-bit ARM Cortex-M3 core running at 96MHz. It includes 512KB FLASH, 32KB RAM and lots of interfaces including built-in Ethernet, USB Host and Device, CAN, SPI, I2C, ADC, DAC, PWM and other I/O interfaces.
Kortom 512KB FLASH en 32KB RAM dit zal normaal zijn voor IOT SOCs.

En deze TI TM4C129x Series SOC met 1MB FLASH en 256KB RAM.

[Reactie gewijzigd door worldcitizen op 20 mei 2015 15:49]

Naja, de grap is dat het verzetten van minder data minder energie kost, doorgaans - das wel een plus als je een toepassing hebt met een zo klein mogelijke printplaat/footprint. Hoe kleiner het OS, hoe minder processing power nodig om het te draaien, hoe minder energie de processorkern hoeft te verstoken, etc. Uiteindelijk zou je wellicht een 'thing' (denk aan een temperatuursensor, bijv.) aan het internet kunnen hebben hangen dat een jaar draait op een knoopcel, bijvoorbeeld.
We programmeren tegenwoordig erg high level, en we includen een hoop drivers en frameworks met de debugging-informatie er vaak nog in. Een 'OS' voor iets simpels als een hi-tech koptelefoon kan je wel gewoon ouderwets efficiŽnt programmeren. Als je bedenkt dat je voor 2 euro al een 16KB RFID-chip hebt, dan is 10MB al een hele andere orde van grootte.

Wat je al niet met 96k kunt.
Een raspberry pi of arduino unit in je lamp stoppen gaat denk ik niet echt passen, hoe kleiner je os hoe kleiner je hardware en dus meer mogelijkheden om het in een ding te stoppen.

10kb betekent gewoon een mooi knap staaltje werk. Daar kunnen menig programmeurs nog van leren.
Ter vergelijking: de tekst over dit OS is al 2KB groot.

Ik vind het zo ongeloofwaardig klein dat ik denk dat 10KB slechts de kernel is, en niet inclusief drivers voor bijvoorbeeld de genoemde microcontrollers.
Dat de tekst al zo groot is zegt niets. Er bestaat immers zoiets als compressie. Wil je meer technische informatie over hoe zo'n klein OS werkt lees dan deze paper over Contiki OS: http://www.dunkels.com/adam/dunkels04contiki.pdf Edit: Dit OS is 30kb groot:
Its inventor, Adam Dunkels, has managed to fit an entire operating system, including a graphical user interface, networking software, and a web browser into less than 30 kilobytes of space.
bron: http://www.wired.com/2014/06/contiki/

[Reactie gewijzigd door ChicaneBT op 20 mei 2015 19:59]

Ik vraag af of de totale "footprint" van het OS echt 10KB groot blijft. Ik bedoel; je zult waarschijnlijk een externe firmware nodig hebben om zo'n "IOT"-apparaat aan het werk te krijgen, al is het maar om de juiste drivers / modules te laden.
Ik vraag me ook af of ze met "OS van 10kB" de volledige footprint bedoelen, of dat het alleen maar de core is, die dan op zijn beurt benodigde driver in gaat laden.

Linux is ook een OS, wat onder de 100MB kan blijven, maar Ubuntu is als OS, met volledige driverbase en supportfiles, tot aan de GUI kan oplopen tot GigaBytes
10kB aan binary is het minimum voor de core features.
Daaronder vallen abstraction layer api functies, mutexen en geheugenbeheer. Daar komen complexe hardware drivers dan nog bij, zoals een filesystem zoals FatFS (10kB) of een netwerkstack zoals lwip (35kB).
http://www.chibios.org/dokuwiki/doku.php?id=chibios:metrics

Een kleine kernel is goed omdat de applicatie software er nog bij moet. De grootse processoren met intern flash (waarvan je complicaties kan uitvoeren) is nu rond de 1 MB. (dat lijkt veel, maar voeg wat text toe, wat extra talen en plaatjes en je zit zo vol)
Als je een operating system neemt waarbij je de software dynamisch in het geheugen laad zit je waarschijnlijk met een processor met extern flash en/of ram, en dan is de maat van de kernel niet meer zo kritisch.

[Reactie gewijzigd door jeroen3 op 20 mei 2015 15:47]

De 10kB zal vast betrekking hebben op de door Huawei genoemde core-features, zie
https://translate.googleu...dLRJgX8WUSL9LZ6HZxRvEE-nw
en
https://translate.googleu...4y2HQlnE9wr6q1grInQoJmHwQ

[Reactie gewijzigd door kidde op 20 mei 2015 15:47]

Waarschijnlijk inderdaad alleen de kernel. 25 jaar geleden waren er ook RTOS voor bijvoorbeeld de 8051 die een 8 kB groot waren.
Het zou me ook echt verbazen als alles binnen 10KB past. Zelfs alleen een kernel binnen die grootte is al lastig. (En dan bedoel ik een kernel, niet alleen een scheduler). Heb het zelf gedaan voor de atmel AVR serie http://www.femtoOS.org/, en als je wat basis functies wilt zit je toch al gauw op een paar KB.
Op zich indrukwekkend, maar geheugen is tegenwoordig niet echt een kostenprobleem meer. Je zult voor elke kleine uitbreiding extra software nodig hebben lijkt me, zoals Titan_Fox ook al meldde.
Efficient is belangrijk, dit zorgt ervoor dat op een computer meer dingen gedaan kan worden omdat je meer geheugen vrij hebt, het besturingsysteem start sneller op, minder i/o overhead en minder cpu gebruik. Dit is een van de kleine voordelen, maar er zijn nog veel meer voordelen.
Op zich indrukwekkend, maar geheugen is tegenwoordig niet echt een kostenprobleem meer
Dat hangt heel erg af in wat voor een context je zit.
Ikzelf werk op een device wat alles bij elkaar 7,5 K words aan werkgeheugen heeft, totaal 15 kByte.
Dat device is een complete autoradio (FM/AM) SDR ontvanger.
Ik zou graag 4 core, 4 GHz en 4 GByte willen, maar dat zit er helaas niet in.
De vraag is juist of het niet kleiner kan...
Ik denk dus dat IoT devices straks dus ook steeds kleiner moeten vanwege kosten, dan is 10 kByte voor een OS misschien zelfs al te groot...
Maar doordat geheugen niet zo duur meer is moet je niet ineens ineffiecient gaan programmeren. Ik vind dat je netjes en effiecient moet schrijven. Verlengt de levensduur van huidige hardware ook nog eens. Dat is voor IoT-apparaten wel handig, die wil je niet om de haverklap willen vervangen.
Dus, het is een embedded RTOS? Een beetje om het gat tussen microcontrollers en SoCs op te vangen neem ik aan?
Microcontrollers hebben wel vaker een OS. Je vaak hebt geen OS nodig voor een simpele 8-bitter, maar als je een wat complexere microcontroller hebt die meerdere taken tegelijkertijd moet uitvoeren, dan is een simpel OS af en toe wel handig.

Een OS hebben betekent trouwens niet dat je fancy dingen krijgt, zoals file systems.
Het is in de basis een manier om taken met bijbehorende geheugengebieden steeds af te wisselen, zodat een taak een andere taak qua processortijd niet teveel belemmert.
Dat is precies wat ik 2 posts hier onder schreef ;-)
Waarom gebruiken ze niet gewoon dit?

http://www.contiki-os.org/

Draait zelfs op een c64 :D
Of de wiznet W5500. IP stack in silicon.

Heeft het grote voordeel boven contiki en andere embedded stacks dat je het LM announce gebabbel van Windows en gebonjour van Apple niet over trage linkjes hoeft te duwen.

[Reactie gewijzigd door marcovtjetje op 20 mei 2015 15:34]

Als binnen die 10kB de hele communicatie geregeld wordt, is dat ideaal. Bij veel systemen is het al snel 10kB of meer als je netwerkprotocollen gaat toepassen.

[Reactie gewijzigd door Sleurhutje op 20 mei 2015 17:12]

die 10KB is wrs hetzelfde als zeggen dat Linux als OS maar een paar MB groot is, omdat je daarmee dan allťťn de kernel bedoelt. Maarja, met allťťn een kernel kun je niets. Je hebt er nog allerlei rommel omheen bij nodig, en ik denk dat dat bij Liteos ook zo is.

De keerzijde is dat een IOT-achtig OS niet per se de dingen nodig heeft die een pc nodig heeft om tot een werkend geheel te komen. Wie weet wordt dit in een magnetron ge-embed, dan is er geen bash nodig :)
10Kb, zelfs DOS was groter! Ik ben eigenlijk wel benieuwd naar hoe ze dit dan gedaan hebben. Er zijn vooral veel microcontrollers (bv. de Atmega328P die op de bekende Arduino Uno Rev 3 platformen draait) met 32Kb flash geheugen en 2048 bytes aan ram waar je normaal niet echt een 'os' op kan draaien, hiermee moet dat dus wel kunnen. Ik ben benieuwd!

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True