gitosisからgitoliteに移行(Ubuntu)

参考:
http://gitolite.com/gitolite/gsmigr.html


サーバをupgradeしたついでにgitosisは古いらしく無くなってしまったのでgitoliteに移行.
aptitudeで入れようとしたらバージョンが古いみたいなのでgitから入れる.

$ git clone http://github.com/sitaramc/gitolite.git
$ mkdir $HOME/bin
$ gitolite/install -ln  # デフォルトだと$HOME/binに入る.適当にパスを通すかなんかする

gitolite用のgitユーザの追加(別にgitじゃなくても良い)

$ sudo useradd -m -U -r -s /bin/bash -d /srv/git git

gitアカウントでgitoliteの初期設定

$ sudo su - git
$ gitolite setup -pk aaa.pub  # aaa.pub がadminユーザの公開鍵
$ exit

あとはgitosisなんかと同じようにgitolite-admin.gitで管理

$ git clone git@host:gitolite-admin.git


gitosisからリポジトリを移行する場合にはgitosisアカウントのホームにあるrepositoriesディレクトリをgitアカウントのホームディレクトリにコピーする.
ユーザやグループの変更を忘れずにする.

$ sudo cp -a /srv/gitosis/repositories /srv/git
$ sudo chown -R git.git /srv/git/repositories

これであとはgitolite-admin.gitのコンフィグを設定したりkeyを登録し直せばok.
コンフィグ移行ツールとしてgitolite.gitの中に./convert-gitosis-confってのがある.


@ローカル環境

# gitosis-admin.gitをcloneしたディレクトリ
$ git clone http://github.com/sitaramc/gitolite.git
$ git clone git@sakura:gitolite-admin.git
$ gitolite/convert-gitosis-conf < gitosis-admin/gitosis.conf >> gitolite-admin/conf/gitolite.conf
$ cp -a gitosis-admin/keydir gitolite-admin
$ cd gitolite-admin
$ git add conf/gitolite.conf keydir
$ git commit -m "migrating from gitosis"
$ git push origin master

これで移行できるはず.keydirをコピーするときgitosisとgitoliteでの自分の公開鍵の名前が違うと重複してしまうので注意.
あとはいままでのローカルのリポジトリのremoteを適当に修正する.
今回の場合ユーザ名がgitosisからgitに変更になっているので,

$ git remote set-url origin git@host:xxx.git

とかすればok.

FUJI ROCK FESTIVAL 2013 前編

個人的にThe CUREは一番最初に好きになったバンドで,今でも一番好きなバンド.6年前に23年ぶりに来日したときはとても見にいける状況になくて泣く泣く見にいくのを断念したんだけどそんなCUREの今年のフジロックへの出演が3月末に発表されたとき,7月末の予定も分からないまま速攻でチケットを予約しました.とても単独公演は期待できないし,これを逃すともう二度と見れないような気がしたから.結果としてなんとか試験にも被ることなく見に行くことができました.


フジロックには行ったことがなくて,アウトドア派でない自分にはきついなぁと思いつつそんなこともいってられないので気合いで3日目の28日だけいきました.当初は行き帰り夜行バスでいいかなと思ったけど体力的にきつそうだったので,行きは親戚が高崎に住んでるのでそこに泊まって高崎駅から始発で行くことにして,帰りはバスにすることに.


朝7時頃高崎を出て,鈍行で越後湯沢についたのが9時前.電車内には明らかにそれっぽい格好した人がそれなりにいた.越後湯沢にはよく小学生の頃スキーに来てたんだけど最近は全くいってなくて随分ご無沙汰.そこからシャトルバスに乗って会場に向かう.シャトルバスは結構待たないとかなと思ってたけどそんなこともなく10分ぐらいで割とすぐに乗れた.会場までは30分ぐらい.


