elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 02:03  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderador: Littlehorse)
| | |-+  Otra vez al ruedo: ¿hacer un SO?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: Otra vez al ruedo: ¿hacer un SO?  (Leído 6,033 veces)
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Otra vez al ruedo: ¿hacer un SO?
« en: 17 Febrero 2011, 10:56 »

Habia hecho un hermoso post, pero de idiota aprete backspace fuera del area de texto y el navegador perdio todo (cargó la págian anterior) jaja.... que paja pocas ganas de escribir todo de nuevo....


Bueno, la idea es esa, hacer un SO. Esto ya se ha intentado varias veces antes y muchas más se ha hablado.

Antes de que alguien venga a decir "es dificil", "mejor hagan una distro de linux", "estudien minix" o cosas similares aviso que la idea es, desde un comienzo, partir de "la nada", aprender, desarrollar y construir algo par air viendo su avance.

Es MUY buena idea ver, analizar y usar fragmentos del codigo de Linux, Minix o sistemas GNU / GPL, pero solo como referencia, no es la idea hacer otra distro de un sistema existente, sino construir uno.

¿con que finalidad?: Aprender, divertirse, basicamente esas dos finalidades. Posiblemente sea un sistema Horrible, inestable, reducido,... mal hecho en muchos aspectos, pero no es la idea superar o igualar a ninguno de los sistemas existentes (ni siquiera al MS DOS :P)


Me gustaria saber quien esta dispuesto a intentarlo, con entusiasmo y perseverancia, sabiendo que no sera tarea facil y que llevara mucho tiempo, si sabiendo esto aun te gusta la idea, pues bienvenido al tren.


Basado en experiencias anteriores, seria bueno evitar tratar cuestiones como "¿que nombre le vamos a poner?" o "¿y el logo?"... o discutir sobre si sera grafico, consola, si tendra soporte para video en 3d y esas cosas qeu estan a AÑOS LUZ del punto actual.

En este punto inicial lo que hay que lograr es:

Boot desde FAT 12, 16 y 32 (floppy y pendrive/HDD), tampoco seria mala idea EXT2 o similares dada su amplia especificacion disponible.

Secuencia de inicio: Boot Sector > Loader > Kernel

El loader deberia, en teoria entrar al modo protegido (32bits. Aca hay que hacer una breve comprobacion de hardware), mapear la memoria, controlar interrupciones y luego cargar el kernel desde el sistema de archivos (el cual habra que detectar oportunamente si se usadan varios sistemas de archivos).

El kernel se deberia de encargar de gestionar la memoria mapeada con el loader (¿convendra mapear la memoria con el kernel?... buena pregunta), proporcionar funciones apis (en lo posible compatibles con POSIX) para manejo de sistema de archivos, keyboard, puerto serial, paralelo, video (text mode inicialmente).



Creo que eso es mas que suficiente para un comienzo, de hecho es mucho (BOOT SECTOR en varios sistemas de arhcivos, un loader y la carga de un kernel)


El lenguaje a usar cual será?

Para el boot sector, creo que no queda otra alternativa que usar ASM, la buena noticia es que tenemos buenos codigos disponibles en Linux, ReactOS, FreeDOS, MenuetOS, etc.

FASM es una buena alternativa dado que permite compilar para muchas arquitecturas (x86, x64 seran los preferidos) y plataformas (windows, linux... que no usaremos, y la compilacion binaria "bruta", que si usaremos)

para el Loader, el Kernel y el resto, C / C++, segun sea aplicable.

Para C/C++ una buena alternativa es CodeBlocks que usa el compilador GCC y esta disponible (IDE y Compilador) para Windows y Linux, eso facilitaria las tareas de depuracion y programacion entre los interesados que tengan o queiran probar compilar/desarrollar desde diferentes sistemas.


Sin mas que decir espero que alguien se sume a la idea y que podamos llegar a hacer algo presentable y no muera en el intento como ha ocurrido antes en muchos proyectos.

EDIT:

Aca dejo un par de links utiles, ire agregando mas con el paso del tiempo.

Los pongo en el primer post por organizacion.

Especificaciones de los sistemas de arhcivos FAT:
Citar


« Última modificación: 17 Febrero 2011, 23:42 por SERBice » En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
Khronos14

Desconectado Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #1 en: 17 Febrero 2011, 15:36 »

Yo me apunto de buena gana, pero a ver en que queda la cosa  ;D

Yo creo que lo mejor es que el Kernel sea puramente x64, seguir usando x86... Hasta los netbooks de hoy en día traen procesador x64.

Nasm también sería una buena opción.

Saludos.


En línea

Anay

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #2 en: 17 Febrero 2011, 15:59 »

Perfecto¡¡ maravilloso has puesto en un post mis ideas, todo lo que llevaba un tiempo pensando hacer.
Contad conmigo, yo me apunto, aunque estoy acabando la carrera y mi tiempo sera limitado contadconmigo.
Una pregunta ¿monolitico o micronucleo?  Yo tenia pensado hacer un micronucleo modificado, por lomenos para que se diferencie de algo a Linux, tener software libre donde elegir.
Un saludo.
En línea
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #3 en: 17 Febrero 2011, 23:02 »

