2008-09-19 4 views
29

Mi sto prendendo gioco dell'idea di creare un sistema operativo completamente nuovo e mi piacerebbe sapere cosa ne pensano tutti i forum? Innanzitutto è troppo tardi i grandi ragazzi così trincerati nelle nostre vite che non saremo mai in grado di cambiare (wow - che pensiero terribile ...). Ma se questo non è il caso, cosa dovrebbe fare un sistema operativo per te? Quali caratteristiche sono le più importanti? Tutti i componenti dovrebbero essere installazioni separate (in altre parole - il SO di base non ha davvero funzionalità utente e viene aggiunto creando "plug-in" come un buon strumento flessibile?)Se dovessi creare un nuovo sistema operativo, che tipo di funzionalità avrebbe?

Perché voglio per fare questo ... sono più curioso di sapere se c'è una domanda e mi chiedo, dato che i sistemi operativi che utilizziamo maggiormente oggi (Linux, Windows, Mac OS X (Free BSD)) sono stati scritti più di 20 anni fa (e io sono generoso - voglio dire che i core dual e quad non esistevano allora, gli autobus erano molto più lenti, l'hardware era molto più costoso, ecc ..., ero solo curioso con la nuova tecnologia se avessimo fatto qualcosa di diverso ?

Sono ansioso di leggere i vostri commenti.

+1

domanda interessante. perché tutte le domande interessanti non sono costruttive? : -/ – HorseloverFat

risposta

6

Per ulteriori informazioni sul kernel micro- versus monolitico, consultare la "discussione" di Linus con Andrew Tanenbaum.

5

Consiglio vivamente di guardare una versione precedente su linux (0,01) per almeno bagnare i piedi. Stai andando a chiacchierare con l'assemblaggio e roba di basso livello molto oscura per iniziare anche (soprattutto entrare in modalità protetta, multi-tasking, ecc.). E sì, probabilmente è vero che i "grandi ragazzi" hanno già messo in pericolo il mercato. Non ti sto dicendo di NON farlo, ma forse lavorare un po 'sul kernel di Linux potrebbe essere un trampolino di lancio migliore.

4

Un sistema operativo non dovrebbe avere alcuna funzionalità utente. Le funzionalità utente dovrebbero essere aggiunte da progetti separati, il che non significa affatto che i progetti non debbano funzionare insieme!

Se si è interessati alla funzionalità utente, si dovrebbe prendere in considerazione la possibilità di partecipare a progetti di ambiente desktop esistenti come GNOME, KDE o qualcosa del genere.

Se si è interessati alla funzionalità a livello di kernel, provare a eseguire l'hacking su un derivato BSD o su Linux oppure provare a creare il proprio sistema, ma non pensare troppo alla funzionalità dell'utente. Ottenere il nucleo di un sistema operativo giusto è difficile e richiederà molto tempo: voler reinventare tutto non ha molto senso e non ti porterà da nessuna parte.

+0

Penso che manchi il punto della domanda. Ad ogni modo, per quanto riguarda il tuo primo paragrafo, perché un sistema operativo non dovrebbe avere alcuna "funzionalità utente". Al giorno d'oggi ci sono alcune idee piuttosto radicali che stanno emergendo nella ricerca sui sistemi operativi. – BobbyShaftoe

23

Per rispondere alla prima domanda: non è mai troppo tardi. Soprattutto quando si tratta di segmenti di mercato di nicchia e cose del genere.

In secondo luogo, prima di iniziare il percorso di creazione di un nuovo sistema operativo, è necessario comprendere il tipo di impegno: si tratta di un progetto enorme.

È solo un normale programmatore "gratta il prurito" tipo di progetto? Se è così, allora con tutti i mezzi andare avanti - si potrebbe imparare un sacco di cose facendo. Ma se lo stai facendo per il prodotto risultante, allora non dovresti iniziare quel percorso fino a che non hai guardato tutti i sistemi operativi attualmente in fase di sviluppo (ci sono molti più di quanto pensassi all'inizio) e capito cosa ti piacerebbe cambiarli.

Molto probabilmente lo sforzo sarebbe meglio speso per migliorare/modificare un sistema open source esistente. Anche per la tua stessa sperimentazione, potrebbe essere più facile ottenere i risultati desiderati se inizi con qualcosa già in sviluppo.

+3

In realtà, non è così male. Costruendo un sistema operativo da molti miliardi di dollari, è sicuramente una grande impresa. Tuttavia, la creazione di un sistema operativo sperimentale non è poi così male. Minix 3 è inferiore a 10.000 linee. – BobbyShaftoe

+0

Una volta ho partecipato a una conferenza intitolata "costruire un sistema operativo in 2 ore". Il docente ha realizzato grandi parti di un sistema operativo durante questo periodo, spiegando allo stesso tempo ogni passaggio. Ovviamente, questo sistema operativo era appena avviabile, ma ancora. (Full disclosure: non ha iniziato con 0 linee di codice, aveva alcune componenti di base, ma ancora piccole, pronte). – keyser

4

Partenza Cosmos e Singularity, questi rappresentano quello che voglio da un sistema operativo futuristico ;-) Edit: SharpOS è un altro gestito sforzo operativo. Suggerito da yshuditelu

