内田公太
低レイヤ技術に興味のある人を増やし育てたい
ラボメンバーの内田公太です。CPU・コンパイラ・OS などの低レイヤ技術を広めたり、教育する活動をしています。
小学 6 年生のころ、親に誘われ PIC マイコンを学び始めました。プログラミングとの初めての出会いです。その後もプログラミングを続けていたところ、中学 2 年生頃に自作 OS の一つ OSASK に出会い、次第に自分でも OS を作ってみたくなりました。OSASK の作者である川合さんに「僕にも OS の作り方を教えて」と頼んだら、OS の作り方を丁寧に説明した記事が送られてきました。2006 年に「30 日で出来る!OS 自作入門」の原稿です。
こんなことがあり、私はすっかり低レイヤ技術に魅せられてしまいました。大学入学直後、自分が所属する学科に教育用 OS を作っている先生がいることを知りました。OS を自作しているなんて面白いなと思い、研究室配属ではその先生の研究室を選びました。先生が低レイヤ技術に詳しかったことと、研究室のテーマの 1 つが「プログラミング教育」だったことで、私の「低レイヤ技術×教育」の方向性が確立したと言えます。
大学院に進学しようというとき、SNS を見ていたら川合さんが友達候補に出てきました。何年も話してなかったので近状が気になり、すぐに連絡してみました。そこで「サイボウズ・ラボユース」という学生支援制度を紹介されました。なんと素晴らしい制度だろうと思い、企業見学もかねてサイボウズ・ラボのオフィスに説明を聞きに行きました。その後、応募書類を作り応募してみたら採択され、第 2 期生として約 1 年間、修論研究のためのプログラミングをラボユースの活動としてやりました。これがサイボウズ・ラボおよびサイボウズとの初めての関わりでした。
ラボユースの縁もあり、修士取得後はサイボウズに新卒入社しました。そこで約 6 年間、一貫してクラウド基盤を作る部署で働きました。顧客データのバックアップの仕組みを改良したり、サーバからのログ収集を高速化したり、他部署のメンバーも使えるアクセスログ解析の基盤を構築したり。充実した 6 年間でしたが、実は新卒当初からラボに行きたいと思っていましたので、2020 年に思い切ってラボへ転職(転籍?)しました。
ラボでは現在に至るまで「低レイヤ技術×教育」を軸に活動しています。ラボに入ってから初の仕事は「ゼロからのOS自作入門」の仕上げと出版でした。その後はコンパイラや CPU の自作を初めました。コンパイラは過去何度か作ったことがありましたが、CPU 作りは経験がなかったので、自分で CPU を作る過程を記録しまとめておけば良い教材になるだろうと思い、今の活動をしているところです。
プロフィール
2014 年にサイボウズへ新卒で入社し、クラウド基盤の開発・運用に従事。2020 年にサイボウズ・ラボに転籍し、コンピュータ技術の面白さを伝えるために OS・コンパイラ・CPU の研究開発をしている。2018~2021 年に東京工業大学情報工学系で特任助教として、プログラミング演習の講義を担当(最後の年の講義はYouTubeで公開中)。2016 年~2024 年にセキュリティ・キャンプ全国大会講師として OS や CPU 関連の講義を担当。自作 OS コミュニティ osdev-jp の管理人。著書に『ゼロからの OS 自作入門』 (マイナビ、2021)や 『自作エミュレータで学ぶ x86 アーキテクチャ』(マイナビ、2015)がある。
今の挑戦の興味ポイント
2025 年 4 月現在、BuntanPC というプロジェクトに最も注力しています。現代のコンピュータシステムには、あまり検討されず採用され、広まってしまった設計がきっと多く含まれます。コンピュータシステムを自分で作る過程を楽しみながら、歴史の if を検証できるのが、このプロジェクトの最大の面白さだと思います。
BuntanPC プロジェクトで難しいのは、現代のコンピュータの設計とは違う設計を考えることです。合理的でありつつも既存の設計と異なるものを発想することが重要ですが、現代のコンピュータの設計に慣れているほど難しいと感じます。どうしても常識にとらわれ、発想が限定的になってしまいます。意識して柔軟に思考し、普及している設計を批判的に捉えたり、過去に提唱されたが普及しなかった設計を調査するなど、難しいからこそ楽しい過程です。
リソース
- Twitter @uchan_nos
- GitHub uchan-nos
- 個人サイト uchan's site
コミュニティ活動
技術者コミュニティを育成することにも興味があり、いくつかのコミュニティを主催したり運営に携わっています。
- osdev-jp: 内田を含む数名が 2016 年に立ち上げた OS 開発コミュニティ。現在、内田はコアメンバーの一人として運営に協力しています。
- セキュリティ・キャンプ協議会 コミュニティ支援グループ: 内田はグループリーダーとして、セキュリティ・キャンプ修了生のためのイベントの企画運営を行っています。
- 自作 CPU を語る会: 第 4 回開催から主催者として企画運営をしています。
商業誌
- 『自作エミュレータで学ぶ x86 アーキテクチャ』 マイナビ出版 2015
- 『ゼロからの OS 自作入門』 マイナビ出版 2021
- Software Design 2023 年 4 月号
- 第 1 特集「x86 や Arm って何? 一度は学んでおきたい CPU のしくみ」の第 2 章「コンピュータが計算できる理由 ハードウェアとソフトウェアの関係」を担当
査読付き国際会議
- Uchida, K. and Gondow, K. C-Helper: C Latent-error Static/Heuristic Checker for Novice Programmers. CSEDU 2016
2024 年
- オープンソースカンファレンス(OSC)2024 Tokyo/Spring にて ComProc プロジェクトを展示
- U-22 プログラミング・コンテスト 2024 審査委員
2023 年
- Software Design 2023 年 4 月号に寄稿
- CPU+コンパイラ自作ワークショップを開催(6 月と 11 月の計 2 回)
- 「自作 CPU を語る会」で ComProc プロジェクトの進捗を発表(6 月と 12 月の計 2 回)
- セキュリティ・キャンプ全国大会「CPU+コンパイラ自作ゼミ」講師 + Y トラックプロデューサー
2022 年
- CPU+コンパイラ自作ワークショップを開催(4 月と 7 月の計 2 回)
- セキュリティ・キャンプ全国大会オンライン「OS 自作ゼミ」講師 + Y トラックプロデューサー
- 電子工作とプログラミングのポッドキャスト 電子の森ラジオ を放送開始
2021 年
- 「 ゼロからの OS 自作入門 」 出版
- セキュリティ・キャンプ全国大会オンライン「OS 自作ゼミ」講師 + Y トラックプロデューサー
- 毎週土曜に MikanOS もくもく会(8 月からは「雑談会」に名称変更)を開催(2022 年 1 月も継続中)
2020 年
- サイボウズ・ラボ入社
- セキュリティ・キャンプ全国大会オンライン「OS 開発ゼミ」講師 + Y トラックプロデューサー
2019 年
- セキュリティ・キャンプ全国大会「OS 開発ゼミ」講師 + Y トラックリーダー
- セキュリティ・ミニキャンプ in 山梨「OS の力を借りずに起動するアプリを作ろう」
2018 年
- 東京工業大学 情報理工学院 情報工学系 特任助教(~ 2021 年)
- セキュリティ・キャンプ全国大会「OS 開発ゼミ」講師
2017 年
- セキュリティ・キャンプ全国大会「x86 OS 自作ゼミ」講師
- MikanOS 制作開始( MikanOS 制作過程まとめ )
- Open Source Summit Japan 2017 で英語発表
2016 年
- セキュリティ・キャンプ全国大会「USB メモリからブートしてみよう」講師
- liva さん,hikalium さんとともに OS 開発者のコミュニティ osdev-jp を立ち上げ
2015 年
- 「 自作エミュレータで学ぶ x86 アーキテクチャ 」出版
2014 年
- サイボウズ本社入社。Hazama チーム(現 SRE チーム)配属
- 東京工業大学 情報理工学研究科 情報工学専攻 修士課程卒業。修士(工学)
2013 年
- サイボウズ・ラボ ユース第 2 期の成果を発表「C-Helper で C 言語を効率よく勉強しよう」
2012 年
- FOSE2012 でライブ論文賞を受賞「C-Helper: C言語初学者向け静的解析ツールの提案」
- サイボウズ・ラボユース第 2 期に採択
- 東京工業大学 情報理工学研究科 情報工学専攻 修士課程入学
- 東京工業大学 計算工学科 卒業
2009 年
- セキュリティ&プログラミングキャンプ 2009「OS を作ろう組」チューター
- 東京工業大学 計算工学科 進学
2008 年
- 東京工業大学 第5類入学
2005 年
- 「30 日でできる!OS 自作入門」校正協力
2003 年
- C 言語を知る
- 国産 OS「OSASK」を知る