KernelUNO เป็น Arduino Sketch ที่มีโค้ดจำนวน 546 บรรทัด ซึ่งทำหน้าที่เป็น Lightweight OS สำหรับบอร์ด Arduino UNO โดยมาพร้อมเชลล์ลักษณะคล้าย Linux ที่มีคำสั่งต่าง ๆ เช่น ls, df, uname และอื่น ๆ
สิ่งที่คุณต้องมีคือบอร์ด Arduino UNO R3 หรือ บอร์ดที่เข้ากันได้ซึ่งใช้ไมโครคอนโทรลเลอร์ Microchip ATmega328P, สาย USB สำหรับโปรแกรม และอาจมี LED กับตัวต้านทานเล็กน้อยสำหรับทดสอบคำสั่ง gpio ผ่านเทอร์มินัลก็ได้
KernelUNO มีคุณสมบัติดังต่อไปนี้:
- Virtual Filesystem – สร้างไฟล์และไดเรกทอรีในหน่วยความจำ RAM (/dev, /home)
- Hardware Control – ควบคุม GPIO พร้อมตั้งค่าโหมดของขา (pin mode)
- System Monitoring – ตรวจสอบสถานะระบบ เช่น การใช้หน่วยความจำ, เวลา uptime, และข้อความจากเคอร์เนล (dmesg)
- Interactive Shell – เชลล์แบบโต้ตอบที่สามารถรันคำสั่งแบบเรียลไทม์ พร้อมระบบบัฟเฟอร์อินพุต
- มีคำสั่งในตัว 23 คำสั่ง
- คำสั่งเกี่ยวกับระบบไฟล์ – ls, cd, pwd, mkdir, touch, cat, echo [text] > [file], rm, info [name]
- คำสั่งควบคุมฮาร์ดแวร์
- pinmode [pin] [in/out] – ตั้งค่าโหมดของขา
- write [pin] [high/low] – เขียนค่าไปยังขา
- read [pin] – อ่านค่าจากขา
- gpio [pin] [on/off/toggle] – ควบคุม GPIO
- gpio vixa [count] – โหมดไฟ LED แบบดิสโก้ (ลูกเล่นพิเศษ / easter egg)
- คำสั่งระบบ – uptime, uname, dmesg, df, free, whoami (hardcoded to root), clear, reboot, help, sh
สามารถดาวน์โหลดโค้ดได้จาก GitHub (สัญญาอนุญาตแบบ BSD 3-Clause) และเนื่องจากเป็น Arduino sketch เพียงไฟล์เดียว คุณจึงสามารถแฟลชลงบอร์ดได้อย่างง่ายดายเพื่อเริ่มใช้งานได้ทันที โดยคำสั่งส่วนใหญ่จะคล้ายกับที่พบในระบบ Linux ใกล้เคียงกับสิ่งที่มีใน BusyBox และมีคำสั่งสำหรับควบคุมฮาร์ดแวร์ GPIO เพิ่มเติม
ตามที่ Hackaday, ระบุไว้ ระบบนี้ไม่มีหน่วยเก็บข้อมูลถาวร ดังนั้นทุกอย่างจะทำงานอยู่ใน RAM ซึ่งทำให้มีข้อจำกัดด้านการใช้งานอยู่บ้าง ในทางทฤษฎีอาจสามารถเพิ่มหน่วยความจำแฟลชภายนอกหรือใช้ EEPROM ได้ แต่ในทางปฏิบัติต้องคำนึงว่าไมโครคอนโทรลเลอร์ ATmega328 (ตระกูล AVR) มีทรัพยากรค่อนข้างจำกัด ได้แก่ RAM 2KB, EEPROM 1KB และ Flash 32KB โดยปัจจุบันมีการใช้งานหน่วยความจำดังนี้:
- โปรแกรม: ใช้ประมาณ ~38% ของ Flash ขนาด 32KB
- RAM: ใช้ประมาณ ~85% ของ SRAM ขนาด 2KB (มีการปรับแต่งแล้ว)
- ระบบไฟล์: รองรับไฟล์/ไดเรกทอรีได้สูงสุด 10 รายการ
- บัฟเฟอร์ DMESG: เก็บข้อความได้ 6 ข้อความ
มีความเป็นไปได้ในการพัฒนาเพิ่มเติม โดยมีฟีเจอร์ที่อยู่ในรายการ TODO ได้แก่ การบันทึกข้อมูลลง EEPROM และการควบคุมแบบ PWM/อนาล็อก โค้ดทั้งหมดเขียนขึ้นด้วยมือ แต่มีการใช้ Claude AI ช่วยในการจัดทำเอกสารประกอบ
แปลภาษาไทย : KernelUNO – A lightweight OS for Arduino UNO with a Linux-like shell

บรรณาธิการข่าวและบทความภาษาไทย CNX Software ได้มีความสนใจในด้านเทคโนโลยี โดยเฉพาะ Smart Home และ IoT

