Кіріспе
TinyOS – төмен қуатты сымсыз құрылғылар, мысалы, сымсыз сенсорлық желілерде (WSN), smartdust, кең таралған есептеу, жеке аймақтық желілер, ғимараттарды автоматтандыру және ақылды есептегіштерде қолданылатын кіріктірілген, компоненттік негіздегі операциялық жүйе және платформа. Ол nesC бағдарламалау тілінде, өзара іс-қимыл жасайтын тапсырмалар мен процестер жиынтығы ретінде жазылған. Бұл Калифорния университеті (Беркли), Intel Research және Crossbow Technology арасындағы ынтымақтастық нәтижесінде пайда болды, BSD лицензиясы бойынша ақысыз және ашық кодты бағдарламалық қамтамасыз ету ретінде жарияланды және содан бері TinyOS Alliance халықаралық консорциумына өсті. TinyOS ғарышқа жіберілді, ESTCube 1 жобасында қолданылды.
Іске асыру
TinyOS қосымшалары nesC бағдарламалау тілінде жазылған, бұл C тілінің диалектісі және сенсорлық желілердің жад шектеріне оңтайландырылған. Оның қосымша құралдары негізінен Java және shell скриптінің интерфейстері түрінде келеді. nesC компиляторы және Atmel AVR binutils құралдар жиынтығы сияқты қатысты кітапханалар мен құралдар көбінесе C тілінде жазылған.
TinyOS бағдарламалары бағдарламалық компоненттерден құралған, олардың кейбіреулері аппараттық абстракцияларды ұсынады. Компоненттер интерфейстер арқылы бір-бірімен байланысады. TinyOS пакеттік байланыс, маршрутизация, сезімталдық, орындау және сақтау сияқты жалпы абстракциялар үшін интерфейстер мен компоненттерді қамтамасыз етеді. TinyOS толығымен бұғаттамайды: оның бір шақыру стегі бар. Сондықтан, бірнеше жүз микросекундтан астам уақыт алатын барлық кіріс/шығыс (I/O) операциялары асинхронды және кері шақыру механизмін пайдаланады. Туған компилятордың шақыру шекаралары арқылы жақсырақ оңтайландыруы үшін TinyOS nesC мүмкіндіктерін пайдаланып, оқиғалар деп аталатын осы кері шақыруларды статикалық түрде байланыстырады. Бұғаттамайтындық TinyOS-ке бір стекпен жоғары параллелизмді сақтауға мүмкіндік берсе, ол бағдарламашыларды көптеген шағын оқиғаларды басқарушыларды біріктіре отырып, күрделі логика жазуға мәжбүрлейді. Үлкен есептеулерді қолдау үшін TinyOS тапсырмаларды ұсынады, олар кейкелген уақытта шақырылатын процедураға және үзіліс өңдеушінің төменгі бөлігіне ұқсас. TinyOS компоненті тапсырманы жариялай алады, оны операциялық жүйе кейінірек орындау үшін жоспарлайды. Тапсырмалар алдын ала тоқтатылмайды және бірінші келгені бірінші орындалады. Бұл қарапайым параллелизм моделі әдетте I/O-ға бағытталған қосымшалар үшін жеткілікті, бірақ оның процессорға жүктемелі қосымшалармен қиындықтары OS үшін TOSThreads деп аталатын жиектер кітапханасын жасауға әкелді. TOSThreads қолдау көрсетілмейді және қолданылудан шығарылды. TinyOS коды бағдарламалық кодпен статикалық түрде байланыстырылған және арнайы GNU құралдар жиынтығын пайдалана отырып, кішкентай атқарылатын файлға компиляцияланады. TinyOS-пен жұмыс істеу үшін даму платформасын толықтыру үшін қосымша құралдар ұсынылады.
Тарих
TinyOS UC Берклиде DARPA NEST бағдарламасының бір бөлігі ретінде жоба ретінде басталды. Содан бері ол бүкіл әлем бойынша мыңдаған академиялық және коммерциялық әзірлеушілер мен пайдаланушыларды қамтыды. (тізім кері хронологиялық тәртіппен)
2012 жылдың тамызы: TinyOS 2.1.2 шығарылды.
2010 жылдың сәуір айы: TinyOS 2.1.1 шығарылды.
2008 жылдың тамызы: TinyOS 2.1.0 шығарылды.
2007 жылдың шілдесі: TinyOS 2.0.2 шығарылды. Бірнеше интерфейстерге шағын өзгерістер енгізілетін TinyOS 2.1 жұмысы басталды.
2007 жылдың сәуір айы: TinyOS 2.0.1 Кембридждегі 4-ші TinyOS Technology Exchange-де шығарылды.
2006 жылдың қарашасы: Боулдердегі SenSys конференциясында TinyOS 2.0 шығарылды.
2006 жылдың шілдесі: TinyOS 2.0 beta2 шығарылды.
2006 жылдың ақпаны: TinyOS 2.0 beta1 Стэнфордтағы (Stanford, CA) 3-ші TinyOS Technology Exchange-де шығарылды.
2005 жылдың желтоқсаны: TinyOS 1.1.15, соңғы 1.1 нұсқасы шығарылды.
2005 жылдың шілдесі: NEST жобасы аяқталды.
2004 жылдың маусымы: TinyOS-тің келесі қадамдары бойынша жұмыс тобы құрылды, бұл жаңа платформаларға көшіру тәжірибесіне негізделді. Топ 2.0 бойынша жұмыс бастауға келісті.
2003 жылдың қыркүйегі – 2005 жылдың желтоқсаны: TinyOS жүйелі түрде шағын жаңарулар шығаруды бастады.
2003 жылдың тамызы: TinyOS 1.1 нұсқасы шығарылды, оған деректер жарысын анықтау мүмкіндігі қоса алғанда, жаңа nesC мүмкіндіктері кірді.
2002 жылдың қыркүйегі: nesC-де іске асырылған TinyOS 1.0 нұсқасы шығарылды.
2002 жылдың сәуірі: Intel Research және UC Berkeley арасындағы ынтымақтастық ретінде nesC бағдарламалау тілі бойынша жұмыс басталды.
2002 жылдың ақпаны: Беркли NEST жобасының басқа қатысушыларына 1000 мика түйінін таратып берді.
2001: Беркли мика платформасын әзірледі және TinyOS 0.6 нұсқасын шығарды.
2000: Беркли rene платформасын жобалады және аппаратты жаппай өндіретін Crossbow, Inc. компаниясымен серіктестік құрды. TinyOS 0.43 нұсқасы SourceForge арқылы көпшілікке қолжетімді болды. TinyOS 1.0-ға дейінгі нұсқалары C және Perl скрипттерінің қосындысынан тұрды.
1999: Берклиде алғашқы TinyOS платформасы (WeC) және операциялық жүйенің іске асырылуы жасалды.
August 2012: TinyOS 2.1.2 released
April 2010: TinyOS 2.1.1 released. August 2008: TinyOS 2.1.0 released. July 2007: TinyOS 2.0.2 released. Work on TinyOS 2.1, which involves slight changes to a few interfaces, begins. April 2007: TinyOS 2.0.1 released at the 4th TinyOS Technology Exchange in Cambridge, MA. November 2006: TinyOS 2.0 released at the SenSys conference in Boulder, CO.
July 2006: TinyOS 2.0 beta2 released. February 2006: TinyOS 2.0 beta1 released at the 3rd TinyOS Technology Exchange in Stanford, CA. December 2005: TinyOS 1.1.15, the last 1.1 version, is released. July 2005: NEST project concludes. June 2004: Working group forms on next steps for TinyOS, based on experiences porting to new platforms. Group agrees to start work on 2.0. September 2003 – December 2005: TinyOS begins a periodic minor release process. August 2003: TinyOS version 1.1 is released, which includes new nesC features including data race detection. September 2002: TinyOS version 1.0, implemented in nesC, is released. April 2002: Work on the nesC programming language begins as a collaboration between Intel Research and UC Berkeley. February 2002: Berkeley distributes 1000 mica nodes to other participants in the NEST project. 2001: Berkeley develops the mica platform and releases TinyOS version 0.6. 2000: Berkeley designs the rene platform and partners with Crossbow, Inc., who mass produces the hardware. TinyOS version 0.43 is made available to the public via SourceForge. Pre 1.0 versions of TinyOS are a mix of C and Perl scripts. 1999: First TinyOS platform (WeC) and OS implementations are developed at Berkeley.