Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: V1C3NT3 en 13 Febrero 2022, 04:13 am



Título: Como puedo crear mi propio sistema operativo
Publicado por: V1C3NT3 en 13 Febrero 2022, 04:13 am
Hola si alguien me pudiera ayudar con esta duda me seria de mucha ayuda.



Título: Re: Como puedo crear mi propio sistema operativo
Publicado por: Machacador en 13 Febrero 2022, 13:07 pm
Descarga el kernel de Linux y agrégale lo que tu quieras... luego le pones un nombre...

 :rolleyes: :o :rolleyes:


Título: Re: Como puedo crear mi propio sistema operativo
Publicado por: Serapis en 13 Febrero 2022, 13:23 pm

Cuando alguien hace esa pregunta, implícitamente está aceptando su incapacidad para hacerlo.
La culpa?: Que se quiere correr sin saber siquiera gatear.


Descarga el kernel de Linux y agrégale lo que tu quieras... luego le pones un nombre...
Sí, por ejemplo basta descargarlo y cambiarle el nombre y ya 'ha creado' un S.O. en 2 horas fantástico.

Modificar un S.O. o incluso añadir características, nunca será 'crear mi propio S.O.'.
Ese pequeño detalle de 'mi propio', supone que es a imagen y semejanza de como uno ha venido opinando o concibiendo ideas a lo largo del tiempo y que quiere ver reflejados en la realidad.

Pero, vamos que quien dijo 'digo', luego puede decir 'Diego', y sí, 'crear un S.O.' tan fácimente como descargarse uno existente y cambiarle solamente el nombre antes de compilarlo.

Por otro lado si alguien no sabe ni como empezar un S.O. mucho me temo que tampoco sabe gran cosa sobre programar, ni entender el código fuente de un programa. Pero no le quitemos la ilusión (dicíendole que no puede (con sus capacidades actuales)), directamente démosle un precipio por el que lanzarse al vacío (le seguimos la corriente, dándole algo más complejo y enorme que una mini concepción inicial de 'mi propio S.O.')...




Título: Re: Como puedo crear mi propio sistema operativo
Publicado por: @XSStringManolo en 13 Febrero 2022, 14:50 pm
Como te han comentado, para desarrollar un OS que funcione, tú solo, seguramente necesitaras décadas de experiencia programando. Y si ese fuese el caso, no harías esta pregunta. Entonces en base a esto, deduzco tu nivel de conocimientos y te respondo de forma que puedas acercarte bastante a lo que tratas de conseguir.


Lo mas simple que puedes hacer, es olvidarte de programar un kernel, compilar proyectos de código enormes, meterle mano al código fuente y demás. Y en su lugar irse directamente a la capa de usuario, que al final es lo que se ve y los kernel y distros de Linux ya están genial, como para tener que pasarse años programando algo similar que va a ir peor xD.

Entonces:
Te recomiendo usar proot, bajarte un filesystem del OS que mas te guste,  customizarlo todo y exportarlo.

Descargar proot:
curl -LO https://proot.gitlab.io/proot/bin/proot && chmod +x ./proot


- Descargar el filesystem de Alpine Linux (Es de los que menos pesan)
curl -LO https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-minirootfs-3.15.0-x86_64.tar.gz

- Extraer el sistema de archivos en una carpeta
tar -xvzf alpine-minirootfs-3.15.0-x86_64.tar.gz

- Renombrar la carpeta extraida al nombre que quieras.

Yo tengo 3 copias distintas de esta carpeta:
1. alpineClean - Esta carpeta está sin modificar, solo le cambie el nombre tras extraerla del .tar.gz. La utilizo para crear nuevos "OS" limpios.

2. customDistro - En esta carpeta hago todos los cambios que quiero. Por ejemplo instalo programas, edito el saludo que sale al iniciar, cambio el gestor de paquetes por otro custom, cambio la shell de sh/ash/bash a otra que me guste mas, añado programas mios, etc.

3. baseDistro - Esta carpeta es una copia de customDistro por si la lío y borro algo por accidente, no tener que rehacer todo de 0. O por si quiero hacer cambios.