+0

Cosmos (-t), anche SharpOS è un altro sistema operativo C# in fase di sviluppo. Inoltre, stanno tentando di utilizzare solo il codice gestito. –

+0

Errore di battitura, grazie anche per il riferimento SharpOS, non lo sapevo. –

+0

Penso che Singularity sia pulito e un grande progetto, ma non sono convinto che sia il futuro dei sistemi operativi. – BobbyShaftoe

15

Perché creare il sistema operativo direttamente su una macchina fisica? Sarai solo a chiacchierare in un linguaggio assembly;). Certo, è divertente, ma perché non affrontare un sistema operativo per una macchina virtuale?

Dire un sistema operativo che gira su Java/.NET/Parrot (si chiama) VM, che può essere facilmente passato in rete e può eseguire un po 'di software.

Cosa includere?

  • Un modo per memorizzare i dati (FS tradizionali non è tagliato)
  • Un modello per processi/thread (o semplicemente dirottare il materiale fornito dal VM?)
  • Strumenti per interagire con questi processi ecc.

Quindi, creare una piattaforma semplice che può essere eseguita su una macchina virtuale ampiamente utilizzata. Inserisci funzionalità interessanti per una nicchia specifica (cloud computing?). Partire!

+1

Non sono sicuro che questo abbia senso. – BobbyShaftoe

+4

In realtà, penso che potrebbe avere un senso: pensare a un'applicazione come a una macchina in uno "stato" specifico. Se è possibile definire quella macchina (il sistema operativo) e come funziona, allora l'applicazione può essere ridimensionata qui e là senza preoccuparsi di ciò che è effettivamente in esecuzione su ... –

+2

Ha senso per me. – spoulson

2

Bottom line ... concentrarsi sui propri obiettivi e, ancora più importante, sugli obiettivi degli altri ... contribuire a soddisfare tali esigenze. Non iniziare mai solo con la tecnologia.

Si consiglia di non creare il proprio sistema operativo. (La mia interruzione geniale ... guarda in Cloud Computing e Amazon EC2)

Sono assolutamente d'accordo sul fatto che prima sarebbe di aiuto definendo quali sono i tuoi obiettivi. Sono un grande fan delle User Experiences e penso non solo ai tuoi obiettivi ma anche agli obiettivi del tuo pubblico/utenti/altri. Una volta ottenuti questi obiettivi, passa al prossimo passaggio su come incontrarlo.

Oggigiorno cos'è un sistema operativo in qualche modo? kernal, sistema operativo, istanza del server virtuale, Linux, Windows Server, Windows Home, Ubuntu, AIX, zSeries OS/390 e altri. Immagino che questa sia una buona definizione di OS ... Wikipedia

Mi piace anche lo slogan di Sun "the Network is the computer" ... ma la loro compagnia è davvero caduta nell'ultimo decennio.

Su quella nota della rete è il computer ... ancora una volta, consiglio vivamente, controllando Amazon EC2 e più in generale cloud computing.

+0

Ma il "cloud computing" è una questione fondamentalmente diversa. – BobbyShaftoe

2

È possibile unirsi prima a un progetto di implementazione del sistema operativo esistente o almeno a quello che altre persone hanno implementato.

Ad esempio, AROS ha richiesto circa 10 anni di sviluppo come sistema operativo per hobby e ora è abbastanza utilizzabile in molti modi.

O che ne dici di qualcosa di più di nicchia? Scopri Symbios, che è un sistema operativo desktop completamente multitasking (nello stile di Windows) - per CPU Z80 a 4 MHz (Amstrad CPC, MSX). Forse vorresti scrivere qualcosa del genere, che è molto meno un morso di un sistema operativo completo di prossima generazione.

1

Penso che tu abbia ragione sul fatto che i nostri attuali sistemi operativi siano vecchi. Qualcuno ha detto che succhia tutti i sistemi operativi. E sì, non abbiamo problemi con loro? Chiamalo BSOD, Sad Mac o Kernel Panic. I nostri filesystem falliscono, ci sono problemi di sicurezza e affidabilità .

Microsoft ha perseguito un approccio interessante con il suo kernel Singularity. Isola i processi nel software, utilizzando una macchina virtuale simile a .NET e i metodi di verifica formale . Fondamentalmente tutto l'IPC sembra essere formalmente specificato e verificato, ancor prima che venga eseguito un programma.

Ma c'è un altro problema con esso - Singolarità è solo un kernel. Non è possibile eseguire applicazioni non progettate su di esso. Questa è una penalità enorme, che rende piuttosto difficile la transizione finale (Singolarità non è pubblica). Se riesci a produrre qualcosa di simile vantaggio tecnico, ma con un vero piano di transizione (pensa a IPv4-> problemi IPv6, o come Windows ha ottenuto così tanta quota di mercato sul desktop), potrebbe essere enorme!

Ma start small non è una cattiva scelta. Linux è iniziato proprio così e ci sono molti casi in cui porta a un design migliore. Piccolo è bello. Più facile da cambiare. Più facile da crescere. Comunque, buona fortuna!

21

In primo luogo, una piccola storia. Nel 1992, durante la primissima conferenza Win32 (che sarebbe diventata la conferenza MS Professional Developers Conference), ho avuto l'opportunità di sedermi con un certo signor Dave Cutler (capo architetto di quello che la maggior parte della gente ora conoscerebbe come Windows NT, Windows 2000, XP, ecc.).

All'epoca lavoravo al gruppo Multimedia presso IBM Boca Raton su ciò che alcuni di voi potrebbero ricordare, OS/2. Avendo lavorato su OS/2 per diversi anni, e riconoscendo "la scritta sul muro" di dove stavano andando i sistemi operativi, gli ho chiesto, "Dave, Windows NT ci porterà nel prossimo secolo o ci sono altre idee sul tuo mente ?". La sua risposta a me era la seguente:

"M ...., Windows NT è l'ultimo sistema operativo che nessuno potrà mai sviluppare da zero!". Poi mi guardò, bevve un sorso della sua birra e disse, "Poi di nuovo, potresti svegliarti sabato prossimo dopo una serata particolarmente bella con la tua ragazza, e avere un approccio completamente nuovo per un sistema operativo, che ' Lo farò vergognare. "

Mettendo quella conversazione nel contesto, e dato il fatto che sono tornato al college per conseguire il mio master (specializzato in progettazione di sistemi operativi), direi che ci sono tonnellate di spazio per i nuovi sistemi operativi. Il punto è mettere le cose in prospettiva. Quali sono i tuoi obiettivi di target per questo sistema operativo? Quale spazio problema sta cercando di fornire assistenza?

Mettere tutto questo in prospettiva ti darà un'indicazione se stai davvero fissando il tuo obiettivo su un obiettivo raggiungibile.

Ciò detto, in secondo luogo, una prima nota dei commentatori su come guardare "Singolarità" (il focus di un discorso che ho tenuto la scorsa primavera in una delle mie classi ...), o se proprio vuoi "affondare i denti in" un sistema operativo nella sua infanzia .... guarda "ReactOS".

Poi di nuovo, WebOSes, come gOS, e simili, sono probabilmente il luogo in cui ci dirigeremo nel prossimo decennio. Oppure, di nuovo, qualcuno particolarmente brillante potrebbe svegliarsi dopo una serata particolarmente fruttuosa con la loro donna o amico, e avere la "prossima grande idea" nei sistemi operativi.

+0

+1 per Dave Cutler! Inoltre, sì, sono d'accordo Singolarità è interessante, ma penso che forse ottiene troppa attenzione. – BobbyShaftoe

+0

"M ...." questo non sarebbe "marcelo.lopezjr" vero? lol –

+0

+1 per "una serata fruttuosa con la loro signora o ragazzo amico" (anche se - se stai pensando ai sistemi operativi quando fai delle serate fruttuose con la tua signora o con i tuoi amici, potresti sbagliarti) – HorseloverFat

1

cassa progetto singolarità, fare qualcosa di rivoluzionario

1

Ho sempre voluto un sistema operativo che era fondamentalmente nient'altro che una lista fresca.Avrebbe incorporato il supporto per i plugin che ti permettesse di costruire l'interfaccia utente, le applicazioni, qualunque cosa tu voglia.

