mirror of
https://github.com/20kdc/OC-KittenOS.git
synced 2024-11-23 10:58:06 +11:00
Fix my stupidity w/ nbox2018 (yes, again), improve insthead and README
This commit is contained in:
parent
cda9a8e939
commit
a22ac86b2d
70
README.md
70
README.md
@ -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.
|
||||
|
||||
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
|
||||
|
||||
@ -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.
|
||||
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
|
||||
|
||||
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`.
|
||||
|
||||
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.
|
||||
|
||||
## 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.
|
||||
That rebuilds `code.tar` and `inst.lua`, and also prepares the final structure of the repository to upload.
|
||||
|
||||
|
18
insthead.lua
18
insthead.lua
@ -1,13 +1,10 @@
|
||||
-- KOSNEO inst.
|
||||
-- This is released into the public domain.
|
||||
-- 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
|
||||
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)()
|
||||
sa = C.list("screen", true)()
|
||||
if sa then
|
||||
G = C.list("gpu", true)()
|
||||
if G then
|
||||
@ -27,16 +24,16 @@ end
|
||||
|
||||
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
|
||||
if #oct > 1 then
|
||||
return (tO(oct:sub(1, #oct - 1)) * 8) + v
|
||||
end
|
||||
return v
|
||||
end
|
||||
local function tA(s)
|
||||
function tA(s)
|
||||
if tW > 0 then
|
||||
tW = tW - 1
|
||||
return
|
||||
@ -74,7 +71,8 @@ local function tA(s)
|
||||
end
|
||||
end
|
||||
|
||||
local sN,sC,dieCB,sector=0,0
|
||||
sN, sC = 0, 0
|
||||
|
||||
function sector(n)
|
||||
tA(n)
|
||||
sN = sN + 1
|
||||
|
@ -232,9 +232,9 @@ local programStates = {
|
||||
end
|
||||
return {
|
||||
"Tinting. Enter 6 hex digits, ",
|
||||
" which are 0 to 9, and A to F. "
|
||||
" which are 0 to 9, and A to F. ",
|
||||
a,
|
||||
b,
|
||||
b
|
||||
}
|
||||
end,
|
||||
function (ka, kc)
|
||||
|
Loading…
Reference in New Issue
Block a user