Debian a böngészőben

kami911 képe

Készítettek egy szerver nélküli virtuális Linux-környezetet, amely a böngészőben változatlan Debian binárisokat futtat. Ezt WebVM amely változatlan teljes Debian alapú virtuális gép, és ami a böngészőben fut. Ezt a CheerpX, egy WebAssembly nyelvre fordított virtualizációs platform teszi lehetővé. Itt aztán futtatható Python, Bash, és akár GCC is.

Nyugodtan próbáljátok ki!

A Leaning Technologies-nek az a küldetésük, hogy lehetővé tegyék a meglévő alkalmazások futtatását:

  • módosítások nélkül;
  • újbóli fordítás nélkül;
  • teljesen kliensoldali módon.

A webes platform jó úton halad afelé, hogy az alkalmazások terjesztésének domináns platformjává váljon. Ez a tendencia már régóta egyértelmű, de a WebAssembly szabványosítása óta felgyorsult: ez egy új programozási nyelv, amelyet minden modern böngésző támogat, és amelyet úgy terveztek, hogy megfeleljen a nagyméretű webes alkalmazások teljesítményigényének.

A WebAssembly valódi innovációt hoz a böngészők világába, a perspektíva és a felelősségi körök megváltozásával együtt.

A motoroktól hagyományosan azt várják, hogy az ember által (esetleg rosszul) megírt JavaScriptből préseljék ki a teljesítményt. Ezzel szemben a WebAssemblyt fordítási célpontként tervezték. A magas szintű futásidejű teljesítmény elérése elsősorban az azt generáló fordító felelőssége. A WebAssembly futtatásakor a motorok elkerülhetik a költséges ellenőrzéseket, és gyorsan kiváló minőségű natív kódot generálhatnak. Ez végső soron lehetővé teszi sokkal összetettebb alkalmazások webes kiszolgálását.

Bár a WebAssembly-t generáló eszközláncok túlnyomó többsége natív és előre generált, ez nem követelmény. Valójában úgy gondoljuk, hogy a JIT-fordított WebAssembly az igazi kulcs ahhoz, hogy megvalósuljon az a vízió, hogy bármilyen alkalmazás a böngészőben fusson.

Szóval, mi az a CheerpX?

A CheerpX egy x86-os virtuális gép, amely C++ nyelven íródott, és a Cheerp fordítóval JavaScript és WebAssembly kombinációjára fordították.

A CheerpX több mint három éve fejlesztés alatt áll, és már gyártásban is használják a CheerpX for Flash részeként, amely egy vállalati megoldás a régebbi Adobe Flash tartalmak futtatására.

Magas szinten a CheerpX a következőkből áll

  • Egy hatékony x86-os értelmező, amely a ritkán végrehajtott kód futtatására és a JIT-fordítás irányítása céljából a forró kód szerkezetének feltárására szolgál.
  • Egy kifinomult x86-ból Wasm-ba fordító JIT-fordító, amely menet közben új WebAssembly modulokat generál az x86-os kódból. Bár a JIT-fordító rendelkezik némi x86-ra specializált logikával, többnyire fordítási céltól független.
  • Egy Linux syscalls emulációs réteggel hidat képez a nem módosított x86-os binárisok és a webes környezet közötti szakadék áthidalására.
  • Egy blokk-alapú fájlrendszer háttértár, amely az Ext2-re épül. A lemezképek statikus erőforrások, amelyek HTTP-n és a CloudFlare CDN-en keresztül kerülnek terjesztésre. Az Ext2-t bevált felépítése és bővíthetősége miatt választottuk, és idővel könnyen bővíthetjük a funkcióit, hogy kompatibilis legyen a modernebb Ext3 és Ext4 formátumokkal, teljes átírás nélkül.
  • A módosított blokkok adatvédelmet megőrző tárolása az IndexedDB alapján. Ez a kizárólag kliensoldali technológia lehetővé teszi, hogy a fájlrendszerben végrehajtott bármilyen módosítás tartós legyen, de csak a böngésző számára. Mi nem látjuk és nem tároljuk az Ön adatait.

A CheerpX egy nagyon összetett rendszer, sok komponessel. Helyesen kezeli az olyan trükkös helyzeteket, mint az önmódosító kód, a többszálúság, a folyamatkezelés, a folyamatok közötti kommunikáció. E komplexitás ellenére a CheerpX már most is magas szintű stabilitást ért el.

