Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Ali Baba en 11 Noviembre 2016, 23:06 pm



Título: Crear un kernel!
Publicado por: Ali Baba en 11 Noviembre 2016, 23:06 pm
Que hay que aprender para crear un kernel? Lenguaje binario?


Título: Re: Crear un kernel!
Publicado por: engel lex en 11 Noviembre 2016, 23:58 pm
lo puedes actualmente hacer en C y otros lenguajes, pero tienes que estar muy claro en teoria de estructura y organización del computador a demás de teoría de sistemas operativos... recomiendo leer sobre eso


Título: Re: Crear un kernel!
Publicado por: RevolucionVegana en 12 Noviembre 2016, 00:24 am
Que hay que aprender para crear un kernel? Lenguaje binario?

No se nada, pero si tuvieses que escribir un kernel en 0 y 1 creo que antes te pegarías un tiro, en todo caso ensamblador (y en esta quizás también te pegarías un tiro) o C (o bueno con la cantidad de lenguajes que hay ahora supongo que podrías elegir entre muchos), y por cierto engel los drivers también se programarían en C? Es que no logro hacerme una idea sobre como se programa algo para que un componente electrónico sea capaz de poder funcionar correctamente con el software del equipo

Saludos


Título: Re: Crear un kernel!
Publicado por: engel lex en 12 Noviembre 2016, 00:44 am
los drivers actualmente se pueden programar en cualquier lenguaje nativo... el componente electrico y el sistema operativo ya tienen medios para leer las señales que envian las tarjetas... el driver es un traductor... por ejemplo "si la tarjeta envia B00010" (b antes de un numero = binario) quiere decir que está lista, enviaremos "B111" para que sepa que estamos listos... solo que entre tantos fabricantes, muchas veces no se establecen standards, entonces hp le gusta por ejemplo mandar la meta data antes que la data y canon prefiere despues... eso hace que requieras 2 traductores diferentes

eso para cerrar aquí evitemos desviar el tema ;)



Título: Re: Crear un kernel!
Publicado por: Ali Baba en 12 Noviembre 2016, 15:34 pm
los drivers actualmente se pueden programar en cualquier lenguaje nativo... el componente electrico y el sistema operativo ya tienen medios para leer las señales que envian las tarjetas... el driver es un traductor... por ejemplo "si la tarjeta envia B00010" (b antes de un numero = binario) quiere decir que está lista, enviaremos "B111" para que sepa que estamos listos... solo que entre tantos fabricantes, muchas veces no se establecen standards, entonces hp le gusta por ejemplo mandar la meta data antes que la data y canon prefiere despues... eso hace que requieras 2 traductores diferentes

eso para cerrar aquí evitemos desviar el tema ;)



Ahora el problema es doble.


Título: Re: Crear un kernel!
Publicado por: engel lex en 12 Noviembre 2016, 15:52 pm
XD no esperabas hacer un kernel que fuera compatible con todo no? XD

el problema de los drivers es que la mayoria son privativos... esto implica que fuera de los OS principales, no hay opciones para correr eso dispositivos


Título: Re: Crear un kernel!
Publicado por: Poyoncio en 12 Noviembre 2016, 15:54 pm
No vas a crear un kernel en una semana, ni en dos años si quieres algo medianamente decente. El kernel de linux lleva muchisimos años desarrollandose y ha tenido muchisimas contribuciones, si quieres algo medianamente decente te sera mejor modificar el kernel de linux que crear uno nuevo


Título: Re: Crear un kernel!
Publicado por: engel lex en 12 Noviembre 2016, 15:56 pm
No vas a crear un kernel en una semana, ni en dos años si quieres algo medianamente decente, el kernel de linux lleva muchisimos años desarrollandose y ha tenido muchisimas contribuciones, si quieres algo medianamente decente te sera mejor modificar el kernel de linux que crear uno nuevo

en realidad si puede crear un kernel... si es mejor modificar el de linux... pero en un buen esfuerzo de unos 6 meses podría armar uno funcional... muchas veces esto se usa para poder correr procesos exclusivos que necesiten hiper alta prioriad en el pc... o que funcionen de maneras especiales o experimentales


Título: Re: Crear un kernel!
Publicado por: Ali Baba en 13 Noviembre 2016, 02:17 am
XD no esperabas hacer un kernel que fuera compatible con todo no? XD

el problema de los drivers es que la mayoria son privativos... esto implica que fuera de los OS principales, no hay opciones para correr eso dispositivos

Dije que el problema era doble porque me implantaste mas dudas  :laugh: :laugh: :laugh:


Título: Re: Crear un kernel!
Publicado por: Ali Baba en 13 Noviembre 2016, 02:18 am
No vas a crear un kernel en una semana, ni en dos años si quieres algo medianamente decente. El kernel de linux lleva muchisimos años desarrollandose y ha tenido muchisimas contribuciones, si quieres algo medianamente decente te sera mejor modificar el kernel de linux que crear uno nuevo