La idea de x64 es tentadora, pero me parece algo demasiado alto para comenzar. Todos los procesadores de 64bits son compatibles con x86, y pueden ejecutar 16, 32 y 64bits (el tio bill no hizo compatible windows x64 con aplicaciones de 16bits simplemente por capricho, podia haberlo hecho).

De todas formas, queda a criterio de la mayoria del grupo si será x86 o x64, lo decidiremos en grupo, como una democracia.


Nasm también sería una buena opción claro, para el boot sector, no para el SO :D


Por otro lado, ¿monolitico o micronucleo?...


Linux es monolitico con la posibilidad de cargar modulos, Windows es monolitico hibrido. Minix es micronucleo y Mac OS X tambien es micro nucleo.

A mi, personalmente me gusta mas monolitico... no me gusta mucho la idea de dejar las aplicaciones tan "libres", prefiero que el SO se encargue de todo el hardware, como linux. Corrijanme si me equivoco.

micronucleo modificado, ¿a que te refieres? ¿hibrido?

Bueno pues, ya somos 3, espero que mas gente se apunte, cuantos mas seamos, mejor será, de todos modos debemos organizarnos bien para que no se fragmente el grupo por diferencias de ideas.... pero eso se verá cuando seamos un grupo de mayor tamaño, hasta ahora solo somos 3, lo cual no está mal ^^
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
Leber


Desconectado Desconectado

Mensajes: 338


"Fracta, non verba"


Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #4 en: 17 Febrero 2011, 23:19 »

Hola, que tal.

Decirte que a mi también me interesa bastante la idea, y creo que puede estar muy bien para aprender.
Respecto a monolitico o micronucleo, en mi opinion creo que es mejor que sea el so quien gestione el hardware.

La verdad es que me gustaría bastante participar.

Saludos

En línea

"Solo los tontos carecen de preucupaciones." Johann Wolfgang Goethe
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #5 en: 17 Febrero 2011, 23:43 »

Perfecto Leber, bienvenido :D

He agregado unos links utiles al final del primer post. Ire agregando mas (en el primer post por cuestiones de organizacion) con el paso del tiempo y segun sea la necesidad.
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.710


Nie Dam Sie


Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #6 en: 18 Febrero 2011, 00:02 »

Mucha suerte con el proyecto, para cualquier duda aquí estamos.

Les agrego un link donde podrán encontrar bastante información sobre el tema.

http://wiki.osdev.org/Main_Page

Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Anay

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #7 en: 18 Febrero 2011, 09:21 »

Windows es micronucleo modificado (lo he estado analizando hace unos dias en sistemas por eso lo se ;) )
A mi me gusta mas micronucleo por el tema de que nohabra que eestar compilando todo el santo dia, pero vamos,  me da igual yo lo hago por aprender, nada mas.

Bueno para quien quiera irse dando ya una idea dejo el link de los manuales de los procesadores Intel: http://www.intel.com/products/processor/manuals/index.htm

Estaría bien estandarizar los programas que vamos a usar, yo trabajare sobre Windows asi que que haya para ambos SO please :P
« Última modificación: 18 Febrero 2011, 09:35 por Anay » En línea
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #8 en: 18 Febrero 2011, 18:23 »

Windows es micronucleo modificado (lo he estado analizando hace unos dias en sistemas por eso lo se ;) )
A mi me gusta mas micronucleo por el tema de que nohabra que eestar compilando todo el santo dia, pero vamos,  me da igual yo lo hago por aprender, nada mas.

Bueno, por lo de compilar todo el dia, no creo que sea problema... no sera (al menos no en sus inicios) como el kernel linux que necesita de mucho tiempo para compilar.

Por otra parte, Windows NT es un monolitico modificado, y no al reves. De todas formas, no deja de ser un nucleo hibrido.

Modo núcleo: Tiene acceso total a la memoria del sistema y los dispositivos externos. Los núcleos de los sistemas operativos de esta línea son todos conocidos como núcleos híbridos, aunque hay que aclarar que este término está en discusión ya que este núcleo es esencialmente un núcleo monolítico que está estructurado al estilo de un micronúcleo. La arquitectura dentro del modo núcleo se compone de lo siguiente:[1]
1.Un núcleo híbrido.
2.Una Capa de Abstracción de Hardware (HAL).
3.Controladores o drivers.
4.Executive: Sobre el cual son implementados todos los servicios de alto nivel.



Estaría bien estandarizar los programas que vamos a usar, yo trabajare sobre Windows asi que que haya para ambos SO please :P


Como dije en el primer post, FASM o NASM para el boot sector (Disponible para Windows y Linux) y CodeBlocks (IDE para C/C++ con el compilador GCC, disponible para Windows y Linux).

Luego pondre unos links de interes en el primer post, mas los que han aportado. :D
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
ace332

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #9 en: 19 Febrero 2011, 01:06 »

Buenas, me gustaria formar parte del proyecto  ;D

PD: No se mucho (casi nada  :xD) sobre como hacer un SO pero me gustaría aprender..
En línea
RON06

