3 ms·
Nothing. This is because system is not just "kind of fluff", but in reality, all current computers are small service center with near all need service equipment
by simne 3y ago
Nothing. This is because system is not just "kind of fluff", but in reality, all current computers are small service center with near all need service equipment, running on startup.
They testing floppies, CDs; check for printer on LPT; spent many time to figure out what USB stuff connected to computer, etc, etc.
And don't forget, setup scripts are basically running on extremely slow Shell language, which is interpreted and keep simple for considerations of system service. - For example, some systems used Perl for shell tasks, but now it avoided, because too hard to support Perl itself, so people decided to return to Shell and concentrate on it.
Second, most current systems are monolith type, so they cannot load-unload drivers on demand, and have to load some typical configuration as one big piece at startup and check all it's parts.
You could manually disconnect many checks in startup scripts, you could even customize list of your drivers, but these are really big hassles, and big amount of work.
Some systems now remade to include trick, so their startup running on background, so some things you will got much faster, but if you try to use them too soon, you will see, that some things you may need, are not accessible already, but will appear later, for example on my Ubuntu on core i7, SATA SSD, I measured from 30s to about 100s before all appear.
To be honest, exist many minimal OSes, with microkernel, compiled shell, and other features, making them startup very fast, but unfortunately, none of them considered mass production, all are experimental.
Even special OSes, like Ubuntu touch, considered for Smartphones, are mostly considered as secondary project (non main priority), so even with all their limitations, you will not got even as workable solution as classic Ubuntu.
- Someone 3y agoThe OP isn’t asking about boot time. > Second, most current systems are monolith type, so they cannot load-unload drivers on demand Which current ones? I don’t see that approach work with USB devices. > And don't forget, setup scripts are basically running on extremely slow Shell language, which is interpreted and keep simple for considerations of system service. - For example, some systems used Perl for shell tasks Between the lines, that implies Perl is faster than shell for init scripts. I’m not convinced it is. Perl is interpreted, too, and larger, so likely has a larger startup time. It has more bells and whistles that may make it do what’s needed faster than a shell script, but I don’t think many init scripts need those bells and whistleS. Also, do the likes of macOS and Linux still have many init scripts? I thought that launchd (on macOS) and systemd (on Linux) were mostly configuration driven. It is true, though that booting gets slower if the OS has to probe what hardware is available and cannot assume that hardware to be ready for work.
- simne 3y ago> The OP isn’t asking about boot time. But unfortunately, any other startup (wake up, etc), implies, drivers enumeration, device restart, because huge amount of legacy in world. > I don’t see that approach work with USB devices. Ha! If your system is 100% from modern (non-legacy) USB devices, you are lucky as god! - Exists "legacy free hardware", but they are rare. Unfortunately, nearly all modern x86 computers have large number of legacy devices, from CPU starting in real mode, to chipset devices, still existing Floppy drive controller in chipset, ATA (not-SATA, but legacy ATA) controller, LPT, Serial, and many, many others. If you will disable that legacy, startup time will be radically shortened. > Perl is interpreted, too, and larger, so likely has a larger startup time Yes, but no. Perl is larger, this is true, but no one shell (except few exceptions, not wide used), considered for universal computing, so none optimization done. But Perl have rich history of heavy duty working, so it from some versions made from start as heavily optimized high effective platform. Perl even have some history of JiT compiler, unfortunately not long. To be strict, Perl still have good potential as idea, but unfortunately, Perl community becomes too broad, distributed, to focus on development. - Just Perl don't have resources to implement features, now considered typical for platform - zero startup time, compilation to native code, JiT. But some things still working well, for example, you could precompile code and connect precompiled to working Perl interpreter, so will be zero time startup. Also, fortunately, Perl already have working multithreading with rich software support, and mature native interfaces, so you could optimize close to hardware languages. If somebody will have success in consolidating Perl community, also possible to find resources, to implement modern features, like JIT.