Ho lavorato in un negozio di HF e in un'altra azienda di servizi per un breve periodo. Si preoccupano della velocità. Velocità del software, velocità della rete e qualsiasi altra cosa che potrebbe avere a che fare con la velocità.
Usano Linux per la stabilità, come altri hanno notato, ma anche perché ti permettono di sintonizzare, misurare e controllare quasi tutto. Con una scatola multicore, è possibile utilizzare il programma "tasket" per mantenere il processo su una CPU dedicata, ad esempio. Ma fondamentalmente, Linux ti consente di modificare, controllare e persino modificare il kernel del sistema operativo. Quindi dì che ricevi un messaggio di scambio che è solo 1kb. È possibile controllare il driver ethernet per attivare un interrupt non appena arriva quel piccolo frammento di dati, mentre l'impostazione predefinita potrebbe essere quella di attendere ulteriori dati. I negozi di HF si preoccupano di questo per la latenza.
Programmando saggiamente, impara tutto ciò che puoi sul C ++, inclusi i modelli. Scopri come velocizzare i programmi in qualsiasi modo possibile. Informazioni sulla 'località di riferimento' per mantenere i dati nelle vicinanze in memoria, in modo che rimangano nella cache anziché essere scaricati. Informazioni sull'assemblaggio, così puoi vedere che una riga di C ++ produce istruzioni X asm, ma un'altra linea produce X-1. Informazioni su thread e processi e su come il kernel controlla la pianificazione del processo (esistono diversi modi per controllarlo).
Java è diverso, ma non so abbastanza per darti qualche consiglio. Quello che ho sentito è imparare come mantenere i blocchi di codice nella cache e funzionerà alla velocità del C ++. Scopri tutto ciò che puoi sul rendere Java veloce e le diverse VM java disponibili su Linux.
Quindi Linux è come una macchina da kit, e Windows è come una macchina fuori dalla catena di montaggio di GM. Windows è di taglia unica e non si ottengono dettagli interni senza eseguire il bombardamento $ su Microsoft. Quindi l'incertezza aggiunta se la prossima versione di stuxnet potrebbe arrivare e compromettere l'intera rete. O il prossimo anno cambieranno l'API e dovrai imparare tutto da capo. Linux è solido e cambia molto poco.
Spero che questo aiuti.