2008-09-19 19 views
29

Estoy jugando con la idea de crear un sistema operativo completamente nuevo y me gustaría escuchar lo que todos en este foro toman sobre eso? En primer lugar, es demasiado tarde si los niños grandes están tan arraigados en nuestras vidas que nunca podremos cambiar (guau, qué pensamiento tan terrible ...). Pero si este no es el caso, ¿qué debería hacer un sistema operativo por usted? ¿Qué características son las más importantes? ¿Deberían todos los componentes ser instalaciones separadas (en otras palabras, si el sistema operativo base realmente no tiene funcionalidad para el usuario y eso se agrega creando "plug-ins" como una buena herramienta flexible?)Si tuviera que construir un nuevo sistema operativo, ¿qué tipo de características tendría?

¿Por qué quiero? para hacer esto ... Tengo más curiosidad acerca de si existe una demanda y me pregunto, ya que los sistemas operativos que utilizamos más hoy en día (Linux, Windows, Mac OS X (Free BSD)) se escribieron realmente hace más de 20 años (y estoy siendo generoso, quiero decir que los núcleos duales y cuádruples no existían en aquel entonces, los buses eran mucho más lentos, el hardware era mucho más caro, etc.), tenía curiosidad con la nueva tecnología si hacíamos algo diferente ?

Estoy ansioso por leer sus comentarios.

+1

pregunta fresca. ¿Por qué todas las buenas preguntas no son constructivas? : -/ – HorseloverFat

Respuesta

6

Para obtener más información sobre el kernel micro versus monolítico, busque la "discusión" de Linus con Andrew Tanenbaum.

5

Yo recomendaría mirar una versión temprana en linux (0.01) para al menos mojarme los pies. Te vas a dedicar al ensamblaje y cosas de bajo nivel muy oscuras para empezar (especialmente entrar en modo protegido, multitarea, etc.). Y sí, probablemente sea cierto que los "grandes" ya tienen el mercado acorralado. No te estoy diciendo que NO lo hagas, pero tal vez hacer algún trabajo en el kernel de Linux sería un mejor trampolín.

4

Un sistema operativo no debería tener ninguna funcionalidad de usuario. La funcionalidad del usuario debe ser agregada por proyectos separados, ¡lo cual no significa que los proyectos no deberían funcionar juntos!

Si está interesado en la funcionalidad del usuario, tal vez deba considerar participar en proyectos de entorno de escritorio existentes como GNOME, KDE o algo así.

Si está interesado en la funcionalidad a nivel kernel, intente hackear un derivado de BSD o en Linux, o intente crear su propio sistema, pero no piense demasiado en la funcionalidad del usuario. Lograr que funcione el núcleo de un sistema operativo es difícil y tomará mucho tiempo. Querer reinventar todo no tiene mucho sentido y no te llevará a ninguna parte.

+0

Creo que esto no tiene sentido. De todos modos, en cuanto a su primer párrafo, ¿por qué un sistema operativo no debería tener ninguna "funcionalidad de usuario"? Hay algunas ideas bastante radicales apareciendo en la investigación del sistema operativo hoy en día. – BobbyShaftoe

23

Para responder a la primera pregunta: Nunca es demasiado tarde. Especialmente cuando se trata de segmentos de nicho de mercado y cosas así.

En segundo lugar, antes de comenzar el camino de la creación de un nuevo sistema operativo, debe comprender el tipo de empresa que es: sería un proyecto masivo.

¿Es simplemente un programador normal "arañar la picazón" tipo de proyecto? Si es así, entonces, por supuesto, adelante, puede aprender muchas cosas al hacerlo. Pero si lo hace por el producto resultante, entonces no debe comenzar por ese camino hasta que haya analizado todos los sistemas operativos en desarrollo (hay mucho más de lo que pensaría al principio) y descubrió qué te gustaría cambiar en ellos

Es muy posible que el esfuerzo se aproveche mejor mejorando/cambiando un sistema de código abierto existente. Incluso para su propia experimentación, puede ser más fácil obtener los resultados que desea si comienza con algo que ya está en desarrollo.

+3

En realidad, no es tan malo. Construir un sistema operativo multimillonario, seguro que es una empresa masiva. Sin embargo, construir un sistema operativo experimental realmente no es tan malo. Minix 3 es menos de 10,000 líneas. – BobbyShaftoe

