Man page of CHIKU_WAIT(2)

システムソフトウェアとポエムの差が激しいので,高山病に注意

学生だってちゃんと開発したい!大学の授業でスクラムを導入しようと思った話

前提

僕が居る公立はこだて未来大学では3年生の必修授業で「プロジェクト学習」と呼ばれる学科・コースの枠を超えた通年の開発演習があります。この授業ではサービスの開発や心理学研究、楕円曲線暗号アルゴリズムの高速化やアルゴリズムの改良といった様々なテーマで最大15人程度のチームを組んで1年間取り組みます。実社会に根ざした問題群を解決していく方法を探求する取り組みらしいです。また、教員はあくまでもアドバイザーで、どんなことをするのか、何で開発するのか、どう開発していくのか、スケジュールはどうするのかすべて学生が主体となって決めていきます。そのため、チームによってですが、授業の時間以外も時間を費やすことが多く、3年生はプロジェクト学習に全力を注ぐと言っても過言ではないと思います。詳細はこちらを参照。www.fun.ac.jp

僕が所属しているプロジェクトは「ビーコンIoTで函館のまちをハックする – BEACON FUN Reloaded」というテーマでビーコンと呼ばれるBluetoothの電波を発信する小さな機器を用いて世の中にはまだないような新しいサービスで函館のまちをハックすることを目的としています。

続きを読む

mrubyの浮動小数点数演算をソフトウェアで置き換える

この記事はmruby Advent Calendar 2017の23日目の記事です

qiita.com

前提環境

この記事ではx86_64アーキテクチャをターゲットにしています。

mrubyはmasterの2017年12月5日のコミット Need to set `ci->proc` when we have `RProc` structure. · mruby/mruby@4a99f49 · GitHub の状態です。

はじめに

 一ヶ月ほど前mrubyにMRB_WITHOUT_FLOATという浮動小数点数関連の処理を取り除くオプションが追加されました。

github.com

今まではハードウェアでの浮動小数点演算に制限がある場合、自分でmrubyソースコードを改変して浮動小数点演算を取り除く必要がありましたが、このオプションが追加されたため、オプション一つで浮動小数点演算に制限がある環境でもmrubyを簡単に動作できるようになりました。

しかし、今回あえて浮動小数点演算に制限がある環境でMRB_WITHOUT_FLOATを使わないで別のやり方で対応してみました。 浮動小数点数演算にはハードウェアでの実行、ソフトウェアでの実現の2種類があります。 普段、x86_64ではハードウェアで浮動小数点演算を実行します。MRB_WITHOUT_FLOATは浮動小数点演算を排除することでハードウェアでの浮動小数点演算を無くそうということです。この記事ではmrubyの浮動小数点演算をハードウェアの実行ではなく、ソフトウェアで実現することで浮動小数点演算の制限がある環境でも問題なく浮動小数点演算を可能にする試みを紹介します。

続きを読む

Berkeley SoftFloatを使って浮動小数点数演算をソフトウェアエミュレートで置き換える(x86_64)

はじめに

この記事は公立はこだて未来大学 Advent Calendar 2017 18日の記事です。 adventar.org

今更ながら、夏のインターンでやってたことをまとめます。KLabの方々遅くなってすみません...。

さて、夏のインターンですが、mrubyの浮動小数点数演算をソフトウェアエミュレートで実行するという内容をしてました。 浮動小数点数演算にはハードウェアでの実行、ソフトウェアでの実現の2種類があります。 普段プログラミングしている際は気にすること無く浮動小数点数を扱いますが、レイヤーによってはハードウェアでの浮動小数点演算に制限がある場合などがあります。例えば、Linux Kernel内では浮動小数点演算を行ってはならないという制約がありますね。

僕がやっている mruby in BitVisorも同様に浮動小数点演算に制限があります(自分でレジスタの値を退避されるコードを書けば問題ない)。そこでソフトウェアフロートで置き換えることをしました。この記事ではまず、Berkeley SoftFloatの解説と使い方について書こうと思います。mrubyの置き換えに関してはmruby Advent Calendar 2017 - Qiitaをお待ち下さい。 Berkeley SoftFloatのサンプルコードや日本語の記事は殆どないので何か参考になればと思います。

続きを読む

HaconiwaとmrubyスクリプトでLinuxコンテナをつくる

tech.pepabo.com インターン中に理解を深めるために作ったLinuxコンテナについて書きます。chikuwaitです。

最近よくコンテナ型仮想化技術の名前よく聞きますよね。とりあえずDocker使うみたいな流れがあってとてもベンリ!みたいな。 漠然と普段使ってますけど、中身ちょっと知りたくありません?ということでとりあえず作ってみましょう。そんなに難しくない。

続きを読む