#red butterfly linux

31 messages · Page 1 of 1 (latest)

west nest
#

an autistic linux distribution with a bit cursed idealogy.

stack:

  • malloc => mimalloc
  • bootloader => limine
#

its semi declarative with a configuration that uses lua.

#

well more stack to be worked on and it uses rbpt a custom package manager written in Zig.

west nest
#

it would be declarative till some extent like:

  • user management
  • package management
  • system service management and disks
  • use flags
  • timezones, locales, keymaps, hostnames

For now.

west nest
#

ahhh

worldly smelt
#

based

west nest
#

update:
package manager declaration would use lua

#

the main reason for going with lua is beacuse:

  • its tiny and SANE
  • community can work on it.
  • parsing lua with zig is easy.
#

the package manager would be using zig.

#

this isnt GNU friendly except for glibc ( compatibility ❤️ ) but the core would use musl for static binaries so that the system is never brekable

#

and another thing is that kernels are to be managed manually like the package manager is not responsible for the kernel.

west nest
#

@worldly smelt mate what shell do you use?

worldly smelt
#

sometimes bash, sometimes oksh (openbsd's shell)

west nest
#

aight

#

heres what i PLAN to use as of now

#

i will try this core system:

the absolute core ( anti GNU and fully static and trust it always works )..

  • git
  • lua
  • zig
  • rbpt
  • mimalloc ( a smaller memory allocator made by m$ but faster than anything else )
  • busybox instead of coreutils
  • musl ( only use to link the core so that you always have a system that can be recovered even when botched )
  • nitro ( the init system )
  • mold ( the linker )
  • clang + llvm ( c/cpp compiler )
  • doas ( instead of sudo )
  • eudev ( lets see)
  • dhcpcd ( wired connections )
  • eiwd ( wireless daemon )
  • shell? [ tell me on #1469019871114166514 what do you guy use ]
#

these components apart from the kernel and dracut would be static linked and always use musl so that the system always boots whereas userland can use glibc/musl as per your liking.

#

i plan this architecture for now.

worldly smelt
#

are you using busybox just for coreutils or for the other stuff it provides (init, runit clone, vi, etc)

#

if its just for coreutils you cpuld use something like sbase+ubase

west nest
#

the server

#

this os has a slow dev as i have exams and stuff

west nest
#

since its gonna be declarative so lua is used as the medium for declarative config for now.

#
local users = require('users.lua')

-- we start with defining repositories 
repos = {
  paddock = {
    path = "/etc/rbpt/repos/paddock",
    priority = 1 -- higher the priority, more the preference
  }
}

-- plugins or addons exist like programming libraries or something.
-- the package should be usually named as $pkgname-$plugin
plugins = {
  python = {
    "colorama",
    "tensorflow"
  },
  firefox = {
    "addblocker"
  }
}

-- This is mandatory to fill, irrespective of anything.
systemPkgs = {
  "hyprland"
}

-- the user may define their user pkgs as
-- users.username.userPkgs = {}
users.rik.userPkgs = {
    
}
#

TODO: - [ ] work on use flags and individual package modifications

#

you would have a git repository on /etc/rbpt/repos and sync basically runs git pull to get the latest package changes.

#

since we use zig.. first of our tasks is to make a lua to zig where once the lua file is executed, the contents are available as a zig hashmap and can be parsed

#

the main problem is the dumping part but pretty sure it can be doable.

west nest
#

a hiatus tiny