Now imagine this situation. I have a computer which has 2 operating systems installed - Windows XP and Windows 7. On booting menu is displayed where I can select which operating system I want to load. When I do nothing, Windows 7 loads (after some delay). This computer is connected to LAN and has Wake-On-Lan function enabled. Is it possible to remotely select which operating system I wish to load? Now it is Windows 7. But sometimes I wish it would be Windows XP.
You can do this with GRUB boot loader and simple OS (for example, something like floppyfw is just enough) with software that listens for boot instructions.
When WOL packet arrives it should first boot to OS that will launch sshd, after that you can issue command to modify boot order. For example send command
This way you don't need to wait for full OS to load just for switching to another but instead you have extremely lightweight and fast loading OS to control which one to start.
Another good thing is that you don't need to individually configure operating systems you want to boot, they can be added or removed easily and you can also use operating systems that do not have ability to change boot order. You can also boot from CD/DVD, from network server or from USB stick.
Not really through the Wake On Lan stuff but you can wake it up and then when it has booted log onto it and request it to reboot into the other OS.
Create a shortcut for example to request it to reboot to XP.
That shortcut would be a bit advanced, you better know what you are doing etc, quick googling found a nice tutorial on doing that: