Copyright
Copyright © José
Luis Lara Carrascal 2006-2024
Sumario
Introducción
FLTK
Dillo
Directorio de configuración personal
Opciones de línea de comandos
Configuración de Dillo
Atajos de teclado
Iniciamos Dillo
Paquetes binarios
Enlaces
Introducción
Dillo
es el navegador que suelo usar para abrir los archivos html que tengo en
mi sistema. En combinación con el administrador de archivo ROX-Filer,
no conozco forma más rapida de poder visualizar estos
archivos
sin necesidad de tener que usar navegadores más
pesados.
Escrito totalmente en C++ y con un binario que ocupa menos de un 1 MB,
solamente puedo terminar diciendo que Dillo
es muy, muy rápido. Y comprobarlo no cuesta nada.
A partir de la versión 2.0 soporta pestañas, UTF-8, fuentes suavizadas y edición de los marcadores.
Y desde la actualización del manual del 21-03-2009, se incluye
un parche de traducción al español del programa.
La nueva versión 3.0 ha sustituido FLTK2 por FLTK1, aunque los motivos que apunta su programador tienen que ver con el abandono relativo del desarrollo de FLTK2, por parte de sus programadores, el motivo real es la desaparición de la versión 2.x de Dillo de la mayor parte de distribuciones al utilizar FLTK2, cuyos paquetes binarios brillan por su ausencia en la mayoría de éstas. El uso de FLTK1, supone una regresión visual en el aspecto de las fuentes de texto de la interfaz del programa, respecto a FLTK2.
A día de hoy, debemos de entender el uso de este programa, como
un visor de páginas en formato HTML, más que como un
navegador web.
FLTK
Principal dependencia de Dillo, cuya instalación incluyo en el manual.
Instalación
Dependencias
Herramientas
de Compilación
Entre paréntesis la
versión con la que se ha compilado FLTK
para la elaboración de este documento.
* GCC - (14.1.0) o Clang - (18.1.5)
* CMake - (3.29.2)
* Ninja - (1.12.0)
Librerías
de Desarrollo
*
Xorg - (7.7 / xorg-server 21.1.13)
LibX11 - (1.8.9)
LibXext - (1.3.6)
* Cairo - (1.18.0)
* Libglvnd - (1.7.0)
* Libjpeg-turbo - (3.0.2)
* Libpng - (1.6.43)
* Zlib - (1.3.1)
Descarga
fltk-1.3.9-source.tar.bz2
Optimizaciones
$ export {C,CXX}FLAGS='-O3 -march=znver3 -mtune=znver3'
|
Donde pone znver3 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla: |
Nota informativa sobre las optimizaciones para GCC
|
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado.
* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.
* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
|
Nota informativa sobre las optimizaciones para Clang
|
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.
* Los valores de color azul no son compatibles con Clang.
* Las filas con el fondo de color amarillo son valores exclusivos de Clang y, por lo tanto, no son aplicables con GCC.
|
Valores |
CPU |
Genéricos |
generic |
Produce un código
binario optimizado para la mayor parte de procesadores existentes.
Utilizar este valor si no sabemos el nombre del procesador que tenemos
en nuestro equipo. Este valor sólo es aplicable en la
opción '-mtune=', si utilizamos GCC. Esta opción está disponible a partir de GCC 4.2. |
native |
Produce un código
binario optimizado para el procesador que tengamos en nuestro sistema,
siendo éste detectado utilizando la instrucción cpuid.
Procesadores antiguos pueden no ser detectados utilizando este valor.
Esta opción está disponible a partir de GCC 4.2. |
x86-64 |
Procesador genérico con extensiones 64-bit. Esta opción está disponible a partir de GCC 8 y Clang 1.9. |
x86-64-v2 |
Procesador
genérico con con soporte de instrucciones X86-64 (MMX, SSE,
SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3) y extensiones
64-bit. Esta opción está disponible a partir de GCC 11 y Clang 12. |
x86-64-v3 |
Procesador
genérico con con soporte de instrucciones X86-64 (MMX, SSE,
SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C,
FMA, LZCNT, MOVBE, XSAVE, XSAVEC, FMA4) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 11 y Clang 12. |
x86-64-v4 |
Procesador
genérico con con soporte de instrucciones X86-64 (MMX, SSE,
SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C,
FMA, LZCNT, MOVBE, XSAVE, XSAVEC, AVX512*, FMA4) y extensiones 64-bit.
Esta opción está disponible a partir de GCC 11 y Clang 12. |
Intel |
alderlake |
Intel Alderlake con
soporte de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND,
FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC,
XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VNNI, AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD,
CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16,
AMX-TILE, AMX-INT8, AVX-VNNI) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
arrowlake |
Intel Arrow Lake con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES,
XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 14. |
arrowlake-s |
Intel Arrow Lake S con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES,
XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD,
AVXVNNIINT16, SHA512, SM3, SM4 y extensiones 64-bit. Esta opción
está disponible a partir de GCC 14. |
atom |
Intel Atom con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones
64-bit. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición bonnell. |
bonnell |
Intel Bonnell con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3 y extensiones
64-bit. Esta opción está disponible a partir de GCC 4.9. |
broadwell |
Intel Broadwell con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW y extensiones 64-bit. Esta
opción está disponible a partir de GCC 4.9 y Clang 3.6. |
cannonlake |
Intel Cannonlake Server
con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND,
FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC,
XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, UMIP y extensiones 64-bit. Esta opción
está disponible a partir de GCC 8 y Clang 3.9. |
cascadelake |
Intel Cascadelake con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 9 y Clang 8. |
clearwaterforest |
Intel
Clearwater Forest con soporte de instrucciones MOVBE, MMX, SSE, SSE2,
SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND,
XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX,
GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2,
BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE,
HRESET, KL, WIDEKL, AVX-VNNI, ENQCMD, UINTR, AVXIFMA, AVXVNNIINT8,
AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4, USER_MSR,
PREFETCHI y extensiones 64-bit. Esta opción está
disponible a partir de GCC 14 y Clang 18. |
cooperlake |
Intel
Cooper Lake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VNNI, AVX512BF16 y extensiones 64-bit. Esta opción
está disponible a partir de GCC 10 y Clang 9. |
core2 |
Intel Core2
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.3. |
core-avx2 |
Intel Core (Haswell). Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición haswell. |
core-avx-i |
Intel Core (ivyBridge)
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones
64-bit. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición ivybridge. |
corei7 |
Intel Core i7
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y
SSE4.2 y extensiones 64-bit. Soporta también los procesadores
Intel Core i3 e i5. Esta opción está disponible
desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición nehalem. |
corei7-avx |
Intel Core i7 con
soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
AVX, AES y PCLMUL y extensiones 64-bit. Soporta también los
procesadores Intel Core i3 e i5. Esta opción está
disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición sandybridge. |
emeraldrapids |
Intel Emerald Rapids. Esta opción está disponible a partir de GCC 13 y Clang 16. |
goldmont |
Intel Goldmont con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE y extensiones
64-bit. Esta opción está disponible a partir de GCC 9 y Clang 5. |
goldmont-plus |
Intel Goldmont Plus con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE,
RDPID, SGX, UMIP y extensiones 64-bit. Esta opción está
disponible a partir de GCC 9 y Clang 7. |
grandridge |
Intel Grand Ridge con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES,
XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, RAOINT y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 13 y Clang 16. |
graniterapids |
Intel Grand Ridge con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW,
AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI,
VAES, AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ,
PCONFIG, WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT,
ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR,
AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512-FP16, AVX512BF16,
AMX-FP16, PREFETCHI y extensiones 64-bit. Esta opción
está disponible a partir de GCC 13 y Clang 16. |
graniterapids-d |
Intel Granite Rapids D con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW,
AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI,
VAES, AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ,
PCONFIG, WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, ENQCMD, CLDEMOTE, PTWRITE,
WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8,
AVX-VNNI, AVX512FP16, AVX512BF16, AMX-FP16, PREFETCHI, AMX-COMPLEX y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 14 y Clang 17. |
haswell |
Intel Haswell con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 4.9. |
i386 |
Intel i386.
|
i486 |
Intel i486. |
i586, pentium |
Intel Pentium sin soporte de instrucciones MMX. |
i686 |
Produce un código
binario optimizado para la mayor parte de procesadores compatibles con
la serie 80686 de Intel. Todos los actuales lo son. |
icelake-client |
Intel Icelake Client con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES y extensiones
64-bit. Esta opción está disponible a partir de GCC 8 y Clang 7. |
icelake-server |
Intel Icelake Server con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES, PCONFIG, WBNOINVD y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 8 y Clang 7. |
intel |
Intel Haswell y
Silvermont. Este valor sólo es aplicable en la
opción '-mtune='. Esta opción está disponible
a partir de GCC 4.9. |
ivybridge |
Intel Ivy Bridge con
soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones
64-bit. Esta opción está disponible a partir de GCC 4.9. |
knl |
Intel Knights Landing con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 5 y Clang 3.4. |
knm |
Intel Knights Mill con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER,
AVX512CD, AVX5124VNNIW, AVX5124FMAPS, AVX512VPOPCNTDQ y extensiones
64-bit. Esta opción está disponible a partir de GCC 8 y Clang 6. |
lakemont |
Intel Quark Lakemont MCU, basado en el procesador Intel Pentium. Esta opción está disponible a partir de GCC 6 y Clang 3.9. |
lunarlake |
Intel Lunar Lake. Esta opción está disponible a partir de GCC 14 y es equivalente a la opción arrowlake-s. |
meteorlake |
Intel Meteor Lake. Esta opción está disponible a partir de GCC 13 y Clang 16. |
nehalem |
Intel Nehalem con soporte
de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 4.9. |
nocona |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2, SSE3 y extensiones 64-bit. |
pantherlake |
Intel
Panther Lake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE,
XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE,
CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI,
BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE,
HRESET, KL, WIDEKL, AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8,
AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4, PREFETCHI y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 14 y Clang 18. |
penryn |
Intel Penryn con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1. |
pentiumpro |
Intel PentiumPro. |
pentium2 |
Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX. |
pentium3, pentium3m |
Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE. |
pentium4, pentium4m |
Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2. |
pentium-m |
Versión de bajo
consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2.
Utilizado por los portátiles Centrino. |
pentium-mmx |
Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX. |
prescott |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
raptorlake |
Intel Raptor Lake. Esta opción está disponible a partir de GCC 13 y Clang 16. |
rocketlake |
Intel Rocket Lake con
soporte de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND,
FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC,
XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 11 y Clang 13. |
sandybridge |
Intel Sandy Bridge con
soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AES, PCLMUL y extensiones 64-bit. Esta opción
está disponible a partir de GCC 4.9 y Clang 3.6. |
sapphirerapids |
Intel Sapphire Rapids
con soporte de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VNNI, AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD,
CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16,
AMX-TILE, AMX-INT8, AVX-VNNI) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
silvermont |
Intel Silvermont con
soporte de instrucciones MOVBE, MMX, SSE, MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMU, RDRND y extensiones
64-bit. Esta opción está disponible a partir de GCC 4.9 y Clang 3.6. |
sierraforest |
Intel Sierra Forest con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES,
XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD y extensiones
64-bit. Esta opción está disponible a partir de GCC 13 y Clang 16. |
skylake |
Intel Skylake
con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA,
BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 6 y Clang 3.6. |
skylake-avx512 |
Intel Skylake Server
con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA,
BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD y extensiones 64-bit.
Esta opción está disponible a partir de GCC 6 y Clang 3.9. |
tigerlake |
Intel
Tiger Lake con soporte de instrucciones OVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VBMI, AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2,
AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES, PCONFIG,
WBNOINVD, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT y extensiones 64-bit.
Esta opción está disponible a partir de GCC 10 y Clang 10. |
tremont |
Intel Tremont con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE, RDPID,
SGX, UMIP, GFNI-SSE, CLWB, ENCLV y extensiones 64-bit. Esta
opción está disponible a partir de GCC 9 y Clang 7. |
westmere |
Intel Westmere con soporte
de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT,
AES, PCLMUL y extensiones 64-bit. Esta opción está
disponible a partir de GCC 4.9. |
yonah |
Procesadores basados en la microarquitectura de Pentium M, con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
AMD |
amdfam10, barcelona |
Procesadores basados en
AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE,
SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones
64-bit). Esta opción está disponible a partir de GCC 4.3. La definición barcelona está disponible a partir de Clang 3.6. |
athlon, athlon-tbird |
AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch. |
athlon4, athlon-xp, athlon-mp |
Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE. |
bdver1 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX,
XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción
está disponible a partir de GCC 4.7. |
bdver2 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (BMI, TBM,
F16C, FMA, LWP, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2,
SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones
64-bit). Esta opción está disponible a partir de GCC 4.7. |
bdver3 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX,
XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción
está disponible a partir de GCC 4.8 y Clang 3.4. |
bdver4 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (BMI, BMI2,
TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES, PCL_MUL,
CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y
extensiones 64-bit). Esta opción está disponible a partir
de GCC 4.9 y Clang 3.5. |
btver1 |
Procesadores basados en
AMD Family 14h core con soporte de instrucciones x86-64 (MMX, SSE,
SSE2, SSE3, SSE4A, CX16, ABM y extensiones 64-bit). Esta
opción está disponible a partir de GCC 4.6. |
btver2 |
Procesadores basados en
AMD Family 16h core con soporte de instrucciones x86-64 (MOVBE, F16C,
BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3,
SSE2, SSE, MMX y extensiones 64-bit). Esta opción
está disponible a partir de GCC 4.8. |
geode |
AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3. |
k6 |
AMD K6 con soporte de instrucciones MMX. |
k6-2, k6-3 |
Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!. |
k8, opteron, athlon64, athlon-fx |
Procesadores basados en
AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2,
3DNow!, enhanced 3DNow! y extensiones 64-bit). |
k8-sse3, opteron-sse3, athlon64-sse3 |
Versiones mejoradas de AMD
K8 core con soporte de instrucciones SSE3. Esta opción
está disponible a partir de GCC 4.3. |
znver1 |
Procesadores basados en
AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2,
F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES,
PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1,
SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones
64-bit). Esta opción está disponible a partir de GCC 6 y Clang 4. |
znver2 |
Procesadores basados en
AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2,
,CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA,
CLZERO, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y
extensiones 64-bit). Esta opción está disponible a
partir de GCC 9 y Clang 9. |
znver3 |
Procesadores basados en
AMD Family 19h core con soporte de instrucciones x86-64 (BMI, BMI2,
CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA,
CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID,
WBNOINVD, PKU, VPCLMULQDQ, VAES) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 11 y Clang 12. |
znver4 |
Procesadores basados en
AMD Family 19h core con soporte de instrucciones x86-64 (BMI, BMI2,
CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA,
CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID,
WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA,
AVX512CD, AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2,
AVX512VNNI, AVX512BITALG, AVX512VPOPCNTDQ, GFNI) y extensiones 64-bit.
Esta opción está disponible a partir de GCC 12.3 y Clang 16. |
znver5 |
Procesadores basados en
AMD Family 1ah core con soporte de instrucciones x86-64 (BMI, BMI2,
CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA,
CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID,
WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA,
AVX512CD, AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2,
AVX512VNNI, AVX512BITALG, AVX512VPOPCNTDQ, GFNI, AVXVNNI, MOVDIRI,
MOVDIR64B, AVX512VP2INTERSECT, PREFETCHI) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 14. |
Parámetros adicionales
Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura |
$ export
LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc13/lib64" |
Cada usuario tendrá
que establecer la ruta de búsqueda de directorios, en
función de la distribución que utilice. |
Establecer el uso de enlazador dinámico para Mold |
$ export LDFLAGS+=' -fuse-ld=mold' |
Establecer el uso de enlazador dinámico para LLD |
Clang |
$ export LDFLAGS+=' -fuse-ld=lld' |
Establecer la variable de entorno de uso de compilador para Clang |
$ export CC=clang CXX=clang++ |
Extracción y Configuración
$ tar jxvf fltk-1.3.9-source.tar.bz2
$ cd fltk-1.3.9
$ cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr -DOPTION_BUILD_SHARED_LIBS=ON \
-DOPTION_CAIRO=ON -G Ninja
|
Explicación
de los comandos
-S . -B build : Establece el directorio del código fuente y crea de forma automática el directorio de compilación.
-DCMAKE_INSTALL_PREFIX=/usr : Instala el toolkit en el directorio principal /usr.
-DOPTION_BUILD_SHARED_LIBS=ON
:
Activa la compilación de las librerías compartidas (*.so).
-DOPTION_CAIRO=ON
:
Activa el soporte de Cairo.
-G Ninja : Utiliza Ninja en lugar de GNU Make para compilar el paquete (opcional).
Compilación
Parámetros de compilación opcionales
-v : Muestra más información en el proceso de compilación.
-j$(nproc) :
Establece el número de procesos de compilación en
paralelo, en función del número de
núcleos e hilos que tenga nuestro procesador, tomando como
referencia la información mostrada por el sistema con el comando
correspondiente. Si nuestro procesador es mononúcleo de un solo
hilo, no añadir esta opción.
Instalación
como root
$ su
# ninja -C build install/strip
# ldconfig -v |
Estadísticas de Compilación e Instalación de FLTK
Estadísticas de Compilación e Instalación de FLTK |
CPU |
AMD Ryzen 5 5500 |
MHz |
3600 (BoostMax=4457) |
RAM |
32 GB |
Tarjeta gráfica |
AMD Radeon RX 580 2048SP |
Controlador de gráficos |
AMDGPU 23.0.0 |
Sistema de archivos |
XFS |
Versión del Kernel |
6.8.9-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Planificador de CPU |
BMQ |
Versión de Glibc |
2.39 |
Enlazador dinámico |
LLD 18.1.5 |
Compilador |
Clang 18.1.5 |
Parámetros de optimización |
-03 -march=znver3 -mtune=znver3 |
Parámetros de compilación |
-j12 |
Tiempo de compilación |
10" |
Archivos instalados |
173 |
|
Enlaces simbólicos creados |
10 |
|
Ocupación de espacio en disco |
7,1 MB |
Desinstalación
como root
1)
MODO TRADICIONAL
En el directorio de compilación
ejecutamos el siguiente comando:
2)
MODO MANUALINUX
El principal inconveniente del comando anterior es
que
tenemos que tener el directorio de compilación en nuestro
sistema para poder desinstalar el programa. En algunos casos esto
supone muchos megas de espacio en disco. Con el paquete de scripts que
pongo a continuación logramos evitar
el único inconveniente que tiene la compilación
de
programas, y es el tema de la desinstalación de los mismos
sin
la necesidad de tener obligatoriamente una copia de las fuentes
compiladas.
fltk-1.3.9-scripts.tar.gz
$ su
# tar zxvf fltk-1.3.9-scripts.tar.gz
# cd fltk-1.3.9-scripts
# ./Desinstalar_fltk-1.3.9 |
Copia de Seguridad
como root
Con este otro script creamos una copia de seguridad de los binarios
compilados, recreando la estructura de directorios de los mismos en un
directorio de copias de seguridad (copibin)
que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de
los binarios podemos copiarlo como usuario a nuestro home
y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos
volver a restaurar la copia, tendremos que volver a copiarlo al lugar
donde se ha creado.
$ su
# tar zxvf fltk-1.3.9-scripts.tar.gz
# cd fltk-1.3.9-scripts
# ./Respaldar_fltk-1.3.9 |
Restaurar la Copia de
Seguridad
como root
Y con este otro script (que se copia de forma automática
cuando
creamos la copia de respaldo del programa) restauramos la copia de
seguridad como root cuando resulte necesario.
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_fltk-1.3.9
|
Dillo
Instalación
Dependencias
Herramientas de Compilación
Entre paréntesis la
versión con la que se ha compilado Dillo
para la elaboración de este documento.
* GCC - (14.1.0) o Clang - (18.1.7)
* Gawk - (5.3.0)
* Make - (4.4.1)
* Automake - (1.16.5)
* Autoconf - (2.72)
Librerías de Desarrollo
*
Xorg - (7.7 / xorg-server 21.1.13)
* FLTK - (1.3.9)
* Libjpeg-turbo - (3.0.3)
* Libpng - (1.6.43)
* OpenSSL - (3.3.1)
* Zlib - (1.3.1)
Aplicaciones
* GNU WGet - (1.24.5) [1]
* Magick (ImageMagick) - (7.1.1-33) [1]
[1] Requerido para poder descargar y crear los iconos alternativos del archivo desktop.
Descarga
dillo-3.1.1.tar.bz2 | dillo-3.1.1_es.diff.gz
Optimizaciones
Optimizaciones adicionales
Optimizaciones adicionales |
GCC |
Graphite
|
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block'
|
IPA
|
$ export {C,CXX}FLAGS+=' -fipa-pta'
|
LTO |
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto'
|
En versiones inferiores a GCC
10, sustituir auto
por el número de núcleos que tenga nuestro
procesador. Si sólo tiene uno, utilizar el parámetro -flto
|
Clang |
Polly |
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
|
LTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto'
|
ThinLTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto=thin'
|
La aplicación de esta optimización es alternativa
a la tradicional LTO, a partir de Clang 3.9 y, por lo tanto, no es combinable con la misma. |
Unified LTO |
LTO >> ThinLTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto -funified-lto'
$ export LDFLAGS+=' -Wl,--lto=thin' |
ThinLTO >> LTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto=thin -funified-lto'
$ export LDFLAGS+=' -Wl,--lto=full' |
La aplicación de esta optimización es aplicable, a partir de Clang 17, y sólo es combinable con LLD. |
Parámetros adicionales
Parámetros adicionales de eliminación de avisos en el proceso de compilación |
$ export {C,CXX}FLAGS+=' -w' |
Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura |
$ export
LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc13/lib64" |
Cada usuario tendrá
que establecer la ruta de búsqueda de directorios, en
función de la distribución que utilice. |
Establecer el uso de enlazador dinámico para Mold |
$ export LDFLAGS+=' -fuse-ld=mold' |
Establecer el uso de enlazador dinámico para LLD |
Clang |
$ export LDFLAGS+=' -fuse-ld=lld' |
Optimizaciones complementarias LTO/ThinLTO de LLD |
$ export LDFLAGS+=' -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt' |
Optimizaciones complementarias LTO de LLD |
$ export LDFLAGS+=" -Wl,--lto-partitions=$(expr $(nproc) / 2)" |
Optimizaciones complementarias ThinLTO de LLD |
$ export LDFLAGS+=" -Wl,--thinlto-jobs=$(expr $(nproc) / 2)" |
Establecer la variable de entorno de uso de compilador para Clang |
$ export CC=clang CXX=clang++ |
Extracción y
Configuración
$ tar jxvf dillo-3.1.1.tar.bz2
$ cd dillo-3.1.1
$ zcat ../dillo-3.1.1_es.diff.gz | patch -Np1
$ find . -name 'Makefile.in' | xargs sed -i 's:^AR =:AR? =:g'
$ ./configure --prefix=/usr --sysconfdir=/etc --enable-tls --libdir=/usr/lib64 |
Explicación de los
comandos
zcat ../dillo-3.1.1_es.diff.gz | patch -Np1 :
Aplicamos este parche personal que traduce al español, los
textos de la interfaz del programa y de las opciones de línea de
comandos.
find . -name 'Makefile.in' | xargs sed -i 's:^AR =:AR? =:g' : Modificamos los archivos base de configuración Makefile.in, para poder hacer uso de la variable de entorno AR establecida en el manual, para que la optimización LTO
pueda aplicarse de forma correcta en el proceso de compilación
del paquete con Clang. Si no tenemos pensado aplicar este tipo de
optimización con Clang, omitiremos esta acción a realizar.
--prefix=/usr : Instala el programa en el directorio principal /usr.
--sysconfdir=/etc
: Instala los archivos de configuración en /etc/dillo.
--enable-tls
: Activa el soporte SSL en Dillo.
--libdir=/usr/lib64 : Instala el directorio de plugins en /usr/lib64, en sistemas de 64 bits multiarquitectura. La ubicación y el nombre de este
directorio, puede variar en función de la distribución que
cada usuario use.
Compilación
Parámetros de compilación opcionales
Instalación
como root
$ wget -c https://manualinux.es/iconos/BlueIcon128.png -O dillo.png
$ su
# make install-strip
# for i in /usr/share/icons/hicolor ; do \
install -dm755 $i/{16x16,24x24,32x32,48x48,64x64,128x128}/apps ; \
install -m644 dillo.png $i/128x128/apps ; \
magick dillo.png -resize 64 $i/64x64/apps/dillo.png ; \
magick dillo.png -resize 48 $i/48x48/apps/dillo.png ; \
magick dillo.png -resize 32 $i/32x32/apps/dillo.png ; \
magick dillo.png -resize 24 $i/24x24/apps/dillo.png ; \
magick dillo.png -resize 16 $i/16x16/apps/dillo.png ; \
gtk-update-icon-cache -tf $i &> /dev/null ; \
done
|
Explicación de los
comandos
wget -c https://manualinux.es/iconos/BlueIcon128.png -O dillo.png : Descarga un archivo de icono desde este sitio web, que sustituirá al original, al ser de mayor calidad visual.
for i in /usr/share/icons/hicolor.....
: Crea e instala los iconos del programa, en sus diferentes
medidas compatibles con el estándar de tamaño de icono de
freedesktop.org.
Instalación de los
archivos de configuración personal en nuestro home
$ cp -rf /etc/dillo ~/.dillo |
Estadísticas de Compilación e Instalación de Dillo
Estadísticas de Compilación e Instalación de Dillo |
CPU |
AMD Ryzen 5 5500 |
MHz |
3600 (BoostMax=4457) |
RAM |
32 GB |
Tarjeta gráfica |
AMD Radeon RX 580 2048SP |
Controlador de gráficos |
AMDGPU 23.0.0 |
Sistema de archivos |
XFS |
Versión del Kernel |
6.9.3-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Planificador de CPU |
BMQ |
Versión de Glibc |
2.39 |
Enlazador dinámico |
LLD 18.1.7 |
Compilador |
Clang 18.1.7 |
Parámetros de optimización |
-03 -march=znver3
-mtune=znver3 -mllvm -polly -mllvm
-polly-vectorizer=stripmine -flto -funified-lto -Wl,--lto=thin
-Wl,--thinlto-jobs=6 -Wl,--lto-aa-pipeline=globals-aa
-Wl,--lto-newpm-passes=memcpyopt |
Parámetros de compilación |
-j12 |
Tiempo de compilación |
4" |
Archivos instalados |
26 |
|
Ocupación de espacio en disco |
1,6 MB |
Consumo inicial de CPU y RAM de Dillo
Consumo inicial de CPU y RAM de Dillo |
Programa
|
CPU |
RAM |
dillo |
0 % |
30,9 MB |
Para medir el consumo de CPU se utiliza el programa top, y para medir
el consumo de RAM se utiliza el script de Python, ps_mem.py, creado por Pádraig Brady, que podemos encontrar en este enlace. |
Directorio de
configuración personal
~/.dillo |
Es el
directorio de configuración personal de Dillo
en nuestro home |
~/.dillo/dillorc |
Es el archivo de configuración personal de Dillo
en nuestro home |
~/.dillo/dpidrc |
Es el archivo de configuración de las rutas a los plugins internos que soporta Dillo. |
~/.dillo/cookiesrc |
Es el archivo de
configuración de las cookies del navegador. Por defecto
está desactivada la aceptación de éstas. Para
aceptar las cookies de un sitio siempre o sólo para la
sesión en curso tendremos que añadir los
parámetros ACCEPT o ACCEPT_SESSION respectivamente a la
dirección del mismo. Un ejemplo:
DEFAULT DENY
slashdot.org ACCEPT
freecode.com ACCEPT_SESSION
.host.com ACCEPT_SESSION
.ebay.com ACCEPT_SESSION |
~/.dillo/domainrc |
Es el archivo de
configuración que permite bloquear recursos de terceros cuando
visitamos una determinada página web. Ideal para bloquear
anuncios. Para añadir un sitio web, basta un asterisco, un
espacio, y el nombre del dominio empezando por un punto. Un ejemplo que
ya viene por defecto en el archivo:
* .doubleclick.net |
~/.dillo/bm.txt |
Es el archivo de configuración de los marcadores de Dillo, desde la versión 2.0 pueden editarse desde la ventana del navegador. |
~/.dillo/keysrc |
Es el archivo de configuración de los atajos de teclado de Dillo. Introducido a partir de la versión 2.1 del programa. |
~/.dillo/style.css |
A partir de la versión 2.1 de Dillo
se ha implementado un soporte básico de hojas de estilos (CSS),
si queremos utilizar una hoja de estilo personalizada para todas las
páginas, tendremos que guardarla con el nombre style.css, en nuestro directorio de configuración personal de Dillo. |
Desinstalación
como root
1)
MODO TRADICIONAL
En el directorio de compilación
ejecutamos el siguiente comando:
2)
MODO MANUALINUX
dillo-3.1.1-scripts.tar.gz
$ su
# tar zxvf dillo-3.1.1-scripts.tar.gz
# cd dillo-3.1.1-scripts
# ./Desinstalar_dillo-3.1.1 |
Copia de Seguridad
como root
$ su
# tar zxvf dillo-3.1.1-scripts.tar.gz
# cd dillo-3.1.1-scripts
# ./Respaldar_dillo-3.1.1 |
Restaurar la Copia de Seguridad
como root
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_dillo-3.1.1
|
Opciones de línea de comandos
[jose@localhost ~]$ dillo -h
Uso: dillo [OPCIÓN]... [--] [URL|ARCHIVO]...
Opciones:
-f, --fullwindow Inicia en modo ventana completa: oculta la barra de direcciones,
los botones de navegación, el menú, y la barra de estado.
-g, -geometry GEO Establece la posición inicial de la ventana donde GEO es
WxH[{+-}X{+-}Y]
-h, --help Muestra este texto de ayuda y termina.
-l, --local No carga las imágenes u hojas de estilo, o sigue
las redirecciones, para estos archivos o enlaces.
-v, --version Muestra la información de la versión y termina.
-x, --xid XID Abre la primera ventana de Dillo en una ventana existente
cuya ID de ventana es XID.
URL
URL a explorar.
ARCHIVO ARCHIVO local para ver. |
Configuración de Dillo
Mediante la edición del archivo de configuración, ~/.dillo/dillorc
controlamos todas las opciones de uso de este navegador. Las opciones
que aparecen comentadas con el parámetro pegado a # (ejemplo:
#geometry=780x580) son las predefinidas del navegador y a
continuación extraigo del mismo, lo más destacable.
1) Geometría
Dillo se inicia siempre con un tamaño predefinido de 780x580, en este apartado podemos variarlo añadiendo el que creamos conveniente,
# Set the desired initial browser size
# geometry=650x545+0+20
#geometry=780x580 |
2) Directorio por defecto para la descarga de archivos
En en el caso de que queramos utilizar un directorio por defecto para ubicar las descargas, lo ajustaremos en este apartado.
# Set your default directory for download/save operations
save_dir=/home/jose/descargas |
3) Modificar las fuentes que se muestran en las páginas web y su tamaño
Esto es el equivalente a la ventana de configuración de las fuentes de Firefox, en la versión 2.1
se ha simplificado la configuración de éstas,
añadiendo la posibilidad de establecer el tamaño
máximo (font_max_size) y mínimo (font_min_size) de fuente a utilizar. El parámetro font_factor
determina el tamaño de la fuente, habrá que ir probando
para dar con el más adecuado para nuestra resolución
de pantalla.
Desde la versión 2.2.1, se incluye la posibilidad de configurar el uso de fuentes sin soporte de suavizado, en el caso de que FLTK haya sido compilado sin este soporte. Normalmente la fuente más utilizada en este caso es la helvética.
# Default fonts:
#
# If FLTK has been configured with Xft enabled (the default), you can use
# scalable fonts such as DejaVu or Liberation (try running
# "fc-list : family | cut -d ',' -f 2 | sort").
#font_serif="DejaVu Serif"
#font_sans_serif="DejaVu Sans"
#font_cursive="URW Chancery L"
#font_fantasy="DejaVu Sans"
#font_monospace="DejaVu Sans Mono"
#
# Otherwise, use bitmapped fonts like the following (for a list, try running
# "xlsfonts -fn *-iso10646-1 | grep -v -e -0-0 | cut -d - -f 3 | sort | uniq").
# font_serif="times"
# font_sans_serif="helvetica"
# font_cursive="helvetica"
# font_fantasy="helvetica"
# font_monospace="courier"
# All fontsizes are scaled by this value
# font_factor=1.5
font_factor=1.0
# Maximum font size in pixels
#font_max_size=100
# Minimum font size in pixels
#font_min_size=6
|
4) Cambiar la página de inicio del navegador
En este apartado podemos cambiar la página de inicio de Dillo y elegir la que nos apetezca. Si selecionamos un archivo local no olvidar utilizar el protocolo file, por ejemplo start_page="file:/home/jose/marcadores.html" .
# Set the start page.
# start_page="about:blank"
# start_page="http://www.dillo.org"
# start_page="file:/home/jcid/custom_page.html"
#start_page="about:splash" |
5) Cambiar el directorio de inicio (home)
Lo mismo que en el anterior, pero esta vez modificamos el directorio de inicio, que por defecto nos llevará a la web de Dillo al hacer clic sobre el botón Home de la barra de botones.
# Set the home location
# home="file:/home/jcid/HomePage/Home.html"
#home="http://www.dillo.org/" |
6) Añadir motores de búsqueda a Dillo
Desde la versión 3.0, Dillo soporta
selección de motores de búsqueda desde el cuadro
de diálogo de búsqueda de la interfaz. Todos los que
incluyamos en este apartado, serán mostrados en dicho cuadro de
diálogo. Tener en cuenta que el primero que aparecerá por
defecto, es el primero de la lista de los que están en color
rojo. Recomendable si utilizamos google, colocarlo el primero de la
lista.
# Set the URLs used by the web search dialog.
# "%s" is replaced with the search keywords separated by '+'.
# Format: search_url="[prefix ][<label> ]<url>"
# You can enable multiple search_url strings at once and select from among
# them at runtime, with the first being the default.
# (the prefix serves to search from the Location Bar. e.g. "dd dillo image")
search_url="Google.es http://www.google.es/search?q=%s"
search_url="dd DuckDuckGo (https) https://duckduckgo.com/lite/?kp=-1&q=%s"
search_url="Wikipedia http://www.wikipedia.org/w/index.php?search=%s&go=Go"
search_url="Free Dictionary http://www.thefreedictionary.com/%s"
search_url="Startpage (https) https://www.startpage.com/do/search?query=%s"
search_url="Google http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=%s"
|
7) Establecer el idioma predefinido de las páginas web
Desde la versión 2.1,
podemos configurar también el idioma predefinido de las
páginas que visitemos, en el ejemplo, obviamente establecemos el
idioma español de España.
# If set, dillo will ask web servers to send pages in this language.
# This setting does NOT change dillo's user interface.
# Format explained: www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
# Language-REGION values: www.iana.org/assignments/language-subtag-registry
# (by default, no Accept-Language header is sent)
# http_language="de"
# http_language="pt-BR"
http_language="es,es-ES" |
8) Establecer el número máximo de conexiones simultáneas a un mismo servidor
Desde la versión 2.2,
podemos configurar el número máximo de conexiones
simultáneas a un mismo servidor. Por defecto está
establecido a 6.
# Maximum number of simultaneous TCP connections to a single server or proxy.
# http_max_conns=6 |
9) Utilizar un proxy HTTP con Dillo
Si queremos utilizar un proxy con Dillo lo ajustamos en este apartado sin olvidar que para los protocolos FTP y HTTPS tendremos que añadir el proxy a la configuración de Wget, cuyo manual de instalación podemos leer aquí. En este ejemplo le añado la configuración de Polipo. Desde la versión 2.1,
se puede configurar una lista de dominios (separados por espacios y sin
el www) en los que no se utilizará el proxy predefinido en el
archivo de configuración. Ejemplo: no_proxy = ".freehostia.com .heliohost.org .exofire.net" .
# Set the proxy information for http.
# Note that the http_proxy environment variable overrides this setting.
# WARNING: FTP and downloads plugins use wget. To use a proxy with them,
# you will need to configure wget accordingly. See
# http://www.gnu.org/software/wget/manual/html_node/Proxies.html
http_proxy="http://localhost:8123/"
#(by default, no proxy is used)
# If you need to provide a user/password pair for the proxy,
# set the proxy user name here and Dillo will ask for the password later.
# http_proxyuser="joe"
#(by default, no proxy is used)
# Set the domains to access without proxy
# no_proxy = ".hola.com .mynet.cl .hi.de"
#(by default, no proxy is used) |
10) Cambiar de tema de FLTK
Desde la versión 3.0.1, se incluye la posibilidad de seleccionar el esquema visual de FLTK, mediante la edición de este apartado.
# UI theme
# "none" is the default FLTK appearance, which "resembles old Windows...and
# old GTK/KDE".
# "plastic" "is inspired by the Aqua user interface on Mac OS X".
# "gtk+" "is inspired by the Red Hat Bluecurve theme".
#theme=none
# theme=gtk+
theme=plastic
|
11)
Modificar el color de la interfaz de Dillo
Desde la versión 3.0.3
se puede personalizar el color de la interfaz de Dillo. Admite
nombres de colores en inglés o valores como "#f2f2f2".
#
UI colors
# The first four colors map to concepts in the underlying FLTK toolkit.
Note
# that FLTK may sometimes override colors, generally for contrast and
# readability.
#
#ui_fg_color=black
#ui_main_bg_color=silver
#ui_text_bg_color=white
#ui_selection_color=navy
#
# Background used when the mouse cursor is over a button.
#ui_button_highlight_color=(by
default, the main background color, lightened)
#
# Colors for the current tab.
#ui_tab_active_bg_color=(by
default, the text background color)
#ui_tab_active_fg_color=(by
default, the main foreground color)
#
# Colors for the other tabs.
#ui_tab_bg_color=(by
default, the main background color)
#ui_tab_fg_color=(by
default, the main foreground color)
# Note to packagers: leaving these variables for the system to guess
# gives different results in different environments, so we played it
safe
# by defining the traditional colors. Please choose the color
theme that
# better fits your distro.
#
# Gray theme (traditional)
#
ui_fg_color=black
ui_main_bg_color=#c6c6c6
ui_text_bg_color=bfdabf
ui_selection_color=#191970
ui_button_highlight_color=#a9a9a9
ui_tab_active_bg_color=#87aca7
ui_tab_active_fg_color=black
ui_tab_bg_color=#b7beb7
#
# Earthly theme:
#
#ui_fg_color=#100404
#ui_main_bg_color=#c2a47b
#ui_text_bg_color=#cdc9a5
#ui_selection_color=#763024
#ui_tab_active_bg_color=#af4b3f
#ui_tab_active_fg_color=white
#ui_tab_bg_color=#d2b48c
#
# Greenish theme:
#
#ui_fg_color=#100404
#ui_main_bg_color=#c8d394
#ui_text_bg_color=#bdd8b6
#ui_selection_color=#7c5f42
#ui_button_highlight_color=#adad70
#ui_tab_active_bg_color=#b5b679
#ui_tab_active_fg_color=#b60907
#ui_tab_bg_color=#cac682
|
12) Modificar el tamaño del panel
Dillo soporta
diferentes tamaños predefinidos para el panel de botones, en
este apartado podemos seleccionar la opción más útil de las siguientes: tiny (una barra única), small (2 barras separadas) y medium (lo mismo que el anterior, pero con texto debajo de los iconos). Desde la versión 3.0, esto se puede modicar desde la interfaz del programa, pero no guarda los cambios al salir del mismo.
# Size of dillo panel (used to enlarge the browsing area)
# tiny : recommended for iPAQ (with small_icons)
# small : very nice! (it's "medium" without icon titles)
# medium : nice!
# panel_size=tiny
panel_size=small
# panel_size=medium
|
13) Pestañas o ventanas al hacer clic con el botón central del ratón sobre un enlace
Dillo abre
los enlaces en los que hacemos clic con el botón central del
ratón de forma predefinida en pestañas, si queremos que
lo haga en ventanas, poner NO en el valor del parámetro
tratado en este apartado.
# A mouse's middle click over a link opens a new Tab.
# If you prefer to open a new Window instead, set it to NO.
#middle_click_opens_new_tab=YES |
14) Cuadro de diálogo de salida de Dillo
Desde la versión 3.0.1,
podemos desactivar el cuadro de diálogo que se muestra cuando
intentamos salir del programa con más de una ventana o
pestaña abiertas. Evidentemente, lo recomendable es
desactivarlo, por lo molesto que resulta, si tenemos prisa en cerrar el
programa.
# Ask before quitting Dillo with more than one window or tab open.
show_quit_dialog=NO |
15) La pestaña nueva siempre recibe el enfoque
Si
somos de los que nos gusta empezar a abrir pestañas como locos,
pero manteniendo siempre la pestaña original enfocada, esta
opción resulta un engorro. Aunque la podemos desactivar
temporalmente con la combinación MAYÚSC + Clic Central del Ratón, lo mejor es poner NO en el valor del parámetro tratado en este apartado.
16) Modificar el agente de usuario del navegador
Desde la versión 2.2.1,
se incluye esta opción que permite modificar el agente de
usuario del navegador, muy útil en aquellos sitios que limitan
los accesos a sus archivos mediante el uso de una lista de
navegadores predefinidos.
# Set the HTTP User-Agent header.
# This can be useful for privacy and for working around servers who think
# Dillo is less capable than it really is. However, if you pretend to use a
# different browser, servers may send you pages that work with the features
# and bugs of that other browser -- or even disallow access in cases like
# wget or googlebot. Remember this before submitting bug reports.
#
# See http://zytrax.com/tech/web/browser_ids.htm for a compilation of strings.
#
# http_user_agent="Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0"
# http_user_agent="Wget/1.12 (linux-gnu)"
#The default is "Dillo/"+current_version_number
http_user_agent="Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/28.0"
|
Atajos de teclado
Desde la versión 2.1 se ha implementado la posibilidad de modificar los atajos de teclado predefinidos de Dillo, mediante la edición del archivo de configuración, ~/.dillo/keysrc.
Sólo hay que descomentar los atajos predefinidos que
están en rojo, y cambiar la combinación del teclado a
usar. Si no estamos seguros de lo que hacemos, mejor no tocar el
archivo. Desde la versión 2.1.1 se pueden desactivar atajos de teclado, cambiando la acción a realizar por el parámetro "nop". Por ejemplo, si queremos desactivar el atajo para abrir el cuadro de búsqueda, pondríamos lo siguiente: <ctrl>f = nop .
# keysrc
# Sample dillo key bindings file.
#
# The format is: "key = action" or "<modifier>key = action".
# Lines that begin with a '#' are comments.
# The commented-out bindings below show the defaults built into Dillo.
#
# Modifiers recognized: "Shift", "Ctrl", "Alt", "Meta".
# Key names recognized: "Backspace", "Delete", "Down", "End", "Esc",
# "F1" through "F12", "Home", "Insert", "Left", "PageDown", "PageUp",
# "Print", "Return", "Right", "Space", "Tab", "Up".
#
# If Dillo is running under X11, keys whose names are not recognized can
# be specified using their keysym value in hexadecimal. Use xev to get
# the keysym. Example rule: "0x1008ff27 = forward".
#
# The action "nop" (no operation) can be used to remove a binding.
# "open" lets you browse your local files for one to open.
#<ctrl>o = open
# "new-window" opens a new browser window.
#<ctrl>n = new-window
# "new-tab" opens a new tab in the current browser window.
#<ctrl>t = new-tab
# "close-tab" closes the current tab.
# Note that this closes the browser window if there is only one tab.
#<ctrl>q = close-tab
# "close-all" closes all tabs/windows and exits.
#<alt>q = close-all
# "left-tab" and "right-tab" switch to the left/right of the current tab.
# *** NOT HOOKED UP YET ***
# <shift>tab = left-tab
# <ctrl>PageUp = left-tab
# <ctrl>tab = right-tab
# <ctrl>PageDown = right-tab
# "back" and "forward" move back/forward through the browser history.
#backspace = back
#<shift>backspace = forward
#, = back
#. = forward
# "reload" the current page.
#<ctrl>r = reload
# "home" goes to the homepage that you set in your dillorc.
#<ctrl>h = home
# "find" lets you search for a text string on the current page.
#<ctrl>f = find
# "hide-panels" hides the findbar.
#esc = hide-panels
# "websearch" lets you send a text string to the search engine that you
# set in your dillorc.
#<ctrl>s = websearch
# go to your "bookmarks".
#<ctrl>b = bookmarks
# "fullscreen" hides/shows the panels at the top and bottom of a dillo window.
#<ctrl>space = fullscreen
# "file-menu" pops up the file menu.
#<alt>f = file-menu
# "goto" goes to the location bar at the top of the window.
#<ctrl>l = goto
# "stop" loading the page.
#(stop has no default binding)
# "save" the current page.
#(save has no default binding)
#--------------------------------------------------------------------
#
MOTION COMMANDS
#--------------------------------------------------------------------
#pageup = screen-up
#b = screen-up
#pagedown = screen-down
#space = screen-down
#(screen-left has no default binding)
#(screen-right has no default binding)
#up = line-up
#down = line-down
#left = left
#right = right
#home = top
#end = bottom
|
Iniciamos Dillo
Sólo
nos
queda teclear en una terminal o en un lanzador el comando dillo,
y el navegador aparecerá en la pantalla:
Para
poder
aprovechar los
marcadores de Firefox,
utilizaremos el siguiente script de la siguiente forma:
moz2dil.pl
$ ./moz2dil.pl
~/.mozilla/firefox/bosmqa9k.default/bookmarks.html
> ~/.dillo/bm.txt |
A partir de la versión 3 de Firefox,
ya no se utiliza este archivo para guardar los marcadores, por lo
que tendremos que respaldar los marcadores desde el gestor que lleva Firefox y guardarlos con el nombre de este archivo en el directorio personal de configuración de Firefox, o en cualquier otro.
Enlaces
https://dillo-browser.github.io >> La web de Dillo.
|