Questo sistema funzionerebbe molto simile a una sandbox Lua per un gioco funzionerebbe, al netto delle limitazioni. Potresti creare un plugin o un sistema di moduli che avrebbe accesso a una varietà di sottosistemi che useresti. Ad esempio, se si dovesse scrivere un'applicazione per browser Web, sarà necessario caricare la libreria di rete e utilizzarla all'interno dello script del plug-in. Hai bisogno di 'sicurezza'? Carica la libreria

La differenza tra questo e Linux è che, Linux è un sistema operativo ma ha un gestore di Windows che viene eseguito su di esso. In questo sistema operativo teorico, potresti implementare il "look" e "feel" generico di una varietà di finestre all'interno del sistema di plugin o potresti creare un'interfaccia personalizzata.

La differenza tra questo e Windows è che è completamente personalizzabile, e per intero intendo se non volevi implementare alcuna crittografia, puoi farlo, o se volevi personalizzare una finestra già esistente, puoi Fai quello. Niente ti è chiuso.

In questo sistema operativo teorico, esiste un sistema operativo con un sistema di plugin. Il sistema di plugin usa un linguaggio semplice e potente.

2

Penso che la creazione di un nuovo sistema operativo da zero per assomigliare agli attuali sistemi operativi sul mercato sia una perdita di tempo. Invece, dovresti pensare a come sarà il sistema operativo tra 10-20 anni. La mia intuizione è che saranno così diversi da renderli per lo più irriconoscibili per gli standard odierni. Pensa a framework come Facebook (gasp!) Per i modelli di come funzioneranno i sistemi operativi futuri.

0

Si potrebbe anche considerare di andare con MINIX che è un buon punto di partenza.

0

All'origine di questo forum, il mio cappello a voi signore per aver osato pensare in termini molto più audaci e idealistici per il settore IT. Prima di tutto, le tue domande sono precisamente il tipo che avresti pensato di coinvolgere un pubblico molto più ampio, date le fiorenti Scienze informatiche in tutto il mondo & l'apertura insegnataci dal rivoluzionario sistema operativo Linux, che ha appena iniziato a conquistare i cuori e le menti di così tanti là fuori rafforzando la sua interfaccia user-friendly. Quindi, i miei complimenti per aver spinto la busta.

Se sto seguendo correttamente, si sta supponendo che dato i frutti del nostro lavoro finora, lo sviluppo di ulteriori hardware & intrugli software potrebbe o almeno dovrebbe essere meno convenzionale. L'implicazione, ovviamente, è che qualsiasi nuovo sviluppo raggiungerebbe il suo obiettivo più velocemente di quanto è tipico. La prospettiva, tuttavia, di un sistema operativo completamente nuovo @questa volta sarebbe una sfida - per non dire altro - solo perché c'è già così tanta frizione tra Linux & Windows. È davvero una battaglia tra l'open source & le ideologie proprietarie. Bart Roozendaal in un commento sopra dimostra bene il mio punto. Dimentica l'idea dell'innovazione e qualsiasi altra possibilità possa provenire da un sistema operativo molto più contemporaneo, perché cose del genere sono secondarie. In sostanza, ciò che sta chiedendo è che stai dalla parte del profitto o no? Dà facilmente la sua posizione qui. Come sapete, Windows è noto per il suo approccio monopolistico nei confronti di nuovi mercati, software e altre tecnologie. Ha mantenuto un'eccezione mortale sulla sua egemonia sin dalla sua esistenza e purtroppo il sistema operativo Windows è pieno di bug infiniti & backdoor.

Ancora una volta, vi applaudisco per aver intrapreso una strada meno battuta e, auspicabilmente, procedendo in anticipo e senza scoraggiarsi. Personalmente, mi piacerebbe vedere un altro OS là fuori ... uno molto più contemporaneo.

1

Se mi stai chiedendo cosa mi piacerebbe vedere in un sistema operativo, posso darti una lista.Sto solo programmando, quindi non sono sicuro che tutto ciò sia possibile, ma posso darti le mie idee.

  1. Mi piacerebbe vedere un sistema operativo sviluppato (oltre a quelli principali) in cui non è un dolore per ottenere la scheda wireless per lavorare. Questo è il mio peggior problema con la maggior parte di quelli che ho provato.

  2. Sarebbe bello vedere un sistema operativo progettato da un programmatore per altri programmatori. Avere così è possibile eseguire programmi per tutti i diversi sistemi operativi. Non so se sia possibile senza avere una copia di Windows e OSX ma sarebbe davvero dannatamente bello se potessi verificare la compatibilità dei programmi che scrivo con tutti i sistemi operativi.