• Jueves 21 de Noviembre de 2024, 09:58

Autor Tema:  Puf! Literalmente Apagar La Maquina  (Leído 17210 veces)

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Puf! Literalmente Apagar La Maquina
« en: Jueves 29 de Diciembre de 2005, 20:27 »
0
Hola.
Como puedo apagar la maquina, no el OS, si no el hadware?
No se asm, pero si me guian vere que puedo hacer, esto no es para una tarea, si no que estoy haciendo una rsh y queria una apagada total al ejecutar X comando.
Gracias.  ;)
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #1 en: Jueves 29 de Diciembre de 2005, 20:59 »
0
No hay una instruccion que haga eso y el manejo del hardware en ese sentido es algo relativamente nuevo, si recordas 9x o NT 4.0 te dicen "You can shutdown the computer now" o algo si, ellos por si mismos no lo hacen.
 
Aca tenes el standard que se usa en NT 5.0 (Windows 2000) en adelante:
http://www.acpi.info/


En fin, es bastante complejo (600 y pico de paginas)  :whistling:

Hace muy poco hubo una pregunta parecida, hacerlo con ayuda del S.O. es mucho mas simple:
http://foros.solocodigo.com/index.php?showtopic=18814

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #2 en: Jueves 29 de Diciembre de 2005, 21:15 »
0
Ah, me olvide de decirlo, pero no lo podes hacer desde modo usuario en un S.O. de 32 bits (Linux, NT).  :smartass:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Bopo

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #3 en: Jueves 29 de Diciembre de 2005, 21:23 »
0
Cita de: "Eternal Idol"
Ah, me olvide de decirlo, pero no lo podes hacer desde modo usuario en un S.O. de 32 bits (Linux, NT).  :smartass:
Si es que te sale lo de que puede apgar el equipo, con el puerto paralelo o serial puedes ahcer un temoralizador, que despues de un rato de mandar a apagar el software (1 minuto), active un rele y apaque el pc :)

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #4 en: Jueves 29 de Diciembre de 2005, 21:26 »
0
Cita de: "Bopo"
Si es que te sale lo de que puede apgar el equipo, con el puerto paralelo o serial puedes ahcer un temoralizador, que despues de un rato de mandar a apagar el software (1 minuto), active un rele y apaque el pc :)
Realmente no entiendo muy bien lo que decis (la redaccion en particular). Pero de cualquier manera no parece ser una solucion basada en codigo de ensamblador ejecutandose en modo usuario.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #5 en: Jueves 29 de Diciembre de 2005, 21:28 »
0
Gracias, mirare el link.
A, si, resulta que el poweroff que estoy haciendo, primero mata siertos procesos, luego apaga swap y desmonta particiones y discos, lo unico que faltaria seria matar el kernel que me supongo que estaria corriendo en memoria, y lo que nesecito, mi pregunta es simplemente como apagar el hadware, haci que lo estaria haciendo como root, claro esta, por quetengo que matar procesos.
nuevamente gracias.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #6 en: Jueves 29 de Diciembre de 2005, 21:33 »
0
Cita de: "su -"
Gracias, mirare el link.
A, si, resulta que el poweroff que estoy haciendo, primero mata siertos procesos, luego apaga swap y desmonta particiones y discos, lo unico que faltaria seria matar el kernel que me supongo que estaria corriendo en memoria, y lo que nesecito, mi pregunta es simplemente como apagar el hadware, haci que lo estaria haciendo como root, claro esta, por quetengo que matar procesos.
nuevamente gracias.
El kernel no lo podes matar, no es un proceso, es codigo cargado en memoria.

Apagar una PC es una cosa muy dificil y no tiene que ver con que estes bajo la cuenta de root sino el modo de ejecucion privilegiado o no. Tendrias que estar en modo kernel osea hacer un driver.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #7 en: Jueves 29 de Diciembre de 2005, 21:49 »
0
Hmmm... ya veo, esque lo estoy haciendo en base a minit0-10 que esta hecho en C y es solo para Unix-like.
Buscare en la red mas al respecto para no molestarlos con estas preguntas de principiantes y le cometare al respecto. ;)
 :gracias:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #8 en: Jueves 29 de Diciembre de 2005, 22:28 »
0
Cita de: "su -"
Hmmm... ya veo, esque lo estoy haciendo en base a minit0-10 que esta hecho en C y es solo para Unix-like.
Buscare en la red mas al respecto para no molestarlos con estas preguntas de principiantes y le cometare al respecto. ;)
 :gracias:
No encontre nada en la web con ese nombre como para verlo pero de cualquier manera no me referia a Windows en particular. El libro UNIX Programacion avanzada comienza asi:

