TinyOS
TinyOS هو نظام تشغيل ومنصة مدمجة قائمة على المكونات، مصممة للأجهزة اللاسلكية منخفضة الطاقة، مثل تلك المستخدمة في شبكات الاستشعار اللاسلكية ، والغبار الذكي ، والحوسبة المنتشرة ، وشبكات المناطق الشخصية ، وأتمتة المباني ، والعدادات الذكية [ 1 ] [ 2 ] [ 3 ] . وهو مكتوب بلغة البرمجة nesC، على شكل مجموعة من المهام والعمليات المتعاونة. بدأ المشروع كتعاون بين جامعة كاليفورنيا، بيركلي ، وشركة إنتل للأبحاث ، وشركة كروسبو للتكنولوجيا ، ثم أُصدر كبرنامج مجاني ومفتوح المصدر بموجب ترخيص BSD ، ومنذ ذلك الحين تطور ليصبح اتحادًا دوليًا، هو تحالف TinyOS .
تم استخدام نظام التشغيل TinyOS في الفضاء، حيث تم تنفيذه في ESTCube-1 .
تطبيق
تُكتب تطبيقات TinyOS بلغة البرمجة nesC ، وهي لهجة من لغة C مُحسّنة لتناسب حدود ذاكرة شبكات الاستشعار. [ 4 ] وتتخذ أدواتها الإضافية بشكل أساسي شكل واجهات أمامية مكتوبة بلغة Java و shell script . أما المكتبات والأدوات المرتبطة بها، مثل مُصرّف nesC ومجموعات أدوات Atmel AVR binutils، فهي مكتوبة في الغالب بلغة C. [ 2 ]
تُبنى برامج TinyOS من مكونات برمجية ، بعضها يُمثل تجريدات للأجهزة. وترتبط هذه المكونات ببعضها البعض باستخدام واجهات . يوفر TinyOS واجهات ومكونات للتجريدات الشائعة مثل اتصالات الحزم، والتوجيه، والاستشعار، والتشغيل، والتخزين. [ 2 ]
نظام TinyOS غير متزامن تمامًا : فهو يحتوي على مكدس استدعاء واحد . وبالتالي، فإن جميع عمليات الإدخال/الإخراج التي تستغرق أكثر من بضع مئات من الميكروثانية غير متزامنة ولها دالة رد نداء . ولتمكين المُصرّف الأصلي من تحسين الأداء عبر حدود الاستدعاءات، يستخدم TinyOS ميزات nesC لربط دوال رد النداء هذه، والتي تُسمى أحداثًا، بشكل ثابت. وبينما يُمكّن عدم التزامن TinyOS من الحفاظ على تزامن عالٍ باستخدام مكدس واحد، فإنه يُجبر المبرمجين على كتابة منطق معقد من خلال دمج العديد من معالجات الأحداث الصغيرة. لدعم العمليات الحسابية الأكبر، يوفر TinyOS مهامًا، وهي مشابهة لاستدعاء الإجراء المؤجل والجزء السفلي من معالج المقاطعة . يمكن لمكون TinyOS إرسال مهمة، والتي سيقوم نظام التشغيل بجدولة تشغيلها لاحقًا. المهام غير استباقية وتُنفذ بترتيب "الأول في الأول خارج" . عادةً ما يكون نموذج التزامن البسيط هذا كافيًا للتطبيقات التي تركز على الإدخال/الإخراج، ولكن صعوبته مع التطبيقات التي تستهلك موارد وحدة المعالجة المركزية بكثافة أدت إلى تطوير مكتبة خيوط لنظام التشغيل، تُسمى TOSThreads. تم إيقاف دعم TOSThreads. [ 5 ]
يتم ربط كود TinyOS بشكل ثابت مع كود البرنامج، ويتم تجميعه في ملف تنفيذي صغير باستخدام مجموعة أدوات GNU مخصصة . كما يتم توفير أدوات مساعدة مصاحبة لإكمال منصة تطوير للعمل مع TinyOS.
تاريخ
بدأ مشروع TinyOS في جامعة كاليفورنيا في بيركلي كجزء من برنامج 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 في مؤتمر TinyOS Technology Exchange الرابع في كامبريدج، ماساتشوستس.
- نوفمبر 2006: تم إصدار TinyOS 2.0 في مؤتمر SenSys في بولدر، كولورادو.
- يوليو 2006: تم إصدار TinyOS 2.0 beta2.
- فبراير 2006: تم إصدار TinyOS 2.0 beta1 في مؤتمر 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: تم إصدار TinyOS الإصدار 1.0، الذي تم تنفيذه في nesC.
- أبريل 2002: بدأ العمل على لغة برمجة nesC كتعاون بين شركة Intel Research وجامعة كاليفورنيا في بيركلي.
- فبراير 2002: بيركلي توزع 1000 عقدة ميكا على المشاركين الآخرين في مشروع NEST.
- 2001: قامت بيركلي بتطوير منصة ميكا وأصدرت الإصدار 0.6 من TinyOS.
- في عام 2000، صممت جامعة بيركلي منصة rene وتعاونت مع شركة Crossbow، التي تولت إنتاج الأجهزة بكميات كبيرة. أُتيح الإصدار 0.43 من TinyOS للجمهور عبر موقع SourceForge. كانت الإصدارات السابقة للإصدار 1.0 من TinyOS عبارة عن مزيج من نصوص برمجية بلغة C ولغة Perl .
- 1999: تم تطوير أول منصة TinyOS (WeC) وتطبيقات نظام التشغيل في بيركلي.
بيئات التطوير المتكاملة
اعتبارًا من عام 2010، تتوفر ثلاث بيئات تطوير متكاملة (IDEs) لنظام TinyOS، كملحقات لبرنامج Eclipse :
- YETI 2 ، المعهد الفدرالي السويسري للتكنولوجيا في زيورخ (توقف التطوير)
- برنامج XPairtise من إعداد راسموس بيدرسن، كلية كوبنهاغن للأعمال
- TinyDT ، جامعة فاندربيلت
مراجع
- ↑ "ظهور مفاهيم وتقنيات الشبكات المجردة في TinyOS" . csl.stanford.edu . تاريخ الاسترجاع: 26-03-2026 .
- 1 2 3 داماسو، أنطونيو؛ فريتاس، دافي؛ روزا، نيلسون. سيلفا، برونو؛ ماسيل ، باولو (2013/03/13). "تقييم استهلاك الطاقة لتطبيقات شبكات الحساسات اللاسلكية باستخدام النماذج" . أجهزة الاستشعار (بازل، سويسرا) . 13 (3): 3473– 3500. بيب كود : 2013Senso..13.3473D . دوى : 10.3390/s130303473 . ردمك 1424-8220 . بمك 3658757 . بميد 23486217 .
- ↑ "TinyOS. احصل على البرنامج بأمان وسهولة" . Software Informer . 27-05-2026 . تم الاطلاع عليه بتاريخ 30-06-2026 .
- ↑ ليفيس، فيليب؛ جاي، ديفيد (2009). برمجة TinyOS . مطبعة جامعة كامبريدج. ISBN 9780521896061.
- ↑ "مستودع تطوير TinyOS، TOSThreads، أصبح مهملاً" . مستودع تطوير TinyOS الحالي . تم الاطلاع عليه بتاريخ 3 ديسمبر 2018 .
روابط خارجية
- شبكة استشعار لاسلكية
- أنظمة التشغيل المدمجة
- البرامج التي تستخدم ترخيص BSD
