您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何利用tinycorelinux+chrome模擬chromeos并集成vscodeonline,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
本文關鍵字:Chromium as linux desktop,x11 – 在沒有GUI的情況下在服務器上啟動GUI瀏覽器,kiosk mode,Porteus Kiosk,x11 kiosk mode,chrome --enable-consumer-kiosk,webkitgtk kiosk,發明自己的chromeos,直接用vscodeonline當textcui,vscode as text os cui
在《cloudwall:一種真正的mixed nativeapp與webapp的統一appstack》中我們講到,web是一種從native和nativedev打洞出來的appmodel(它的協議是應用級的http,html是云UI,是一個可以沒有一個宿主render的云GUI。其后端可以是lnmp中的nmp都是非平臺依賴的APP級的引擎,這是一種"GUI/網絡/存儲/業務"的四棧云化的結構,在這些層次上它已經脫離了本地開發),webapp后端也可是k8s這種,在《利用openfaas faasd在你的云主機上部署function serverless面板》中,我們介紹過serverless,其實,云和云開發,本來就是serverless和terminal-less的。因為云的屬性,強調的就是沒有PC,沒有一個專門平臺,承認docker它是服務性APP中去掉server backend的自然平坦app結構:server"less" virtual cloud appliance,在《一門獨立門戶卻又好好專注于解決過程式和純粹app的語言,一種類C的新規范》我們講到golang的極小運行時,和分布式開發中,"平臺/語言/設計/人"四棧變三棧的正常現象,沒有nativedev和平臺依賴,云APP可以是三棧結構。即,云APP有三棧就OK。這些文章提出了對webapp本質的疑惑又一一進行了分析。----- 所以,總體上,web這種app早已經是云APP合理的存在。人們應該接受了這樣的離散平臺,和新型APP和開發。
再說一次,為什么說云開發無OS呢,因為os,已部基礎和服務化了。app不直接寄宿在os或虛擬機上。開發變成了服務調用。或者說,這些開發來源不屬于你自己的機器,因此你不能控制該服務所在OS(無須傳統部署)。
在《cloudwall:一種真正的mixed nativeapp與webapp的統一appstack》中我們還提到chromeos作為webos(終端)的合理性,如果說一種app決定一種os,既然web是一種云UI,那么云OS,如果它基于PC上的OS實現而來,chromeos這樣的實踐就變得合理了(《minlearnpgramming》整書toc vol1已經重構為云os融合/云app融合二部分)。對于webos ,在《群暉+DOCKER,一個更好的DEVOPS+WEBOS云平臺及綜合云OS選型》我們還談到docker based webapp/webos(而其實我們還談到docker based webos被一種unikernel os代替),無論如何,現在我們嘗試在tinycorelinux上以kiosk mode安裝chrome,基于以前也寫過的一篇《在tinycorelinux上裝chrome》文章,使kiosk mode的chrome成為系統啟動時進入的唯一全屏獨占應用,打造類似chromeos的實現,未來,我們直接用vscodeonline來代為該chromeos唯一的頁面。使這樣的linux發行成為vscodeos。
linux是一個開源,但真正偉大的“非玩具”超規模級現代OS。背后可以沒有一個公司,卻連接起所有公司和組織,個人真正為它維護,想想西方難于組織起全國民級搞疫,linux的成功倒是在現在依然是難想象的,另一個是gnu tools。
這個模式的本質原理只需要在startx的末尾啟動一個full screen的webkitgtk demo或基于chrome的demo,不需要裝桌面管理器(因為它不啟動桌面環境)。其實在tinycorelinux界有一個實現了,如webDesktop-v.0.2.iso,https://github.com/joaquimorg/早就不維護了。它基于webkitgtk,自己編譯了一個叫desktop的全屏demo browser在/usr/local/bin,然后安裝了x11,最后在startx中寫入啟動:desktop $PHOTOFRAME &。
而chromium(開源版chrome)是自帶kioskmode的,因此省去了將它做成全屏獨占的模式的工作,可以直接使用chromium –kiosk –incognito http://localhost的命令形式開啟全屏模式并導向本地主頁(為了安全起見也要禁用xorg設置中的tcp,如果你已有桌面管理器,要設置禁止禁用屏幕保護和自動重啟)。你當然也可以使用cfe這樣的lib自己編譯定制demo,我們采用的測試版本是tc11.x 64bit,倉庫中已有chromium-browser.tcz和x11支持。可以直接測試。可直接用ezremastered測試,這樣方便。
下面介紹我的一個初步成功嘗試:
利用ezremaster給tinycorelinux core增加桌面生成新iso ezremaster.cfg部分: cd_location = /home/tc/CorePure64-11.1.iso temp_dir = /tmp/ezremaster 對于窗口不能全屏,中文不能顯的處理bootcode,注意它與接下來chrome的lang參數中的連符作辨別 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調整部分: 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,保存 接下來是重要關鍵部分: tce-load -w getlocale graphics-4.5.3-tinycore64 僅安裝xorg-7.7并startx,會failed in waitforx,waitforx在xlib.tcz中,嘗試網上說的: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),都不是解決問題的關鍵。/usr/local/bin/Xorg發現錯誤/var/log/xorg.0.log,no screens find,裝lspci發現這是一張virtio gpu顯卡。于是tce-load -iw graphics-5.4.3-tinycore64.tcz ,failed in startx消失,壁紙一閃成功進入黑屏桌面(因為沒有桌面管理器)。 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啟動后的運行命令是二個不同的放置過程,命令行下顯中文和圖形界面中文能不能起作用是另一回事,這個注意),放置啟動/usr/local/bin/chromium-browser --start-maximized --kiosk --lang=zh-CN https://www.baidu.com/的邏輯,保存退出。這樣會在startx時,在home/tc/.x.d生成實際腳本,,ctl+alt+f1可退出桌面(黑屏)進入命令行界面,ctlc退出chromium再次ctlaltf1返回正常命令行 整包導出后為160多m
實現了kiosk mode還不夠,我們的webos,要本地和跨網絡都可用。打造一個沉浸式不離開IDE的全能環境和一個vscodeonline based cloud dever os,。我們直接用vscodeonline當這種os的textcui,vscode as text os cui直接把vscodeonline作為shell。,因為vscodeonline本身有一個命令行區web cmd,可以當復合shell使用。而雖然vscodeonline比較笨重,但是它的主要界面實際上是一個復合了的編輯器,可當真正的寫作環境如寫md文章:vscode沒有工程組織,包,用磁盤文件代替工程文件類go用環境變量+文件夾當工程組織,這種方式很適合組織文檔。。網絡上,當代替備忘錄這樣的頻繁打開/關閉的碎片化寫作環境當然不行,但vscodeonline有一個remote ssh,斷了也能很好連上,連上能持續連接很久,這放在一臺開發終端上可用性還是很高的。
對于webos的shell選型有ssh cui/tui,也有桌面環境有rdp/vnc,這二種是最基本的,本地則有局域網投屏,wifi display這樣的方案,跨網絡有網頁化,也有專門的ctx,remoteapp,虛擬桌面這樣的專門方案。vscode online本身就有在遠端開端口進行網頁服務可用,而設置一個本地終端版的chrome devos,填補了本地也可能需要一個vscodeonlineos的情況。比如可以在利用remotessh的情況下,維持一個遠程這種cloud dever os和一個本地終端版的chrome devos,設置一個同步插件同步二者的home目錄,這個home區就是網盤。這種實用性還是蠻高的。
未來我們要在這個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,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。