--:Minify:-- local kernel = ... kernel.log("Loading init system...") kernel.log("InitPath: " .. kernel.config.initPath) local initOk, initErr = pcall(kernel.vfs.access, kernel.config.initPath, "rx") if not initOk then kernel.PANIC("Init binary not executable: " .. kernel.config.initPath .. " (" .. tostring(initErr) .. ")") end local handle = kernel.vfs.open(kernel.config.initPath, "r") if not handle then kernel.panic("Failed to open "..kernel.config.initPath) end local data = kernel.vfs.read(handle, 1024 * 1024 * 4) if not handle then kernel.panic("Failed to read "..kernel.config.initPath) end kernel.vfs.close(handle) local initFunc, err = load(data, "@init", "t", kernel._U) if not initFunc then kernel.PANIC("Failed to load init system: " .. err) end kernel.tasks["1"] = { coro = coroutine.create(function() for i,v in pairs(kernel.processes) do kernel.log("Spawning kernel task "..i) syscall.spawn(function() local status, err = pcall(v) if not status then kernel.log("Error executing kernel task '" .. i .. "': " .. err, "ERROR", 0xFF0000) else kernel.log("Successfully executed kernel task: " .. i) end end, i, nil,nil,nil,true) end local ok, err = xpcall(initFunc, debug.traceback, kernel) if not ok then kernel.panic("Init system crashed: " .. tostring(err)) else kernel.panic("Init system exited: " .. tostring(err)) end kernel.saveLog() end), name = "init", status = "R", pid = 1, tgid = 1, uid = 0, fd = {}, envars = {}, args = {}, exit = "", sleep = 0, ivs = 0, vs = 0, parent = kernel.kernelTask, siblings = kernel.kernelTask.children, children = {}, syscallReturn = {}, cwd = "/", timeSlice = 0, lastTime = 0, totalTime = 0, numRuns = 0 } kernel.log("created init task with PID 1") kernel.log("Initializing init system...")