views:

301

answers:

7

I created a Java application which is the only application active on a workstation. (Similar to a kiosk system)

The problem is that the application has to be up and running as fast as possible after starting the computer.

I'm wondering which one of the major operating systems can be configured to provide the shortest startup time?

I'm using 3rd party audio and graphics libraries so my choices are limited to Windows XP/Vista, Linux and Solaris.

Currently on my dual-boot machine Fedora takes a little longer than Vista, but on the other hand I don't have much experience with tuning boot time of Linux. So if someone knows that Linux could have much better chances of a quick startup then I would put my time in there.

I'd also appreciate general hints on tuning boot times and Java startup times.

+4  A: 

If you're running your application inside of a kiosk like machine where you don't need any other applications running, and you know which drivers/modules you'll need to load ahead of time, I think your best boot time will come from Linux.

It will just take some time to fine tune your boot process to load all the proper software in the fastest time possible.

Justin Niessner
+3  A: 

For such a task a fine tuned Linux is best suited. You can take a look at some more customizable distro, where you can control which drivers and applications get in.

Debian is highly modularized and customizable, so you can get really good boot speed.

Another option can be Gentoo - there you can strictly choose what to compile and include.

Sunny
+5  A: 

I would look at BootChart to optimise your Fedora boot time. If you're running one app, then you can certainly remove a lot of the services that Fedora would normally come configured with.

I would also point out that perhaps for the amount of time you're going to spend optimising this, you may be better off investing in the appropriate hardware (e.g. SSDS and similar, if boot time is governed by your disk). Optimising can be a major time sink.

Brian Agnew
Yes, I'll do that. It's a private project so I'm not forced to use crappy hardware :)
DR
+1  A: 

My guess would be Windows XP embedded. I've found that Java apps start up fairly quickly under Windows, particularly if you use a client VM.

It is extremely likely that your 3rd party vendors will support XP embedded (particularly if you are a big customer to them). It is very similar to normal XP, just cut down.

If you're making a kiosk type app, why do you care about boot time?

MarkR
+3  A: 

Linux with SSD drives.

Andrew
+1  A: 

Fedora can be easily optimized if you want to only run a single java application. There are many services which are pre-configured during boot time and they can be omitted. You could also go for SSD drives to improve the boot-time of the system, and at the same time if you spend some time on optimizing the boot chart, it would solve your problem.

stack programmer
+2  A: 

I'd also suggest a linux distro. E.g. Gentoo with initng (initng.org). Initng parallelizes the startup process. There are other startup system with which your system will be up in a few seconds. And of course, fast hdds and enough ram for java ;)

felix