+0

Una vez asistí a una conferencia llamada "construir un sistema operativo en 2 horas". El conferencista construyó grandes partes de un SO durante este tiempo, mientras explicaba cada paso. Por supuesto, este sistema operativo era apenas de arranque, pero aún así. (Descripción completa: no comenzó con 0 líneas de código, tenía algunos componentes básicos, pero aún pequeños, listos). – keyser

4

Salida Cosmos y Singularity, éstos representan lo que quiero de un sistema operativo futurista ;-) Editar: SharpOS es otro esfuerzo lograron OS. Sugerido por yshuditelu

+0

Cosmos (-t), también SharpOS es otro sistema operativo C# en desarrollo. Además, intentan usar solo código administrado. –

+0

Typo corregido, gracias también por la referencia SharpOS, no lo sabía. –

+0

Creo que Singularity es genial y un gran proyecto, pero no estoy seguro de que sea el futuro de los sistemas operativos. – BobbyShaftoe

15

¿Por qué construir el sistema operativo directamente en una máquina física? Simplemente estarás rebuscando en un lenguaje ensamblador;). Claro, eso es divertido, pero ¿por qué no abordar un sistema operativo para una VM?

Digamos un sistema operativo que se ejecuta en la máquina virtual Java/.NET/Parrot (lo que se llame), que se puede pasar fácilmente por la red y puede ejecutar un montón de software.

¿Qué incluiría?

  • Algunos manera de almacenar los datos (FS tradicionales no se corte)
  • Un modelo de procesos/hilos (o simplemente secuestrar el material proporcionado por la máquina virtual?)
  • herramientas para interactuar con estos procesos etc.

Por lo tanto, cree una plataforma simple que se pueda ejecutar en una máquina virtual ampliamente utilizada. Ponga algunas funcionalidades interesantes para un nicho específico (¿computación en la nube?). ¡Ir!

+1

No estoy seguro de que esto tenga sentido. – BobbyShaftoe

+4

En realidad, creo que podría tener sentido: piense en una aplicación como una máquina en un "estado" específico. Si puede definir esa máquina (el sistema operativo) y cómo funciona, entonces la aplicación se puede escalar aquí y allá sin preocuparse por lo que realmente se está ejecutando ... –

+2

Tiene sentido para mí. – spoulson

2

Conclusión ... concéntrese en sus objetivos y, lo que es más importante, en los objetivos de los demás ... ayuda a satisfacer esas necesidades. Nunca comience solo con tecnología.

No recomendaría crear su propio sistema operativo. (Mi propia interrupción geek ... Mira en Cloud Computing y Amazon EC2)

Estoy totalmente de acuerdo en que primero te ayudaría a definir cuáles son tus objetivos. Soy un gran admirador de User Experiences y pienso no solo en sus propios objetivos, sino también en los objetivos de su público/usuarios/otros. Una vez que tenga esos objetivos, continúe con el próximo paso para cumplirlos.

Ahora días ¿qué es un sistema de operación de alguna manera? kernal, sistema operativo, instancia de servidor virtual, Linux, servidor Windows, Windows Home, Ubuntu, AIX, zSeries OS/390, et al. Supongo que esta es una buena definición de OS ... Wikipedia

Me gusta el eslogan de Sun "the Network is the computer" también ... pero su compañía realmente ha caído en la última década.

En esa nota de la red es la computadora ... de nuevo, lo recomiendo, revisando Amazon EC2 y más generalmente cloud computing.

+0

Pero la "computación en la nube" es un problema fundamentalmente diferente. – BobbyShaftoe

2

Es posible que desee unirse primero a un proyecto de implementación de sistema operativo existente, o al menos ver lo que otras personas han implementado.

Por ejemplo, AROS lleva trabajando unos 10 años o más como un sistema operativo de hobby, y ahora es bastante útil en muchos aspectos.

¿O qué tal algo más nicho? Eche un vistazo a Symbios, que es un sistema operativo de escritorio totalmente multitarea (en el estilo de Windows) - para CPU Z80 de 4MHz (Amstrad CPC, MSX). Tal vez quieras escribir algo como esto, que es mucho menos que un sistema operativo completo de próxima generación.

1

Creo que tiene razón acerca de que nuestros sistemas operativos actuales son antiguos. Alguien dijo que todos los sistemas operativos apestan. Y sí, ¿no tenemos problemas con ellos? Llámalo BSOD, Sad Mac o Kernel Panic. Nuestros sistemas de archivos fallan, hay problemas de seguridad y confiabilidad.

Microsoft siguió un enfoque interesante con su núcleo Singularity. Aísla procesos en software, utilizando una máquina virtual similar a .NET y métodos de verificación formal. Básicamente, parece que todo IPC se ha especificado y verificado formalmente, incluso antes de ejecutar un programa.

Pero hay otro problema: Singularity es solo un kernel. No se puede ejecutar una aplicación que no esté diseñada para él. Esta es una penalización enorme, lo que hace que la transición final (Singularity no sea pública) sea bastante difícil. Si logra producir algo de ventajas técnicas similares, pero con un plan de transición real (piense en los problemas de IPv4-> IPv6, o en cómo Windows obtuvo tanto cuota de mercado en el escritorio), ¡eso podría ser enorme!

Pero comenzando pequeño tampoco es una mala elección. Linux comenzó así, y hay muchos casos en que conduce a un mejor diseño. Lo pequeño es hermoso. Más fácil de cambiar Más fácil de cultivar ¡En fin, buena suerte!

21

Primero, una pequeña historia. En 1992, durante la primera conferencia de Win32 (que se convertiría en la MS Professional Developers Conference), tuve la oportunidad de sentarme a almorzar con un tal Mr. Dave Cutler (Arquitecto Jefe de lo que la mayoría de la gente ahora conocería como Windows NT, Windows 2000, XP, etc.).

Estaba trabajando en ese momento en el grupo Multimedia de IBM Boca Raton en lo que algunos de ustedes recordarán, OS/2. Después de haber trabajado en OS/2 durante varios años y de reconocer "la escritura en la pared" de dónde estaban pasando los sistemas operativos, le pregunté: "Dave, Windows NT nos llevará al próximo siglo o hay otras ideas sobre su mente? ". Su respuesta fue la siguiente:

"M ...., Windows NT es el último sistema operativo que alguien pueda desarrollar desde el principio". Luego me miró, tomó un sorbo de su cerveza y dijo: "De nuevo, podrías despertar el próximo sábado después de una noche particularmente buena con tu chica, y tener un enfoque completamente nuevo para un sistema operativo, eso". Lo avergonzaré ".

Poniendo esa conversación en contexto, y dado el hecho de que estoy de regreso a la universidad para obtener mi maestría (que se especializa en diseño de sistemas operativos), diría que hay TONELADAS de espacio para nuevos sistemas operativos. El asunto es poner las cosas en perspectiva. ¿Cuáles son sus objetivos para este sistema operativo? ¿Qué problema tiene el espacio tratando de dar servicio?

Poner todo esto en perspectiva le dará una indicación de si realmente está fijando su punto de mira en un objetivo alcanzable.

Dicho todo esto, en segundo lugar una nota de comentaristas anteriores sobre mirar cosas como "Singularity" (el foco de una charla que di la primavera pasada en una de mis clases ...), o si realmente quieres para "hundir los dientes en" un sistema operativo en su infancia ... mira "ReactOS".

Por otra parte, WebOSes, como gOS, y similares, son probablemente hacia dónde nos dirigimos durante la próxima década más o menos. O, una vez más, alguien particularmente brillante podría despertarse después de una noche particularmente fructífera con su amiga o amigo y tener la "próxima gran idea" en los sistemas operativos.

+0

+1 para Dave Cutler! Además, sí, estoy de acuerdo. La singularidad es interesante, pero creo que tal vez se presta demasiada atención. – BobbyShaftoe

+0

"M ...." esto no sería "marcelo.lopezjr" ¿o sí? lol –

+0

+1 para "una velada fructífera con su amiga o amigo" (aunque, si estás pensando en sistemas operativos cuando estás teniendo tardes fructíferas con tus amigas o amigos, es posible que lo estés haciendo mal) – HorseloverFat

1

proyecto singularidad de pago, hacer algo revolucionario

1

Siempre he querido un sistema operativo que era básicamente nada más que una pizarra fresca.Habría incorporado un complemento que te permite construir la interfaz de usuario, las aplicaciones, lo que quieras.