Yo voy a pasarme mi tiempo y estudiar un poco para crear mi kernelsito  :silbar: :silbar: :silbar: aun asi me pase 15 años  ;-) ;-)


Título: Re: Crear un kernel!
Publicado por: Poyoncio en 13 Noviembre 2016, 02:29 am
Yo voy a pasarme mi tiempo y estudiar un poco para crear mi kernelsito  :silbar: :silbar: :silbar: aun asi me pase 15 años  ;-) ;-)
Lo veo un poco estupido, vas a reinventar la rueda, pero bueno, yo he hecho cosas aun mas estupidas  ;-) ;-) ;-)
Adelante, pero te daras cuenta que necesitas un buen nivel de C, incluso podrias hacer como el de linux y poner componentes escritos en python
Saludos


Título: Re: Crear un kernel!
Publicado por: engel lex en 13 Noviembre 2016, 07:08 am
Lo veo un poco estupido, vas a reinventar la rueda, pero bueno, yo he hecho cosas aun mas estupidas  ;-) ;-) ;-)
Adelante, pero te daras cuenta que necesitas un buen nivel de C, incluso podrias hacer como el de linux y poner componentes escritos en python
Saludos

ojo no comparo, solo digo... podría haberle dicho lo mismo a linus torvalds cuando dijo que haría una copia de bsd XD

a demás por aprendizaje nunca está de más


Título: Re: Crear un kernel!
Publicado por: Ali Baba en 13 Noviembre 2016, 22:55 pm
Lo veo un poco estupido, vas a reinventar la rueda, pero bueno, yo he hecho cosas aun mas estupidas  ;-) ;-) ;-)
Adelante, pero te daras cuenta que necesitas un buen nivel de C, incluso podrias hacer como el de linux y poner componentes escritos en python
Saludos

Entonces todo los kernel son iguales?


Título: Re: Crear un kernel!
Publicado por: kub0x en 13 Noviembre 2016, 23:17 pm
Entonces todo los kernel son iguales?

No. Existen varios tipos como el Monolithic o MicroKernel. Sus diferencias son notorias ya que el Monolithic carga todo en modo privileged y el Micro separa la lógica en capas poniendo en modo privileged solo aquello necesario, por lo tanto el micro suele ser menos propenso a fallos, y sí, Linux es mono, anda que el Torvalds buena manía tiene a los micro (segun afirmaciones varias).

+ INFO -> https://en.wikipedia.org/wiki/Kernel_(operating_system)#Kernel-wide_design_approaches (https://en.wikipedia.org/wiki/Kernel_(operating_system)#Kernel-wide_design_approaches)

Saludos!


Título: Re: Crear un kernel!
Publicado por: Sadistski en 14 Noviembre 2016, 04:41 am
hummm... se me ocurren algunas soluciones:

podrías bajarte el source code de puppy linux, puppy linux es una versión linux de bajo recursos (solo tiene lo básico, a diferencia de ubuntu)... así sería mucho más fácil analizar su código que si bajas el source code de ubuntu....

analizar DLLS con programas como ollydbg, wxhexeditor y asdf asdf....imagino que si tuvieras ganas de hacer un S.O operativo y solo tuvieras internet como referencia, seria una buena manera de aprender...

pegarte un tiro.... o tratar de programarlo a MANO y terminar cuando tengas 102 años  :laugh:


Título: Re: Crear un kernel!
Publicado por: engel lex en 14 Noviembre 2016, 04:43 am
hummm... se me ocurren algunas soluciones:

podrías bajarte el source code de puppy linux, puppy linux es una versión linux de bajo recursos (solo tiene lo básico, a diferencia de ubuntu)... así sería mucho más fácil analizar su código que si bajas el source code de ubuntu....

analizar DLLS con programas como ollydbg, wxhexeditor y asdf asdf....imagino que si tuvieras ganas de hacer un S.O operativo y solo tuvieras internet como referencia, seria una buena manera de aprender...

pegarte un tiro.... o tratar de programarlo a MANO y terminar cuando tengas 102 años  :laugh:

no tiene sentido que se baje puppy  linux... su kernel es el mismo no tiene ninguna reducción... lo unico que tiene es un gestor de aplicaciones y de escritorio más ligero, pero eso está por encima del kernel

tambien para que analizar dlls? XD no es más facil analizar los drivers de codigo abierto de linux? así no tiene que andar adivinando que es qué


Título: Re: Crear un kernel!
Publicado por: Borito30 en 27 Noviembre 2016, 18:48 pm
coge una distro de linux y tuneala  :xD ya tienes tu propio kernel pero basado en otro