I can tell you that it is possible to boot Linux to an X11 application using OpenGL, ALSA, etc. in a usable state in about 5 seconds. Pump It Up does it (FWIW, the various versions take varying amount of time, ranging from about 5 on the fastest ones to about 12 on the slowest ones). The bootloader takes about 1 second to load the OS and game program off the hard drive, it sits there for about 4 seconds visibly doing nothing (the OS is starting), then the Andamiro logo pops up, and the game is ready for a coin. On free play, the title music even plays immediately and prompts you to hit the start button (which is actually the center panel of the dance stage).
Having extensive experience with the OS, I can tell you I'm not at all surprised. The biggest bottleneck is getting everything read off the hard drive and into RAM. With a few simple tricks, you can make this all happen sequentially (which is fast); then everything runs out of RAM. The kernel only takes about 0.75-1 second to start (on a modernish PC) and hand control off to init, at which point you're in full control of what happens by how you contruct your startup scripts. You don't really need to load much for a dedicated MAME machine other than maybe udev and an X server. udev takes about 1-1.5 seconds (including the time to load all the drivers it loads), and the X server takes about another second or so if everything's in RAM already. It's tough to measure since the monitor generally takes some time to change video modes. udev also isn't strictly required, but it makes things a lot easier, especially for users who aren't overly familiar with Linux. If your frontend and MAME build are designed to draw directly to the framebuffer (as most of what X offers isn't really needed, here), you don't even need X. Heck, you might be able to get by without init: just have the kernel start your frontend directly!
For an emulation scenario, your ROMs and previews would have to load off the hard drive at this point (just like most arcade games load up their actual game assets directly off the drive), which will slow things a little bit, but you should be able to get a frontend up within 5 seconds after handing control over to the bootloader from the BIOS.
Remember, Linux is regularly used as an "embedded" OS. Many many TV set-tops, in-car entertainment systems, handheld devices, children's toys, wireless routers, etc. run it without your knowledge. Extensive development goes into making it as easy as reasonably possible to run in a minimal environment. We're talking 100-300MHz CPUs with 16-32MB of RAM. Your 3GHz PC with a gig of RAM is an absolute monster in comparison. I've seen boot times on embedded targets of less than a second when using XIP from NOR flash, though these are usually "headless" applications.
Now, I will agree that the process of stripping down Linux to the point I'm talking about may not be easy for someone not familiar with it. You're not going to be able to grab Ubuntu or Fedora and get the kind of start-up times I'm talking about. You really have to go the other way: start with something as minimal as possible and add on to it, and this is in fact probably beyond the abilities of the average arcade hobbyist, especially one who is not well versed with Linux systems.
I don't know how much it's possible to strip down Windows. The commercial arcade games and other semi-embedded products I've seen that run on Windows suggest that the answer is "not much", but then the developers may just be lazy. I've seen boot times (BIOS done to OS starting the first application, though Windows does the "I'm still loading stuff in the background thing") on the order of 15-20 seconds for the most stripped down builds.
I'm not trying to rag on Windows too badly, here. While I can't say I'm a fan of Windows in any capacity, it is very familiar to most users while Linux is not, and Microsoft has made quite a bit of progress on its usability in "PC embedded" environments. However, Linux (or one of the BSDs) seems like a great option for someone who wants a fairly customizable base and doesn't want to deal with licensing costs. It certainly seems like a better option than trying to reverse engineer an old OS that was never meant to be overly flexible and probably isn't licensed in such a way that it's free to use, anyway.
I don't disagree with anything that you've said... that's why I was pretty vague with my answer. By "adding stuff on" I didn't specifically mean adding bits to the starup procedure or any one thing specifically, I meant adding things to a FE that is going to run in a generic linux environment, other emulators, ect....And also the OS, but not specifically it.
As you said, there is a big difference between possible and practical.
Linux's biggest hurdle isn't the OS itself but rather it's software support. Many emulators today flat out don't have a linux version, and forget about front-ends and support programs. Heck even MAME, the stoic stand-out of cross-compatability has many of it's features crippled in the linux build. Wanna use mame's output system? Not in linux. And this has nothing to do with linux's inability to do such things, in many instances linux can do it better.... but software developers, including mame devs, aren't really interested in writing things for a OS that doesn't have many benefits over windows in this particular application.
It's one of those "you could" vs "you will" deals.
I could write a custom OS in pure assembly that would boot up instantly, but I'm not going to simply because you would have to either integrate all the emulators into it or write new emulators from scratch.
The people that are willing to work with linux when it comes to this hobby typically aren't versed enough with it to do the kind of things you are talking about in terms of programming and configuring. So the linux fe we get are either ugly or run in X or something, making for a terribly slow bootup, sometimes slower than a stock windows build.
Windows isn't actually slow in terms of bootup at all if you have the proper hardware and set it up properly. The problem is most people don't set it up properly.
I've got a classics cabient I setup and it's bootup is darn near perfect inho. I haven't set there with a stopwatch but it's pretty darn snappy.
First off I'm using an old dell p4... the kind you typically see an an office environment. They have insainely fast bios boots, which believe it or not is typically the longest part of a windows bootup.... this is all on the bios, windows has nothing to do with it. The machine has an arcade monitor in it that turns on as the pc is turned on. By the time the monitor is warmed up you see the windows boot screen.... never see the bios, it's perfect.
Then it sits at the boot screen for maybe a second or two, sits at the windows desktop for maybe 5 seconds or so and you are instantly into a custom FE that I wrote specifically for the machine.
The reason it boots so quickly comes down to a few things:
I'm running XP...... no other windows version is better suited than XP. You get the stability of 2000/xp without the bloat of vista/7.
I have everything related to the desktop turned off. Even having several icons on the desktop (regardless of if the desktop is hidden or icons are turned off) will increase the boot time dramatically.
I have zero "registered" programs and file types on the pc. By registered I mean anything that would make an entry in the windows registry. 25-50% of a windows bootup time involves reading the stupid registry.
Networking and internet access is flat out disabled. That's another 10-20% of your boottime as windows tries to find your domain/workgroup even if the cable is unhooked.
I have one harddrive in it and few few folders on it. Windows does all kinds of crazy stuff in regards to searching disks when it boots. Thumbnails also slow a system down, those typically need to be disabled as well.
I mean could it be faster? Sure. But considering the monitor has to warm up before I can play anyway and the FE has to get all it's ducks in a row as well I don't think it could get THAT much faster regardless of the software and pc hardware. If I was that impatient I wouldn't have the patience for this hobby anyway.
And as much as I like the idea of a mame machine that boots up instantly in theory, in parctice it isn't all that useful. I mean myself when I want to play I turn it on, and leave it on until I'm done playing and then turn it off. I don't walk over, turn it on to play a single game of pacman, then turn it off when I'm done and come back 5 minutes later only to turn it on again to play mspacman.