Carbonyl, un navegador web de terminal basat en Chromium

Carbonil

Carbonyl un navegador web per a consola

Es va donar a conèixer la notícia del llançament de un nou navegador web de consola, Carbonyl, basat en el motor Crom i capaç de mostrar qualsevol lloc a la terminal, inclòs YouTube.

el navegador és compatible amb gairebé totes les API web, incloses WebGL, WebGPU i eines per reproduir vídeo, so i animació. L'operació és possible tant amb llançament directe del terminal com amb connexió mitjançant SSH.

Sobre Carbonyl

El Projecte continua amb el desenvolupament de la utilitat html2svg, que es va desenvolupar originalment per convertir HTML i en imatges vectorials (SVG, PDF) o de mapa de bits (PNG, JPEG, WebP), i ara s'utilitza com a base per renderitzar el Terminal.

Per mostrar gràfics, s'usa la capacitat de terminals com a xterm-256 per mostrar caràcters Unicode en color: el símbol U + 2584 («▄») es fa servir com un píxel virtual. Aprofitant el fet que la relació daspecte en aquest símbol és 1:2, és possible mostrar dos píxels quadrats basats en ell, la part superior dels quals estableix el color de fons i la inferior estableix el primer pla.

Descarrega imatges accelerades per maquinari des de la GPU, cosa que explica el sorprenent ús de l'amplada de banda de la memòria. Podem deshabilitar la recuperació i fins i tot deshabilitar l'acceleració del maquinari, però encara tenim una costosa maquinària IPC que ens atura.

El renderitzat per programari continua sent molt comú, fins i tot solia ser el predeterminat si ho pots creure. Era força fàcil en els dies d'un sol procés, però avui dia les regions de memòria compartida estan configurades per renderitzar de manera eficient utilitzant múltiples processos.

Si podem col·locar els nostres píxels a una d'aquestes regions de memòria, només hauríem de notificar el procés del nostre navegador mitjançant un missatge IPC simple.

Les seqüències d'escapament xterm s'utilitzen per rastrejar el moviment del ratolí, el moviment del cursor i els canvis de color del text. Per al terminal xterm, és possible fer servir la paleta RGB 6x6x6, i quan s'estableix el mode COLORTERM, és possible fer servir una paleta RGB a tot color de 24 bits.

el text es representa en una mida fixa, separat de les imatges, a més que per interceptar text a la biblioteca de Skia, es connecta un controlador independent. El codi de renderització està optimitzat per executar-se a la terminal i us permet mostrar gràfics a una freqüència d'actualització de 60 FPS amb una càrrega mínima de CPU.

Per al renderitzat de les imatges s'esmenta que CapturePaintPreview és genial per a html2svg, però no està dissenyat per a la renderització en temps real, ja que utilitza trucades IPC per admetre correctament iframes fora del procés, fent viatges d'anada i tornada entre els processos del navegador , la GPU i el renderitzador.

Dins del que es pot realitzar Carbonyl es destaca:

  • Moveu el cursor
  • Escriure caràcters Unicode
  • Establir el color de fons i primer pla d'un personatge
  • Utilitzeu una paleta RGB de 6x6x6, o RGB de 24 bits si està configurat COLORTERM en truecolor.

Per als interessats a conèixer més sobre això, han de saber que la vinculació del motor Chromium està escrita a TypeScript, C++ i Rust. Pots conèixer més sobre el desenvolupament en el següent enllaç.

Com instal·lar Carbonyl a Linux?

Per als interessats en poder instal·lar aquest navegador web al vostre sistema, he de mencionar que és una mica trigat, ja que és bàsicament compilar Chromium i aplicar els pegats necessaris per poder crear la imatge docker del navegador.

El primer és obtenir el codi de Chromium amb:

./scripts/gclient.sh sync

Procedim a aplicar els pegats (qualsevol canvi realitzat a Chromium es revertirà, per la qual cosa cal que assegureu-vos de desar els canvis que hagin realitzat).

./scripts/patches.sh apply

Posterior a això procedim a configurar:

./scripts/gn.sh args out/Default

Default és el nom de destinació, en podeu fer servir diversos i triar el nom que vulgueu, és a dir:

  • ./scripts/gn.sh args out/release
  • ./scripts/gn.sh args out/debug
  • ./scripts/gn.sh args out/arm64
  •  ./scripts/gn.sh args out/amd64

Després, quan se us demani, s'han d'ingressar els arguments següents:

import("//carbonyl/src/browser/args.gn")

# uncomment this to build for arm64
# target_cpu=»arm64″

# uncomment this to enable ccache
# cc_wrapper=»env CCACHE_SLOPPINESS=time_macros ccache»

# uncomment this if you're building for macOS
# use_lld=false

# uncomment this for a release build
# is_debug=false
# symbol_level=0

Procedim a construir els binaris amb:

./scripts/build.sh Default

La qual cosa hauria de produir els resultats següents:

out/Default/headless_shell: browser binary
out/Default/icudtl.dat
out/Default/libEGL.so
out/Default/libGLESv2.so
out/Default/v8_context_snapshot.bin

I finalment per crear imatge de Docker només cal executar el següent (segons sigui el cas de la teva arquitectura). Per ARM:

./scripts/docker.sh arm64 Default

Per x64:
./scripts/docker.sh amd64 Default

Finalment, es pot executar el navegador amb:

./scripts/run.sh Default https://wikipedia.org


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.