qual è la differenza tra src versione 3. * e 3.. * - generico


10

Nel mio Linux / Ubuntu locale, ho due directory per Linux src

/usr/src/linux-3.16.0
/usr/src/linux-3.16.0-generic

Ho trovato che il codice in 3.16.0 è molto più di quello in 3.16.0-generico. Mi chiedo perché e come queste due directory siano diverse (e cosa rappresentano?)

Risposte:


1

Le due directory sono fornite dai pacchetti corrispondenti, che contengono i file di intestazione per il kernel. Utilizzare il dpkgcomando per trovare quale pacchetto fornisce le directory.

$ dpkg -S /usr/src/linux*
linux-headers-X.XX.X-XX: /usr/src/linux-headers-X.XX.X-XX
linux-headers-X.XX.X-XX-generic: /usr/src/linux-headers-X.XX.X-XX-generic
...

La prima directory /usr/src/linux-headers-X.X.XX-XXcomprende file di intestazione per più architetture, tra cui x86, amd64, powerpc e altri, con conseguente maggior numero di file e dimensioni maggiori del pacchetto.

L'altra directory /usr/src/linux-headers-X.X.XX-XX-genericsembrava contenere principalmente codici sorgente relativi all'architettura x86 destinata all'installazione locale.

Il pacchetto corrispondente è stato accennato nella descrizione, ad esempio:

$ apt-cache show linux-headers-3.16.0-25 | grep -A3 Description-en
Description-en: Header files related to Linux kernel version 3.16.0
 This package provides kernel header files for version 3.16.0, for sites
 that want the latest kernel headers. Please read
 /usr/share/doc/linux-lts-utopic-headers-3.16.0-25/debian.README.gz for details

Per quanto ne so, entrambe le directory contengono solo codici sorgente e non binari. E la differenza tra entrambi è principalmente l' architettura target dei codici sorgente.

Correlati: cosa contiene un albero dei sorgenti del kernel? Questo è legato alle intestazioni del kernel Linux?

Risposta estesa (30.07.2015)

dal momento che entrambi x86i codici relativi al negozio , qual è la differenza tra il x86codice nelle due directory? - Richard, 29 luglio 15 alle 19:11

La maggior parte delle directory e dei file contenuti /usr/src/linux-headers-X.X.XX-XX-genericsono collegamenti simbolici, che puntano a directory e file effettivi /usr/src/linux-headers-X.X.XX-XX. In altre parole, arch/x86in queste due directory si trovano solo la differenza dei collegamenti effettivi e simbolici, con alcuni file rimanenti di asmintestazioni nella *-genericcontroparte.

Tra questi due pacchetti, si può notare un'altra grande differenza è la presenza confige le generateddirectory nella *-genericcontroparte.

Per quanto ne so, penso che la *-genericdirectory contenga i file di intestazione necessari per la configurazione e la compilazione di moduli rilevanti per l' x86architettura, senza apportare modifiche accidentali alla directory di origine di linux-headers-x.x.xx-xx.

Soprattutto, le due directory sono probabilmente l'approccio "pulito" al packaging e alla compilazione dei pacchetti sulle rispettive piattaforme. Tuttavia, non sono in grado di chiarire la questione.


Nota del risponditore: ho scritto questa risposta ingenuamente in quel momento - non sono sicuro di cosa sia giusto o sbagliato - e nel frattempo potrebbero mancare alcune spiegazioni. Quindi questa risposta è ora un wiki della comunità, in modo che chiunque abbia una reputazione minima possa migliorare questo post per spiegare appieno la differenza.


dal momento che entrambi x86i codici relativi al negozio , qual è la differenza tra il x86codice nelle due directory?
Richard,

@Richard Ho aggiornato la mia risposta come sopra al meglio delle mie conoscenze, il più semplice possibile. La mia risposta può essere vista come ingenua, quindi potresti voler cercare una risposta migliore da qualcun altro.
clearkimura,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.