Esteban-SaintPaul / Silicio

Microkernel de SO + drivers
1 stars 0 forks source link

joder, en español #1

Open ghost opened 7 years ago

ghost commented 7 years ago

Es la primera vez que veo un proyecto tan ambicioso en Español. Qué licencia tiene?

Esteban-SaintPaul commented 7 years ago

Es dificil programar mientras uno tiene una familia detras, pero intento cada tanto agregarle algo. Si te interesa avisame El 1/10/2017 17:05, "CitoplasmaX" notifications@github.com escribió:

Es la primera vez que veo un proyecto tan ambicioso en Español. Qué licencia tiene?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

Esteban-SaintPaul commented 7 years ago

Podría colocarle una licencia GNU , pero no se si vale la pena ! es un trabajo de aplicación de conocmientos y como ya perdí parte por no tenerlo en la nube, pensé en subirlo a github como backup y además que si a alguien le interesa pueda hacer algún aporte o lo utilice en algúna aplicación práctica, no cobraré nada por ello, al contrario estaré super contento.

ghost commented 7 years ago

El 2 de octubre de 2017 23:15:26 GMT+01:00, Saint Paul Esteban notifications@github.com escribió:

Podría colocarle una licencia GNU , pero no se si vale la pena ! es un trabajo de aplicación de conocmientos y como ya perdí parte por no tenerlo en la nube, pensé en subirlo a github como backup y además que si a alguien le interesa pueda hacer algún aporte o lo utilice en algúna aplicación práctica, no cobraré nada por ello, al contrario estaré super contento.

-- You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub: https://github.com/Esteban-SaintPaul/Silicio/issues/1#issuecomment-333680723

Estaría bien. En cuanto comprenda este nivel de programación y mas a fondo los microkernels podría intentar contribuir algo. Tengo tambien ideas ambiciosas de hacer un sistema operativo con microkernel. Si consiguiese hacerlo funcionar en el hardware que tengo en casa me pondría a portar algún compilador para facilitar el portar herramientas. Aunque ya eso seria aún mas adelante. -- Saludos, Echedey, López Romero

Esteban-SaintPaul commented 7 years ago

Es muy dificil la primera parte, el que funcione el microkernel y lograr la paginación, ya que cualquier fallo te tira todo el sistema. En mi caso comencé creando módulos para el kernel de linux, estudié el código fuente de minix 2, (compré el libro y lo llené de señaladores según el tema, ) compré un manual de INTEL, aprendí assembler AT&T para programar inline con GCC y AS y assembler Intel para realizar el arranque con el compilador NASM (muy bueno por cierto). Si te interesa intentarlo podés generar un múdulo para tu microkernel para atender las llamadas de Linux y hacer posible correr todas las aplicaciones para este, como lo hace FreeBSD u otros BSD derivados. En este sentido iré trabajando, para poder correr GCC y otros.

ghost commented 7 years ago

Supongo que antes de eso aprendiste muyyyy bien C. Respecto a lo del módulo, prefiero la ardua tarea de portar desde casi 0.

ghost commented 7 years ago

Peor que querer programar siguiendo el paradigma de la programación monolítica no va a haber.

Esteban-SaintPaul commented 7 years ago

Es verdad que aprendí C en los 90, pero el inicio fué assembler para los microchip 16f84 cuando diseñaba circuitos electrónicos. En aquel tiempo me estudié el libro de Kernighan and Ritchie de programación en C y programaba con el IDE de Borland 3, luego instalé Red Hat, luego Debian que es desde entonces el SO con el cual sigo mis inventos. Viendo ahora fué un largo camino, y si em gusta programar en C y lo hago hace mas de 20 años.

Esteban-SaintPaul commented 7 years ago

No entiendo bien lo de la programación monolítica, ¿podrias explicarme un poco de que se trata? Comprendo los terminos de programación estructurada y enfrentada a esto, aquello de saltos incondicionales, pero monolítico no es relacionado a la programación sinó a si el kernel es un único ejecutable o no.

ghost commented 7 years ago

Básicamente es algo que nadie hoy en día pondría en práctica. Forma parte dentro de la programacion no estructural, algo que deberían de mejorar en la wikipedia, la diferencia principal es que un programa esta compuesto por una unica funcion o no integra funciones como en el caso de los primeros lenguajes sino que todo es escrito usando estructuras de control directamente, sentencias de distinto tipo y las propias variables claramente.

https://www.youtube.com/watch?v=pEnv9LYK80k https://technology.blurtit.com/394241/what-is-monolithic-programming

ghost commented 7 years ago

Bueno en el caso de un kernel monolítico también existen otras características derivadas como que todo corre a nivel del kernel, etc. Existen microkernels tambien de único proceso (o servidor en este caso) como Mach.

ghost commented 7 years ago

Es verdad que aprendí C en los 90, pero el inicio fué assembler para los microchip 16f84 cuando diseñaba circuitos electrónicos. En aquel tiempo me estudié el libro de Kernighan and Ritchie de programación en C y programaba con el IDE de Borland 3, luego instalé Red Hat, luego Debian que es desde entonces el SO con el cual sigo mis inventos. Viendo ahora fué un largo camino, y si em gusta programar en C y lo hago hace mas de 20 años.

Pues yo tan solo tengo 17 años y en 2014 empezó a interesarme algo el tema, principalmente enfocándome en el desarrollo de sistemas operativos, luego hace un año empecé a aprender algo de programación (claro primero investigué sobre los propios sistemas pero no a nivel de programación), ningún lenguaje me convencía y había visto una gran lista, por cojones terminé empezando con C y me quedé en Arrays que vi despues de condicionales y estructuras de control y demás tipos de variables.

ghost commented 7 years ago

Luego toqué Pascal y me enamoré de su estructura básica y de su sintaxis más clara y fue cuando encontré lo que era la programación monolítica, Pascal fue diseñado principalmente así. O al menos así he leido y deja entrever la estructura de un programa en Pascal.

Esteban-SaintPaul commented 7 years ago

Ya que tocás el tema de los distintos enfoques respecto a la programación y luego al modo de funcionar de cada uno, te comento que el sistema operativo Silicio, tiene el microkernel en espacio de kernel (ring 0 ) para los procesadores Intel, y los drivers corren en el ring 3, junto a los programas de usuario. Mediante una definición en el archivo main.c se puede hacer correr al proceso principal en ring 0, de esta manera se puede acceder a todo el hardware directamente y crear una aplicación empotrada. La idea de esto es compilar todo el sistema una única vez y luego trabajar solo en el programa propio que puede utilizar las llamadas al kernel o manejar el hardware directamente. Dejando todo por defecto, para acceder al hardware se debe pedir permiso al kernel solicitando memoria y/o puertos, por lo que todo se hace mas ordenado como en el resto de los SO. Incluso los drivers realizan esta acción por lo que no pueden alteranse entre ellos.

ghost commented 7 years ago

Vamos, que es un microkernel puro.