Presentación (acabo de ver que esta comunidad existe)


#1

Hola,
mi nombre es Bosco, no soy especialista en la informática, pero me intereso por ella. En mis ratos libres leo sobre diferentes temas relacionado con ordenadores. Hace poco he entrado en el grupo de telegram.

Si tengo que decir mi característica cuando tengo que buscar algo en lo que entretenerme en este tema sería la de buscar el fondo de la cuestión. Cuando explique los temas que me interesan me comprenderéis.

Mis intereses:

  • Sobre todo la programación de bajo nivel, me considero con un nivel aceptable en ensamblador, en la arquitectura intel (todavía no me he puesto con la arquitectura arm). También me siento cómodo usando el lenguaje C. Cuando no hay más remedio que hacer uso de script utilizo perl, python o bash. Tengo conocimientos básicos de Java y C++.

  • Un interés relacionado con el bajo nivel son los sistemas operativos, he estudiado sobre sistemas operativos, hasta llegar el punto de empezar un sistema operativo por mi mismo, por supuesto está en lenguaje ensamblador y C. Para quien sepa sobre este tema explico hasta donde he llegado: he creado un bootloader que carga el resto del sistema (porque sino en 512 bytes que tiene un sector se hace poco), luego entra en modo protegido, maneja las interrupciones del teclado, y crea una línea de comando (la gráfica se maneja en el modo que nos da la BIOS en 80x25). Todo se ejecuta en a nivel de kernel, no maneja “task context”, no hay un manejo de memoria, o sea que todo lo que debería tener un sistema operativo no lo hace, pero permite leer comandos y ejecutar ciertas cosas, lo uso sobre todo para listar el hardware que tiene un ordenador (del mismo estilo de lspci de Linux, o pcicnof en FreeBSD).

  • También me interesa la ingeniería inversa, eso de leer el código que ha hecho otro está bien, aunque leer código máquina se hace pesado muchas veces.

Me voy a quedar aquí de momento, sino os voy a aburrir. Más o menos podeis haceros una idea de los temas que me interesan. Espero aprender de ustedes y poder contribuir en lo que se pueda. Perdón si ha sido una presentación un poco larga (y seguro que se me olvidan cosas jaja).


#3

¡Bienvenido!

¿tienes las fuentes de ese sistema operativo para verlas? Por lo que comentas no tienes un sistema operativo completo, lo que tienes es una aplicación que se ejecuta de forma nativa en un PC (todas las referencias que das de bootloader, modo gráfico BIOS 80x25, … suenan a PC), y lo cual podría ser la base de un sistema operativo futuro ¡¡¡ pero menudo mérito tiene llegar hasta donde has llegado !!! Por eso la curiosidad de ver las fuentes.


#4

Gracias por la bienvenida,

aquí está el código:
https://mega.nz/#!NPxnxCRB!gphxV_Y4jYT1oU9d-64EBHrNDSHYMNuvREmHN4_2tpE

Es un tar.xz, si se quiere descomprimir usad:

tar xfJ toolx86-0.04.tar.xz

Hace algún tiempo que no lo toco, pero creo recordar que ahí solamente está configurado dos comandos: print [string] y exit. Esto es porque no me gustó como había creado la línea de comando y lo empecé de nuevo, lo que falta para las otras funciones serían crear los comandos para que lo lea la “terminal”.

Además cuando se compila y crece el tamaño, hay que modificar una variable del bootloader que dice cuantos sectores tiene que copiar (si tuviera tiempo ya hubiera puesto esto automático).

Es verdad que no es un sistema operativo, se podría decir como lo dices es una aplicación que corre directamente en el procesador sin usar un sistema operativo.

Se puede probar con el emulador qemu. Y si hay alguna sugerencia u opinión (tanto buena como mala) será bienvenida.

Tengo que decir que está configurado para compilarse con gcc en Linux, basta usar:

make

y se crea la imagen. Creo que el Makefile es bastante claro.

Por supuesto si hay cualquier duda o curiosidad estoy disponible para contestar, y la responderé hasta donde yo sepa (ya que no soy un experto en esto).

Gracias por el interés. Cuando esté más avanzado, y tenga alguna funcionalidad lo subiré a un repositorio.