這個國產操作系統不但開源,而且全用 lua 腳本開發


這個國產操作系統不但開源,而且全用 lua 腳本開發


一說到國產操作系統,可能很多同學會覺得根本就沒有這種東西。但是實際上,國內有很多優秀的國產操作系統,雖然有些並不是供普通消費者使用的,但是它們都各有特色,並且有些系統在其專業細分領域使用率已經很高了,今天推薦的 LuatOS 就是這樣一款物聯網操作系統。

項目名稱:LuatOS

開源許可協議:MIT

LuatOS 是運行在嵌入式硬件的實時操作系統,只需要少量內存的 flash 空間就能運行,用戶編寫 lua 代碼就可完成各種功能。

  1. 基於Lua 5.3.5
  2. 低內存需求, 最低32kb, 96kb flash空間
  3. 硬件抽象層兼容M3/arm/risc-v等
  4. 可測試,可模擬(qemu)
  5. 在線升級
  6. 可裁剪,可擴展

總體架構

這個國產操作系統不但開源,而且全用 lua 腳本開發

代碼示例節選

<code>local sys = require("sys")


sys.subscribe("WLAN_READY", function ()
print("!!! wlan ready event !!!")
-- 馬上進行時間同步
socket.ntpSync()
end)


disp.init("ssd1306")
display_str("Booting ...")


-- 配網回調
sys.subscribe("WLAN_PW_RE", function(ssid, password)
if ssid then
log.info(TAG, "airkiss GOT", ssid, password)
local conf = {ssid=ssid,password=password}
json.encodeFile(conf, "/wlan.json")
else
log.info(TAG, "airkiss fail")
end
end)


-- 業務流程, 聯網後定時發送溫度數據到服務器
sys.taskInit(function()
while 1 do
if wlan.ready() == 1 then
sys.wait(1000)
local temp = (sensor.ds18b20(28) or "")
display_str("Temp: " .. temp .. " rssi:" .. tostring(wlan.rssi()))
local t = {"GET /api/w60x/report/ds18b20?mac=", wlan.get_mac(), "&temp=", temp, " HTTP/1.0\\r\\n",
"Host: site0.cn\\r\\n",
"User-Agent: LuatOS/0.1.0\\r\\n",
"\\r\\n"}
socket.tsend("site0.cn", 80, table.concat(t))
log.info("network", "tsend complete, sleep 5s")
sys.wait(5000)
else
log.warn("main", "wlan is not ready yet")
sys.waitUntil("WLAN_READY", 30000)

end
end
end)


-- 主循環, 必須加
sys./<code>

項目地址:https://gitee.com/wendal/LuatOS

如果你想要認識更多國產開源操作系統,可以點擊瞭解更多看看。


分享到:


相關文章: