Este artigo tem para objectivo apresentar a compilação
do núcleo (ou kernel) sob Linux.
As explicações seguintes são baseadas na versão
2.4.20 do kernel, o último em data ao momento da escrita do artigo (maro
2003). As fontes da última versão estão disponíveis
telecarregamentosobre http://www.kernel.org.
As fontes “pesam” entre 25 e 30 Mo.
Uma vez as fontes recuperadas, reencontra-se com um ficheiro tar.bz2 ou tar.gz
de acordo com o caso. Copiem no directório /usr/src/ da vossa máquina
Linux, mas o não décompressar imediatamente.
Neste directório em pergunta, datilografam a encomenda seguinte:
castor@linuxbox:/usr/src$ ls -al total 8 drwxrwsr-x 2 root src 4096 Feb 8 2002 . drwxr-xr-x 13 root root 4096 May 1 1980 .. lrwxrwxrwx 1 root src 12 Feb 25 15:39 linux -> linux-2.4.18 drwxr-sr-x 2 root src 4096 Feb 25 15:38 linux-2.4.18 -rw-r--r-- 1 root root 27421046 Feb 25 15:37 linux-2.4.20.tar.bz2 castor@linuxbox:/usr/src$
O resultado pode diferir sobre a vossa máquina. A primeira
coisa a fazer é suprimir a relação simbólica linux
com a encomenda rm linux.
Seguidamente trata-se de décompresser o tarball recuperado previamente.
Prever do lugar, as fontes décompréssées limitam as 200
Mo!!
Seguidamente criamos uma relação simbólica linux que
aponta para o novo directório. De acordo com o caso, o directório
no qual encontram-se as fontes décompréssées chama-se já
linux, convem por conseguinte rebatizá-lo com a encomenda mv
linux linux-2.4.20.
root@linuxbox:/usr/src# rm linux rm: remove `linux'? y root@linuxbox:/usr/src# tar -xjf linux-2.4.20.tar.bz2 root@linuxbox:/usr/src# ln -s linux-2.4.20 linux root@linuxbox:/usr/src# ls -hal total 27M drwxrwsr-x 4 root src 4.0k Feb 25 15:49 . drwxr-xr-x 13 root root 4.0k May 1 1980 .. lrwxrwxrwx 1 root src 12 Feb 25 15:49 linux -> linux-2.4.20 drwxr-sr-x 2 root src 4.0k Feb 15 15:38 linux-2.4.18 drwxr-xr-x 14 root src 4.0k Nov 29 00:53 linux-2.4.20 -rw-r--r-- 1 root src 26M Feb 25 15:37 linux-2.4.20.tar.bz2 root@linuxbox:/usr/src#
O núcleo Linux é “modular”, quer dizer que certas opções, definidas como “módulos”, serão encarregadas apenas ao momento querido pelo núcleo. Aquilo permite economizar da memória, em detrimento da rapidez de carregamento. Por exemplo, se imprimir uma página os cada seis meses, é inútil guardar permanentemente na memória os pilotos de impressão (porto parrallèle, impressora, etc.). Somente não serão encarregados quando o utilizador quiser imprimir.
É por conseguinte importante antes de atacar-se à configuração do kernel efectivamente conhecer a utilização que deseja-se fazer da máquina sob Linux.
Existe três encomendas para configurar as fontes: make config, make menuconfig et make xconfig.
As duas estreias estão modo texto, o terceiro necessita
o sistema X-window. A escolha pertence-vos, os três são
totalmente equivalente. Único a estreia é ligeiramente mais vinculativa
porque obriga a passar em revista a integralidade das opções.
No que me diz respeito, a minha preferência leva-se sobre
make menuconfig.
root@linuxbox:/usr/src/linux# make menuconfig ( cd include ; ln -sf asm-i386 asm) make -C scripts/lxdialog all make[1]: Entering directory `/usr/src/linux-2.4.20/scripts/lxdialog' gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o checklist.o checklist.c gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o menubox.o menubox.c gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o textbox.o textbox.c gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o yesno.o yesno.c gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o inputbox.o inputbox.c gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o util.o util.c gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o lxdialog.o lxdialog.c gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o msgbox.o msgbox.c gcc -o lxdialog checklist.o menubox.o textbox.o yesno.o inputbox.o util.o lxdialog.o msgbox.o -lncurses ...
Nesse momento encontramo-nos na conversão de configuração.
Decompõe-se diversas ementas, cada um que pode de novo conter sob-menus,
etc.
É aconselhado fortemente ler a ajuda em linha para cada
opção.
As indicações que seguem podem variar de acordo com a versão
do kernel e as opções escolhidas previamente.
/dev/cpu/microcode - Intel IA32 CPU microcode support /dev/cpu/*/msr - Model-specific register support /dev/cpu/*/cpuid - CPU information supportEstas três opções podem ser postas sem perigo, podem optimizar a gestão do processador.