Skip to content
KitploitKITPLOIT
أدواتالمدونة
Log in
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
tinyos-rtos — RTOS فائق الخفة لإنترنت الأشياء مع جدولة استباقية، TLS/DTLS، MQTT، CoAP، توافق POSIX، وحماية ذاكرة قائمة على MPU. النواة أقل من 10 KB. | Kitploit
أدوات/GitHubGitHub/cmc-labo/tinyos-rtos
أمان الأنظمة المدمجةأمان إنترنت الأشياءأمن الشبكاتاختراق الأجهزةالتشفيرأمن الأجهزةتحليل البرامج الثابتة
GitHubcmc-labo/tinyos-rtos

tinyos-rtos

RTOS فائق الخفة لإنترنت الأشياء مع جدولة استباقية، TLS/DTLS، MQTT، CoAP، توافق POSIX، وحماية ذاكرة قائمة على MPU. النواة أقل من 10 KB.

عرض المستودع
235823منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

TinyOS — نظام تشغيل فائق الخفة للإنترنت الأشياء

نظام تشغيل فائق الخفة يعمل في الوقت الفعلي للأجهزة محدودة الموارد في إنترنت الأشياء والأنظمة المدمجة.
بصمة النواة أقل من 10 كيلوبايت، ذاكرة وصول عشوائي لا تقل عن 2 كيلوبايت، جدولة قائمة على الأولوية مع استباقية.


الميزات

الفئةالتفاصيل
النواةجدولة قائمة على الأولوية مع استباقية (256 مستوى)، دوران دائري داخل نفس الأولوية، بحث عن الأولوية O(1) عبر bitmap، وراثة الأولوية
المزامنةمفاضلة (مع وراثة الأولوية)، إشارة، متغير شرطي، مجموعات أحداث، قوائم رسائل
المؤقتات البرمجيةطلقة واحدة وإعادة تحميل تلقائي، دقة ملي ثانية، تغيير الفترة في وقت التشغيل
الذاكرةمخصص من النوع First-fit مع دمج فوري (ذاكرة كومة 8 كيلوبايت، محاذاة 8 بايت)، كشف تجاوز المكدس، علامة الحد الأقصى لكل مهمة
الصدفةصدفة تفاعلية VT100 — 23 أمرًا مضمنًا، سجل الأوامر (↑↓)، إكمال التبويب، محرر أسطر كامل
توافق POSIXpthreads (إنشاء/انضمام/فصل/خروج، مفاضلة، متغير شرطي) · BSD socket API (socket/bind/listen/accept/connect/send/recv, inet_pton/ntop, htons/htonl)
نظام الملفاتنظام ملفات تسجيلي يعمل على أجهزة الكتل (WAL، استرداد من الأعطال)، مشاركة كتل COW، لقطات ذرية، واجهة برمجة تشبه POSIX
الشبكةإيثرنت، IPv4، ICMP، UDP، TCP، زبون/خادم HTTP، DNS
TLS / DTLSTLS 1.2/1.3 عبر TCP، DTLS 1.2 عبر UDP (خلفية mbedTLS)
MQTTMQTT 3.1.1 كامل — QoS 0/1/2 مع جدول إعادة محاولة أثناء الإرسال، طابور غير متصل، إعادة اتصال تلقائي مع تأخير أسي
CoAPزبون/خادم متوافق مع RFC 7252، نمط المراقبة
OTAتحديثات البرنامج الثابت لقسم A/B، التحقق من CRC32، التراجع
الرقابةرقابة مادية وبرمجية، مراقبة المهلة لكل مهمة
الطاقةأوضاع الخمول/النوم/النوم العميق، خمول بدون علامات، تحجيم تردد المعالج
الأمانحماية الذاكرة القائمة على MPU، دعم الإقلاع الآمن
HALطبقة تجريد العتاد العامة — ARM Cortex-M / RISC-V / AVR؛ اختيار البنية وقت التجميع، جداول عمليات الأطراف

العتاد المدعوم

البنيةأمثلة
ARM Cortex-M (M0/M0+/M3/M4/M7)STM32, nRF52, Raspberry Pi Pico
RISC-V (RV32I)ESP32-C3
AVR (تجريبي)ATmega

بداية سريعة

المتطلبات الأساسية```bash

ARM cross-compiler (required)

sudo apt-get install -y gcc-arm-none-eabi binutils-arm-none-eabi

QEMU ARM emulator (optional — for running without hardware)

sudo apt-get install -y qemu-system

تحقق من التثبيت:```bash
arm-none-eabi-gcc --version   # 10.x or later
qemu-system-arm --version     # 6.x or later

