WEBクライアントコンパイラ(linuxエミュレータを用いた試作)

 


Jor1kのページにあったサンプルプログラムを変更して,C言語の勉強用サイトを試作しました (サーバではなくクライアント側(ブラウザ側)のシミュレータでコンパイルをします.ここにはそのサイトのアドレスは掲載しませんが・・・)

 

下記参考ページ.

github.com

なんと!Webブラウザ上で動作するLinuxエミュレータ·jor1k MOONGIFT

 

下記が動作の様子.

f:id:l-expanse:20210430152231g:plain

 

 ※説明の前の注意

 ・あなたが作ったソースファイルをlinuxシステム側に転送して使う形になります.(ブラウザ内ウィンドウで動作しているlinuxに転送されます)

 ・ブラウザを閉じたり,ページを再読み込みしたりすると転送されていたファイルは消えます.ご注意ください.

 ・ソースファイルはWEBサーバ側には送られません(サーバに保存されません).

 ・コマンド入力や転送がうまくいかない場合は,ページの再読み込みやブラウザを変えてみるなどで試してみてください.

 

使い方例:

 エディタでC言語のファイルを作成します.

f:id:l-expanse:20210430122740j:plain

 

ファイルを保存(※日本語を使う場合は,文字コードUTF-8である必要があります.下記で用いている,さくらエディタではデフォルトで文字コードUTF-8のようです)

f:id:l-expanse:20210430122809j:plain

 

 

ウェブサイトにアクセスします.

f:id:l-expanse:20210430122818j:plain

 

上記が起動画面です.

 

 

 

ここでは,ソースファイルの置き場所として「cディレクトリ」を使うこととします.

起動したあとに,下記「cd  c 」を入力します.cディレクトリに入ります.

f:id:l-expanse:20210430122831p:plain

 

 

dirを入力して,ディレクトリの中のファイルが無いことを確認します.

その後,ウィンドウ下側の「↑」ボタンを押します.ファイルを転送するためのボタンです.

f:id:l-expanse:20210430122837p:plain

 

 

ファイルのダイアログがでてくるので,ファイルを選択します.

f:id:l-expanse:20210430122850j:plain

 

 

しばらくしてからdirでファイルを確認すると,転送されていることがわかります.※うまくいかない場合は,ページを再読み込みしたり,ブラウザを変えてみる,少し待ってみるなどしてみてください.

※転送されたファイルはページを閉じたり,ページを再読み込みをしたりすると消えてしまいます.その際はファイルを転送をしなおしてください.

f:id:l-expanse:20210430122910p:plain

 

 

gccコンパイルします.(gcc -o 実行ファイル名 ソースファイル名)

f:id:l-expanse:20210430122916p:plain

 

 

実行してみます.

f:id:l-expanse:20210430122922p:plain

 

文字(数字)を入力すると,それが表示されました.

f:id:l-expanse:20210430122927p:plain

 

 

ソースファイル内容を変更してみます.ファイルの内容を変更して

f:id:l-expanse:20210430122940j:plain

 

 

上書き保存します.

f:id:l-expanse:20210430122945j:plain

 

 

ウィンドウ下側のボタンを押して,

f:id:l-expanse:20210430122954j:plain

 

 

ファイルを選びます.

f:id:l-expanse:20210430122959j:plain

 

 

 ファイルが転送されていること(更新されていること)がわかります.※うまくいかない場合は,ブラウザを再読み込みしたり,ブラウザを変えてみる,少し待ってみるなどしてみてください.

f:id:l-expanse:20210430124605p:plain

 

 

コンパイル後,実行をすると,更新された内容が実行されていました.

f:id:l-expanse:20210430123030p:plain

 

ファイル転送がうまくいかないことが何度かありましたが,原因は分かりませんでした.どういうタイミングでうまくいかないのかが掴めません.再読み込みをするなどして何度か試すとできます.

 

追記:

 

・日本語が表示されない場合は,文字コードUTF-8であるか確認してください.さくらエディタではデフォルトで文字コードUTF-8のようです.

・出力の際,改行コードが無いと正しく出力されないようです.たとえば,printf("テスト");とするときは,printf("テスト\n");などと,こまめに改行コードを入れないと「テスト」と表示がされないようです.

下記のように,冒頭にsetvbuf(stdout, NULL, _IONBF, 0);と入れると,正しく出力されます(※printf出力するときにバッファリングしないようにするのが下記です)

 

 

