Carbonyl, en Chromium-baserad terminal webbläsare

Karbonyl

Carbonyl en konsol webbläsare

Nyheten om lanseringen av en ny konsolwebbläsare, Carbonyl, baserad på motorn krom och kan visa vilken webbplats som helst på terminalen, inklusive YouTube.

Webbläsaren stöder nästan alla webb-API:er inklusive WebGL, WebGPU och verktyg för att spela upp video, ljud och animationer. Driften är möjlig både med direktstart av terminalen och med anslutning via SSH.

Om Carbonyl

Projektet fortsätter utvecklingen av verktyget html2svg, som ursprungligen utvecklades för att konvertera HTML och i vektorbilder (SVG, PDF) eller bitmappsbilder (PNG, JPEG, WebP), och används nu som grund för rendering till terminalen.

För att visa grafer används kapaciteten hos terminaler som xterm-256 för att visa Unicode-tecken i färg: symbolen U+2584 ("▄") används som en virtuell pixel. Genom att dra fördel av det faktum att bildförhållandet i denna symbol är 1:2, är det möjligt att visa två kvadratiska pixlar baserat på den, vars överkant anger bakgrundsfärgen och den nedre anger förgrunden.

Den laddar ner hårdvaruaccelererade bilder från GPU:n, vilket förklarar den överraskande användningen av minnesbandbredd. Vi kan inaktivera återställning och till och med inaktivera hårdvaruacceleration, men vi har fortfarande dyra IPC-maskiner som håller oss tillbaka.

Programvarurendering är fortfarande mycket vanligt, det brukade till och med vara standard om du kan tro det. Det var tillräckligt enkelt under de enstaka processdagarna, men idag ställs delade minnesregioner in för att rendera effektivt med flera processer.

Om vi ​​kan placera våra pixlar i en av dessa minnesregioner, skulle vi bara behöva meddela vår webbläsarprocess via ett enkelt IPC-meddelande.

flyktsekvenser xterm används för att spåra musrörelser, markörrörelser och textfärgändringar. För xterm-terminalen är det möjligt att använda 6x6x6 RGB-paletten, och när den är inställd på COLORTERM-läge är det möjligt att använda en 24-bitars fullfärgs RGB-palett.

Texten återges i en fast storlek, separat från bilderna, plus för att fånga upp text i Skia-biblioteket är en separat kontrollenhet inkopplad. Återgivningskoden är optimerad för att köras i terminalen och låter dig visa grafik med en uppdateringshastighet på 60 FPS med minimal CPU-belastning.

För att rendera bilderna nämns att CapturePaintPreview är bra för html2svg, men det är inte designat för realtidsrendering eftersom det använder IPC-anrop för att korrekt stödja out-of-process iframes, vilket gör rundresor mellan webbläsarprocesser, GPU:n och renderaren.

Inom vad Carbonyl kan göra, sticker följande ut:

  • flytta markören
  • Skriv Unicode-tecken
  • Ställ in bakgrunds- och förgrundsfärgen för en karaktär
  • Använd en 6x6x6 RGB-palett eller 24-bitars RGB om COLORTERM är inställd på truecolor.

För intresserad av att veta mer om det, de borde veta att Chromium-motorlänken är skriven i TypeScript, C++ och Rust. Du kan lära dig mer om utvecklingen I följande länk.

Hur installerar man Carbonyl på Linux?

För de som är intresserade av att kunna installera den här webbläsaren på sitt system, Jag bör nämna att det är lite tidskrävande, eftersom det i princip är att kompilera Chromium och tillämpa de nödvändiga korrigeringarna för att kunna skapa docker-bilden för webbläsaren.

Den första är hämta Chromium-koden med:

./scripts/gclient.sh sync

Vi fortsätter att applicera korrigeringarna (alla ändringar som görs i Chromium kommer att återställas, så se till att spara ändringarna du har gjort).

./scripts/patches.sh apply

Efter det vi fortsätter att konfigurera:

./scripts/gn.sh args out/Default

Standard är destinationsnamnet, du kan använda flera och välja det namn du vill ha, dvs:

  • ./scripts/gn.sh argumenterar ut/släpper
  • ./scripts/gn.sh args out/debug
  • ./scripts/gn.sh args out/arm64
  •  ./scripts/gn.sh args out/amd64

Sedan, när du uppmanas, måste följande argument anges:

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

# avkommentera detta för att bygga för arm64
# target_cpu="arm64"

# avkommentera detta för att aktivera ccache
# cc_wrapper=”env CCACHE_SLOPPINESS=time_macros ccache”

# avkommentera detta om du bygger för macOS
# use_lld=falskt

# avkommentera detta för en versionsversion
# is_debug=false
#symbol_level=0

Vi fortsätter att bygga binärfilerna med:

./scripts/build.sh Default

Vilket borde ge följande resultat:

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

och slutligen För att skapa en Docker-bild, bara kör följande (beroende på fallet med din arkitektur). För ARM:

./scripts/docker.sh arm64 Default

För x64:
./scripts/docker.sh amd64 Default

Slutligen kan webbläsaren köras med:

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


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.