elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13
11  Foros Generales / Foro Libre / Re: EEUU y Corea del Sur preparan un gran despliegue aéreo tras el lanzamiento en: 3 Diciembre 2017, 16:44
Si seguimos asi, estaremos condenados. O ya lo estamos?
12  Foros Generales / Foro Libre / Re: ¿Quieres saber como evitar cualquier Captcha de cualquier página en tu navegador en: 30 Noviembre 2017, 02:46
Que buena herramienta, peeero tenia que ser de paga. Vaya que forma de aprovecharse de la gente, al ser una herramienta invovadora.
Yo que no tengo forma de pagar por internet...
13  Foros Generales / Foro Libre / Re: Me estoy quedando calvo!!! en: 30 Noviembre 2017, 02:02
Vamos, que les pasa a ustedes, que ahora nada se puede preguntar y se arma un debate sobre quien tiene la razon...
Y asi es como los temas se desvian siempre, ahora me vendran a linchar a mi...
14  Foros Generales / Foro Libre / Re: El Primer Trasplante de Cabeza en Humanos: ¿Diciembre 2017? en: 22 Noviembre 2017, 02:30
y... espero que este tema no se desvie...
 :rolleyes:
15  Programación / Programación C/C++ / Re: Hacer un programa en C que se ejecute sin SO en: 19 Noviembre 2017, 00:44
vale, abandonare la idea, era muy "subrealista" lo que se me ocurrio.
16  Programación / Programación C/C++ / Re: Hacer un programa en C que se ejecute sin SO en: 19 Noviembre 2017, 00:37
Si, pero seria dificil, ya que en si compilar algo de esa embergadura como Linux tardaria mucho, mas peor, mi pc es una papa de solo 2GB de ram... Mi PC no podria compilar eso.
En cambio, si hago lo que intento sabre como funciona perfectamente, ya que yo mismo lo cree, le podria añadir lo que quisiese a diferencia de usar algo ya hecho que no conozco como funciona, terminaria rompiendo todo.
Aunque si no logro avanzar en esto, lo abandonare y quedara como un curioso proyecto mio...  :o
Se que hacer algo como un kernel es dificil.
Saludos
17  Programación / Programación C/C++ / Hacer un programa en C que se ejecute sin SO en: 19 Noviembre 2017, 00:17
Duda no resuelta, y de paso idea abandonada  :-( Pero si saben como responder, aganlo igual me sirve

Pues eso, esa es mi duda como lo dice el titulo. En VirtualBox logre arrancar con un "bootloader" que programe en assembler, seguiendo una guia que encontre en internet.
El problema es que viendo la guia entera, terminas con mas de 3000 lineas de codigo programadas en assembler, solo para recibir comandos y leer el teclado, algo que en cualquier lenguaje como C puedes hacerlo con algo de 200 lineas o menos.
Asi que la duda seria como compilar un programa en C a un .iso. Nota, el "bootloader" programado en assembler que bootea la maquina debe estar si o si en el mismo .iso o no arranca la maquina. Asi que en teoria, el "bootloader" debe tener una forma de llamar a ese codigo programado en C que leeria y recibiria comandos.

Aca les dejo el codigo del "bootloader" que hice:
Código
  1. EBIOSVIDEOINT       equ 16 ;Servicio de video de la BIOS
  2. EBIOSTTYOUTPUTFN   equ 14 ;Funcion de video TTY (teletipo) de salida de la BIOS
  3.  
  4.    cpu 8086 ;La CPU minima donde puede funcionar este codigo
  5. Start:
  6.            mov ax,cs ;carga el segmento de codigo
  7.            mov ds,ax ;carga el segmento de info.
  8.            call .10
  9.            db 'Hola mundo! ',13,10,0 ;String que se imprimira
  10. .10         pop si
  11.            call PutString ;Llamado a la funcion PutString
  12. .20         hlt
  13.            jmp .20
  14.  
  15. PutString:   mov ah,EBIOSTTYOUTPUTFN ;Funcion de teletipo de la BIOS
  16. .10          lodsb
  17.             or al,al
  18.             jz .20
  19.             int EBIOSVIDEOINT ;llama a la interrupcion de video de la BIOS
  20.             jmp .10 ;repite hasta que termina
  21.             ret ;Retorna a el llamado call PutString
  22. .20



Como ven, muestra en pantalla la cadena "Hola mundo!" y arranca la pc, y lo mejor, se ejecuta directamente en el procesador y la BIOS
La funcion de leer el teclado y recibir comandos, seria hacerlo en C, si lo hacemos en assembler... ya saben.
Si no me entienden mandemen un PM (mensaje privado)
Saludos

PD: Estoy en Linux Mint, nasm como ensamblador de asm.
ah, y los comandos para convertir el codigo en un archivo .img:
Código:
nasm bootloader.asm  -o bootloader.bin
Eso de arriba ensambla en codigo no en un .o si no en un .bin
Código:
dd if=/dev/zero of=floppy.img bs=1024 count=1440
dd if=bootloader.bin of=floppy.img seek=0 count=1 conv=notrunc
Se crea la imagen de disquette (en este caso es el floppy.img que despues ejecutamos como dispositivo de arranque en Oracle VirtualBox.
Solo funciona para Linux, en Windows, no tengo idea como se haria

PD2: Lei por ahi en una pagina de StackOverflow que alguien dijo que "tecnicamente cualquier programa que se ejecute sin SO es un SO".
El texto original estaba en ingles
18  Programación / Scripting / Re: [Python 3] TypeError: an integer is required (got type str) en: 16 Noviembre 2017, 01:54
Vale, error arreglado, el tan idiota de mi puso date() envez de date_cmd()...
Merezco un premio a la idiotez
19  Programación / Scripting / [Python 3] TypeError: an integer is required (got type str) en: 16 Noviembre 2017, 01:48
Tengo un error que me esta sacando de quisio, hace un dia funcionaba perfecto, pero no se que paso, este es el error que me tira:

Código:
Traceback (most recent call last):
  File "cmd_main.py", line 49, in <module>
    maincmd()
  File "cmd_main.py", line 28, in maincmd
    date(cmd_input)
TypeError: an integer is required (got type str)
No se que rompi, solo dejo de funcionar derrepente...
Aca el codigo del cmd_main.py
Código
  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. import platform
  5. import sys
  6. from boot import *
  7. from commands import *
  8. from panic import *
  9. from dir_cmd import *
  10. from date_cmd import *
  11. from mkdir import *
  12.  
  13. global machine_name
  14. machine_name = platform.node()
  15.  
  16. def maincmd():
  17.    while True:
  18.        cmd_input = input("[%s]$~ " % machine_name)
  19.  
  20.        if "println" in cmd_input:
  21.            println(cmd_input)
  22.  
  23.        elif "clear" in cmd_input:
  24.            clear()
  25.            maincmd()
  26.  
  27.        elif "date" in cmd_input:
  28.            date(cmd_input)
  29.  
  30.        elif "machine_info" in cmd_input:
  31.            machine_info()
  32.  
  33.        elif "panic" in cmd_input:
  34.            panic("ran_out_mem")
  35.  
  36.        elif "dr" in cmd_input:
  37.            dr(cmd_input)
  38.  
  39.        elif "mkdir" in cmd_input:
  40.            mkdir(cmd_input)
  41.  
  42.        elif "commd_list" in cmd_input:
  43.            commd_list(cmd_input)
  44.  
  45.        else:
  46.            invalidCommand(cmd_input)
  47.  
  48. login()
  49. maincmd()
  50.  
y el codigo del date_cmd.py:
Código
  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. import calendar
  5. from datetime import datetime, date, time, timedelta
  6. import time
  7.  
  8. def date_cmd(args):
  9.    date_now = datetime.now()
  10.    time_epoch = time.time()
  11.  
  12.    try:
  13.        cmd_input = args.split(' ')
  14.        argument = cmd_input[1]
  15.  
  16.        if argument == "-e":    
  17.            print("Epoch time: %s" % time_epoch)
  18.  
  19.        elif argument == "-12":
  20.            date_format_12 = "%d/%m/%Y %I:%m %p"
  21.            date_12 = date_now.strftime(date_format_12)
  22.  
  23.            print("Date (12 hours format): %s" % date_12)
  24.  
  25.        elif argument == "-24":
  26.            date_format_24 = "%d/%m/%Y %H:%M:%S"
  27.            date_24 = date_now.strftime(date_format_24)
  28.  
  29.            print("Date (24 hours format): %s" % date_24)
  30.  
  31.        elif argument == "-h":
  32.            print(help_arg)
  33.  
  34.        else:
  35.            print("\033[1;36m"+'invalid argument for "date" command')
  36.            help_arg()
  37.  
  38.    except IndexError:
  39.        help_arg()
  40.    except TypeError:
  41.        help_arg()
  42.  
  43.    finally:
  44.        print("\033[;37m")
  45.  
  46. def help_arg():
  47.    print("""Date command made by n1sendev.
  48. &#9556;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9559;
  49. &#9553; \"date\" command help:   &#9553;
  50. &#9568;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9577;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9559;
  51. &#9553;Arguments (options):                                  &#9553;
  52. &#9553;                                                      &#9553;
  53. &#9553;-12 = Display the date and the hour in 12-hour format.&#9553;
  54. &#9553;-24 = Display the date and the hour in 24-hour format.&#9553;
  55. &#9553;-e = Display the date and time in epoch format.       &#9553;
  56. &#9553;-h = Display this help menu.                          &#9553;
  57. &#9562;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9552;&#9565;
  58.               """)
  59.  
Saludos
PD: Esas palabras raras que empiezan con & alparecer es un bug del foro, ya que enrealidad son carcacteres para dibujar cajas, estan en ASCII
20  Foros Generales / Foro Libre / Re: El Primer Trasplante de Cabeza en Humanos: ¿Diciembre 2017? en: 16 Noviembre 2017, 01:45
Por obiedad, ambos pacientes moriran. Si sobreviven ambos, puede que sea por unos minutos o horas y de ahi mueran.
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines