2008-09-19 6 views
29

Je suis en train de jouer avec l'idée de créer un tout nouveau système d'exploitation et je voudrais savoir ce que tout le monde sur ce forum est en train de faire? D'abord c'est trop tard, les grands garçons sont tellement ancrés dans nos vies que nous ne pourrons jamais changer (wow - quelle pensée terrible ...). Mais si ce n'est pas le cas, que devrait faire un système d'exploitation pour vous? Quelles caractéristiques sont les plus importantes? Est-ce que tous les composants doivent être des installations séparées (en d'autres termes, le système d'exploitation de base ne devrait-il pas avoir de fonctionnalité utilisateur et être ajouté en créant des plug-ins?)Si je devais construire un nouveau système d'exploitation, quel genre de fonctionnalités aurait-il?

Pourquoi je veux pour faire ceci ... Je suis plus curieux de savoir s'il y a une demande et je me demande, puisque les systèmes d'exploitation que nous utilisons le plus aujourd'hui (Linux, Windows, Mac OS X (Free BSD)) ont été écrits il y a plus de 20 ans (et je suis généreux - je veux dire que les coeurs doubles et quads n'existaient pas à l'époque, les bus étaient beaucoup plus lents, le matériel était beaucoup plus cher, etc ...), j'étais simplement curieux de la nouvelle technologie ?

J'ai hâte de lire vos commentaires.

+1

question cool. pourquoi toutes les questions cool ne sont pas constructives? : -/ – HorseloverFat

Répondre

6

Pour plus d'informations sur le noyau micro-monolithique, consultez Linus '' discussion '' avec Andrew Tanenbaum.

5

Je vous suggère fortement de regarder une version antérieure sur Linux (0.01) pour au moins se mouiller les pieds. Vous allez batifoler avec un assemblage et des trucs de bas niveau très obscurs pour commencer (surtout en mode protégé, multi-tâches, etc.). Et oui, il est probablement vrai que les «grands garçons» ont déjà le marché coincé. Je ne vous dis pas de ne pas le faire, mais peut-être faire un peu de travail sur le noyau Linux serait un meilleur tremplin.

4

Un système d'exploitation ne devrait avoir aucune fonctionnalité utilisateur. La fonctionnalité de l'utilisateur devrait être ajoutée par des projets distincts, ce qui ne signifie pas du tout que les projets ne devraient pas fonctionner ensemble!

Si vous êtes intéressé par la fonctionnalité de l'utilisateur, vous devriez peut-être envisager de participer à des projets existants de l'environnement de bureau tels que GNOME, KDE ou autre. Si vous êtes intéressé par les fonctionnalités au niveau du noyau, essayez de pirater un dérivé BSD ou Linux, ou essayez de créer votre propre système - mais ne pensez pas trop à la fonctionnalité de l'utilisateur. Obtenir le bon fonctionnement d'un système d'exploitation est difficile et prendra du temps - vouloir tout réinventer n'a pas beaucoup de sens et ne vous mènera nulle part.

+0

Je pense que cela manque le point de la question. Quoi qu'il en soit, en ce qui concerne votre premier paragraphe, pourquoi un système d'exploitation ne devrait-il pas avoir de "fonctionnalité utilisateur"? Il y a quelques idées assez radicales surgissent dans la recherche d'OS de nos jours. – BobbyShaftoe

23

Pour répondre à la première question: Il n'est jamais trop tard. Surtout quand il s'agit de segments de marché de niche et des choses comme ça. Deuxièmement, avant de commencer la création d'un nouveau système d'exploitation, vous devez comprendre le type d'entreprise: ce serait un projet massif.

Est-ce que c'est juste un type de projet normal pour les programmeurs? Si oui, alors allez de l'avant - vous pourriez apprendre beaucoup de choses en le faisant. Mais si vous le faites pour le produit résultant, alors vous ne devriez pas commencer ce chemin jusqu'à ce que vous ayez regardé tous les systèmes d'exploitation en cours de développement (il y en a beaucoup plus que vous ne le penseriez au début) et compris vous aimeriez changer en eux.

Très probablement l'effort serait mieux passé passé à améliorer/modifier un système open source existant. Même pour votre propre expérience, il peut être plus facile d'obtenir les résultats souhaités si vous commencez avec quelque chose qui est déjà en cours de développement.

+3

En fait, ce n'est pas si grave. Construire un système d'exploitation de plusieurs milliards de dollars, c'est sûr que c'est une entreprise énorme. Cependant, construire un système d'exploitation expérimental n'est vraiment pas si mal. Minix 3 est inférieur à 10 000 lignes. – BobbyShaftoe

+0

