Ho lavorato su ambienti * nix negli ultimi quattro anni come sviluppatore di applicazioni (principalmente in C).
Per favore, suggerisci alcuni libri / blog, ecc. Per migliorare le mie conoscenze interne * nix.
Ho lavorato su ambienti * nix negli ultimi quattro anni come sviluppatore di applicazioni (principalmente in C).
Per favore, suggerisci alcuni libri / blog, ecc. Per migliorare le mie conoscenze interne * nix.
Risposte:
Ecco alcuni suggerimenti su come comprendere lo "spirito" di Unix, oltre alle ottime raccomandazioni che sono state fatte nei post precedenti:
"The Unix Programming Environment" di Kernighan e Pike: un vecchio libro, ma mostra l'essenza dell'ambiente Unix. Ti aiuterà anche a diventare un utente shell efficace.
"Unix for the Impatient" è una risorsa utile per imparare a navigare nell'ambiente Unix. Uno dei miei preferiti.
Se vuoi diventare un utente esperto, non c'è niente di meglio degli "Unix Power Tools" di O'Reilly che consistono in suggerimenti e trucchi collettivi da parte dei professionisti Unix.
Un altro libro che non ho visto menzionare che è una lettura divertente e di istruzione è "Sistemi operativi, progettazione e implementazione", il libro di Andy Tanenbaum che includeva il codice sorgente per un sistema operativo Unix completo in 12k righe di codice.
Volete assolutamente leggere Advanced Programming in Unix Environment di Stevens . Non lasciare che il titolo Avanzato ti spaventi, è molto leggibile.
Libri / siti / manuali che sto usando di frequente:
Il kernel Linux : questo libro è pubblicato online come parte di TLDP (The Linux Documentation Project). Non è aggiornato e non è un manuale interno, ma fornisce informazioni utili e materiali introduttivi su principi e meccanismi del kernel.
Comprensione del kernel Linux: IMHO, è il miglior libro per i principianti che ha un background sulla progettazione e sul concetto dei sistemi operativi. È accettato come aggiornato e copre la versione 2.6 del kernel. Esiste una versione HTML del libro sul web, ma penso che sia molto probabilmente warez.
Mentre studi gli interni del kernel Linux, di solito devi imparare come funziona l'hardware e quale hardware fornisce in modo astratto. Intel ha ottimi manuali per questo.
Manuali per sviluppatori di software per architetture Intel 64 e IA-32 : informazioni aggiornate e dettagliate.
Manuale di riferimento del programmatore Intel 80386 : So che è un po 'vecchio ma ho imparato tante cose da questo manuale.
Se hai bisogno di studiare il design e il concetto dei sistemi operativi, ti suggerisco il seguente libro: Concetti relativi al sistema operativo .
O'REILLY Kernel Linux in breve
e O'REILLY Linux Device Driver
Linux Systems Programming o qualsiasi altro libro di Robert Love (questi sono tutti libri di O'Reilly):
Sono d'accordo con tutti gli altri e devo dire che l'APUE di Stevens (ho la seconda edizione) è un classico. Vorrei anche aggiungere che The Art of UNIX Programming di Eric Raymond si colloca proprio lì con Stevens nella mia lista.
Bene, per BSD Unices, c'è la progettazione e l'implementazione del sistema operativo 4.4BSD, parti delle quali sono ora apparentemente disponibili gratuitamente su http://www.freebsd.org/doc/en/books/design-44bsd/
Linux Device Driver è un'altra buona risorsa. Ti darebbe un altro modo per entrare nei meccanismi interni. Dalla prefazione:
Questo è, in superficie, un libro sulla scrittura di driver di dispositivo per il sistema Linux. Questo è un obiettivo degno, ovviamente; è probabile che il flusso di nuovi prodotti hardware non rallenti presto e qualcuno dovrà far funzionare tutti quei nuovi gadget con Linux. Ma questo libro parla anche di come funziona il kernel Linux e di come adattare il suo funzionamento ai tuoi bisogni o interessi. Linux è un sistema aperto; con questo libro, speriamo, sia più aperto e accessibile a una più ampia comunità di sviluppatori.
Per avere un'idea del perché e di ciò che il kernel dovrebbe supportare, dai un'occhiata a The Art of Unix Programming di Eric Raymond. Prende le cose a un livello filosofico abbastanza alto, ma andrebbe bene con i dettagli nitidi di altri libri.
Vorrei suggerire anche i seguenti due libri (oltre agli altri):
Ho ampiamente indicato il primo (se avessi memoria migliore e avessi più tempo, ne saprei molto di più di quello che faccio ora, ma questa è un'altra storia). Attualmente sto leggendo il secondo.