"UNIX es el nucleo de un sistema operativo de tiempo compartido. El nucleo del sistema es un programa que siempre esta residente en memoria y ..."

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #9 en: Viernes 30 de Diciembre de 2005, 00:49 »
0
Si, te entiendo, eso es correcto, esque cundo digo matar me refiero a dejarlo "fixed" o desabilitarlo para su uso en ese momento, bueno eso es lo que menos me interesa por ahora.
Este es el link de minit:
http://www.fefe.de/minit/
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #10 en: Viernes 30 de Diciembre de 2005, 01:26 »
0
Ya hice algo para Gnu/Linux, no se si esto sea, pero tan solo me colgo la maquina.
El link para bajarlo http://www.solocodigo.com/vftp/Varios/phalt/phalt.tar.bz2
para ver los codigos: unzip phalt.
ejecutar como root.
Por sierto me falta la parte en asm del puf magico, pero eso lo estoy biendo, apenas.
Mieronlo y critiquenlo, que todavia no es algo bueno.
Garacias.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #11 en: Viernes 30 de Diciembre de 2005, 10:14 »
0
Cita de: "su -"
Si, te entiendo, eso es correcto, esque cundo digo matar me refiero a dejarlo "fixed" o desabilitarlo para su uso en ese momento, bueno eso es lo que menos me interesa por ahora.
Este es el link de minit:
http://www.fefe.de/minit/
No podes deshabilitar el Kernel ... no funcionaria absolutamente nada. De entrada las interrupciones no serian manejadas correctamente.

En la descripcion del programa ese no veo nada que tenga que ver con un apagado de una PC.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #12 en: Viernes 30 de Diciembre de 2005, 10:25 »
0
Cita de: "su -"
El link para bajarlo http://www.solocodigo.com/vftp/Varios/phalt/phalt.tar.bz2
No baja el archivo.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #13 en: Viernes 30 de Diciembre de 2005, 16:17 »
0
:whistling:
Oops, link: http://www.solocodigo.com/vftp/Varios/phalt/phalt.tar.bz2
Pero al igual, el mio no funciona de nada, solo cuelga la maquina, se me olvido el /dev/console.
 :hola:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #14 en: Viernes 30 de Diciembre de 2005, 16:43 »
0
A, si, me falto:
syscall &SYS_reboot, 0xfee1dead, 0x28121969, 0x4321fedc;
en perl, hace el syscall segun SYS_reboot de sys/syscall.h (Linux).
Si hay algun otro modo de hacerlo, estoy dispuesto a aprender.
Gracias.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #15 en: Viernes 30 de Diciembre de 2005, 16:50 »
0
Cita de: "su -"
A, si, me falto:
syscall &SYS_reboot, 0xfee1dead, 0x28121969, 0x4321fedc;
en perl, hace el syscall segun SYS_reboot de sys/syscall.h (Linux).
Si hay algun otro modo de hacerlo, estoy dispuesto a aprender.
Gracias.
Un syscall en Linux es un int 80h pero veo que pones reboot y no shutdown  :whistling: De cualquier manera eso no es en assembly, supongo que no podes hacerlo en assembly desde Perl.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #16 en: Viernes 30 de Diciembre de 2005, 17:20 »
0
Si, si puedo, usando Inline::ASM, la intro dice:
you can mix different assembler syntaxes in the same file!
Por eso postee aqui, el foro de asm, porque segun lei estos syscalls se hacen mejo con asm que con C.
A, si, remodifique los codigos y ya si apaga, pero por una rara razon se auto inicia y corre nuevamente el bash, creo que es porque no esta desmontando disco y porque init no puede sr matado por root con kill, en fin ahi estoy tratando.
A, si como se haria en ASM?
Gracias, la idea es poner este codigo en la secion de Codigo Fuente de SoloCodigo.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puf! Literalmente Apagar La Maquina
« Respuesta #17 en: Viernes 30 de Diciembre de 2005, 18:51 »
0
Cita de: "su -"
Si, si puedo, usando Inline::ASM, la intro dice:
you can mix different assembler syntaxes in the same file!
Por eso postee aqui, el foro de asm, porque segun lei estos syscalls se hacen mejo con asm que con C.
A, si, remodifique los codigos y ya si apaga, pero por una rara razon se auto inicia y corre nuevamente el bash, creo que es porque no esta desmontando disco y porque init no puede sr matado por root con kill, en fin ahi estoy tratando.
A, si como se haria en ASM?
Gracias, la idea es poner este codigo en la secion de Codigo Fuente de SoloCodigo.
Una cosa es apagar, en la cual necesitas darle al boton manualmente y otra reiniciar.

Para hacerlo en assembly necesitarias saber a que servicio se corresponde (estan en unistd.h segun dice mi libro) a la operacion que queres hacer y llamarla de esta manera:

Código: Text
  1.  
  2. mov eax, operacion
  3. mov ebx, primer_parametro
  4. mov ecx, segundo_parametro
  5. mov edx, tercer_parametro
  6. int 80h
  7.  
  8.  

Obviamente los parametros dependen de la operacion que quieras hacer.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.