1
0
mirror of https://github.com/20kdc/OC-KittenOS.git synced 2024-11-27 04:48:05 +11:00

Fix my stupidity w/ nbox2018 (yes, again), improve insthead and README

This commit is contained in:
20kdc 2018-04-25 21:13:44 +01:00
parent cda9a8e939
commit a22ac86b2d
3 changed files with 36 additions and 56 deletions

View File

@ -1,10 +1,31 @@
# KittenOS NEO (pre-release) # KittenOS NEO
As per usual, no warranty, not my responsibility if this breaks, or if you somehow try to run it on an actual (non-OpenComputers) computer. As per usual, no warranty, not my responsibility if this breaks, or if you somehow try to run it on an actual (non-OpenComputers) computer.
The first commit is after I got the installer working again after the new compression system (BDIVIDE). ## Description
That's what the "SYSTEM HEROES" thing is about. At least in theory: "efficient. multi-tasking. clean. security-oriented".
KittenOS NEO is an OpenComputers operating system designed for Tier 1 hardware.
This means, among other things, it has an operating overhead limit of 192KiB real-world (on 32-bit or 64-bit).
Unlike the original KittenOS (now in the "legacy" branch), it is also designed with some attempt at cleanliness.
## User Guide
It is recommended that you take out your OpenComputers CPU, and shift-right-click until it says "Architecture: Lua 5.3", if possible.
Then simply download the installer from inst.lua here, rename it to "init.lua" and put it on a blank disk.
Finally, remove all other disks and reboot.
KittenOS NEO will install itself.
(This does not account for custom EEPROMs.)
NOTE: Attempting to run the KittenOS NEO installer as a program in an OS will fail,
giving you instructions as shown here.
## Authors & Licensing ## Authors & Licensing
@ -93,28 +114,6 @@ So anyone who wants the design to be made even cleaner should probably reread th
(In R0, editing the kernel causes 192K systems to fail to open filedialogs. I've fixed this in R1. (In R0, editing the kernel causes 192K systems to fail to open filedialogs. I've fixed this in R1.
I don't know if I've screwed this up in R2, because all this focus on usability improvements has probably gone back a step regarding memory use.) I don't know if I've screwed this up in R2, because all this focus on usability improvements has probably gone back a step regarding memory use.)
## Description
At least in theory: "efficient. multi-tasking. clean. security-oriented".
KittenOS NEO is an OpenComputers operating system designed for Tier 1 hardware.
This means, among other things, it has an operating overhead limit of 192KiB real-world (on 32-bit or 64-bit).
Unlike the original KittenOS (now in the "legacy" branch), it is also designed with some attempt at cleanliness.
## User Guide
It is recommended that you take out your OpenComputers CPU, and shift-right-click until it says "Architecture: Lua 5.3", if possible.
Then simply download the installer from inst.lua here, rename it to "init.lua" and put it on a blank disk.
Finally, remove all other disks and reboot.
KittenOS NEO will install itself.
(This does not account for custom EEPROMs.)
## Policy regarding updates ## Policy regarding updates
KittenOS NEO's installer, including the full KittenOS NEO base operating system, is 65536 bytes or below. KittenOS NEO's installer, including the full KittenOS NEO base operating system, is 65536 bytes or below.
@ -133,24 +132,7 @@ The tools that I haven't gotten rid of are the ones that still work properly.
Firstly, for an uncompressed installer (just to test installer basecode), you use `mkucinst.lua`. Firstly, for an uncompressed installer (just to test installer basecode), you use `mkucinst.lua`.
This kind of has some overlap with `package.sh` so that needs to be dealt with at some point. Secondly, for a compressed installer, you use `package.sh`.
Secondly, for a compressed installer, you use `package.sh` to rebuild `code.tar` and `inst.lua`, which also prepares the final structure of the repository to upload. That rebuilds `code.tar` and `inst.lua`, and also prepares the final structure of the repository to upload.
## Kernel Architecture
KittenOS NEO is an idea of what a Lua-based 'efficient' microkernel might look like.
Scheduling is based entirely around uptime and timers,
which cause something to be executed at a given uptime.
That said, for a microkernel it's still a bit larger than I'd have hoped.
If anyone has any ideas, put them in an issue? If they're not too damaging, I'll use the saved space to add a thank-you-note to them in the kernel.
## Installer Architecture
The installer is split into a generic TAR extractor frontend `insthead.lua` and a replacable compression backend (written in by relevant tools - in current versions, `heroes.lua` is where it starts).
There was more details on this but the details changed.

View File

@ -1,13 +1,10 @@
-- KOSNEO inst. -- KOSNEO inst.
-- This is released into the public domain. -- This is released into the public domain.
-- No warranty is provided, implied or otherwise. -- No warranty is provided, implied or otherwise.
local C, O, G, D = component, computer C, O, G, D = component, computer
assert(C, "To install, please copy as init.lua to a blank disk or a system to update, then remove all other disks and reboot.")
if not C then sa = C.list("screen", true)()
error("Copy as init.lua to a blank disk, then remove all other disks and reboot. Thank you!")
end
local sa = C.list("screen", true)()
if sa then if sa then
G = C.list("gpu", true)() G = C.list("gpu", true)()
if G then if G then
@ -27,16 +24,16 @@ end
D = C.proxy(O.getBootAddress()) D = C.proxy(O.getBootAddress())
local tFN,tFSR,tW,tF="Starting...",0,0 tFN,tFSR,tW,tF="Starting...",0,0
local function tO(oct) function tO(oct)
local v = oct:byte(#oct) - 0x30 local v = oct:byte(#oct) - 0x30
if #oct > 1 then if #oct > 1 then
return (tO(oct:sub(1, #oct - 1)) * 8) + v return (tO(oct:sub(1, #oct - 1)) * 8) + v
end end
return v return v
end end
local function tA(s) function tA(s)
if tW > 0 then if tW > 0 then
tW = tW - 1 tW = tW - 1
return return
@ -74,7 +71,8 @@ local function tA(s)
end end
end end
local sN,sC,dieCB,sector=0,0 sN, sC = 0, 0
function sector(n) function sector(n)
tA(n) tA(n)
sN = sN + 1 sN = sN + 1

View File

@ -232,9 +232,9 @@ local programStates = {
end end
return { return {
"Tinting. Enter 6 hex digits, ", "Tinting. Enter 6 hex digits, ",
" which are 0 to 9, and A to F. " " which are 0 to 9, and A to F. ",
a, a,
b, b
} }
end, end,
function (ka, kc) function (ka, kc)