Napravite vlastiti Firefox OS u 3 koraka


Ukoliko ste u zadnje vrijeme pratili IT vijesti, vjerojatno ste već čuli za Google Chrome OS koji je baziran na Linux jezgri i Google Chrome web pregledniku. Ovaj operacijski sustav namjenjen je uporabi samo web aplikacija – niti podaci niti programi se ne instaliraju na računalo.

(Gotovo) cijeli Chrome OS je, kao i sam Chrome open source (po standardnoj Googleovoj “open source” filozofiji: napravi nešto interno i izbaci kod van). Zbog toga je razmjerno jednostavno napraviti vlastitu verziju (npr. sa nekim izmjenama i dopunama) koristeći originalni izvornik kod dustupan u sklopu Chromium OS projekta.

Ali mi ćemo ovdje krenuti drugim smjerom – koliko je teško složiti OS poput Chromea počevši od obične Linux distribucije, sa Firefoxom kao browserom? Vrlo jednostavno! Evo kako:

1. Kreirajte i skinite personaliziranu Slax distribuciju

Distribucija Slax je idealna za ovu priliku. Slax je vrlo mala distribucija koja je istovremeno i Live CD/USB i installer. Još bolje, odmah na web stranicama moguće je uz par klikova odrediti što točno želite uključiti u distribuciju.

Za naš OS, trebat će nam Linux baza (Core), X sučelje (Xorg) i Firefox. Krenite na Build Slax stranicu i isključite višak paketa. (Na popisu spremnih modula je i Opera pa ukliko ste Opera korisnik možete Firefox OS pretvoriti u Opera OS).

Nakon odabira koponenti, preuzmite TAR verziju Slaxa.

2. Modificirajte Live CD/USB da odmah pokreće Firefox

Raspakiravanjem TAR verzije dobit ćete boot direktorij koji sadrži alate za podizanje sustava te slax direktorij koji sadrži osnovni sustav, zapakirane module tzv. rootcopy direktorij koji služi za customizaciju Slaxa. Što god stavite u ovaj direktorij, bit će kopirano na sustav kad se podigne sustav.

Da bi po pokretanju grafičkog sučelja odmah bio pokrenut i Firefox i to u full-screenu, potrebno je kreirati direktorij slax/rootcopy/root i u njemu datoteku .xinitrc koja će specificirati pokretanje Firefoxa umjesto normalnog grafičkog sučelja:

  > cd slax/rootcopy
  > mkdir root
  > echo "/usr/bin/firefox" > root/.xinitrc

Osim ovog, trebamo još maknuti boot izbornik koji se kod Slaxa po defaultu pojavljuje i čeka na korisnikov odabir. Nas zanima samo izravno pokretanje sustava. Konfiguracija za bootloader nalazi se u boot/slax.cfg datoteci. Umjesto cijelog sadržaja datoteke (koji prikazuju grafički boot izbornik) potrebna nam je samo jedna linija (napomena: ovo ide u jednu liniju iako je to ovdje razlomljeno u dvije):

  DEFAULT /boot/vmlinuz initrd=/boot/initrd.gz ramdisk_size=6666
      root=/dev/ram0 rw autoexec=xconf;telinit~4 changes=/slax/ nohd

Ovo je zapravo prepisana linija iz originalnog slax.cfg koja pokreće grafičko sučelje uz dodatak nohd opcije koja osigurava da sustav neće pokušati pristupiti hard diskovima u računalu.

Da bi stvar natrag zapakirali u Live CD koristite priloženu slax/make_iso.sh skriptu koja će kreirati ISO image za CD. Za kreiranje Live USB-a koristite skriptu boot/bootinst.sh koja radi instalaciju izravno na stick. Oprez: pazite da prilikom pokretanja bootinst.sh kao uređaj ne navedete vaš disk, jer skripta modificira MBR i može vam zeznuti sustav.

3. Konfigurirajte Firefox i uključite ekstenzije po želji

Isprobajte netom napravljenu instalaciju, na pravom ili virtualnom računalu. Ja sam koristio ISO image i stvar isprobavao u KVM/QEMU virtualnom računalu, no ako preferirate VMWare ili VirtualBox, stvar je analogna. Računalo (virtualno ili stvarno) trebalo bi imati bar 512 MB memorije kako bi Firefox mogao nesmetano raditi.

Ukoliko je sve prošlo kako treba, Firefox bi se trebao podignuti odmah po startu. Kao dodatni bonus, Firefox na Slaxu po defaultu dolazi sa Chrome-like temom🙂

Slijedeći korak je konfiguracija Firefoxa i instalacija add-onova na standardni način. U svom testiranju ja sam instalirao AdBlock+ i Adobe Flash. Flash instalacija nije automatska, nego je potrebno preuzeti arhivu u tar.gz formatu, raspakirati je, a dobivenu libflashplayer.so datoteku prekopirati u plugins direktorij:

  > cd /root/Downloads
  > tar xzf install_flash_player_10_linux.tar.gz
  > mkdir /root/.mozilla/plugins
  > cp libflashplayer.so /root/.mozilla/plugins

Restartom Firefoxa Flash plugin bi trebao biti aktivan.

Kako se sve radi u ramdisku, sve napravljene promjene će biti izbrisane po gašenju računala. Da bi sačuvali Firefox konfiguraciju, cijeli /root/.mozilla/ direktorij (sa vašeg novog Firefox OS sustava) treba skopirati u slax/rootcopy/root/.mozilla/ direktorij na sustavu gdje slažete instalaciju.

Gotov proizvod: samo vaš Slax Firefox OS!

Nakon što još jednom generirate installer (da uključi i Firefox konfiguraciju), vaš novi OS je spreman! Ukoliko ga zapržite na CD ili postavite na USB stick, možete ga uvijek nositi sa sobom i koristiti na bilo kojem računalu koje možete bootati🙂

Ako želite isprobati kako stvar radi, a ne želite se mučiti sa opisanim koracima, konačni rezultat u obliku DVD ISO imagea možete preuzeti ovdje: Slax Firefox OS (ISO, 117 MB). Ukoliko stvar želite testirati na virtualnom računalu, ne trebate pržiti CD, samo vašem omiljenom programu (VMWare, VirtualBox, qemu ili što već) kažite da za virtualni CD koristi priloženi image (a možete ga i “mountati” koristeći DaemonTools pod windowsima ili losetup pod Linuxom).

Jedna napomena uz wireless: Slax bez problema pronalazi i konfigura žičanu mrežu putem DHCP-a. Kako sam cijelu stvar isprobavao u virtulanom računalu, nije mi trebala wireless podrška, stoga ne znam kakva je wireless podrška po defaultu u Slaxu. Dodatnu/alternativnu podršku pružaju dodatni moduli koje je moguće uključiti u vaš Slax sustav pa taj dio ostavljam kao vježbu za čitatelja🙂

Osim toga, u daljnjem razvoju bi bilo zgodno kreirati običnog korisnika i složiti pokretanje Firefoxa pod njim (umjesto pod root accountom kako je po defaultu) kako čak i u slučaju kompromitacije Firefoxa ne bi postojala nikakva mogućnost da napadač u otvorenom remote shellu pokuša pristupiti lokalnim diskovima. Naposlijetku, bilo bi zgodno izbaciti sve ostale stvari iz Slax Core i ubrzati boot proceduru za još nekoliko sekundi. Ovo također ostavljam kao vježbu za čitatelja🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s