Foro de elhacker.net

Sistemas Operativos => Windows => Mensaje iniciado por: Ali Baba en 31 Mayo 2017, 03:38 am



Título: Estudiando para crear un Kernel
Publicado por: Ali Baba en 31 Mayo 2017, 03:38 am
He estado buscando información y estudiando un poco para empezar a crear mi propio Kernel. Como saben me tomará unos años para hacerlo.

Estuve buscando información y veo que el Kernel sobretodo se encarga de ofrecer los servicios más básicos que un sistema operativo ofrece. Cuales son estos servicios básicos?
Estuve leyendo que por ejemplo se encarga de gestionar lo que es la memoria tanto RAM como ROM, los dispositivos externos y el CPU. ¿Qué más puede gestionar? Funciones de red? Algo más?
Mi otra pregunta es, hay que saber mucha física para lograr eso? Que lenguaje me recomiendan para escribir el Kernel? C o Assembler? Se puede usar un lenguaje de alto nivel o solo lenguaje de máquinas?


Título: Re: Estudiando para crear un Kernel
Publicado por: Randomize en 31 Mayo 2017, 09:25 am
Cómo crear tu propia distribución Linux personalizada paso a paso
https://www.linuxadictos.com/crear-distribucion-linux.html


Sé que quieres acercarte mucho más a código máquina, pero el link que te pongo es "para el recreo", para que veas un poco la parte final una vez tengas tu kernel.


Deberías leer sobre Linus Towarlds y coger como hizo él algún libro de Unix y Minix por banda...





Título: Re: Estudiando para crear un Kernel
Publicado por: animanegra en 31 Mayo 2017, 10:05 am
Casi lo mas importante, temas del planificador de procesos. Temas de paginación y movimiento de datos en los diferentes niveles de cache.

Yo igual miraría un poco el tema de minix. Minix es un kernel que desarrollo en su dia tenarbau (Recomiendo su libro de sistemas operativos y de sistemas distribuidos. Me gusta mas que stallings) a modo de tutorial o docente.


[url]https://www.pearson.com/us/higher-education/program/Tanenbaum-Operating-Systems-Design-and-Implementation-3rd-Edition/PGM228096.html]http://www.minix.org/[url]
[url]https://www.pearson.com/us/higher-education/program/Tanenbaum-Operating-Systems-Design-and-Implementation-3rd-Edition/PGM228096.html (http://www.minix.org/[url)

Igual bajaria las versiones viejas para leer un codigo mas comprensible y menos complejo.

En resumen, creo que ese es un buen punto de partida.


Título: Re: Estudiando para crear un Kernel
Publicado por: Randomize en 31 Mayo 2017, 14:22 pm
Citar
tenarbau

 :xD


Andrew S. Tanenbaum

https://es.wikipedia.org/wiki/Andrew_S._Tanenbaum





Un saludo.


Título: Re: Estudiando para crear un Kernel
Publicado por: MRx86 en 7 Julio 2017, 03:55 am
hola, creo que deberias leer sobre los dispositivos en los que va a correr tu sistema, por ejemplo yo creo q deberias leer sobre la configuracion de placas bases populares como las que se rigen sobre el estandar ATX, deberias leer sobre los tipos mas utilizados en todas las partes de la piramide de memoria.. por ejemplo hoy en dia se utiliza como almacenamiento secundario los HDD y las tarjetas SSD hasta donde se, deberias leer tambien sobre tecnicas  de administracion de procesos y de administracion de memoria, hay un libro sobre sistemas operativos de william stallings que se llama "sistemas operativos, aspectos internos y principios de diseño" yo lei la 5ta edicion pero la 7ma edicion ya existe tambien.. hay tambien libros de andrew tanenbaum que hablan sobre el tema pero no se decirte sobre ellos, de tanenbaum solo he leido libros sobre redes. bueno lo que va a gestionar tu sistema depende de su proposito, no es lo mismo el sistema de un PC que el sistema de un router... pero si es para un PC lo principal q deberia gestionar eficientemente tu sistema son (principalmente) los procesos, la memoria, la red, el sonido, el video y la seguridad para un PC digamos "normal". Deberias leer sobre las placas de video, de sonido y de red mas utilizadas, como se gestionan a bajo nivel. Sobre lenguajes de programacion deben existir partes del codigo que es mejor escribir en ensamblador, ya sea por que se debe ejecutar rapido o porque simplemente solo lo puedes hacer en ensamblador por cuestiones de bajo nivel. C lo puedes utilizar para programar el planificador de procesos o el paginador que si se pueden programar en un lenguaje como este..

Saludos