一說到國產操做系統,可能不少同窗會以爲根本就沒有這種東西。可是實際上,國內有不少優秀的國產操做系統,雖然有些並非供普通消費者使用的,可是它們都各有特點,而且有些系統在其專業細分領域使用率已經很高了,今天推薦的 LuatOS 就是這樣一款物聯網操做系統。git
項目名稱:LuatOS
項目做者:Wendal
開源許可協議:MIT json
LuatOS 是運行在嵌入式硬件的實時操做系統,只須要少許內存的 flash 空間就能運行,用戶編寫 lua 代碼就可完成各類功能。api
代碼示例節選服務器
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.run()
項目地址:https://gitee.com/wendal/LuatOS
若是你想要認識更多國產開源操做系統,能夠點擊下面的連接看看:https://gitee.com/explore/os架構