Mi is az a WebVM?

A WebVM a következő alapvető komponenseket használja:

  • CheerpX mint a végrehajtási motor. A JavaScript API-k, különösen a cx.run(...), egy bash folyamat elindítására (és szükség esetén újraindítására) szolgálnak. A bash ezután más folyamatokat is elindíthat, ahogy a felhasználó parancsokat ír be.
  • Xterm.js mint a fő felhasználói felület komponens. Az Xterm.js gondoskodik az olyan alkalmazások, mint a vim által használt terminál escapes értelmezéséről, valamint visszaküldi a felhasználói bemenetet a CheerpX-be. A bemenet az alkalmazások számára a szabványos bemeneti fájlleírójukon keresztül válik elérhetővé.
  • Egy Debian Buster lemezkép, ext2 formátumban és egy csomó csomaggal telepítve. Ezt egy CDN-en keresztül terjesztjük a skálázhatóság maximalizálása érdekében.

A WebVM gyakorlatilag szerver nélküli, és nincs aktív szerveroldali komponense. Minden felhasználó ugyanazt a lemezképet éri el a CDN-ről, az egyéni módosítások pedig helyben, a böngészőben maradnak meg. Ez azt jelenti, hogy minimális költséggel és erőforrásokkal akár több millió egyidejű felhasználót is kiszolgálhatnak.

További érdekességek:

(forrás)

Hozzászólások

kimarite képe

Használhatóság :)

Nézzük csak:

user@:~$ ls
examples
user@:~$ pwd
/home/user
user@:~$ whoami
user
user@:~$ last

wtmp begins Fri May 27 17:27:26 1927
user@:~$ cat examples/ [TAB] [TAB]
c/       lua/     nodejs/  python3/ ruby/     
user@:~$ sudo apt-get update
bash: sudo: command not found
user@:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
user@:~$ which apt-get  
bash: /usr/bin/which: /bin/sh: bad interpreter: Invalid argument
user@:~$ echo $SHELL
/bin/bash
user@:~$ mkdir test
user@:~$ ls
examples  test
user@:~$ df
df: cannot read table of mounted file systems: No such file or directory
user@:~$ du
0       ./examples/c
0       ./examples/lua
0       ./examples/nodejs
0       ./examples/python3
0       ./examples/ruby
0       ./examples
0       ./test
0       .
user@:~$ ping telex.hu -c3
ping: cap_get_proc: Function not implemented
user@:~$ wget https://archive.tilos.hu/cache/tilos-20220131-220249-000140.mp3
bash: wget: command not found
user@:~$ top
Error, do this: mount -t proc proc /proc
user@:~$ man man
bash: man: command not found

Minden egyben:

user@:~$ history
    1  ls
    2  pwd
    3  whoami
    4  last
    5  sudo apt-get update
    6  locale
    7  which apt-get
    8  echo $SHELL
    9  mkdir test
   10  ls
   11  df
   12  du
   13  ping telex.hu -c3
   14  wget https://archive.tilos.hu/cache/tilos-20220131-220249-000140.mp3
   15  top
   16  history
   17  man man
   18  hostname
   19  useradd John
   20  history

laugh

Ui.: még valami...

user@:~$ cowsay "hello, bello!"
 _______________
< hello, bello! >
 ---------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
user@:~$

Értékelés: 

0
Még nincs értékelve

Egyébként meg

Valamikor qrva régen már volt egy ilyen, tuti, nem tudom debian volt-e, de böngészőben futott és linux volt, hót zicher. Az is lehet, hogy a múlt évezredben volt, de hogy több mint 10 éve, az biztos, mert még a régi melóhelyemen néztem. Nem volt valami gyors, de akkor az volt a nagy szám, hogy böngészőben fut.

Értékelés: 

0
Még nincs értékelve
kimarite képe

Egyébként meg

#2 Több Linux terjesztést is ki lehetett próbálni online, virtuális gépben - tehát nem ugyanaz, mint ez. Kettő ilyen projekt is volt, amiről én tudok. Múlt idő mindkettő, azt hiszem.

Értékelés: 

0
Még nincs értékelve
kimarite képe

Mobian projekt