会場についてリストバンドを交換.ここでも結構待つのかなと思ってたけど全く待たずに通過.時間が早かったからなのか今年はすいていたのかどうなんだろ.リストバンドを交換したあたりで雨が降ってくる.その日は一日雨が振ったり止んだりでした.


会場に実際に入ってとりあえずCUREがやるグリーンステージを見に行く.映像で見るよりは小さいように感じた.それでも大きいんだけど.まだCUREまでは12時間以上時間がある.


とりあえず見たいなぁと思っていたBo Ningenを見に行くと最後だけちょこっと見れた.そしてそのままLITEまで待機して見る.かっこ良かったけどこんなエレクトロ融合した感じだったけ,とちょっと思う.それから本当はDIIVも見たかったんだけどYO LA TENGOと被っているので泣く泣く断念.YO LA TENGOは後方でまったり見てたけど良かった.


それからdaughterを見に行く,このdaughterが本当に良かった.あんなにライブがいいとは思わなかった.単独公演あったら見に行きたいなぁ.その後昼ご飯を食べて休んでから,折角だから奥にも行こうとsavegesを見にホワイトステージに行く,savegesもなかなか良かった.というか音が良かった.自分がいた場所が良かったんかな.ただsavagesは途中で雨が結構強くなってなかなか試されてる感があった.まぁ,savagesの一番良かったところはあの怖そうなボーカルがかわいらしくありがとうございました,って言ったところだと思う(笑.もっと奥の方にもいってみたかったんだけど,何よりCUREまで体力を温存しなくちゃいけないので奥にいくのはやめといてグリーンステージ後方に戻る.


それからmumford & sonsを見る.CUREとともに日本ではあまり人気のないようだけどよく盛り上がってたと思う.特に最後のI will waitはひょっとするとあの日一番盛り上がったのかもしれない.なんか日本語で結構あいさつしてていい人だなぁと思った.


そしてその後がVampire Weekend.CUREの時最前列を確保するためにはVWの時に前に突っ込まないと駄目だよなぁと思いつつとても体力が持つ気がしないのでそんなことはやめておく.VWの途中でトイレに行って,それからモッシュピット入り口のところまで頑張っていく,これでCUREの時にはそれなりの場所が確保できそう.VWは好きだから楽しかったんだけど,スピーカの前にいたからか結構音がでかくてきつかった.ライブは最後の方にやったgiving up the gunが特に良かった.


さて,VWが終わるといよいよCURE.CUREのために今日来たといっても過言ではない.正直この時点で結構歩き回って疲れてたんだけどそんなこと言ってられないので気合いを入れ直す.


つづく...

FUJI ROCK FESTIVAL 2013 後編(CURE編)

Vampire Weekendが終わったところでモッシュピット入れ替えがあったのでえいやっと中に入る.流石に最前列は無理だったけどちょうど中央あたりの前から2,3列目を確保.まぁ最前列にいくと嫌でも怖いセキュリティの兄ちゃんと目を合わせなくては行けないのでこの辺がちょうど良かったのかも.しかし最前列にいた人はVWのときからいたはずで(ひょっとしてもっと前からいた?),ということは最低でもCUREが終わるまで5時間以上はあそこにいたってことだよね.すごい.ステージとの距離は映像で見るよりも全然近い.周りは外人さんが多かったように思う.他のアーティストの時前に言ってないから比較はできないんだけど.あとまぁ,多分年齢層は高かったと思う.あの84年の公演に行った人もいるのかな.


1曲目はtape/openなのか,それともplainsongか,はたまた違う曲なのか周りの人も気にしてひそひそ話してる.自分はやっぱplainsongがいいなぁと思いつつ開始を待つ.だいたい1時間ぐらい.少しだけロバートに似たようなスタッフの人が入念にサウンドチェック.じわじわと緊張してくる.周りの外人さんたちはときたまplay for today合唱部分を歌ったりしてて,日本で合唱なんて起きるのかなぁ,そうなってくれればいいなぁなんて思う.VWの開始が少し早かったからCUREもひょっとして少し早く始まるのかなと思ったけどそんなこともなく,むしろ21:30になってもまだメンバーは出てこない.周りもみんなずっとメンバーの名前を読んだりしてる.そうこうしてるとスモークが焚かれはじめる.あんまりにもスモークが激しくて,メンバーが見えないんじゃないかってぐらいだった.そしてようやくメンバーが登場.疲れが一気に吹き飛ぶ.ロバートを除くメンバーがそれぞれの位置につく.メンバーの位置はステージ向かって左からリーブス,ロバート,サイモン,ロジャー,で後ろにジェイソン.映像でずっと見てきた人物が自分の目の前にいて,ものすごく不思議な気持ちになった.みんな映像で見るよりも若い.特にサイモン.自分にとってキーボードはCUREに不可欠だったからロジャーが復帰してくれて本当に嬉しい.ロバートはまだこのときステージ脇にいた.相変わらずの化粧.


そして流れ出すplainsongのあの出だしの音.周りもそれに伴ってざわつく.それからジェイソンのカウントからplainsonがスタート.あの大好きなtrilogyのライブの開始と全く一緒.鳥肌が立って,本当に嬉しくて泣きそうになる.中央にいたおかげか本当に音が奇麗で,ロジャーのキーボードの音がとてもよく聞こえる.VWの時はスピーカの前にいたからか音がでかすぎてきついと感じることがあったんだけどCUREのときはそんなことは全くなかった.よくyoutubeなんかでジェイソンのドラムが弱くて駄目だ,みたいなコメントがあるけどそういう力弱さみたいな物みたいな物は全く無い.3時間,あれだけの曲を正確に叩くジェイソンは普通に凄い.ロバートが信頼している理由も分かった気がした.曲の途中からロバートが中央へ歩いてきて歌いだす.本当に自分の目の前にあのロバートスミスがいるのが信じられない.


plainsongの後は間髪入れずにpictures of you.周りからやばい,やばいという声が聞こえる.本当に奇麗な曲.もしかしてこの後close downやったりする?!なんて思ったけど流石にそんなことはなくてlullaby,high,the end of the world,lovesongと続く,disintegrationが多め.演奏が終わるたびに大きな拍手が起きてと声援が飛ぶ.周りはすごく盛り上がっていて,日本でCUREの人気が無いなんて嘘じゃないかと思った.まぁ後ろの方は分かんないけど.というか割とすいてたみたいだけど..それからpush.出だしのギターがかっこ良い.この辺でそういえばCUREのベストしか聞いてない人は知らない曲ばっかなのかなとか思う.本当ベストだけじゃCUREのことなんて分かんないよなぁと思う.


その後立て続けにinbetween daysとjust like heaven.この曲は知ってる人も多かったみたいで盛り上がる.そしてfrom the end of the green sea.この曲はCUREの中でトップ10に入るぐらいに好き."put your hands in the sky"のところでみんな手を上げた…のかよく分からなかったけど自分の周りはある程度は上げてた気がする.
それからprayers for rain.正直キーボードの出だしの音を聞いた瞬間もしかしてstrange day!?と思ってしまったのでそれがprayers for rainだと分かったときはあぁん,と思った.prayers for rainも大好きだけどね.一日雨が振ったりやんだりな天気だけどCUREのとき(というかVWからかな)は雨が止んでた.この後雨が降るかなと思う.最後の声の伸びは相変わらず.何歳になっても本当すごい.そんでsleep when i'm dead.なんでかこの曲を聞くとあのポールのスキンヘッドが頭に思い浮かぶ(笑.そしてplay for today.まさかこの曲を合唱することが来るなんて.全体は分からないけど少なくとも自分の周りはよく合唱してた.


play for todayの後はa forest.演奏を開始する前にロバートが「ここは本当にforestだね」みたいなことを言ってた気がする.最後の手拍子を周りの人と一緒におこなう.play for todayもそうだけどこれを知ってる人ってどれくらいいたんだろう.それから去年突如セットリストに復活したbananafishbones.この曲を最近ずっと演奏してることをすっかり忘れてた.あのひねくれた感じのキーボードの音が大好き.その次はthe walk."japanese baby"のとこで一段と盛り上がる.それからmint car.そういえばこの曲も去年からまたやるようになったんだよねと思い出す.ベストにも収録されてたか.highもそうだけどこれもサイモンが作曲したんだよね.なんだかあのイケメンの様子に似合わないような気がしなくもない(笑


そしてfriday i'm in love.演奏する前にロバートが曜日が違うけど,みたなことを言ってた.この曲が一番盛り上がってた気がする.後ろからも結構押される.それからdoing the unstuck.歌詞の中では皮肉的かもしれないけど"let's get happy"のところはみんな大きな声を出してた.こうやって2曲続けて聞いてみるとやっぱfriday i'm in loveよりもdoing the unstuckだなぁとしみじみ思う.まぁwishはそれ以外の曲こそ本当にいいと思うけどね.その後はtrust.キーボードのメロディが本当に奇麗で切ない.この曲を作ったもういないペリーに思いを馳せる.ペリーは今はとあるバンドでベースを弾いてるらしいですね.なんだかoasisというかrideを思い出す..個人的にペリーは好きなんだけどもう戻ることはないのかな..


その後はwant.このwantは特にすごかった.キーボードの音がとてもよく聞こえていた.比較的人気ないかもしれないけどwild moon swingsもいいアルバムだと思う.数曲抜けばきっと評価も違ったんじゃないのかな.あまりにthe 13thとgone!の印象が強すぎるような..その後facination street.正直この曲だけ演奏が始まった瞬間何の曲を演奏しているのか分からなかった.他の曲はだいたい1秒以内に分かったんだけど.CD音源と比べて予想以上にギターの高音がジャキジャキ言ってたからかな.disintegration多めのセットの中でこの曲はまだやってなかったのでひょっとしてやらないのかなと心配してたけどそんなことは無かった.サイモンのベースの音がよく聞こえて,本当にかっこいい.


それからhungry ghost.ライブで聞いてみて改めていい曲だなぁと思う.折角なんだから4:13 dreamの曲はもっとライブでやればいいのに.ロジャーがタンバリン叩いてたのはこの曲だったかな?なんか2曲ぐらいタンバリン叩いてた気がする.そしてwrong number.リーブスがいるのにこの曲をやらない訳ないよね.wrong numberは最初と最後のアレンジが去年と違ったような気がしたけど,気のせいだったか,ただちょっと演奏とちっただけなのか,それとも変わってないのかどうだったんだろ.それにしてもリーブスはやっぱギターが上手い.2005年以降のポールのギターより個人的に好き.最後の"hello"→"sorry wrong number"→"oooohhhh"の流れは本当シュールだと思う(笑


その後one hundred years.これであと少しでとりあえず本編は終わりかぁと思う.このとき途中までロバートをずっと見てたから気づかなかったんだけど,ロジャーがいなくなってどっかにいってた.あのサビ(?)の"one hundred years"のキーボードが鳴るとこでロジャーを見たらいなくてびっくり.一体どこにどうしていってたんだろう?心配になったけどone hundred yearsが終わると横からひょいと戻ってきた.本当なんだったんだろう.でもまぁ,とりあえず一安心.そしてその後は予想通りdisintegration.この曲は自分がCUREを好きになったきっかけの曲で,本当に特別な曲.まさかこうしてライブで聞くことができる日がくるなんて.この曲だけで頑張ってフジにきた甲斐があった.この後endももしかしたらやるかな?と思ったけど演奏はひとまずこれで終了.


演奏後,ひとまずメンバーが横の方へひっこんでいく.時計は全く見てなかったけどこの時点で23:45ぐらいだったのかな.個人的にはあっという間でまだ2時間も経っていんじゃないかって思ってた.なんだか演奏後の拍手はあんまり強くなかったというか弱くて,正直自分もちょっと水が飲みたくなって休みたくなったんだけど,このまま自分も休むために拍手をやめてしまったらなんだかもうメンバーが戻ってきてくれないんじゃないかって気がしてずっと拍手をしてた.まぁそんなことはないって分かってるんだけど.そうこうしていると1分ぐらいですぐメンバーが戻ってきた.


このとき自分の中で勝手にアンコールは2回するものだと思ってた.春の南米公演では3,4回アンコールしてたし,直前の韓国でも2回やったから.今日は1曲目がplainsongだったからきっとアンコール1曲目はthe kissかif only tonight we could sleepかなぁ.もしthe same deep water as you だったら超嬉しいなぁなんて思ってた.だから,ジェイソンの演奏開始のカウントが始まったとき,速さ的にif only tonight we could sleepだ!と思ったのでdressing upが始まったときは本当にええっと思った.だってdresssing upは南米公演で必ず一番最後のアンコールのときの1曲目で,dressing up含め10曲やって終わりだったから.dressing upを聞いてもう終わってしまうのか..と思ったのはきっと自分だけじゃないはず.いやまぁ確かに10曲あるんだけどね..dressing up自体はthe topの中でも特に好きな曲なのでやってくれて嬉しい.あのメロディ,まさにCUREって感じだと思う.


それからthe lovecats.これも予想してたアンコールの曲順どおり,本当にこれで終わってしまうんだな思う.lovecatsは後半部分のアレンジはこんなんだっけ?と思ったけどライブのストリーミングがあったとしてもアンコールはストリーミングしないからこのあたりの曲のライブはよく分からないんだよね.そして,the caterpiilar.正直the caterpillarはCUREの中で特に好きになれない曲だった.というか実のところCUREが好きになった最初のころ自分はベスト(グレイテストヒッツ)の特に前半の曲の多くは好きじゃなかった.なんだかあまりにも時代を感じてしまうというかなんというか..今は別にそんなことはないんだけど.特にthe caterpillarは駄目だったんだけど(その所為でthe topも最初はあんまり好きになれなかった),2011年のbestivalでのライブを見て印象ががらりと変わった.ロジャーのキーボードからはじまるライブ版は本当かっこよくなったと思う.


その後はclose to me,hot hot hot,let's go to bed,why can't i be youという怒濤の流れ.2時間以上みて疲れた人も再び元気になる.そして最後はおなじみのboys don't cry,10:15 saturday night,killing an arabの流れ.CUREあんま知らなくてもboys don't cryだけは知ってたひとも多かったみたいで盛り上がる.10:15 saturady nightを聞きながらあぁ,本当に終わってしまうんだなと改めて思う.一番最後のkilling an arabは普段よりもキレがましてたと思う.こんなにライブ良かったけ?最後のロバートのギター,本当にすごかった.


全部の演奏が終わるとロバートはにっこりと笑って"see you"と言った.それからメンバーは帰っていったんだけどロバートはステージ左右の端っこの前の方に来て手を振ってくれた.3時間やっても全然疲れが見えない.本当に何者なんだろう.そしてその後ロバートも帰っていった.


演奏が終わった後もしばらく興奮しててあんまり物事がよく考えられなかった.ライブはただただ凄かった.なにより演奏が本当に良かった.正直,去年のライブのストリーミング映像を見てて演奏がいまいちだな,って思うこともあって,特にジェイソンのドラムが弱いなと思うことは自分もあったんだけど,実際にライブを聞いてみたらそんなことは全くなかった(ただまぁ,じゃあなんでライブ映像だとジェイソンのドラムがいちまいちに聞こえてしまうんだろう?ミックスとかの関係?).何百回何千回ってCDやライブ音源を聞いてきたけど,実際のライブの方が何倍も良かった.演奏は他のバンドに負けてしまうんじゃないかって少し心配してたんだけど全くの杞憂だった.当日はCURE以外にも5,6組見たけど贔屓目なしにCUREが一番素晴らしかったと思う.メンバーがとても楽しそうに演奏してたのも印象的だった.


セットリストを振り返ってみると,tape/openよりは珍しいplainsongからのはじまりだったということ以外には前回の様なkyoto songのようなサプライズもなく普通だったかなと思う.セットリスト的には断然前回よりも良かったと思う."tokyo"って入ってるからひょっとしてwatching me fallをやらないかなぁとか,最初からdisitengration多めだからアンコールでthe same deep water as you やらないかななんて0.1%ぐらい期待してたけどそんなことも無かった.でもplainsongから始まるライブが聞けて本当に良かった.演奏した曲の中で一番良かったのはやっぱり1曲目のplainsongかなと思う.それから次がwant.そして3番目がdisintegrationか最後のkilling an arab.まぁ,disintegrationはただ単に自分が一番好きな曲ってだけかもしれない.


3時間は本当にあっという間だった.1回しかアンコールしてないってこともあって韓国よりも曲数少なかったんじゃないのかなと思ったけど実際には36曲で同じ.それでも,これだけやっても全然足りない.正直なところ自分がCUREの好きな曲TOP30選んだとしてその中から2割ぐらいしかやってない気がする.それでもライブは最高だった.こんだけいろんな曲があるCUREは改めて本当にすごいと思う.自分がCUREを好きになるきっかけだったdisintegrationとplainsongから始まるライブが見れただけで満足.


自分がCUREを好きになったのは,あんまりこういうことを書くと年齢がばれるんけど(笑),まだベータ版でgoogleに買収される前のyoutubeでたまたま見たtrilogyのdisintegrationのライブだった.あの映像を見たときの衝撃は忘れられない.それからすぐにtrilogyを買った.だから,pornography,disintegration,bloodflowersは本当に大好き.特にdisintegrationは特別.何百回,ひょっとするとそれ以上,ずっと聞き続けてきた.そういえば,watching me fallを聞きながら第五文型を理解したっけ(笑.そんなこんなだから自分にとってCUREといえばポップじゃない方が好きで,特にseventeeen seconds,faith,pornography,disintegration,bloodflowers.だからあんまりベストは好きじゃなかったりする.まぁ,確かにあれはあれでベストなんだろうけど..好きなアーティストはたくさんいるけど,アルバムを全部持ってるのっていうと少ない.CUREはそんな数少ないもののうちの一つ.


CUREを見るためにはもう海外にいくしかないんじゃないか,って思ってたからこうして見ることができて本当に嬉しい.正直チケット代高いと思わなくもないけど,まぁ,CURE見れるんだったら3万でも払うしね.今回のことは絶対に忘れない.最後にロバートが言った"see you"を信じてまた待とう,というか,次は本当に海外にいこうかな.頑張ってお金貯めて.


でもまぁ,とりあえず今のライブツアーが一段落したらはやいとこレーベルと契約してそろそろ新作お願いします.あとthe cure in orangeとshowのBD化とreflectionsのBDとwishのリマスターも..


セットリスト
1. plainsong
2. pictures of you
3. lullaby
4. high
5. the end of the world
6. lovesong
7. push
8. inbetween days
9. just like heaven
10. from the end of the green sea
11. prayers for rain
12. sleep when i'm dead
13. play for today
14. a forest
15. bananafishbones
16. the walk
17. mint car
18. friday i'm in love
19. doing the unstuck
20. trust
21. want
22. fascination street
23. the hungry ghost
24. wrong number
25. one hundred years
26. disintegrathion


encore
27. dressing up
28. the lovecats
29. the catapillar
30. close to me
31. hot hot hot
32. let's go to bed
33. why can't i be you?
34. boys don't cry
35. 10:15 saturday night
36. killing an arab

vimでiTunesで再生中の曲の歌詞を表示

mpcが好きなんだけどiTunesを使うこともあるので.

:GetITunesLyrics で取得できます.要webapi.vim.
歌詞取得関数自体は昔作ったmpc操作用のプラグイン(mpc.vim)で実装してたのでそこから取ってきた物です.あとは相変わらず気持ち悪いapplescriptiTunesで再生中の曲の情報を取得するだけです.残念ながら今手元にmacしかないので確認してませんが他の環境でもこの部分を変えれば動くと思います.
splitの方向とか一度に一つしか開かないようにしてるのとかは個人の趣味です.
一部不具合があるかも?あんまりテストしてません.とりあえずうたまっぷの方は何回かリトライしないと上手く行かないこともあるようです.


http://gyazo.com/36327daea87d7bded031105249ef9c8b.png


ところでここまでは良かったんだけど読めない..

foldtextでfizzbuzz

これを読んでたら唐突に思いついたので.


以下をvimに入力し:so %

silent exe "normal! \<c-w>n:setl noai\<cr>:setl nosi\<cr>i\<tab>a\<esc>yypA\<cr>a\<esc>ggVG\"zygg99\"zP:setl fdm=indent\<cr>:setl fdt=v:foldstart%15==0?'FizzBuzz':v:foldstart%5==0?'Buz':v:foldstart%3==0?'Fizz':v:foldstart\<cr>:let @q='zoddzcjdd'\<cr>100@qgg"



foldには全く詳しくないんだけどちょっと触ってみたところ2行のまとまりを一回折り畳んで,それから開いて1行削除してもう一度折り畳むと1行の折りたたみができることが分かったのでそれを利用してます*1.あとnormalの中だとマクロが記録できないようなので@qに直接ぶち込んでます.
関数を使ってないのは気分.うーん何の捻りもないしもっとスマートにいきたい*2

*1:もしかしてバグ?

*2:何がスマートなのかは謎

colorcolumnの値を動的に変化させる

vimでプログラミングをしているとき,気分を変える手段としてはカラースキームを変える方法がありますが,カラースキームを変えることに飽きたらcolorcolumnの値を動的に変化させてみてはいかがでしょうか.


以下を.vimrcに記述

:StartChangeCC で開始.


便利. (注: 結構重いです).

xv6のコンテキストスイッチを読む

第2回APASEC+第2期サイボウズ・ラボユース合同勉強会の発表資料です.


xv6はMITで開発された教育用OSで,UNIX V6をもとにx86向けに書き直されています.主な特徴として,
マルチプロセッサに対応
・バイナリがELF
・スワッピング機能などUNIX V6にある一部機能がない
・qeum+gdbで動作可
が挙げられます.内容が非常に洗練されていて実質的なコードは8000行程度です.かなり読みやすいのではないかなと思います.
講義資料も公開されています(2012年度版): http://pdos.csail.mit.edu/6.828/2012/xv6/book-rev7.pdf


上のスライドはxv6のコンテキストスイッチ部を説明したものです.x86コンテキストスイッチを理解するためにはx86の機構を知る必要がありますが,その辺の説明は省略してあるので,詳しいことははじめて読む486なんかを参考にするといんじゃないかと思います.


補足をしておくと,スライドでは例としてCPU時間切れでタイマ割り込みによってコンテキストスイッチが発生するとしていますが,実際にはI/O待ちやsleep()などの要因でコンテキストスイッチが発生することが多いと思います.


xv6で特徴的だなと思うのはマルチプロセッサのサポートがされている点です.複数のCPUで競合しないように注意深くロックを使用したプログラミングがされています.


まだ全体としては一部しか読めてないのでもう少し読み進めていきたいと思います.