溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何利用tinycorelinux+chrome模擬chromeos并集成vscodeonline

發(fā)布時間:2021-10-21 17:01:24 來源:億速云 閱讀:150 作者:柒染 欄目:云計算

本篇文章給大家分享的是有關(guān)如何利用tinycorelinux+chrome模擬chromeos并集成vscodeonline,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

本文關(guān)鍵字:Chromium as linux desktop,x11 – 在沒有GUI的情況下在服務(wù)器上啟動GUI瀏覽器,kiosk mode,Porteus Kiosk,x11 kiosk mode,chrome --enable-consumer-kiosk,webkitgtk kiosk,發(fā)明自己的chromeos,直接用vscodeonline當(dāng)textcui,vscode as text os cui

在《cloudwall:一種真正的mixed nativeapp與webapp的統(tǒng)一appstack》中我們講到,web是一種從native和nativedev打洞出來的appmodel(它的協(xié)議是應(yīng)用級的http,html是云UI,是一個可以沒有一個宿主render的云GUI。其后端可以是lnmp中的nmp都是非平臺依賴的APP級的引擎,這是一種"GUI/網(wǎng)絡(luò)/存儲/業(yè)務(wù)"的四棧云化的結(jié)構(gòu),在這些層次上它已經(jīng)脫離了本地開發(fā)),webapp后端也可是k8s這種,在《利用openfaas faasd在你的云主機(jī)上部署function serverless面板》中,我們介紹過serverless,其實(shí),云和云開發(fā),本來就是serverless和terminal-less的。因?yàn)樵频膶傩?,?qiáng)調(diào)的就是沒有PC,沒有一個專門平臺,承認(rèn)docker它是服務(wù)性APP中去掉server backend的自然平坦app結(jié)構(gòu):server"less" virtual cloud appliance,在《一門獨(dú)立門戶卻又好好專注于解決過程式和純粹app的語言,一種類C的新規(guī)范》我們講到golang的極小運(yùn)行時,和分布式開發(fā)中,"平臺/語言/設(shè)計/人"四棧變?nèi)龡5恼,F(xiàn)象,沒有nativedev和平臺依賴,云APP可以是三棧結(jié)構(gòu)。即,云APP有三棧就OK。這些文章提出了對webapp本質(zhì)的疑惑又一一進(jìn)行了分析。----- 所以,總體上,web這種app早已經(jīng)是云APP合理的存在。人們應(yīng)該接受了這樣的離散平臺,和新型APP和開發(fā)。

再說一次,為什么說云開發(fā)無OS呢,因?yàn)閛s,已部基礎(chǔ)和服務(wù)化了。app不直接寄宿在os或虛擬機(jī)上。開發(fā)變成了服務(wù)調(diào)用?;蛘哒f,這些開發(fā)來源不屬于你自己的機(jī)器,因此你不能控制該服務(wù)所在OS(無須傳統(tǒng)部署)。

在《cloudwall:一種真正的mixed nativeapp與webapp的統(tǒng)一appstack》中我們還提到chromeos作為webos(終端)的合理性,如果說一種app決定一種os,既然web是一種云UI,那么云OS,如果它基于PC上的OS實(shí)現(xiàn)而來,chromeos這樣的實(shí)踐就變得合理了(《minlearnpgramming》整書toc vol1已經(jīng)重構(gòu)為云os融合/云app融合二部分)。對于webos ,在《群暉+DOCKER,一個更好的DEVOPS+WEBOS云平臺及綜合云OS選型》我們還談到docker based webapp/webos(而其實(shí)我們還談到docker based webos被一種unikernel os代替),無論如何,現(xiàn)在我們嘗試在tinycorelinux上以kiosk mode安裝chrome,基于以前也寫過的一篇《在tinycorelinux上裝chrome》文章,使kiosk mode的chrome成為系統(tǒng)啟動時進(jìn)入的唯一全屏獨(dú)占應(yīng)用,打造類似chromeos的實(shí)現(xiàn),未來,我們直接用vscodeonline來代為該chromeos唯一的頁面。使這樣的linux發(fā)行成為vscodeos。

