デジタル人材の育成

【開発】Yクラス

  • セキュリティ・キャンプ全国大会2023 8月7日月曜日~11日金曜日にクロスウェーブ府中で開催

Yクラス

  • Y1『OS自作ゼミ』

    担当講師
    プロデューサー
    分野・キーワード
    講義概要

    「OSを作ってみたい、でも自分には難しそう」と思った事はありませんか?確かに、よく使われているOSは巨大で、長い歳月をかけ、多くの人の手によって作られています。しかし、OSは個人でも思ったより簡単に書けるものなんです。この「OS自作ゼミ」では、さまざまなアーキテクチャ(x86_64, ARM64, RISC-V)のOS作りに詳しい2人の講師がみなさんのOS作りをサポートします。既に自分でOSを作っている方はもちろん、このゼミをきっかけに作り始めようとする方も、チャレンジ精神さえあれば幅広く対応します。また、講師がそれぞれ作っているOSを改造するというアイディアも大歓迎です!

    このゼミでは、みなさんの興味に応じて、OSのつくりかたを教えます。必要に応じて、コードの書き方、仕様書や研究論文の読み方なども手ほどきします。この講義を通じて得られる低レイヤの確かな知識は、高性能でセキュアなソフトウエアを開発する際にも大いに役立つでしょう。

    より詳しい説明については、osdev-jpサイトをご覧ください。多くの皆さんのご応募をお待ちしています!

  • Y2『RISC-V CPU自作ゼミ』

    担当講師
    プロデューサー
    分野・キーワード
    講義概要

    普段なにげなくCPUをつかってプログラムを実行していますが、このCPUを作ってみたいと思ったことが少なからずあるのではないかと思います。 CPUの自作というと難しそうに感じるかもしれませんが、実はそこまで難しくありません。
    特に、近年ではオープンソースの命令セット・アーキテクチャ規格であるRISC-Vの登場により、CPUコアを実装して実際に動作させるハードルがかなり下がっています。

    本講義ではRISC-V CPUコアの作成を通じて、CPUの内部構造と動作原理を学びます。
    作成するCPUコアは非常に単純なものではありますが、動作原理を理解することによりSpectreやMeltdownといったCPUの動作に関連した脆弱性の理解につながります。

    講義の内容としては、書籍「RISC-VとChiselで学ぶ はじめてのCPU自作」で解説する RISC-Vの規格で定められる RV32I 命令セットを実装したCPUコアを、FPGA上に実装できるように修正して動作を確認します。
    FPGAボード上にはCPUコアおよび動作に必要な周辺回路を実装します。またCPUコア上で実行するプログラムも作成します。

    キャンプ期間の3日間でFPGAボードの基本的な使い方からRISC-VコアのFPGA実装のすべてを行うのは難しいため、事前学習期間に書籍およびFPGAボードを配ります。

    使用するFPGAボードはある程度周辺回路構成を変更可能なものを用意しますので、
    CPUの周辺回路を実装することにより、LEDの点灯制御やスイッチ入力、UARTによる通信、Ethernetによる通信、DVI出力によるディスプレイへの映像表示などを試すことができます。

  • Y3『故障を乗り越えて動くシステムのための分散合意ゼミ』

    担当講師
    プロデューサー
    分野・キーワード
    • 耐故障性
    • 分散合意
    • リーダー選挙
    • ログレプリケーション
    講義概要

    現代では,コンピュータシステムは基本的には常時アクセスが可能で,動き続けていてくれるような安心感のあるものになっているかもしれません.しかしながら,コンピュータだって機械ですので,裏で動いているモノは「すでに故障しているもの」か「まだ故障していないもの (いずれ故障するもの)」のどちらかです.また,物理的な故障だけではなく,ソフトウェアの不良動作や悪意のある不正動作に対する備えも重要です.このような様々な故障に対応しながらサービスを継続的に提供する能力 (耐故障性) は,コンピュータシステムの信頼性を支える重要な役割を担っています.

    このゼミでは耐故障性を高める基盤技術としての「分散システム」と,それをうまく動かすための仕組みの一つである「分散合意」について,代表的なプロトコルの実装を通して学びます.多くの方にとってあまり馴染みのないテーマかと思いますが,複数のコンピュータが通信によって一つのシステムのように振る舞う仕組みや,通信が必要であることから生じる課題とその解決方法などに興味がある方の参加を歓迎いたします.

  • Y4『CPU+コンパイラ自作ゼミ』

    担当講師
    プロデューサー
    分野・キーワード
    講義概要

    このゼミでは独自のCPUとコンパイラを作ります。自作コンパイラ(とアセンブラ)が自作CPU用の機械語を出力し、それを自作CPUで実行するという流れです。CPUとコンパイラは既存のアーキテクチャを参考にはしますが、模倣せず自分で一から仕組みを考えます。基本的に、CPUはVerilog、コンパイラはCで開発します。

    このゼミの特徴は、単に「どっちも作る」だけではなく、両方を「並行して作る」ところにあります。最初は整数を表示するだけのCPU(機能が少ないためCPUとは呼べないかもしれない)と、1つだけ整数を読み込むコンパイラを作ります。次はCPUを加算に対応させ、コンパイラが「整数+整数」を認識できるようにする、というように、段々と機能を追加していきます。このゼミでの目標は加減算と乗算が実行できるCPUとコンパイラを作ることですが、余裕のある人は独自の機能をいくつ追加してもかまいません。

    CPUとコンパイラを並行して作ることで、両方を学ぶことができるという自明なこと以外に、次のような利点があります。
    A.コンパイラの実現に必要な最小限の機能をCPUに追加すれば済むため、プロジェクトをコンパクトに維持できる。
    B.CPUとコンパイラの両者が作りやすいように、互いの役割分担を調整できる。

    CPUの作り方は様々ですが、このゼミではCPUボードをはんだ付けにより組み立てるところから始めます。CPUボードはFPGAボードを中核として、いくつかの表示素子、スイッチ、USBシリアル変換モジュール等から構成されています。キャンプ期間でそれらを組み立て、自作CPUのプログラムを書き込み、動作させます。集中して取り組める開発期間は3日間しかなく、非常に短いです。事前学習期間に受講者の皆さんにFPGAボードが配る予定ですので、キャンプ当日までにFPGAの扱い方を練習しておくことをお勧めします。また、CPUボードの組み立てに必要な部品も事前に送付しようと思っています。はんだ付けの腕前に自信がある方は事前にCPUボードを組み立てておけば、キャンプ期間でより応用的なことができるでしょう。

    コンピュータがプログラムを実行する仕組みを一気通貫で体験したい、自分でその仕組みを作ってみたい方の応募をお待ちしております。3日間という短期間でCPUとコンパイラを作る必要があるため、それらの開発に必要なスキルを持っている必要があります。具体的にはVerilogとCを使いこなせる必要があります。ただし、今それらが未経験であっても、熱意があり、応募時点までにある程度の知識を身につけられたなら、是非応募してください!

更新履歴

  • 2024年4月8日

    URLを変更しました