بناء```bash

Default example (blink_led) — ARM Cortex-M4

make

Target a different architecture (auto-selects toolchain and HAL)

make ARCH=cortex-m0 # Cortex-M0/M0+ make ARCH=cortex-m7 # Cortex-M7 make ARCH=riscv32 # RISC-V RV32I (uses riscv32-unknown-elf-gcc) make ARCH=avr5 # AVR ATmega (uses avr-gcc)

Specific example

make EXAMPLE=blink_led # LED blink + task scheduler demo make EXAMPLE=event_groups # Event group AND/OR/NOT/SYNC demo make EXAMPLE=iot_sensor # Multi-sensor IoT node make EXAMPLE=shell_demo # Interactive UART shell make EXAMPLE=mqtt_demo # MQTT publish/subscribe make EXAMPLE=condition_variable # Producer/consumer

Convenience aliases

make example-blink make example-events make example-shell make example-mqtt make example-iot

Build output

make size # Print ROM/RAM usage

يتم وضع القطع الأثرية المبنية في `build/`:

| الملف | الوصف |
|---|---|
| `build/tinyos.elf` | صورة بتنسيق ELF مع رموز التصحيح |
| `build/tinyos.bin` | ثنائي خام للكتابة على الذاكرة |
| `build/tinyos.map` | خريطة الرابط (أحجام الرموز) |

### التشغيل على QEMU

يعمل TinyOS على هدف QEMU `mps2-an385` (ARM Cortex-M3، 4 ميجابايت فلاش، 4 ميجابايت ذاكرة وصول عشوائي):```bash
# Run indefinitely (Ctrl-A X to quit)
qemu-system-arm \
    -machine mps2-an385 \
    -cpu cortex-m3 \
    -nographic \
    -kernel build/tinyos.elf

# Run for a fixed duration (e.g. 10 seconds)
timeout 10 qemu-system-arm \
    -machine mps2-an385 \
    -cpu cortex-m3 \
    -nographic \
    -kernel build/tinyos.elf

# Debug: trace interrupts
qemu-system-arm \
    -machine mps2-an385 \
    -cpu cortex-m3 \
    -nographic \
    -d int \
    -kernel build/tinyos.elf

المخرجات المتوقعة من تتبع المقاطعة: تكرار سطور successful exception return تؤكد أن المجدول يعمل، وأن SysTick يتحرك، وأن تبديلات سياق PendSV تكتمل بنظافة.

فلاش إلى الجهاز```bash

OpenOCD (STM32 example)

openocd -f interface/stlink.cfg -f target/stm32f4x.cfg
-c "program build/tinyos.bin verify reset exit 0x08000000"

pyOCD (generic ARM Cortex-M)

pyocd flash --target cortex_m build/tinyos.bin

### البناء باستخدام TLS (mbedTLS)

يتم تمكين دعم TLS تلقائياً عندما يكون mbedTLS موجوداً في `~/mbedtls`.
لاستخدام مسار مختلف:```bash
# Clone and build mbedTLS
git clone https://github.com/Mbed-TLS/mbedtls ~/mbedtls
make -C ~/mbedtls

# Build TinyOS with TLS
make MBEDTLS_DIR=~/mbedtls

مثال مهمة بسيطة:```c #include "tinyos.h"

void my_task(void param) { while (1) { / work */ os_task_delay_ms(100); } }

int main(void) { tcb_t task; os_init(); os_task_create(&task, "my_task", my_task, NULL, PRIORITY_NORMAL); os_start(); }

---

## نظرة عامة على API

### إدارة المهام```c
os_task_create(tcb, name, entry, param, priority)
os_task_delete(task)
os_task_suspend(task) / os_task_resume(task)
os_task_delay(ticks) / os_task_delay_ms(ms)
os_task_set_priority(task, priority)
os_task_get_stats(task, stats)
os_task_get_stats_by_index(index, stats)   /* iterate all tasks by index */
os_task_find_by_name(name)                 /* returns tcb_t*, NULL if not found */
os_get_system_stats(stats)
os_get_memory_stats(&free, &used, &allocs, &frees)

المزامنة```c

os_mutex_init(mutex) / os_mutex_lock(mutex, timeout) / os_mutex_unlock(mutex) os_semaphore_init(sem, count) / os_semaphore_wait(sem, timeout) / os_semaphore_post(sem) os_cond_init(cond) / os_cond_wait(cond, mutex, timeout) os_cond_signal(cond) / os_cond_broadcast(cond) os_event_group_set_bits(eg, bits) / os_event_group_wait_bits(eg, bits, opts, out, timeout) os_queue_init(q, buf, item_size, max) / os_queue_send(q, item, timeout) os_queue_receive(q, item, timeout) / os_queue_peek(q, item, timeout)

### المؤقتات```c
os_timer_create(timer, name, type, period_ms, callback, param)
os_timer_start(timer) / os_timer_stop(timer) / os_timer_reset(timer)
os_timer_change_period(timer, ms) / os_timer_get_remaining_ms(timer)

شل```c

/* Register custom commands before calling shell_start() */ shell_register_cmd(name, handler_fn, help_text)

/* Provide UART I/O callbacks and start the shell task */ shell_io_t io = { .getc = uart_getc, .puts = uart_puts }; shell_start(&io)

/* Change the prompt at any time */ shell_set_prompt("mydevice> ")

/* Execute a single line programmatically */ shell_exec(line)

**مثال الأمر المخصص:**```c
static int cmd_led(int argc, char *argv[]) {
    if (argc < 2) return 1;  /* non-zero → prints usage */
    bool on = (strcmp(argv[1], "on") == 0);
    gpio_write(LED_PIN, on);
    return 0;
}

/* In main(), before shell_start(): */
shell_register_cmd("led", cmd_led, "led <on|off>  Toggle LED");

أوامر الصدفة المضمنة

تنزيل الأداة