Curso kernel en ErickAssembly - #02 - haciendo el sistema

un aviso importante es que los enlazes de los anteriores estan caidos
por que actualize las herramientas

ErickAssembly lo actualize por que se bugeaba y se saltaba las instrucciones por que en vez de poner solo

if (ins.needs_params == true)
i++;

puse

i += ins.params_count

y se saltaba las instrucciones por que internamente en el compilador los parametros son por comas, no por instrucciones independiente pero bueno ya lo arregle
tambien estoy arreglando algo de KellyBootloader y agregando nuevas funciones

los nuevos enlaces son

  1. Windows (ANY-CPU con .NET) https://www.mediafire.com/file/97im9szuxnqntfy/ErickAssamblerWindowsAnyCPU.zip/file
  2. Linux 64 bits, todas las distribuciones https://www.mediafire.com/file/fu4yzvtnhm2qpuh/ErickAssamblerLinuxX64.zip/file

Contexto

saben que paso con el kernel anterior? exacto, se fue a la ###### por problemas de pool, ya que en las pruebas de qemu, no se podia localizar el archivo, pero bueno, debido a que el codigo se vuelve muy complejo pues, usar hlvc es nuestra salvacion, bueno, hice algunos avances con un kernel reconstruido y asi quedo

lo siento si pongo los bloques de codigo en C es que obiamente no aparece la opcion de ErickAssembly y C es parecido a la sintaxis de HLVC

HightLevel[ 

    /**
    * kernel.easm
    *
    * kernel example in hlvc
    * following the EBF specifications from the beta 3 of the Kelly Bootloader and up
    */

    use "ASCII"

    Print "Initializing\sKernel..."
        
    Print "Welcome\sto\sSimpleOS\n"

    /**
    * LoopPrompt
    *
    * this function is called to loop the command prompt
    */
    FUNCTION LoopPrompt

        Print "SimpleOS> "

        BUFFER Command ReadLine

        Print "\n"

        call LoopPrompt


 ]HightLevel

a la ora de escribir esto estoy sufriendo un terrible bug que modificaba el stack y lo reiniciabla , reiniciando el programa al saltar a CommandPrompt, estoy hasta revisando la memoria paso por paso , les juro estoy sufriendo con el bug , pero todo por sacarles el curso, hasta he estado eliminando y volviendo a actualizar los links de descarga, me duele la cabeza asi que apoyen esto

posiblemente el codigo final sea el que ya no tiene el fallo asi que todo lo que estoy sufriendo ustedes ni se van a dar cuenta

por cierto aqui hay un clip de video depurando el kernel

pd : no era el codigo anterior, era el ErickBinaryFormat el que fallaba

ahora si continuamos

para compilar

aqui como el unico es hlvc utilizamos su correspondiente comando

root@local^:#hlvc /ruta/a/tu/Kernel.easm

ejecucion

una vez estamos en la pantalla de carga de Kellybootloader rapidamente antes de que aparesca cualquier trying to boot: x archivo presionen esc
esto les llevara al bootmenu


en mi caso ya movi el binario .ebf resultante a mi usb para arrancarlo (realmente estoy usando qemu xd) pero tambien funciona en maquina real… creo , espero que si , si no toda la noche arreglando el KellyBootloader, pero cualquier bug en maquina real me lo comentan para que no me rompa la cabeza a la media hora y tenga que arreglar el KellyBootloader , editar esta publicacion con el nuevo link

pero bueno, una vez en el bootmenu presionen F3 (para la shell)


si no recuerdan que archivos .ebf les aparecian pongan

KellyBootloader> ls

para ver los archivos, en mi caso tengo el Kernel.ebf ya configurado
ahora para ejecutarlo pongan

KellyBootloader> ./Kernel.ebf

les deberia aparecer esto


en este curso , retrocedimos un poco pero ya tenemos un prompt casi funcional

espero que el sufrimiento arreglando el bug del stack con los saltos a funciones les hayan servido como que moraleja: recuerda que while es mientras, no “hasta que”

espero que este curso haya sido de su interes por que si que me esforze hasta, ya son las 8:23, deberia estar ya para irme a dormir