linux是一個開源,但真正偉大的“非玩具”超規(guī)模級現(xiàn)代OS。背后可以沒有一個公司,卻連接起所有公司和組織,個人真正為它維護(hù),想想西方難于組織起全國民級搞疫,linux的成功倒是在現(xiàn)在依然是難想象的,另一個是gnu tools。

kiosk mode實(shí)現(xiàn)chromeos

這個模式的本質(zhì)原理只需要在startx的末尾啟動一個full screen的webkitgtk demo或基于chrome的demo,不需要裝桌面管理器(因?yàn)樗粏幼烂姝h(huán)境)。其實(shí)在tinycorelinux界有一個實(shí)現(xiàn)了,如webDesktop-v.0.2.iso,https://github.com/joaquimorg/早就不維護(hù)了。它基于webkitgtk,自己編譯了一個叫desktop的全屏demo browser在/usr/local/bin,然后安裝了x11,最后在startx中寫入啟動:desktop $PHOTOFRAME &。

而chromium(開源版chrome)是自帶kioskmode的,因此省去了將它做成全屏獨(dú)占的模式的工作,可以直接使用chromium –kiosk –incognito http://localhost的命令形式開啟全屏模式并導(dǎo)向本地主頁(為了安全起見也要禁用xorg設(shè)置中的tcp,如果你已有桌面管理器,要設(shè)置禁止禁用屏幕保護(hù)和自動重啟)。你當(dāng)然也可以使用cfe這樣的lib自己編譯定制demo,我們采用的測試版本是tc11.x 64bit,倉庫中已有chromium-browser.tcz和x11支持??梢灾苯訙y試??芍苯佑胑zremastered測試,這樣方便。

下面介紹我的一個初步成功嘗試:

利用ezremaster給tinycorelinux core增加桌面生成新iso

ezremaster.cfg部分:

cd_location = /home/tc/CorePure64-11.1.iso
temp_dir = /tmp/ezremaster
對于窗口不能全屏,中文不能顯的處理bootcode,注意它與接下來chrome的lang參數(shù)中的連符作辨別
cc = lang=zh_CN vga=791
app_outside_initrd_onboot = chromium-browser.tcz
app_extract_initrd = openssh.tcz
chrome只能用xorg 作x11server,flwm這些用的都是xfdev不是xorg
app_extract_initrd = Xorg-7.7.tcz
extract_tcz_script = ignore

手動的post調(diào)整部分:
cd extract
為tc passwd一個密碼,然后sudo cp -f /etc/passwd etc/passwd /etc/shadow etc/shadow
sudo touch var/lib/sshd,sudo cp usr/local/etc/ssh/sshd_config.ori usr/local/etc/ssh/sshd_config
順便opt/bootlocal.sh,加入/usr/local/etc/init.d/openssh start
sudo touch etc/sysconfig/Xserver,寫入Xorg,保存

接下來是重要關(guān)鍵部分:
tce-load -w getlocale graphics-4.5.3-tinycore64
僅安裝xorg-7.7并startx,會failed in waitforx,waitforx在xlib.tcz中,嘗試網(wǎng)上說的:1,注釋/etc/sktl/.xsession中的waitforx行,2,isolinux bootcode在corepure64 后append喂vga=791或max_loop=256 iso=UUID=$rootuuid$isofile or after system starts,sudo fromISOfile /mnt/sdb1,startx,make TC boot and be used directly from an ISO file),都不是解決問題的關(guān)鍵。/usr/local/bin/Xorg發(fā)現(xiàn)錯誤/var/log/xorg.0.log,no screens find,裝lspci發(fā)現(xiàn)這是一張virtio gpu顯卡。于是tce-load -iw graphics-5.4.3-tinycore64.tcz ,failed in startx消失,壁紙一閃成功進(jìn)入黑屏桌面(因?yàn)闆]有桌面管理器)。
getlocale.sh選擇四個zh_CN,生成mylocale.tcz(看來,tinycorelinux除了主框架部分Core-scripts,tce也能成為藏腳本的地方)再安裝一個字體wget http://mirrors.163.com/tinycorelinux/4.x/x86/tcz/fireflysung.tczg到/tmp/,字體x86,64,跨版本能通用
這2個tcz和其依賴不能像openssh,xorg-7.7一樣成功集成到initrd,原因不明,只好手動釋放,字體只能手動:
sudo unsquashfs -f -d /tmp/tce/optional/glibc_gconv.tcz /tmp/ezremaster/extract
sudo unsquashfs -f -d /tmp/tce/optional/mylocale.tcz /tmp/ezremaster/extract
sudo unsquashfs -f -d /tmp/tce/optional/i2c-4.5.3-tinycore64.tcz /tmp/ezremaster/extract
sudo unsquashfs -f -d /tmp/tce/optional/graphics-4.5.3-tinycore64.tcz /tmp/ezremaster/extract
sudo unsquashfs -f -d /tmp/fireflysung.tcz /tmp/ezremaster/extract

