サイボウズ・ラボユース 開発テーマ

※このゼミの 2022 年度の募集はありません。参考のために 2021 年度の文書をそのまま残してあります。

OS開発ゼミ(担当:内田 公太

OS開発ゼミではOSとその関連ソフトウェアの開発プロジェクトを募集します。 カーネルやデバイスドライバ等の開発はもちろん、実行ファイル解析ツールや言語処理系の開発など、OSに関連する分野であれば応募可能です。

私は「OS」を広い意味で捉えています。OS=カーネルに限定せず、アプリケーションまで含めてOSという考え方です。 人間が便利にコンピューターを利用でき、高度な知的生産活動を行うには、アプリケーションを含めたシステム全体の設計が重要です。 このゼミは、メモリ管理プログラムやデバイスドライバを書くだけではない、その言葉の印象とは裏腹にとても範囲の広いゼミなのです。

「ゼロからのOS自作入門」の著者でもある私が、x86-64向けのOSを自作してきた経験をもとに、私が皆さんの開発をサポートします。

※このゼミは募集期間が通年ではありませんのでご注意ください(詳細は後述)

開発テーマの例

開発テーマの例を示します。

  • 相互にネットワーク接続し協調して動く分散OSを開発する
  • 自作OS向けのUSBメモリを読み書きできるデバイスドライバを開発する
  • 知的生産活動を支援するグラフ型ファイルシステムを開発する
  • GCCやVimなどの既存OSSを自作OSへ移植する
  • 機械語の動作を分かりやすく表示する解析ツールを開発する
  • 自作OSを異なるアーキテクチャに移植する
  • 自作OSが動作できる仮想マシンを開発する
  • OSやその周辺に関する知見をまとめた同人誌を執筆する

これらは単なる例ですので、もちろん違うテーマも歓迎いたします。

OSを手作りする系の書籍(「30日でできる!OS自作入門」や「ゼロからのOS自作入門」など)をベースにした開発テーマでもかまいませんが、書籍をなぞるだけのテーマは受け付けません。書籍の内容を飛び越えた要素を加えてください。 例えば、それらの書籍で扱っていないデバイス向けのドライバを作るとか、既存のOSSを書籍で作るOSへ移植するとか。もちろん他の独自性でもかまいません。

メンターから期待できるサポート

  • C、C++、Pythonで書かれたコードのレビュー
  • x86-64、PCI、UEFI、USB、電子回路などの知見の提供
  • アルゴリズムや手法に関する議論
  • 文章構成やプレゼンの指導

応募要件

本年の「OS開発ゼミ」はOSや周辺技術の開発支援を主としており、 開発に用いるプログラミング言語をあらかじめ習得されている方を対象としております。

C言語を例に、言語スキルの到達指標を載せます。 これらが絶対条件ではありませんが、本ゼミで求めているレベル感の参考にしてください。

  • ソースコードの理解:「はじめてのOSコードリーディング」や「ゼロからのOS自作入門」に掲載されているコードの各行の意味が分かる程度が目安です。 本の内容自体は難しいかもしれませんが、各行の構文や意味が分かる程度のスキルが望まれます。
  • プログラムの作成:書籍やウェブサイト等を見ずに、malloc/freeを使って双方向リンクリストを実装できますか? 本ゼミが対象にするソフトウェア分野ではポインタを使いこなしたプログラミングができると良いですね。

募集詳細

このゼミは募集期間が通年ではありません。

  • 第 11 期のスケジュール
    • 2021 年 5 月 17 日:応募締め切り
    • 2021 年 5 月 24 日~5 月 31 日頃:書類選考の結果通知
    • 2021 年 5 月 31 日~6 月 14 日頃:面接の結果通知

応募フォームが古いままなので「OS開発ゼミ」が選択肢にありませんが、「低レイヤゼミ」を選択いただければ大丈夫です。