mikutterのFedora向け.rpmの配布を開始した

エイプリルフールの日だったのでつい勢い余って書いてしまった。 公式リポジトリに含まれているわけではないが、Copr上に置いてあるので簡単な手順でリポジトリを手元のFedora環境で有効化できる。 以下がインストール方法になる: # dnf -y install dnf-plu…

秋山郷厳冬期ハッカソン

温泉ハッカソン Advent Calendar 2016 25日目の記事です。 前回のおさらい カーネル/VM探検隊の参加者を中心としたメンバー(不定)で山奥に集まりみんなでわいわいやりながら好きな作業をするイベント「カーネル/VMキャンプ」を不定期で年に数回開催して…

秋山郷(長野・新潟県境)でハッカソン

温泉ハッカソン Advent Calendar 2016 23日目の記事です。 前回のおさらい カーネル/VM探検隊の参加者を中心としたメンバー(不定)で山奥に集まりみんなでわいわいやりながら好きな作業をするイベント「カーネル/VMキャンプ」を不定期で年に数回開催して…

群馬県みなかみ町でハッカソン

温泉ハッカソン Advent Calendar 2016 18日目の記事です。 前回のおさらい カーネル/VM探検隊の参加者を中心としたメンバー(不定)で山奥に集まりみんなでわいわいやりながら好きな作業をするイベント「カーネル/VMキャンプ」を不定期で年に数回開催して…

東京都檜原村でハッカソン

温泉ハッカソン Advent Calendar 2016 10日目の記事です。 前回のおさらい カーネル/VM探検隊の参加者を中心としたメンバー(不定)で山奥に集まりみんなでわいわいやりながら好きな作業をするイベント「カーネル/VMキャンプ」を不定期で年に数回開催し…

カーネル/VMキャンプ #4 at 山梨県小菅村

温泉ハッカソン Advent Calendar 2016 3日目の記事です。昨日より山梨県小菅村でカーネル/VMキャンプ #4を開催しているので、こちらのハッカソン会場と温泉を紹介しようと思います。 カーネル/VMキャンプってなに? 「カーネル/VM探検隊っぽいハッカソン…

USBメモリのフォーマット無しに、たった一つのファイルをコピーするだけでブート出来るLinux

singlefilelinuxとか名前を付けてみたが、新しいディストリを作ったり新しいツールを作ったりしたのではなく、単にGentooのLiveCDを単一のカーネルイメージに埋め込んでブート可能にしただけである。使い方は以下の通り: bootx64.efiをダウンロードする USB…

Route 53でcli53を使ったDynamic DNS

Route 53でDDNSというとroute53DynDNS.bashを使った例を多く見かけるのだが、自分の手元では正常動作しないし読めた物ではない感じの作りなので、cli53を使って極めて簡単に書き直した。AWSインスタンスでの例はこちらにあるのだが、ここではAWSではない自宅…

mrubyでUEFIブートローダなやつのバイナリ配布

多分みなさんEDK2のビルドが面倒い最高で試すの嫌だと思うので、バイナリ配布しておきますね。 こちらです:https://s3.amazonaws.com/syuu1/mruby.efiブートローダのスクリプトはこちら: https://raw.githubusercontent.com/syuu1228/mruby_on_efi_shell/d…

GCEでOSvを動かそう

OSvは、ハイパーバイザやIaaSプラットフォームへアプリケーションをデプロイすることに特化した軽量OSです(※詳しくはこちら)。今回はRuby on Railsで書かれたブログエンジン「Publify」をインストールしたOSvのイメージをGoogle Compute Engine(GCE)へデ…

UEFI Native API on mruby

mrubyでブートローダを書けるようにしました - かーねる・う゛いえむにっきの記事はlibc API経由でmrubyからUEFIの機能を使う話でした。 これとは別に、mruby on efi shellにはUEFIのネイティブAPIへアクセスするためのクラスが用意されているという話をしま…

mrubyでブートローダを書けるようにしました

カーネル/VM@関西7回目でお話したネタです。スライドはこちら: UEFI時代のブートローダ from Takuya Asada 既にmrubyはUEFIへ移植されています(覚え書き: mruby on EFI Shell)。また、EFI StubカーネルをUEFIアプリから実行するのは非常に簡単であるこ…

OSvのビルド環境の構築

OSv

OSvはMacやWindows上のVirtualBox・VMware、VMware ESXiなど様々な環境で動作するのですが、ビルド環境はFedoraの最新版という極めて限られた環境でのみテストされています(理屈の上では他のディストリビューションでもビルド可能ですが、細かなパッケージ…

1コマンドでJavaアプリをOSvへデプロイ

OSvは、ハイパーバイザやIaaSプラットフォームへアプリケーションをデプロイすることに特化した軽量OSです(※詳しくはこちら)。 また、CapstanはGo言語で実装されたOSvのデプロイツールです(※詳しくはこちら)。OSvはJVM上で動くアプリケーションをメイン…

OSv CLIにコマンドを追加しよう

OSv CLIの使い方 - かーねる・う゛いえむにっきで見たとおり、現状CLIのコマンドは非常に少なく、REST APIを直接呼び出して一部の操作を行わざるを得ない状態です。そこで、コマンドを足してOSvへコントリビューションしてみるのは如何でしょうか。 例えば、…

OSv CLIの使い方

OSv

リモートCLIについて - かーねる・う゛いえむにっきでも紹介したCLIの使い方についてです。 リモートCLIに必要なもの まず、Linuxホスト側でCLIをインストールする必要があります(参照)。 その上で、httpserver(REST APIサーバ)を含むOSvのイメージを実…

Capstanの使い方

OSv

CapstanはGo言語で実装されたOSvのデプロイツールです。 各種アプリケーションを含んだディスクイメージを1コマンドでダウンロードし、ローカルのKVMやVirtualBoxなどへデプロイすることが出来ます。以下に使い方を紹介します。 Capstanの対応環境 対応OSは…

OSvでLuaインタープリタを動かす

OSvは、ハイパーバイザやIaaSプラットフォームへアプリケーションをデプロイすることに特化した軽量OSです(※詳しくはこちら)。OSvでは簡易CLIを実装するためにLua言語が使用されています。 この記事では、CLI以外の任意のLuaプログラムをOSv上で実行してみ…

リモートCLIについて

OSv

OSvには簡易シェルとしてLua CLIが用意されていて、capstan経由でLua CLIしか入ってないVMイメージが配布されていたりするのですが、実はこのCLIは全てREST API上に実装されています。つまり、常にhttp://127.0.0.1:8000/へRESTを送ってシステムのAPIを叩い…

mruby on EFI Shellのビルド

※この記事では後々mrbgemsを追加していく事などを意図してmrubyをビルドする事に拘っているが、単にmrubyをUEFIで試してみたいだけならば自分でビルドする必要はない。ここのHow to useからリンクされている"download page"をクリックすればダウンロードでき…

EDK2でUEFI Application開発環境整備とQEMU Virtual FAT

もうちょっと応用的な内容にトライしようと思ったら久々の開発環境整備で手間取ったので、まずどうやって試すのか、について書いてお茶を濁す。開発環境はFedora 20 + gcc-4.9 from rawhideという変則な環境だが、新しめのパッケージが使われているディスト…

OSvのご紹介 2014年12月版

OSv

ご注意:OSvは絶賛開発中のプロダクトであるため、将来のバージョンではここに書いてある通り動かない場合があります。 OSvとは OSvは、ハイパーバイザやIaaSプラットフォームへアプリケーションをデプロイすることに特化した軽量OSです。 Linuxで動作するい…

Baytrail-M NUC(DN2820FYKH)でFreeBSDが起動しなかった話・その後

http://www.slideshare.net/syuu1228/intel-nuc の続きの話です。CURRENTにマージされたbug fixはMFCって言って、stableへマージされて次のRELEASEに含まれる仕組みになってるっぽいんですが、このパッチも無事取り込まれたようで、次のRELEASE(10.1, 9.3か…

Macでもmruby-simplehttpserverをcapstanを使ってお手軽簡単にOSv向けにビルド&実行

前回の記事ではLinuxに絞ってcapstanを使ったmruby on OSvのビルド&実行方法を紹介しましたが、アプリケーションのコンパイルが他プラットフォームでは出来ないと説明しました。代わりに、github上にビルド済みのアプリケーションバイナリを置いて、OS Xでc…

matsumotory氏のmruby-simplehttpserverをcapstanを使ってお手軽簡単にOSv向けにビルド&実行する

OSvは最近capstanというビルド・デプロイツールが出来たので、以前のようにOSをビルドしなくてもアプリだけビルドしてVMイメージ作成&実行が簡単にできます。ここでは、@matsumotory氏がブログで解説されていたmruby-simplehttpserver用のcapstanリポジトリ…

Linux上のmikutterでリンクをクリックしたら別のLinux上のブラウザで表示する方法

Linux上のmikutterでリンクをクリックしたらMac上のブラウザで表示する方法 - かーねる・う゛いえむにっきの続きですが、「いや、おれMacとか使ってねぇし?不自由なOSユーザー氏ね!」みたいな声が聞こえてくる気がする*1ので、Linuxでも出来るかどうか考え…

Linux上のmikutterでリンクをクリックしたらMac上のブラウザで表示する方法

VM上のLinuxでmikutterを動かしてたり、synergyで2台のPCを並べて使ってたりする場合に、TwitterだけLinuxのmikutterで眺めてWebはMacで見たい場合ってありませんか。僕はあります。 そんな時、SSHを使えば割と簡単に実現出来ます。 MacのSSHサーバを有効化 …

githubで公開することにしました

既にこのブログで第1回、第2回を公開していますが(追記:githubでの公開にあわせて削除済み)、原稿元データを含めて全ての回をgithubで公開することにしました。 githubリポジトリ 公開ページ 現在、TeXへの変換作業のボランティアを募集しています。 詳し…

FreeBSD-10 install image for Baytrail-M NUC(DN2820FYKH)

Intel Baytrail-M NUC(DN2820FYKH) causes kernel panic due to its broken ACPI table: http://www.freebsd.org/cgi/query-pr.cgi?pr=187966This install image includes patched kernel for the machine, you are able to install FreeBSD-10 on the machi…

Baytrail-M NUC(DN2820FYKH)でFreeBSDが起動しなかった話・解決編

これの続き。Linuxでは僕の書いたpatchと同じ感じでreservedが来たらtriggerならlevel、polarityならlowを返すようにしています。 http://lxr.linux.no/linux+v3.13.5/arch/x86/kernel/acpi/boot.c#L1094ですので、このパッチをマージして貰うという事で良い…

Baytrail-M NUC(DN2820FYKH)でFreeBSDが起動しなかった話

bhyve用にこれ買ってみたんですよ、これ。まぁ新しいハードだし地雷だろうなと思ってたんだけど、面白そうにおもっちゃってつい人柱っちゃったんですよ。はい。したらもういきなりドハマリして。 FreeBSDが入っている2.5インチHDDを繋いでもレガシーブートモ…

RubyでTAPを使ったトンネリングプログラムを実装してみる

こちらのサイトでシンプルなPythonの実装が配布されていたので、Rubyでも実装してみました。 require "socket" TUNSETIFF = 0x400454ca IFF_TAP = 0x0002 PEER = "192.168.0.100" PORT = 9876 tap = open("/dev/net/tun", "r+") tap.ioctl(TUNSETIFF, ["tap%…

OSvにマージされたmrubyを試す

$ sudo apt-get install openjdk-7-jdk autotools-dev libltdl-dev libtool autoconf autopoint libboost-all-dev \ genromfs zfs-fuse autoconf ant libffi-dev ruby bison gyp git build-essential qemu-utils qemu-system-x86 \ bridge-utils libvirt0 li…

FreeBSD 10.0-RELEASEのBHyVeでLinuxゲストが「WRMSR・RDMSR」などの単語を含むエラーメッセージと共に異常終了する場合

一部のLinuxカーネルと一部のIntel CPUの組み合わせでは「Unknown WRMSR code 391, val 2000000f, cpu 0」「vm exit rdmsr 0xe8, cpu 0」などのエラーがでる。 これは、該当するMSRへのアクセスをBHyVeがハンドルせずに異常終了して済ませてしまっているため…

FreeBSD 10.0-RELEASEのBHyVeでOpenBSD 5.4をインストールしてみよう

OpenBSDサポートはまだ実験段階で、カーネルを改変したバージョンの5.4しか動かない。 この問題を回避するために、改変版カーネルがインストールされたディスクイメージをダウンロードする。 # cd bhyve-script # cp vm0 openbsd3 これから作るVMの名前にvm0…

FreeBSD 10.0-RELEASEのBHyVeでFreeBSD 9.2-RELEASEをインストールしてみよう

# cd bhyve-script # cp vm0 freebsd2 これから作るVMの名前にvm0をコピー(末尾は数値で、他のVMと重複しない値でなければならない) # vi freebsd2 NIC=“em0” をお使いのNIC名に VCPUS=“1”を任意のvCPU数に VMRAM=1024”を任意のメモリサイズに DEVSIZE=“2G…

FreeBSD 10.0-RELEASEのBHyVeでCentOS 6.5をインストールしてみよう

# cd bhyve-script # cp vm0 centos1 これから作るVMの名前にvm0をコピー(末尾は数値で、他のVMと重複しない値でなければならない) # vi centos1 NIC=“em0” をお使いのNIC名に VCPUS=“1”を任意のvCPU数に VMRAM=1024”を任意のメモリサイズに VMOS=“freebsd…

FreeBSD 10.0-RELEASEのBHyVeでUbuntu 13.10をインストールしてみよう

# pkg install grub2-bhyve tmux # fetch http://bhyve.org/bhyve-script.tar # tar -xvf bhyve-script.tar # cd bhyve-script # cp vm0 ubuntu0 これから作るVMの名前にvm0をコピー(末尾は数値で、他のVMと重複しない値でなければならない) # vi ubuntu0 …

東京都檜原村潜入記録

正月を機に、以前より気になっていた檜原村に行くことが出来たので、再度訪れる時に便利なようにここに記録を残しておく。 檜原村とはどこだ? 八王子の西、サマーランドを経由して武蔵五日市駅から秋川渓谷に入り更にずっと山道を登っていった所にある小さ…

任意のアセンブリコードを仮想マシンで実行しちゃうRuby gemを作ってみた

このブログエントリはカーネル/VM Advent Calendar 2013 25日目の記事です。前回、カーネル/VM探検隊で「バインディングさえあればスクリプト言語でもゲストOSローダを実装出来る」という話をちらっとしました(資料)。今回の記事では、ゲストOSロ…

μOSvバイナリ配布

自前のスクリプトを内部に持ち込む術がないのでバイナリ版を配布しても無意味だと思って今までソースコード配布しかしてなかったんですが、一応作ってみました。 取り敢えずeshellでlsすることぐらいはできます。それ以上は自前ビルド版でどうぞ。 wget http…

mruby-eshellのご紹介

この記事はmruby Advent Calendar 2013の記事です。本当はμOSvでTwitterクライアントをテストしたかったんですが、大幅に予定の日をオーバーしてしまっていたので取り敢えずmruby-eshellのことを書きます。一言で言うと、mrubyで書かれたシェルです。コード…

ゲストOSのブートローダをホストOS上で動作するプログラムに翻訳する

このブログエントリはカーネル/VM Advent Calendar 2013 8日目の記事、および第九回カーネル/VM探検隊の発表の補足記事です。 発表資料と動画 このエントリだけでも理解できるように書いたつもりですが、はじめにこちらをみて頂いた方が分かりやすいかもし…

mruby専用クラウドOS「μOSv」を作りました

追記:μOSvはOSv本家にマージされました。 こちらのWikiの「OSvをビルドしてより多くのアプリを試す」以下を参照して下さい。 μOSvというものをgithubで公開したので、ここに簡単な説明を書いておきます。実行イメージ動画: これは何?(OSvを知らない人向…

OSv mruby moduleでソケットとかHTTPパーサとかSSLとかが一通り動くようになった

何が使えるかの詳細はこちらへ:osv-mruby/build_config.rb at master · syuu1228/osv-mruby · GitHubmruby-uvではなくiijのsocketなのでuv依存なコードが一切動かないんだが、ともあれHTTPとかHTTPSとか出来るようになった。 ただ、mirbがなんか壊れてるっ…

OSvで複数のNICを初期化する

OS

Support multiple NIC ソースコードを読んでみたらeth0をdhcpで初期化するとハードコーディングされていたので、何とかしてみた。 で、Cで書いたらC++でやろうよかっこわるいから、って言われてC++で書き直すことに…。こんな感じでNIC名をイテレートできるよ…

OSvにシンプルなHTTPDがあってもいいんじゃないかなと思ってthttpdを移植してみた

OS

Java application serverやらJRubyなapplication serverじゃなくて、スタティックなWebサイトをホスト出来るシンプルなHTTPDが動いたらよさそうだなーって思ったのでちょっとやってみた。OSvもmrbgemsみたいな感じに簡単にextensionを追加できるといいよね→…

OSvもmrbgemsみたいな感じに簡単にextensionを追加できるといいよね→やってみた

mrubyってRubyのgemsみたいな感じに拡張をmrbgemsっていう方式で追加できるんですが、mrubyの用途から言ってどこかのディレクトリにダイナミックリンクライブラリ+Rubyファイルで配置とかやってほしくなくてmruby本体に直接リンクしといて欲しいという感じ…

OSvへmruby-cfuncを移植してみたらとてもあっさりと動いた話

OSvへmrubyを移植してみたらとてもあっさりと動いた話 - かーねる・う゛いえむにっきの続きです。さて、OSvでmrubyが動くようになったのですがmrbgemsを追加していないのでこのままではAPIがむっちゃ少なくてなにも書けません。 でもmrbgemsの移植ってそれぞ…

OSvへmrubyを移植してみたらとてもあっさりと動いた話

注:この記事はカーネル/VM+K*BUG勉強会@関西 ごかいめのダイジェスト版です。 詳しくは、以下の動画とスライドをご覧下さい。 OSvは、OpenJDKを仮想環境で高速に動かす事を目指していて、ユーザは基本的にJavaアプリケーションしか実行しないという前提にな…