J'ai déjà assisté à une conférence intitulée "construire un système d'exploitation en 2 heures". Le conférencier a construit de grandes parties d'un système d'exploitation pendant ce temps, tout en expliquant chaque étape. Bien sûr, cet OS était à peine amorçable, mais quand même. (Divulgation complète: il n'a pas commencé avec 0 lignes de code, il avait quelques composants basiques, mais toujours petits, prêts). – keyser

4

Découvrez Cosmos et Singularity, ceux-ci représentent ce que je veux d'un système d'exploitation futuriste ;-) Edit: SharpOS est un autre effort réussi du système d'exploitation. Suggéré par yshuditelu

+0

Cosmos (-t), également SharpOS est un autre système d'exploitation C# en développement. En outre, ils tentent d'utiliser uniquement du code managé. –

+0

Typo fixe, merci aussi pour la référence SharpOS, ne le savais pas. –

+0

Je pense que Singularity est un excellent projet, mais je ne suis pas convaincu que ce soit l'avenir des systèmes d'exploitation. – BobbyShaftoe

15

Pourquoi construire le système d'exploitation directement sur une machine physique? Vous allez juste vous balader en langage assembleur;). Bien sûr, c'est amusant, mais pourquoi ne pas s'attaquer à un système d'exploitation pour une machine virtuelle? Dites un système d'exploitation qui s'exécute sur la machine virtuelle Java/.NET/Parrot (vous l'appelez), qui peut facilement être transmis sur le réseau et peut exécuter un tas de logiciels.

Que comprend-elle?

  • un moyen de stocker des données (FS traditionnelles ne sera pas coupé)
  • Un modèle pour les processus/fils (ou tout simplement pirater les choses fournies par la machine virtuelle?)
  • outils pour interagir avec ces processus

Donc, construisez une plate-forme simple qui peut être exécutée sur une machine virtuelle largement utilisée. Mettez-y quelques fonctionnalités intéressantes pour un créneau spécifique (cloud computing?). Aller!

+1

Je ne suis pas sûr que cela ait du sens. – BobbyShaftoe

+4

En fait, je pense que cela pourrait avoir un sens: Pensez à une application en tant que machine dans un "état" spécifique. Si vous pouvez définir cette machine (le système d'exploitation) et comment cela fonctionne, alors l'application peut être mise à l'échelle ici et là sans se soucier de ce qui fonctionne réellement sur ... –

+2

Cela me semble logique. – spoulson

2

En résumé ... concentrez-vous sur vos objectifs et, plus important encore, sur les objectifs des autres ... aidez-vous à répondre à ces besoins. Ne commencez jamais avec juste la technologie.

Je vous déconseille de créer votre propre système d'exploitation. (Ma propre interruption geek ... Regardez dans Cloud Computing et Amazon EC2)

Je suis entièrement d'accord que cela aiderait d'abord en définissant vos objectifs. Je suis un grand fan des expériences utilisateur et pense non seulement à vos propres objectifs, mais aussi aux objectifs de votre public/utilisateurs/autres. Une fois que vous avez ces objectifs, passez à l'étape suivante de la façon de les atteindre.

De nos jours, qu'est-ce qu'un système d'exploitation? kernal, Système d'exploitation, Instance de serveur virtuel, Linux, Windows Server, Windows Accueil, Ubuntu, AIX, zSeries OS/390, et al. Je suppose que c'est une bonne définition de l'OS ... Wikipedia

J'aime le slogan de Sun "the Network is the computer" aussi ... mais leur entreprise a vraiment chuté au cours de la dernière décennie.

Sur cette note du réseau est l'ordinateur ... encore une fois, je recommande fortement, en vérifiant Amazon EC2 et plus généralement cloud computing.

+0

Mais "cloud computing" est un problème fondamentalement différent. – BobbyShaftoe

2

Vous pouvez d'abord joindre un projet d'implémentation de système d'exploitation existant, ou au moins regarder ce que d'autres personnes ont implémenté. Par exemple, AROS a été créé il y a 10 ans ou plus en tant que système d'exploitation, et est maintenant utilisable à bien des égards.

Ou que diriez-vous de quelque chose de plus niche? Découvrez Symbios, qui est un système d'exploitation de bureau entièrement multitâche (dans le style de Windows) - pour les processeurs Z80 4 MHz (Amstrad CPC, MSX). Peut-être que vous voudriez écrire quelque chose comme ceci, qui est loin moins d'une morsure qu'un plein système d'exploitation de prochaine génération.

1

Je pense que vous avez raison de dire que nos systèmes d'exploitation actuels sont vieux. Quelqu'un a dit que tous les systèmes d'exploitation aspirent. Et oui, n'avons-nous pas de problèmes avec eux? Appelez-le BSOD, Sad Mac ou Kernel Panic. Nos systèmes de fichiers échouent, il y a problèmes de sécurité et de fiabilité.

Microsoft a poursuivi une approche intéressante avec son noyau Singularity. Il isole les processus dans les logiciels, en utilisant une machine virtuelle similaire à .NET, et les méthodes formelles de vérification. Fondamentalement, tout IPC semble être formellement spécifié et vérifié, même avant qu'un programme ne soit exécuté.

Mais il y a un autre problème - Singularity est seulement un noyau. Vous ne pouvez pas exécuter l'application qui ne lui est pas destinée. C'est une pénalité énorme, rendant la transition éventuelle (la singularité n'est pas publique) assez difficile. Si vous parvenez à produire quelque chose d'avantages techniques similaires, mais avec un vrai plan de transition (pensez aux problèmes IPv4-> IPv6, ou comment Windows a eu autant de parts de marché sur le bureau), cela pourrait être énorme!

Mais commençant petit n'est pas un mauvais choix non plus. Linux a commencé comme ça, et il y a beaucoup de cas où cela mène à une meilleure conception. Petit est beau. Plus facile à changer. Plus facile à cultiver De toute façon bonne chance!

21

D'abord, une petite histoire. En 1992, lors de la toute première conférence Win32 (ce qui allait devenir la Conférence des développeurs professionnels de MS), j'ai eu l'occasion de déjeuner avec un certain M. Dave Cutler (architecte en chef de ce que la plupart des gens appellent Windows NT, Windows 2000, XP, etc.). À l'époque, j'étais en train de travailler sur le groupe Multimédia d'IBM Boca Raton sur ce que certains d'entre vous se souviendraient peut-être, OS2. Après avoir travaillé sur OS/2 pendant plusieurs années, et reconnaissant "l'écriture sur le mur" des OS, je lui ai demandé: "Dave, Windows NT va-t-il nous emmener dans le siècle prochain ou y at-il d'autres idées sur esprit ?". Sa réponse à moi était la suivante:

"M .... Windows NT est le dernier système d'exploitation que quelqu'un développera à partir de zéro!". Puis il me regarda, prit une gorgée de sa bière et me dit: "Encore une fois, vous pourriez vous réveiller samedi après une soirée particulièrement réussie avec votre fille, et avoir une toute nouvelle approche pour un système d'exploitation," Je vais faire honte à cela. En mettant cette conversation en contexte, et compte tenu du fait que je suis de retour au collège pour poursuivre mes études de master (spécialisé dans la conception de systèmes d'exploitation), je dirais qu'il y a beaucoup de place pour de nouveaux systèmes d'exploitation. La chose est de mettre les choses en perspective. Quels sont vos objectifs cibles pour ce système d'exploitation? Quel espace problème tente-t-il de réparer? Si vous mettez tout cela en perspective, vous aurez une idée de ce que vous voulez vraiment faire si vous voulez atteindre un objectif réalisable. Tout cela étant dit, je suis d'accord avec un commentaire précédent sur des choses comme "Singularity" (le sujet d'un discours que j'ai donné au printemps dernier dans une de mes classes ...), ou si vous voulez vraiment pour "couler les dents dans" un OS à ses débuts .... regardez "ReactOS".

De nouveau, les WebOS, comme le GOS, etc., sont probablement la prochaine destination à prendre au cours de la prochaine décennie. Ou encore, quelqu'un de particulièrement brillant pourrait se réveiller après une soirée particulièrement fructueuse avec son amie ou son ami, et avoir la «prochaine grande idée» dans les systèmes d'exploitation.

+0

+1 pour Dave Cutler! Aussi, ouais je suis d'accord Singularity est intéressant mais je pense que ça attire peut-être trop l'attention. – BobbyShaftoe

+0

"M ...." ce ne serait pas "marcelo.lopezjr" le ferait-il? lol –

+0

+1 pour 'Soirée fructueuse avec une amie ou un ami' (bien que - si vous songez aux systèmes d'exploitation lorsque vous passez des soirées fructueuses avec vos amis, vous pourriez vous tromper) – HorseloverFat

1

caisse projet singulier, faire quelque chose de révolutionnaire

1

J'ai toujours voulu un système d'exploitation qui était fondamentalement rien mais une ardoise fraîche.Il aurait intégré dans le support de plugin qui vous permettent de construire l'interface utilisateur, les applications, ce que vous voulez.

Ce système fonctionnerait un peu comme un sandbox Lua pour un jeu fonctionnerait, moins les limitations. Vous pourriez construire un système de plugin ou de module qui aurait accès à une variété de sous-systèmes que vous utiliseriez. Par exemple, si vous deviez écrire une application de navigateur Web, vous devrez charger la bibliothèque de mise en réseau et l'utiliser dans votre script de plugin. Besoin de 'sécurité'? Chargez la bibliothèque. La différence entre Linux et Linux est que Linux est un système d'exploitation mais possède un gestionnaire de fenêtres qui l'exécute. Dans ce système d'exploitation théorique, vous pourriez implémenter le «look» et le «feel» génériques d'une variété de fenêtres dans le système de plugin, ou pourriez-vous créer une interface personnalisée. La différence entre ceci et Windows est qu'il est entièrement personnalisable, et je veux dire par exemple que si vous ne voulez pas implémenter de cryptographie du tout, vous pouvez le faire, ou si vous voulez personnaliser une fenêtre déjà existante, vous pouvez fais ça. Rien n'est fermé à vous.

Dans ce système d'exploitation théorique, il existe un système d'exploitation avec un système de plugin. Le système de plugin utilise un langage simple et puissant.

2

Je pense que construire un nouvel OS à partir de zéro pour ressembler aux systèmes d'exploitation actuels sur le marché est une perte de temps. Au lieu de cela, vous devriez penser à ce que sera le système d'exploitation dans 10-20 ans. Mon intuition est qu'ils seront si différents qu'ils les rendront pour la plupart méconnaissables selon les standards actuels. Pensez à des cadres tels que Facebook (gasp!) Pour les modèles de fonctionnement des systèmes d'exploitation futurs.

0

Vous pouvez également envisager d'utiliser MINIX, ce qui est un bon point de départ.

0

À l'origine de ce forum, mon chapeau à vous monsieur pour oser penser dans des termes beaucoup plus audacieux et idéalistes concernant l'industrie des TI. Tout d'abord, vos questions sont précisément le genre que vous penseriez devrait engager un public beaucoup plus large compte tenu des sciences informatiques florissantes dans le monde entier & l'ouverture que nous a enseigné le système d'exploitation Linux révolutionnaire, qui a seulement commencé à gagner les cœurs et les esprits de tellement là-bas en renforçant son interface conviviale. Alors bravo de pousser l'enveloppe. Si je suis correctement, vous supposez que, compte tenu des fruits de notre travail jusqu'à présent, le développement de matériel supplémentaire pourrait ou du moins devrait être moins conventionnel. L'implication, bien sûr, est que tout nouveau développement atteindrait son objectif plus rapidement que ce qui est typique. La perspective, cependant, d'un système d'exploitation entièrement nouveau à cette époque serait difficile - pour le moins - seulement parce qu'il y a déjà beaucoup de friction entre Linux & Windows. C'est vraiment une bataille entre l'open source et les idéologies propriétaires. Bart Roozendaal dans un commentaire ci-dessus prouve bien mon point de vue. Oubliez l'idée d'innovation et toutes les possibilités qui peuvent provenir d'un système d'exploitation beaucoup plus contemporain, car de telles choses sont secondaires. Ce qu'il demande essentiellement, est-ce que vous allez être du côté du profit ou non? Il donne facilement sa position ici. Comme vous le savez, Windows est connu pour son approche monopolistique concernant les nouveaux marchés, logiciels et autres technologies. Il a maintenu un deathgrip sur son hégémonie depuis son existence et malheureusement les fenêtres OS sont soutenues par des bogues sans fin & backdoors. Encore une fois, je vous félicite d'avoir emprunté une route moins fréquentée et, espérons-le, d'aller de l'avant sans être découragé. Personnellement, j'aimerais voir un autre système d'exploitation là-bas ... un système beaucoup plus contemporain.

1

Si vous demandez ce que je voudrais voir dans un système d'exploitation, je peux vous donner une liste.Je commence juste à programmer, donc je ne suis pas sûr que ce soit possible, mais je peux vous donner mes idées.

  1. Je voudrais voir un système d'exploitation développé (en plus des principaux) dans lequel il est pas une douleur pour obtenir la carte sans fil fonctionne. C'est ma pire bête noire avec la plupart de ceux que j'ai essayés.

  2. Il serait cool de voir un système d'exploitation conçu par un programmeur pour d'autres programmeurs. Faites en sorte que vous puissiez exécuter des programmes pour tous les différents systèmes d'exploitation. Je ne sais pas si c'est possible sans avoir une copie de Windows et OSX mais ce serait vraiment cool si je pouvais vérifier la compatibilité des programmes que j'écris avec tous les systèmes d'exploitation.

Questions connexes