Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

Recommended Posts

The world as I knew it had a problem.
A plenty of bootloaders had already existed, and they'd all shared the same flaw: it wasn't me who made them.
I've decided to put an end to that.


spacer.png

Cyan is a multi-bootloader and a replacement for the plain Lua BIOS. The features it encompasses include:

  • a whitelist to prevent random strangers from tampering with the computer
  • a Lua interpreter to test your sudden ideas
  • support for hot-plugging filesystems if you've forgot to insert a floppy
  • the ability to format or label a filesystem, while we're at it
  • loading the boot payload from the internet when you can't afford an HDD
  • and a gorgeous, minimalistic design

Pictures:


spacer.png

spacer.png

spacer.png

spacer.png

To install on OpenOS, run the following:

wget -fq https://raw.githubusercontent.com/BrightYC/Cyan/master/installer.lua && installer.lua

Or, if you're a MineOS user, look for the program (bearing the same name) at your local AppMarket.

Here's how the whitelist works. You add trusted users to the list when the installer asks you. Then the bootloader will ignore any signals from other people. That's it.

Oh, and you can also choose a less restrictive option: the Cyan BIOS can wait for input from a trusted user. Before that an authorized person can't access the bootloader.

Lastly, a couple of words about the Lua interpreter. It doesn't wrap the output, and the input command must be less than the screen width. The last restriction can be circumvented by copy-pasting the command.
In addition to that, the bootloader defines the following functions:

  • os.sleep([timeout: number])
  • proxy(componentName: string): table or nil — returns a component proxy by its name (cf. component.proxy, which takes an address)
  • read(lastInput: string or nil): string or nil — a primitive io.read()
  • print(...)

The source code for the curious: https://github.com/BrightYC/Cyan

P. S. Big thanks to @Fingercomp for his lecture about string escapes and writing this text.
 

Share this post


Link to post
Share on other sites
5 hours ago, Nath_SoM said:

what went wrong?

Hi. Can you flash eeprom with this code and send me full traceback? 

local a,b,c=component.proxy(component.list("internet")()).request("https://raw.githubusercontent.com/BrightYC/Cyan/master/cyan.lua"),""while true do c=a.read(math.huge)if c then b=b..c else break end end;a.close()local c,d=load(b,"=stdin","t")if c then local e,d=xpcall(c,debug.traceback)if not e then error(d)end else error(d)end

Share this post


Link to post
Share on other sites
5 hours ago, Nath_SoM said:

It seems like this fixed the eeprom? Now it booted into my openos install, and didn't print any errors.

I have no idea. This eeprom just uncompressed, without any fixes D=

What version of OC do you have?

Share this post


Link to post
Share on other sites
1 hour ago, BrightYC said:

I have no idea. This eeprom just uncompressed, without any fixes D=

What version of OC do you have?

Nevermind it broke again. I'm using Opencomputers ver. 1.7.2.image.png.ca4b16b5e484499ec0ff9c3c27ff0133.png

Share this post


Link to post
Share on other sites
1 hour ago, Nath_SoM said:

Nevermind it broke again. I'm using Opencomputers ver. 1.7.2.

do you have a 3d printer? btw i fixed it. Thanks for traceback, just run installer again.

Share this post


Link to post
Share on other sites
17 minutes ago, BrightYC said:

do you have a 3d printer? btw i fixed it. Thanks for traceback, just run installer again.

yea i have a printer, i'll try installing it again

Share this post


Link to post
Share on other sites
On 7/19/2020 at 6:06 PM, Atlasim said:

I request feature ;

 

default os boot ( when not pressing key for 2 seconds boot default )

This feature already exists. EEPROM selects the last saved drive, which was automatically selected or selected in the boot menu.

P. S may not work. Tell me if it isn't

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.