Una vez tengo una distro lista, por ejemplo con 100 herramientas de hacking, la exporto y le doy un nombre. Y la puedo utilizar en cualquier lado con proot.


Aquí te dejo algunos scripts básicos para ayudarte a manejar las distros:

arrancarOS.sh
Código
  1. #!/usr/bin/env bash
  2.  
  3. proot -0 -r ./customDistro -w /root --kill-on-exit --kernel-release=5.4.0 --bind="/dev/urandom:/dev/random" --bind="/proc/self/fd:/dev/fd" --bind="/proc/self/fd/0:/dev/stdin" --bind="/proc/self/fd/1:/dev/stdout" --bind="/proc/self/fd/2:/dev/stderr"


exportarOS.sh
Código
  1. #!/usr/bin/env bash
  2.  
  3. 7z a dist-custom-distro.7z customDistro

purgarOS.sh
Código
  1. #!/usr/bin/env bash
  2.  
  3. yes | rm -r customDistro; cp alpineClean customDistro -r


resetearOS.sh
Código
  1. #!/usr/bin/env bash
  2.  
  3. yes | rm -r customDistro; cp baseDistro customDistro -r


Con proot estás utilizando el kernel del sistema original, así las distros son mucho mas ligeras. Tengo alguna distro compleja que pesa menos de 10 Megas.

Puedes extraer el fileSystem de cualquier distro de Linux para customizarlo usando el comando tar si buscas la documentación oficial de Proot, te lo explican. Usar la de Alpine tiene sus ventajas y sus desventajas. Las principales ventajas es que es muy ligero (6 megas aprox) y fácil de utilizar. La principal  desventaja es que utiliza muscl como librería de C, por lo que algunos programas puede que no los encuentres y tengas que compilarlos tú con esa librería.

Para instalar paquetes en alpine:
apk add curl

Para buscar paquetes:
apk search nmap

Para informacion sobre el paquete:
apk info nmap

Para desinstalar un paquete:
apk del curl


Título: Re: Como puedo crear mi propio sistema operativo
Publicado por: MinusFour en 13 Febrero 2022, 15:30 pm
Hoy en día, crear un sistema operativo no es una tarea de un solo individuo. Solo conozco dos personas que han creado un sistema operativo completo y en su forma más básica para una sola arquitectura.

Andrew Tanenbaum que creo MINIX (y lo utilizo para enseñar desarrollo de sistemas operativos). Hoy en día MINIX si utilizas un procesador intel, tu tarjeta madre incluye un microprocesador que corre MINIX. Claro que MINIX ya es otra bestia hoy en día.

Terry Davis que creo TempleOS que incluye muchas mas cosas que MINIX (al menos el MINIX que desarrollo Tanenbaum en sus primeras iteraciones). Y fuera de que el trabajo que realizo fue gigantesco no es un sistema operativo que recomendaría a nadie fuera de probarlo y ya.

Linus Torvalds empezó Linux pero este es un kernel y no un sistema operativo completo.


Título: Re: Como puedo crear mi propio sistema operativo
Publicado por: V1C3NT3 en 16 Febrero 2022, 01:07 am
Gracia por su ayuda guapos XD


Título: Re: Como puedo crear mi propio sistema operativo
Publicado por: .xAk. en 17 Febrero 2022, 05:40 am
Pero no inventen la rueda, desde antaño https://www.linuxfromscratch.org


Título: Re: Como puedo crear mi propio sistema operativo
Publicado por: Serapis en 17 Febrero 2022, 16:42 pm
La rueda tiene que ser constantemente reinventada.
Especialmente el que quera llevar los límites más allá de lo actual.

Si no fuera así, los ordenadores no habrían aparecido, con la máquina de escribir y las calculadoras mecánicas deberían haberse conformado... pero incluso antes de eso, deberían haberse conformado con el papiro y el ábaco.

La tecnología de hoy es la semilla de la tecnología del mañana. Pero a diferencia de las semillas vegetales, éstas requieren el ingenido humano, no el arte de la Naturaleza.