¿Como Iniciar un único programa sobre Linux (Solo el programa)?

Iniciado por 3n31ch, 21 Junio 2017, 05:49 AM

0 Miembros y 1 Visitante están viendo este tema.

3n31ch

Básicamente mi pregunta es como puedo iniciar un programa especifico en un linux (o mas bien, la base de linux) de tal forma que al bootear el SO inicie el programa sin necesidad de cargar ningún otro tipo de funcionalidad ni nada (ni login, ni desktop, ni nada, solo el programa. Casi como si se tratara de correr un programa sobre el kernel.

Y para poner hacer mas difícil que me respondan... seria genial que dicho programa fuera Java (osea, cargar lo básico del SO, la JVM y correr el programa en Java)




El requerimiento surge a partir de que se necesita ejecutar un único programa en una plataforma y que dicho programa inicie lo mas rápido posible (dicho programa preferentemente estará desarrollado en Java que para joder mas es gráfico)

¿Es imposible lo que pido? ¿Alguien tiene algún doc en el que me pueda basar?...

No suelo poner este tipo de cosas pero es "urgente", ya que necesito tener una respuesta para el viernes. Seria genial que alguien con la experiencia me dijera si es posible o no, y en caso de serlo como hacerlo o me pasara una url de algún  documento o algo básico para yo tirarle para delante, e intentar hacer un "Hola Mundo" para el viernes.

(Creo que me explique fatal... si no se entiende díganme)


engel lex

#1
no es tan simple, especialmente levantar una maquina virtual...

hay un lote de programas que se tienen que levantar primero, como el manejador de servicios y los servicios base como el montador de discos, el serivio sudo y algunas cosas más... por otro lado, sin los servicios base, te veo sufriendo para instalar java... o cualquier cosa realmente...


mi recomendación se que uses un linux super configurable, como Arch, instales lo necesario... (si es necesario llegar a extremo sin importar la dificultad, puedes buscar el codigo fuente, cambiar las opciones de compiación y compilar una versión "mas limpia", aunque puede durar muchisimo tiempo y ser dificil) una vez instalado el linux, puedes agregar tu programa al inicio del sistema (init, rc, cron, el que sea) y listo

está esta opción... no lo recomiendo... pero allí está
http://www.linuxfromscratch.org/
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

3n31ch

Gracias por responder engel  :D.

Si, encontré un foro donde hablaban de Arch y de ubuntu server, pero me queda la duda de que tan rápido o cristalizable sea esto.

Para que te hagas una idea. El requerimiento especifico es simular un sistema como los que poseen los autos electrónicos, en donde apenas lo prendes este inicia y te entrega distintas funcionalidades como controlar la radio del auto... Esto es principio se inicia junto con el auto y no tienes que esperar como cuando prendes un telefono móvil o un ordenador. La idea es que el programa inicie a la misma velocidad sin mostrar ningun tipo de logo ni nada.

engel lex

para esto olvidate de ja jvm de java sobre un OS XD el OS tiene que ser java

un pc, tardará solo en el bios unos 7 segundos, en el grub e iniciando el OS otros 20 por lo minimo... y eso con un buen equipo y disco de buena velocidad, levantando el jvm y otras cosas, mas

si realmente necesitas tanta urgencia, puedes usar el kernel de linux solo y creas tu init con un programa compilado en c++ para lo que necesites... eso si... vas a sufrir compilando paso a paso todas las api y cosas que te des cuenta que necesites... pero a final de cuenta, en lugar de cargar un grub y el OS, apenas salte el bios, iniciará tu programa...

ojo... requiere extenso conocimiento... esto es más bajo nivel que LFS
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

3n31ch

uff... Ok, supongo que no es algo que con mis conocimientos actuales pueda realizar un hola mundo para el viernes.

Ni modo, dire que no puedo y que se sale de mis manos. Muchas Gracias!. Cualquier otra idea de como podria hacer algo como esto seria genial que me la dijeras (al menos para ver otras posibilidades).

De verdad muchas gracias!

engel lex

usa debian y en la instación preinstala lo basico (ssh server, y sin entorno de escritorio)

luego, instala java, desactiva servicios (smb, y esas cosas) y listo

:P el es potente y relativamente rapido de inicio... aun así depende del disco, procesador y tiempo de inicio del bios, tomará unos 30 segundos en iniciar y lanzar tu programa
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MinusFour

Hay muchas formas de acelerar el proceso de booteo. Depende bastante del hardware. El tiempo de arranque no es inmediato en casi ningun sistema. Lo que hacen muchos sistemas es no apagarse por completo y entran en un modo standby en el cual el consumo de energia es mucho menor que operando normalmente. Resumir la operacion del sistema desde este punto es mucho mas rapido que desde un "cold boot".

Los hay en muchos dispositivos, telefonos, televisiones, consolas de juego, etc.

3n31ch

#7
MinusFour, esa es una buena opción, sin embargo, tengo que seguir intentando reducir el tiempo.




Instale Arch, junto a Java, todo esta ok, se demora unos 7 segundos en iniciar y creo que le puedo bajar aun mas el tiempo. El problema es que ahora necesito que pueda ejecutar programas java con una GUI.

Todo lo que he hecho lo hice desde la CLI, ya que en ningún momento vi un entorno gráfico (ni tampoco me interesa activarlo para todo el SO, solo para un programa en especifico.)

¿Alguna idea al respecto?

(Si gustan puedo poner el error que me arroja el programa hecho en Java)

engel lex

en general es más practico levantar un entorno para todo el OS, solo escoge uno ligero como lxde o cosas antiguas y muy ligeras como openbox activas autoiniciar sesión y listo, solo retardará un par de segundos extras


se que en el inicio (pero no se como) puedes poner un fondo que puede ser animado (tipo windows o ubuntu) para disimular el tiempo con una presentación simple
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

3n31ch

Pero, se vera el desktop por unos segundos (aun cuando pueda disimularlo).

Siento que  estoy muy cerca con esto de Arch, pero me falta esa ultima parte u.u