Re: Rust: kernel vs user-space
- In reply to: Konstantin Belousov : "Re: Rust: kernel vs user-space"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 04 Sep 2024 23:59:15 UTC
Konstantin Belousov wrote in <ZtjVms7FdYTWCe_U@kib.kiev.ua>: |On Wed, Sep 04, 2024 at 06:42:37PM +0200, Stefan Esser wrote: |> Am 04.09.24 um 17:21 schrieb Bob Bishop: |>>> On 4 Sep 2024, at 15:37, Stefan Esser <se@FreeBSD.org> wrote: |>>> Am 04.09.24 um 11:52 schrieb Mark Delany: |>>>> On 04Sep24, David Chisnall apparently wrote: |>>>>> There are lots of control-plane things that I'd love to see |>>>>> written mostly in Lua, |>>>> It was remiss of me to not mention Lua given that it's already \ |>>>> in the project. ... |>>> Here is ldconfig in LUA, written more than 2 years ago, for example: |>>> |>>> https://github.com/stesser/ldconfig/blob/main/ldconfig.lua ... |The ldconfig utility is critical to fully configured multiuser FreeBSD |state. Right now the utility depends on rtld and libc (ignoring the |whole stuff at and below kernel). So any problem in either of rtld or |libc which prevent ldconfig from run are critical. | |If rewritten in LUA, the utility has the same dependencies on rtld and |libc, plus LUA runtime. Which, by itself, bring in |/usr/libexec/flua: | libm.so.5 => /lib/libm.so.5 (0x8010b1000) | libedit.so.8 => /lib/libedit.so.8 (0x8010ed000) | libprivateucl.so.1 => /usr/lib/libprivateucl.so.1 (0x801129000) | libc.so.7 => /lib/libc.so.7 (0x80114f000) | libtinfow.so.9 => /lib/libtinfow.so.9 (0x801552000) |i.e. libm, terminfo, ucl (?), libedit. Then, flua runtime lives in /usr, |while ldconfig is reasonably located in /sbin. | |There are other considerations than just the language accessibility when |we consider the whole system. Compared to monsters like clang/llvm FreeBSD *could* very well include two lua binaries in maybe half a megabyte. For Linux lua includes two make targets, as i learned just now. FreeBSD NetBSD OpenBSD freebsd: $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc" ... Linux linux: linux-noreadline linux-noreadline: $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl" linux-readline: $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE" SYSLIBS="-Wl,-E -ldl -lreadline" --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)