A Mobian projekt célja a Debian Linux mobileszközökkel való összebarátkoztatása. Az éppen folyó FOSDEM 2022 konferencia alkalmából a Mobian projekt bejelentette, hogy a Mobian immár fut a Fairphone projekt "fenntartható" Fairphone 4 okostelefonján.
Forrás: https://hup.hu/cikkek/20220205/mobian_debian_a_mobileszkozokre_projekt

Szintén Debian. Csak kicsit más. Viszont újra.

Értékelés: 

5
Átlag: 5 (1 szavazat)
kimarite képe

Mobian projekt

#3 Ezek szerint eljön az ideje a 4"-os mobilon történő kernelfordításnak. Királyság! Már alig várom.

Valami ilyesminek én is örülnék. Csomag frissítés is... :)

Értékelés: 

0
Még nincs értékelve

Mobian projekt

#3 Ahm, a 205000 Ft-os, vagy a 230000 Ft-os telefonon már fut. OK.

Értékelés: 

0
Még nincs értékelve

Mobian projekt

#3.2.1 OK, OK, de egy csomó már meglévő telefont sokkal régebb óta támogat az OpenWrt, pl. az én koros Huawei P20-amat is. Mármint van hozzá letölthető image. Jó, értem én, hogy nem Debian, de azért Linux ez is, és FOSS.

Ugyanakkor erre is él az OpenWrt 4/32 szabálya. Amibe az én telóm bőven beleesik. Pedig az volt az elképzelésem, hogy egyszer majd felnyomom rá. De kijöttek a fenti szabállyal, és most már ennek sincs értelme. Ha úgysem frissítik, akkor minek. Még az is lehet, hogy már letölthető sem lesz előbb-utóbb az image.

Az indokukat meg elfogadom, nem lehet 16GB alatt biztonságos rendszert megfelelően futtatni. (Az említett Faiphone4 telók közül az egyik 6, a másik 8 GB RAM-os.)

Értékelés: 

0
Még nincs értékelve
kimarite képe

Mobian projekt

#3.2.1.1 Ugyanakkor erre is él az OpenWrt 4/32 szabálya. Amibe az én telóm bőven beleesik. Pedig az volt az elképzelésem, hogy egyszer majd felnyomom rá. De kijöttek a fenti szabállyal, és most már ennek sincs értelme. Ha úgysem frissítik, akkor minek. Még az is lehet, hogy már letölthető sem lesz előbb-utóbb az image.

Másik telefon?

Értékelés: 

0
Még nincs értékelve

Mobian projekt

#3.2.1.1.1 Valószínű, hogy nem okosteló lesz, ha majd lesz másik. Ebben idén valamikor aksi lesz cserélve, használom míg szét nem esik. Ha majd akkor lesznek emberi áron 16GB RAM-os telók, még meggondolom. Ezt a telót anno amikor kijött, szülinapi ajándékba kaptam, többen adták rá össze a pénzt, szerintem bőven 100e felett volt,  én hót zicher, hogy nem áldozok ennyit egy telefonra.

Értékelés: 

0
Még nincs értékelve
Koppány képe

Mobian projekt

#3.2.1.1.1.1 A Pine nem lenne alternatíva a számodra?

Értékelés: 

0
Még nincs értékelve

Mobian projekt

#3.2.1.1.1.1.1 Nem erről van szó. Hanem, ha OpenWrt szerint, ha ők úgy gondolják, hogy manapság kell 16GB memória ahhoz, hogy hosszú....

Szóval másnak mitől sikerülne mégis megoldani azt, amit OpenWrt nem tud kevesebb memóriával?

Tehát mind1 hogy mi van a telefonon, avagy inkább úgy nevezem, telefonálásra is képes netre kapcsolódó eszközön.

Ahhoz, hogy az normális legyen, kell min. 16GB RAM. Az ilyen okosteló viszont fél milla körül mozog. Tehát, egyfelől ez nem egy tömegtermék ár, másfelől ennyi pénzből összerakok magamnak egy egészen könnyű slim laptopot, akár 32 GB rammal, és telefonálásra meg tökre jó lesz dedikált telefon.

Értékelés: 

0
Még nincs értékelve
Koppány képe

Mobian projekt

#3.2.1.1.1.1.1.1 Értelek. Engem azért nagyon érdekel a mobian és a pine. Ha majd már nincsenek nagyobb költségeim rendelni fogok egyet. :)

Értékelés: 

0
Még nincs értékelve