L'apprendimento dei sistemi operativi è utile per uno sviluppatore di software? [chiuso]

-2

La maggior parte dei meccanismi di funzionamento del sistema operativo è nascosta al programmatore. Credo che sia anche uno degli scopi di un sistema operativo. Quindi quali sono le ragioni per cui uno sviluppatore di software dovrebbe imparare come funzionano i sistemi operativi?

    
posta Kake_Fisk 30.08.2016 - 12:39
fonte

5 risposte

2

Sapere come funzionano i sistemi operativi è fondamentale e fondamentale per chiunque sia un serio sviluppatore di software. Non dovrebbe esserci alcun tentativo di aggirare il problema e chiunque le dirà che non è necessario dovrebbe essere ignorato. Mentre l'estensione e la profondità delle conoscenze necessarie possono essere messe in discussione, conoscere più dei fondamentali può essere fondamentale per il buon funzionamento del programma e persino per la sua struttura e il suo flusso.

Qualsiasi altra cosa è un poliziotto, cioè un tentativo di uscire dal lavoro.

Perché? Quando scrivi un programma e funziona troppo lentamente, ma non vedi nulla di sbagliato nel tuo codice, altrimenti cercheresti una soluzione. Come sarai in grado di eseguire il debug del problema se non sai come funziona il sistema operativo? Stai accedendo a troppi file? L'esaurimento della memoria e lo swap sono ad alto utilizzo? Ma non sai nemmeno cos'è lo swap! O il blocco I / O?

E vuoi comunicare con un'altra macchina. Come lo fai localmente o su internet? E qual è la differenza? Perché alcuni programmatori preferiscono un sistema operativo rispetto a un altro?

    
risposta data 30.08.2016 - 13:56
fonte
2

I sistemi operativi di apprendimento sono molto utili.

  • sapere come sono programmati i tuoi thread
  • sapere come eseguire il codice multi-threading
  • sapere quanta memoria il sistema operativo ti permette di allocare
  • conosce la latenza nei tuoi polling di attesa IO
  • sapere quanto sono efficienti i processi e i thread
  • conoscere la latenza nel codice di rete (ad esempio utile per il trading ad alta frequenza)
  • sapere come viene eseguito il paging del tuo programma

E molti altri mi sono persi

    
risposta data 30.08.2016 - 12:43
fonte
0

Most of the underlying workings of the operating system is hidden from the programmer.

concordati; Gli sviluppatori non hanno bisogno di conoscere le minuzie di come leggere un flusso di byte dalle pozzanghere dei media sulla superficie di un dispositivo a disco magnetico che gira a migliaia di giri al minuto.
Quel genere di cose è scritto da qualcun altro; lo Sviluppatore semplicemente riutilizza .

I believe that is also one of the purposes of an operating system.

Lo scopo di un sistema operativo è di far funzionare un sistema - fondamentalmente per far funzionare il computer.

Ciò che gli sviluppatori possono o non possono fare con esso è solo una considerazione piccola , che influenza la creazione delle API utilizzate dagli sviluppatori per accedere alle funzioni fornite dal sistema operativo.

Then what are the reasons a software developer should learn about how operating systems work?

Se viaggi in un paese straniero, hai bisogno di sapere da quale parte della strada guidano? OK, puoi "ottenere" senza questo frammento di informazioni, ma è probabile che il tuo viaggio sia più colorato / pieno di eventi / problematico / doloroso di quanto potrebbe essere sapere come usare le loro strade.

Se sei fortunato, il tuo Framework di programmazione potrebbe isolare da molte di queste differenze, ma non tutte.

    
risposta data 30.08.2016 - 13:13
fonte
0

Dipende dal tipo di sviluppo che stai facendo.

Lavorando sulla tua media, run of the mill, line of business CRUD? Allora no. No, non hai davvero alcun bisogno di capire la teoria dietro un sistema operativo. Stai solo andando a utilizzare il sistema operativo e non pensare a come funziona.

Lavorando su un microcontroller embedded o un controller di movimento PLC dove non esiste un sistema operativo e vorrete imparare alcune nozioni di base. Avrai bisogno di capire le interruzioni, le tecniche di programmazione dei thread (il round robin è comune, ma non necessariamente il migliore), altre cose che sono sicuro di aver ancora imparato.

Fondamentalmente, hai solo bisogno di per imparare queste cose quando non ti sono consegnate su un piatto d'argento. Tuttavia, questo non vuol dire che non sia utile per capire la teoria dell'OS. Siamo lavoratori della conoscenza. Avere una maggiore conoscenza dell'ambiente che stiamo prendendo di mira certamente non può far male.

    
risposta data 30.08.2016 - 13:44
fonte
0

Negli anni '60 e nei primi anni '70, le persone dei sistemi operativi stavano imparando alcune dolorose lezioni sulla concorrenza, l'esclusione reciproca, i deadlock e i problemi sorti. Questo ha incluso un sacco di cose su come costruire sistemi distribuiti.

Tra la fine degli anni '70 e l'inizio degli anni '80, le persone del database distribuito dovevano imparare esattamente le stesse lezioni, nel modo più duro, perché non si preoccupavano di leggere i documenti pubblicati dieci anni prima dai ragazzi dei sistemi operativi. p>

Questa osservazione venne da un professore all'UT Austin, verso la fine della mia carriera universitaria.

    
risposta data 30.08.2016 - 14:46
fonte

Leggi altre domande sui tag