f:id:l-expanse:20210505164205p:plain

 

 

QEMUトラブル

 

だいぶ前にqemuの環境を構築したのですが,久しぶりに動作させたら起動しているようなのですが,IPアドレスが変わったらしく?,アクセスできなくなってしまった.

 

細かい説明は省いてしまうが,下記のように対処しました(ところどころ情報は隠しています)

対症療法としてやったことは,起動オプションを下記とすることで,(トラブルと関係しないオプションもあります)

 

qemu-system-x86_64 -enable-kvm -hda hddxxxx.img -m 1024 -net nic,macaddr=XX:xx:xx:xx:xx:xx -net bridge,br=br0 -cpu host -nographic

 

これで起動はできているようなのですが,IPアドレスが以前と違っている?らしい(DHCPを使っていて時間が経ったためと思われる).

なので,LAN内のDHCPサーバの情報からDHCP クライアントの一覧を見て,該当するIPアドレスらしいものを見つけました.そのアドレスを指定することにします.

上記のコマンドでqemuを実行したあと,「ifconfig」コマンドを単独で実行すると「tap0」があったので,


ifconfig tap0 192.168.xx.xx netmask 255.255.255.0 up

 

と「tap0」と見つけたIPアドレスを指定しました.これで該当するvirtual PCが見えるようになりました.(上記のIPアドレスでアクセスができるようになりました)

 

上記は対症療法なので,,

LAN内のIPアドレスを整理しておくことと(ゲスト側のIPアドレス取得を固定IPにするにするなど),あと,使えていたはずの起動時のコマンドが有効になっていない?みたいなので確認していく必要...

 

 

 

 

パワーポイントでのドットでのサイズ指定

パワーポイントの縦幅と横幅のサイズをドット(ピクセル)で指定する必要があったのでやり方を調べました.

 

サイズを変更するウィンドウで,1200px  のように,そのまま入力するとできました.

 

 

 

 

f:id:l-expanse:20210219005223p:plain

デザイン のところから,スライドのサイズ,ユーザー設定のスライドのサイズ,

を選びます.

 

 

 

f:id:l-expanse:20210219005238p:plain

 

 

f:id:l-expanse:20210219005437p:plain

ドット(ピクセル)サイズを入れます

 

f:id:l-expanse:20210219005252p:plain

高さについても同様

 

 

 

 

oViceの使い方メモ(仕様が変わった)

oViceの仕様が少し変わりましたので,再度使い方のメモを作りました.

 

f:id:l-expanse:20210205101129j:plain

 

 

f:id:l-expanse:20210205101135j:plain

 

入場した時の様子

 

 

 

f:id:l-expanse:20210205101149j:plain

マウスで自分のアイコンを動かすと,黒い円が表示されます.黒い円内の人と音声で会話や資料の共有表示ができます.

 

f:id:l-expanse:20210205101152j:plain

f:id:l-expanse:20210205101200j:plain

近づいたときに,下の,マイクのアイコンをオンにする(緑色になる)と,近くにいる人だけに音声が届くようになります.




以降画面(資料)共有の方法です

 

f:id:l-expanse:20210205101205j:plain

下側のアイコンからScreenshareを選択します.

 

f:id:l-expanse:20210205101225j:plain

 

 

 

何を共有するか表示されます.特定の資料(パワーポイントなど)を共有表示したいときには,間違えて全画面表示(「あなたの全画面」画面1,など))を選ばないように注意をしてください.

特定の資料を表示したいときは,「アプリケーションウィンドウ」のタブのほうを一度選んでください.

 

 

f:id:l-expanse:20210205102304j:plain

 

共有したいアプリケーション(図ではパワーポイント)を選びます.

 

f:id:l-expanse:20210205101235j:plain

右上にパワーポイントが表示されます.近くにいる人に,このパワーポイントが共有表示されます.(離れると見えなくなります)

 

 

f:id:l-expanse:20210205101239j:plain

 

f:id:l-expanse:20210205101242j:plain

 

ウィンドウの左下をつまむことで,共有ウィンドウは大きくすることができます.

 

 

f:id:l-expanse:20210205101247j:plain

f:id:l-expanse:20210205101251j:plain

 

チャットも使えます(チャットの内容は,近くにいる人だけでなく,全員に伝わりますのでご注意ください)

 

以上です.