Este sistema funcionaría como un sandbox de Lua para que un juego funcione, menos las limitaciones. Podría construir un complemento o sistema modular que tendría acceso a una variedad de subsistemas que usaría. Por ejemplo, si tuviera que escribir una aplicación de navegador web, necesitaría cargar la biblioteca de red y usarla en su script de complemento. ¿Necesitas 'seguridad'? Cargue la biblioteca.

La diferencia entre esto y Linux es que, Linux es un sistema operativo pero tiene un administrador de Windows que se ejecuta en la parte superior. En este sistema operativo teórico, podría implementar el "aspecto" genérico y la "sensación" de una variedad de ventanas dentro del sistema de complementos, o podría crear una interfaz personalizada.

La diferencia entre esto y Windows es que es totalmente personalizable, y por completo quiero decir que si no desea implementar ninguna criptografía, puede hacerlo, o si desea personalizar una ventana ya existente, puede Haz eso. Nada está cerrado para ti.

En este sistema operativo teórico, hay un sistema operativo con un sistema de complemento. El sistema de complemento usa un lenguaje simple y poderoso.

2

Creo que construir un nuevo sistema operativo desde cero para que se parezca a los sistemas operativos actuales en el mercado es una pérdida de tiempo. En cambio, debe pensar en cómo será el sistema operativo dentro de 10-20 años. Mi intuición es que serán tan diferentes que los volverán casi irreconocibles según los estándares actuales. Piense en marcos tales como Facebook (¡jadeo!) Para modelos de cómo funcionarán los sistemas operativos futuros.

0

También podría considerar ir con MINIX, que es un buen punto de partida.

0

Al creador de este foro, le felicito señor por atreverse a pensar en términos mucho más audaces e idealistas con respecto a la industria de TI. Primero y ante todo, sus preguntas son precisamente del tipo que usted pensaría que deberían involucrar a un público mucho más amplio, dado el florecimiento de las Ciencias de la Computación en todo el mundo & la apertura que nos ha enseñado el Sistema Operativo Revolucionario Linux, que solo ha comenzado a ganar los corazones y las mentes de tantos por fortalecer su interfaz fácil de usar. Así que felicitaciones por empujar el sobre.

Si estoy siguiendo correctamente, supones que dados los frutos de nuestro trabajo hasta el momento, el desarrollo de más hardware & Software brebajes podría o al menos debería ser menos convencional. La implicación, por supuesto, es que cualquier nuevo desarrollo alcanzaría su objetivo más rápido de lo que es típico. Sin embargo, la perspectiva de un sistema operativo totalmente nuevo en este momento sería un reto, por decir lo menos, solo porque ya hay tanta fricción entre Linux & Windows. Realmente es una batalla entre código abierto & las ideologías propietarias. Bart Roozendaal en un comentario anterior prueba mi punto muy bien. Olvídese de la idea de la innovación y de las posibilidades que puedan surgir de un sistema operativo mucho más contemporáneo, ya que estas cosas son secundarias. Lo que está preguntando esencialmente es, ¿vas a estar del lado de las ganancias o no? Él le da su posición lejos fácilmente aquí. Como saben, Windows es famoso por su enfoque monopolístico con respecto a nuevos mercados, software y otras tecnologías. Se ha mantenido un garra de la muerte en su hegemonía desde su existencia y, lamentablemente, el sistema operativo windows se atormenta con interminables errores & backdoors.

De nuevo, te aplaudo por tomar un camino menos transitado y con suerte avanzar y no desanimarte. Personalmente, me gustaría ver otro sistema operativo por ahí ... uno mucho más contemporáneo.

1

Si me pregunta qué me gustaría ver en un sistema operativo, puedo darle una lista.Estoy empezando a programar, así que no estoy seguro de si algo de esto es posible, pero puedo darte mis ideas.

  1. Me gustaría ver un sistema operativo desarrollado (además de los principales), en la que no es un dolor para obtener la tarjeta de red inalámbrica funcione. Esa es mi principal preocupación con la mayoría de los que probé.

  2. Sería genial ver un sistema operativo diseñado por un programador para otros programadores. Tenerlo para poder ejecutar programas para todos los diferentes sistemas operativos. No sé si eso es posible sin tener una copia de Windows y OSX, pero sería realmente increíble si pudiera verificar la compatibilidad de los programas que escribo con todos los sistemas operativos.

Cuestiones relacionadas