Right, and that's one of the reasons many remained with good old SunOS at the time.Solaris did make his own "systemd" init system.
Right, and that's one of the reasons many remained with good old SunOS at the time.Solaris did make his own "systemd" init system.
I am sure cannot replace systemd, as FreeBSD does not use systemd.It IS replacing systemd! Once rcd is implemented, there will be no need for init and I'm sure its functionality will be put into rcd soon, ceasing init to exists.
Looks like every system gets it's own systemd apocalypses.Right, and that's one of the reasons many remained with good old SunOS at the time.
At some point in time we will have two sets of startup scripts: some ports will provide both rc and ucl
And why Lua ?
It IS replacing init! Once rcd is implemented, there will be no need for init and I'm sure its functionality will be put into rcd soon, ceasing init to exists.
When systemd was first introduced with unit files the promise was you'd be able to continue using good old scripts. Then they eventually dropped it. Just because something is supported now doesn't mean it will continue to be supported into the future.Psst. Read the docs on libucl. It accepts json but does not require it.
Of course it does not, I just mistyped. Sorry.I am sure cannot replace systemd, as FreeBSD does not use systemd.
I know that bootloader scripts are written in Lua, but how often do you need to alter them or even look into them ? I'm using FreeBSD for quite some time (since '96) and I have never had any reason to. Yet, I do fix rc scripts occasionally and I write my own. What's more, I do very often debug startup issues which takes me look into, read and understand all these scripts. Now you tell me to learn Lua to perform my work ? Thank you bro!In other notes, sh is shitty, lua is fine, one can do better, but the FreeBSD loader already uses lua it goes fine.
Looks like every system gets it's own systemd apocalypses.
UCL is a configuration format. Not a script in and of itself.
Because Lua is incredibly flexible for its resource footprint (the interpreter is very small). Think it's of as Python or Perl, but for system management and automation. Lua is optional too, you don't have to use it.
Again, I read and watched the video, I looked into the code. I think I got he's idea quite well. FreeBSD will have systemd.You didn't read the thread entirely.
Baptiste Daroussin specifically stated in that very thread that is it not replacing init. That would be a mistake.
I'm quite old to know how this all ends, see my comment above. To add to that, we will have lots of broken ports which will be deprecated and removed becauase noone will want (have time) to fix them.Eventually, once the community gets acquainted with rcd and most port scrips get converted - it'll replace classic rc.d.
And, how come Lua is better than Shell anyway ?
Perl is incredibly expressive. We have Perl in base, why do we need Lua separately for startup scripts ?Bourne shell is very weak when expressing, holding or processing collections (arrays, lists, hashtables etc.).
With all the charm of prettified colorized logs.One more thing regarding rcd. It says rcd runs services in parallel. Now imagine what a mess of intermixed diagnostic messages from different services will we get in our dmesg and in /var/log/messages ? One will get one's brain broken apart trying to resolve issues using such output. To overcome this an analog of systemd-journald has to be introduced. And it will be, I'm sure.
I was joking about checkpoint's comment.You have to understand; systemd was greatly inspired by SMF/launchd. New rcd uses native FreeBSD interfaces/features to provide similar functionality of its predecessors. Much of the Solaris and Mach kernels were mangled to allow what SMF/launchd does. FreeBSD avoids a lot of this.
And a lot of a hell to work with.Perl is incredibly expressive. We have Perl in base, why do we need Lua separately for startup scripts ?
journald was added mostly because....hell I don't know. Probably because the entire ecosystem was designed by people that refuse to learn from the past and are smug about their ignorance of it.One more thing regarding rcd. It says rcd runs services in parallel. Now imagine what a mess of intermixed diagnostic messages from different services will we get in our dmesg and in /var/log/messages ? One will get one's brain broken apart trying to resolve issues using such output. To overcome this an analog of systemd-journald has to be introduced. And it will be, I'm sure.
These two features of proposed rcd is very very much questionable. Do we actually need faster boot ? How much faster and what is the tradeoff ? If the overall improvement is a couple of seconds for which we pay by having more complex startup system with lesser clarity - no, thanks. Parallel startup will make it a lot more difficult to debug startup issues besides the problem of having a dedicated logging subsystem (journald)."Parallel startup" and "faster boot times" is mostly an ugly hack. Ironic from systems that claim they want to do away with other ugly hacks like PID files.
Depends on how you write your code. It's absolutely possible to write clear and readable scripts in Perl. The opposite is also true - you can write a total mess in Lua. Just don't use every possibly funky feature of a language.And a lot of a hell to work with.
This is the proverbial horse that has been completely flogged.These two features of proposed rcd is very very much questionable. Do we actually need faster boot ? How much faster and what is the tradeoff ?
Exactly. My laptop boots somewhat 15 secs, more than a half of that time is brining up wifi, dhcp, ntp, etc. Cannot see how this can be improved with rcd.Part of the dependencies problem is they cascade and may have variations:
Simple example, NTP.
NTP depends on networking to be up
Networking depends on getting an IP address, which may be static or may be DHCP
Getting an IP address depends on the interface: WiFi may need to be loaded and associated with some external device.
Now toss in a service that depends only on NTP and you have the hidden dependencies.
From my experience, system startup takes only a tiny fraction of overall booting time. BIOS (UEFI), RAID and other hardware init take much more. Improving system startup time make sense only for virtual machines, but you can also do that by clever ordering your rc scripts and by removing unnecessary stuff - just don't let every installed package to put it's script into rc.d. Ok, we can make it boot 2-3 seconds faster, but are we willing to pay for that by extra hours debugging and unwinding all these parallel running UCL scripts in case of trouble ?This is the proverbial horse that has been completely flogged.
It always boils down to "if you reboot you want to get back to working quicker", so yeah, a few seconds doesn't sound like much, but a user booting a laptop it's forever. A server that has undergone a maintenance window and needs to be back up working to satisfy a fine nines SLA? Again huge.
Why do you think this needs a dedicated logging subsystem?
Perl is incredibly expressive.
this is completely irrelevant. if you don't enable it in rc.conf it doesn't matter if you have 3 or 3000 scripts in [/usr/local]/etc/rc.djust don't let every installed package to put it's script into rc.d.
sh(1) doesn't change much either.Perl? You are kidding right?
Larry Wall has been gone from Perl for a VERY long time, and CPAN was completely awful when we were all supposed to be using it. Perl-7 development has not gone anywhere since 2021 and there is no launch date for Perl-7.
Let's not go back to the future.
The difference is that CPAN went down (as in they turned OFF CPAN) and then you literally could not use entire perl scripts because you had no way of getting the dependent perl modules that were dependent in those perl scripts. Not to mention that in (NON-INTERNET) connected environments there was no way to get all of the various perl script dependent modules - because you needed access to CPAN.sh(1) doesn't change much either.