Desconectado Desconectado

Mensajes: 32


Aprendiz


Ver Perfil
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #10 en: 19 Febrero 2011, 13:46 »

Hola a todos!!

A mi también me gustaría contribuir en un proyecto como este, pero reconozco que es algo que requiere muchos conocimientos, tiempo y dedicación.

Además es un proyecto bastante ambicioso y difícil de realizar.

Yo básicamente en lo que puedo ayudar es en la programación en C++, aunque esto no es suficiente :( y además supongo que se necesita un nivel elevado y de momento no lo tengo.

Saludos  ::)
En línea
Khronos14

Desconectado Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #11 en: 19 Febrero 2011, 15:37 »

Hola, creo que de momento lo primero sería que SERBice (puesto que es el creador del post y de la idea) creara una cuenta en algún repositorio de código (codegoogle, sourceforge). De esta manera podríamos colaborar todos, subiendo nuestros aportes.

Estuve pensando en el tema del bootloader y lo mejor es cargar nuestro kernel desde una imagen .iso. Cargar el kernel desde un .img es muy sencillo pero cuando pasa los 1440KB hay que portar el código para que se cargué desde una .iso. Creo que lo más conveniente es usar Grub y para crear la iso utilizar mkisofs desde consola (funciona en Windows y en GNU/Linux).

Mañana subiré un amago de kernel para que escriba algo en pantalla.

Saludos.
En línea

SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #12 en: 20 Febrero 2011, 05:10 »

requiere muchos conocimientos, tiempo y dedicación.

Además es un proyecto bastante ambicioso y difícil de realizar.

Requiere conocimientos, tiempo y dedicacion, por supuesto.

Ambicioso?, eso es relativo. como dije antes, no se pretende competir con nada ni nadie, ni siquiera con MS-DOS. La idea es aprender y lograr hacer algo razonablemente estable y operativo, por mas limitado que sea.


Hola, creo que de momento lo primero sería que SERBice (puesto que es el creador del post y de la idea) creara una cuenta en algún repositorio de código (codegoogle, sourceforge). De esta manera podríamos colaborar todos, subiendo nuestros aportes.

Estuve pensando en el tema del bootloader y lo mejor es cargar nuestro kernel desde una imagen .iso. Cargar el kernel desde un .img es muy sencillo pero cuando pasa los 1440KB hay que portar el código para que se cargué desde una .iso. Creo que lo más conveniente es usar Grub y para crear la iso utilizar mkisofs desde consola (funciona en Windows y en GNU/Linux).

Mañana subiré un amago de kernel para que escriba algo en pantalla.

Saludos.


Muchas veces (en otros threads y proyectos) se ha discutido sobre si construir un bootloader o usar grub, lilo o alguno similar.

La idea del proyecto es hacer un So desde lo mas abajo posible, lo cual incluye el boot sector, bootstrap (bootloader) y luego el kernel. De momento iremos pasoa  paso, BootSector y BootLoader, luego nos preocuparemos por el kernel.

para hacer la secuencia boot necesitamos, minimamente, soportar FAT12/16, para de este modo leer los arhcivos que iran ejecutandose secuencialmente (Boot Sect > Boot Loader > Kernel > Drivers), de otro modo no podriamos leer nada.

En cuanto a lo del repositorio, hace varios dias estuve evaluando las diferentes alternativas y tengo pensado hacer un repositorio.

Luego le echare un ojo a codegoogle... ¿alguien sabe si codegoogle tiene SVN o algun sistema similar?


Solo como cierre de este mensaje: Recuerden que la idea es aprender, desarrollar y lograr hacer algo como grupo. No se pretende hacer algo de altisimo nivel con GUI... no es la idea competir o asemejarse a NT, Linux ni a DOS, sino hacer un simple SO (que probablemente crezca con el paso del tiempo y el aporte de la gente).

Yo soy partidario de VER y usar las ideas y fragmentos de codigos de otros proyectos (como GRUB, Linux, ReactOS, Wine -para soportar soft windows-, especificaciones coff y elf, etc), pero siempre desarrollando un modelo propio, aun cuando este no sea la mejor implementacion, pero la idea es hacer algo propio de este grupo, no hacer copy/paste.
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
mauriciodelos

Desconectado Desconectado

Mensajes: 24


/*Nada*/


Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #13 en: 20 Febrero 2011, 09:41 »

Me parece genial la idea. Brindo mis pocos conocimientos a este humilde emprendimiento, ayudar en lo que se pueda.
En línea

El fanatismo es la máxima estupidez humana.
Dr.Hacker++


Desconectado Desconectado

Mensajes: 1.368



Ver Perfil WWW
Re: Otra vez al ruedo: ¿hacer un SO?
« Respuesta #14 en: 20 Febrero 2011, 13:29 »

Jajaja yo podria hacer minijuegos para el SO xDD con SDL...
En línea

Gana dinero fácil, Elhacker.net no permite nada ilegal
Entra en mi web -> http://helpmewithmypublic.comlu.com/
Necesito pagarme internet...


Páginas: [1] 2 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines