I'm designing an app that will be deployed/installed to a linux machine (perhaps Archlinux, but could be any distro and in fact I would actually prefer something lightweight and inside the Debian family if at all possible). This machine will not be a "general purpose" or multiple application machine: it's sole purpose is to run my app at startup and close my app at shutdown. No other end-user apps would be installed on this machine.
I'm looking for a way to:
- When the user powers on the machine, instead of the normal Ubuntu/OS startup --> BIOS --> splash screen --> login process, they just see a splash screen for my app (while the system and app boots up) and then my app loads with its own look and feel
- While using the machine, they cannot access any other apps, shells or other part of the operating system; all they have access to is my app
- When running, the app takes up the entire screen and its window cannot be minimized or resized
- The app (as software) cannot be turned off or killed while running, except...
- Turning off the machine (physically powering it down) shuts down the app gracefully and shuts down the underlying OS as well
Hence, the end user never knows that the machine is running on top of linux; to them, the app is the only thing "living" on the machine.
This has to be possible seeing that Android is just a wrapper around Linux, and there are thousands of other devices that just run a single app and nothing more.
This will likely be a C binary that launches a Java desktop application as the actual app.
Any ideas as to how I can accomplish the items mentioned above?