最后,/etc/skel/.X.d,ls -alh,新建一個任意名字腳本(linux中命令行啟動與x啟動后的運(yùn)行命令是二個不同的放置過程,命令行下顯中文和圖形界面中文能不能起作用是另一回事,這個注意),放置啟動/usr/local/bin/chromium-browser --start-maximized --kiosk --lang=zh-CN https://www.baidu.com/的邏輯,保存退出。這樣會在startx時,在home/tc/.x.d生成實(shí)際腳本,,ctl+alt+f1可退出桌面(黑屏)進(jìn)入命令行界面,ctlc退出chromium再次ctlaltf1返回正常命令行
整包導(dǎo)出后為160多m

集成vscodeonline實(shí)現(xiàn)cloud dever os和writer's os

實(shí)現(xiàn)了kiosk mode還不夠,我們的webos,要本地和跨網(wǎng)絡(luò)都可用。打造一個沉浸式不離開IDE的全能環(huán)境和一個vscodeonline based cloud dever os,。我們直接用vscodeonline當(dāng)這種os的textcui,vscode as text os cui直接把vscodeonline作為shell。,因?yàn)関scodeonline本身有一個命令行區(qū)web cmd,可以當(dāng)復(fù)合shell使用。而雖然vscodeonline比較笨重,但是它的主要界面實(shí)際上是一個復(fù)合了的編輯器,可當(dāng)真正的寫作環(huán)境如寫md文章:vscode沒有工程組織,包,用磁盤文件代替工程文件類go用環(huán)境變量+文件夾當(dāng)工程組織,這種方式很適合組織文檔。。網(wǎng)絡(luò)上,當(dāng)代替?zhèn)渫涍@樣的頻繁打開/關(guān)閉的碎片化寫作環(huán)境當(dāng)然不行,但vscodeonline有一個remote ssh,斷了也能很好連上,連上能持續(xù)連接很久,這放在一臺開發(fā)終端上可用性還是很高的。

對于webos的shell選型有ssh cui/tui,也有桌面環(huán)境有rdp/vnc,這二種是最基本的,本地則有局域網(wǎng)投屏,wifi display這樣的方案,跨網(wǎng)絡(luò)有網(wǎng)頁化,也有專門的ctx,remoteapp,虛擬桌面這樣的專門方案。vscode online本身就有在遠(yuǎn)端開端口進(jìn)行網(wǎng)頁服務(wù)可用,而設(shè)置一個本地終端版的chrome devos,填補(bǔ)了本地也可能需要一個vscodeonlineos的情況。比如可以在利用remotessh的情況下,維持一個遠(yuǎn)程這種cloud dever os和一個本地終端版的chrome devos,設(shè)置一個同步插件同步二者的home目錄,這個home區(qū)就是網(wǎng)盤。這種實(shí)用性還是蠻高的。


未來我們要在這個os中集成panel.sh,在這個panel上去掉pai,為terralang增加c header files裝上terralang,為devplane增加后綁定/變更域名。vscodeonline as ide andplugin server+terralang server core+openfaas serverless core,使之成為devpanel.sh。


以上就是如何利用tinycorelinux+chrome模擬chromeos并集成vscodeonline,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI