OS

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アプリケーションしか実行しないという前提にな…

クラウド向けOS「OSv」とは何か - ソースコードから調べてみる -

なにこれ KVM開発エンジニアらが立ち上げたベンチャーCloudius、クラウド向けOS「OSv」を発表 | OSDN Magazineで紹介されていたので興味を持って弄ってみた。 KVM/Xen専用のOSで、アプリケーションとしてJavaアプリケーションが動くという事のようだ。 基本…

各OSのカーネルの行数

OS

ふと気になったので適当に調べてみる。調査方法は、各OSのソースコードをダウンロードしてきて、 find . -name "*.[chsS]" -exec cat {} \;|wc -l を実行した(※xnuの場合だけこれに.cppも加えてみた)。 見ての通りいい加減な調べ方なので、あんまり真に受…

シンボリックリンクをrm -rf symlink/すると不幸になる

OS

Twitterでちょっと話題にしたのでメモしとく。 sh-3.2$ mkdir -p hoge/huga sh-3.2$ touch hoge/huga/piyo sh-3.2$ ln -sf hoge tmp sh-3.2$ rm -rfv tmp tmp sh-3.2$ ls -l hoge/huga/piyo -rw-r--r-- 1 syuu staff 0 1 22 14:25 hoge/huga/piyo シンボリッ…

USB-stick bootなChromeOSはやたらとパーティーションが多いと聞いて

ちょっと簡単にパーティーション割りを見てみた。 どんな感じに使ってるかは未だ確かめてない。VMイメージでも同じかどうかも未確認。取り敢えず第一報として。イメージはこのへんから。 syuu@localhost Downloads % sudo losetup -f ./ChromeOS-Vanilla-0.1…

さくらのVPSにOpenBSDをインストールしてみた

ふと思い立って、さくらのVPSを契約し自宅のOpenBSD鯖をそこへ移行する計画を実行に移してみる事にした。 なので、まずさくらのVPSにOpenBSDを入れる必要があるが、「カスタムOSインストール」の項目にOpenBSDは無い。ではどうするか。 他にも色々方法がある…

Software Design 2009/12月号でLinuxカーネルに関する記事を書いたよ

という訳で、買え(ちょ ええと、普段はx86?Linux?何それ食えるの美味しいの?と公言して憚らない私ですが(嘘、色々あって何故かSoftware Design 2009/12月号のLinuxカーネル特集で記事を書くハメに陥ってしまいまして、プロセス管理とプロセススケジュー…

第二回 カーネル/VM探検隊まとめ

OS VM

先日主催してカーネル/VM探検隊の資料と映像のリンク集を作りましたので、未だ見てない君もチェックしてみるがよいよ。http://groups.google.com/group/kernelvm/web/%E7%AC%AC%E4%BA%8C%E5%9B%9E+%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%EF%BC%8Fvm%E6%8E…

CFSの話 - __sched_period()で算出されるperiodの値

/* * The idea is to set a period in which each task runs once. * * When there are too many tasks (sysctl_sched_nr_latency) we have to stretch * this period because otherwise the slices get too small. * * p = (nr <= nl) ? l : l*nr/nl */ sta…

CFSの話 - sched_slice()で行われるタイムスライスの計算がさぱーり分からない

/* * Preempt the current task with a newly woken task if needed: */ static void check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) { unsigned long ideal_runtime, delta_exec; ideal_runtime = sched_slice(cfs_rq, curr); delt…

sched-design-CFS.txtの和訳

ぼーっと読んでいてもわかるようなわからんような、なので訳してみれば全部読まざるを得ないだろうと思ったんだけどやっぱり面倒で、結局Excite翻訳したものを手直ししただけ。 しかも、機械語翻訳がかなり残ったままの超適当訳です。クオリティはかなり低い…

第二回カーネル/VM探検隊のお知らせ

VM OS

こんにちはsyuuです。 第二回カーネル/VM探検隊の日程が決まりました。 日時:2009年11月5日 16:00〜20:30 場所:株式会社ライブドア ネットワーク事業部 セミナールーム 発表内容(仮、変更の可能性あり): @takeoka SystemVMのお話 @oza_x86 Linux KVMの…

IRCで誰か話しかけてきたなと思ってたらTheoだった。

俺今東京に居るからビールでも飲もーぜ:) って気さくに話しかけてくるこのおっさんは誰や。とか思ってたらTheo様その人だった件((((;゜Д゜)))

OpenBSDへパッチをコミット

出来たよ(`・ω・´) http://www.openbsd.org/cgi-bin/cvsweb/src/sys/arch/mips64/include/ちゃんと僕の名前がCVSに乗りました。

第一回 カーネル/VM探検隊の動画への人気の偏りがアレな件について

OS

それでは再生回数のランキングを発表します。1. @oraccha「今日からはじめるPlan 9 from Bell Labs」 1/5 114 2. @oraccha「今日からはじめるPlan 9 from Bell Labs」 3/5 39 3. @oraccha「今日からはじめるPlan 9 from Bell Labs」 2/5 38 4. 田胡教授「UNI…

カーネル/VM探検隊の発表原稿

色々つらつらと書いていて気づいたのだが、ソースコードレベルでの解説を試みるならこんな与太話する時間ないと思う。 ボツかなぁこれは。と思ったので取りあえずここに貼ってみる。 ○MIPSの歴史 SGIのワークステーションに長い間使われていました。 DECやソ…

OpenBSD/sgi on octane2 - ipi割り込み

取り合えず実装してみたんだが、動いていない模様。 うーん。xheartのデータシートが欲しいよう。HEART_INTR_IPI(x)はHEART_INTR_MAXよりデカいけど正しいのか分からない。 HEART_IMR(0)はHEART_IMR(cpu_number())に書き直した。 Index: xbow/xheartreg.h ==…

OpenBSD/sgi on octane2 - clock割り込み

cpu1でclock割り込みを起こしてみた。cpu_hatchでcpu_initclocks()を呼び、statusレジスタで割り込み有効にする。 void prom_cpu_hatch(struct cpu_info *ci) { char *cp; void *gp, *sp; asm volatile( "move %0, $gp\n" "move %1, $sp\n" : "=r"(gp), "=r"…

第一回カーネル/VM探検隊のお知らせ

OS

Google グループより転載:第一回カーネル/VM探検隊の開催日時が決まりました。 日時:2009年8月10日 16:00〜18:00 場所:株式会社ライブドア ネットワーク事業部 セミナールーム(http://corp.livedoor.com/company/map.html) 今の所決まっている参加者は…

OpenBSD/sgi on octane2 - cpu1デバッグ用のcom1向け簡易putcの実装

実装つってもdev/ic/com.cのコピペな訳だが、printfが動いてないかもしれないって事でcom1へダイレクトに出力が行えるコードを実装しようとしてみた。 #define COM_NPORTS 8 #define COM_FREQ 1843200 /* 16-bit baud rate divisor */ int combfreq = 220000…

OpenBSD/sgi on octane2 - ひ〜

ずっと嵌りまくってて今やっと自分が以前いじってたコードの正常動作が確認出来た。 そうか、cpuを1コアだけ動作させる時もoption MULTIPROCESSORを指定しないと起動してこないコードになってたのか(バグだよそれ。気がつかないで一週間過ぎてるしorz こっ…

カーネル/VM探検隊

OS

id:big-eyed-hamster さんと夏休みに勉強会でもやりませんかーという話をして、「カーネル/VM探検隊」という名前を付けてみたw けど何をやるのか全然まだ決めてないww

OpenBSD/sgi on octane2 - どうしてもprintf()で死ぬ理由の予想 が正しかったか否か

「現状のコードだとcpu1の動作確認の為にcpu0をwhileループで止めているから出力が永久に行われない」と予想して該当するwhileループを外し、cpu1を起動したらcpu0は起動シーケンスを続行するように書き換えてみたが、やっぱりcpu1のprintfは表示されないな…

OpenBSD/sgi on octane2 - どうしてもprintf()で死ぬ理由の予想

cpu1から呼んだprintfはバッファに文字列を溜め込むだけで出力はcpu0を介して行われる。 が、現状のコードだとcpu1の動作確認の為にcpu0をwhileループで止めているから出力が永久に行われない。 なのではないか?