はじめに:2年目はOS自作へ

「Design Solution Forum 2025 登壇体験記 若手が創るLinux学習革命」では、NTTデータグループ企業とパートナー企業を合わせた計4社の若手エンジニアが参加する学習コミュニティ「共創モビシス大学」における、Linux学習の取り組みをご紹介しました。共創モビシス大学は、モビリティシステムの開発に携わる若手エンジニアが、会社の枠を越えて学び合うコミュニティです。実践的なテーマへの取り組みを通じて、技術力の向上と企業間のネットワーク形成を目指しています。今回の記事では、その続編として、共創モビシス大学の活動2年目の取り組みをご紹介します。

1年目の活動では、『Linuxのしくみ(武内 覚著、技術評論社)』を教材に、4社の若手エンジニアがLinuxの内部構造(プロセス管理やメモリ管理、ファイルシステム、仮想化機能など)を学びました。輪講やディスカッションを通じて知識を深めた一方で、参加者からは「もっと手を動かして学びたい」「実際に動くものを作りながら理解を深めたい」という意見が出ました。

そこで2年目の活動では、『ゼロからのOS自作入門(内田 公太著、マイナビ出版)』を教材に、OSの仕組みを実際に動かしながら学ぶハンズオン形式の学習に挑戦しました。参加メンバーは1年目の2倍にあたる約50名。活動期間は2025年8月から2026年6月までの約1年間、全11回にわたって実施しました。

私自身も1年目に続き、運営と受講者の両方の立場で活動に参加しました。本稿では、OS自作を通じて得た学びや気づきを、運営目線・受講者目線を交えながら振り返ります。

なぜ「OS自作」を選んだのか

OSは普段利用しているPCやスマートフォンの土台となるソフトウェアであり、その仕組みを実装するOS自作は、ソフトウェア技術を深く理解するための挑戦的なテーマです。

1年目のLinux学習では、私自身はプロセス管理やメモリ管理といったOSの基本機能を概念としては理解できても、その機能がコードでどのように実現されているのかまでは説明できず、いまいち理解しきれていない感覚が残りました。そこで2年目の活動テーマを検討する中で、1年目に学んだ知識を生かしながら、より踏み込んで学べる題材としてOS自作に着目しました。

OS自作を題材にすると、Linux学習で学んだプロセス管理やメモリ管理といった機能を、実際のコードや動作と結び付けながら学ぶことができます。仕組みを知識として理解するだけでなく、それらがどのように実現されているのかを追体験できる点が大きな魅力でした。

また、運営目線でいうと、本活動には1年目からの継続受講者に加え、新規の受講者も加わるため、OSの仕組みを学びながら実装にも取り組める教材が必要でした。そこで採用したのが『ゼロからのOS自作入門』です。この教材は、OSの動作原理を学びながら、実際にコードを動かして確認できる構成になっており、今回の活動目的にも合致していました。

輪講中心から、ハンズオン中心へ

1年目の活動は書籍を読みながらLinuxの仕組みを学ぶ輪講形式でした。一方、2年目は教材のコードを実際に動かしながら学ぶハンズオン形式へ学習スタイルを変えました。

教材では、「小さく作って動かす」を繰り返しながらGUIを備えたOS「MikanOS」の実装を段階的に進めていきます。開発環境を構築した後、コードをビルドし、OSを起動して動作を確認する。このサイクルを繰り返しながら学習を進めました。

輪講では仕組みや概念を言葉や図で理解することが中心でしたが、OS自作ではその仕組みがどのように実現されているのかをコードを追ったりOSを動かしたりして確かめていきました。

しかし、実際に手を動かしてみると、さまざまな壁に直面しました。

OSが動くまでに直面した壁

最初の壁は、開発環境の構築でした。

教材では Ubuntu 22.04 LTS が前提でしたが、私たちはあえて活動開始時点の最新版である Ubuntu 24.04 LTS を開発環境として選びました。教材と異なる環境では手順どおりに進まない問題も想定されますが、その違いを調べ、原因を切り分ける過程も学習の一部にしたいと考えたためです。

実際に、Ansibleという環境構築を自動化するツールを実行した際、Python関連パッケージのインストールでエラーが出ました。また、仮想PCの内部状態を確認するQEMUモニタでも、教材とは異なる挙動(逆アセンブルできない)が見られました。

エラーメッセージを手掛かりにWebを検索して参考情報がすぐに見つかった場合はいいですが、見つからない場合やエラーメッセージが出ていないのに教材と同じ結果にならない場合は、設定やログ、実行結果を比較しながら、自分たちで原因を切り分ける必要がありました。

また、受講者の技術経験の違いによって進捗に差が生じる場面もありました。受講メンバーには入社1年目の新人から5年目以降の社員まで幅広い層がおり、UbuntuのようなLinuxに日頃から触れている人もいれば、ほとんど経験のない人もいました。そのため、同じ内容に取り組んでいても、環境構築やデバッグにかかる時間は人によって大きく異なりました。

さらに、教材そのものの難易度の高さも大きな壁でした。受講者からは「教材のコードを理解できないまま進めてしまっている」という声が途中で上がりました。OS自作では、ブートローダーやメモリ管理、ページングなど、これまではブラックボックスになっていた技術の実装を扱います。そのため、OSを起動することはできても、関連する技術同士のつながりや処理の全体像まで理解することは容易ではありませんでした。

一人では越えられない壁を、チームで越える

教材と異なる環境を選んだからこそ、一人では答えを見つけられない問題も発生しました。こうした壁に対して、4社のメンバーが情報を共有し、協力して解決策を探りました。

エラーメッセージがある場合は、それを手掛かりに調査します。表示されない場合は、ログ、設定、実行結果を比較し、どこまでは期待どおりに動いているのかを確認しました。

特に学びになったのは、他社メンバーの問題分析アプローチです。問題が起きたときに、何を最初に確認し、どのような仮説を立て、どの順番で切り分けるのか。その思考の過程を見ることで、答えだけでなく調べ方を学ぶことができました。

また、運営面では、同じところで何度もつまずかないよう、発生した問題や解決方法をまとめたノウハウ集を作成しました。受講者が得た知見を共有資産として蓄積することで、後から同じ問題に直面したメンバーもスムーズに対応できるようになりました。

さらに、問題や解決方法を共有するだけでなく、学習内容の理解を深めるための取り組みも行いました。教材を進めるにつれ、わからないところが積み重なり、「一つ一つの内容を薄くしか理解できなかった」「コードや実装内容を十分理解できなかった」と振り返る受講者もいました。OSを動かすことはできても、その仕組みまで理解することは容易ではありません。そこで、いったん立ち止まり、各章の要点を整理したまとめ資料や、理解度を確認するためのクイズを作成しました。これらを活用して各自の理解度を確かめ、不十分な箇所を学び直すことで、学習内容への理解を一段深める機会をつくることができました。

OS自作は個人で進めることもできるテーマですが、一人では行き詰まっていたかもしれない課題を、会社の枠を越えて各社の知見を持ち寄りながら乗り越えられたことは、共創モビシス大学ならではの大きな経験でした。

1年目の学びが生きた場面

2年目のOS自作は新たな挑戦でしたが、その土台には1年目のLinux学習で得た知識や経験がありました。

Linuxで学んだプロセス管理やメモリ管理の概念は、OS自作を通じて実際のコードや動作と結び付き、より具体的な理解へとつながりました。

また、私自身は1年目から継続参加していたので、すでに会社間のつながりもあり、環境構築やデバッグでつまずいた際にも、早い段階から相談しながら課題解決を進めることができました。

さらに、「理解した内容を整理し、他者に説明する」という輪講の学び方は、まとめ資料の作成にも生かされました。

運営面でも、4社それぞれの状況や考え方を持ち寄ることで活動の改善策を検討することができ、1年目に培った知識や関係性、学び方が2年目の活動を支える力になりました。

OS自作を通じて変わった技術の見方

私にとって最も印象的だったのは、自分で作ったOSが初めて動いた瞬間です。

最初に作成したMikanOSは、ひたすら無限ループするだけの非常にシンプルな実装でした。しかし、ブートローダーのログが意図どおり画面に表示され、さらにQEMUモニタで命令レジスタの値を確認した結果、期待した機械語が実行され続けていることを確認できたとき、本当にOSが起動していることを実感しました。

それまで「ブートローダーがOSを起動する」ということは知識として知っていたものの、実際にどのような仕組みで起動しているのかまでは理解できていませんでした。しかし、ブートローダーがOSのバイナリをメモリへ展開し、OSの開始位置へ処理を移す実装に触れたことで、知識と実装が初めてつながった感覚がありました。

また、OS自作を通じてUEFIやデバイスドライバ、レジスタ、アセンブラといった低レイヤー技術に触れたことで、ソフトウェアとハードウェアのつながりも以前より具体的にイメージできるようになりました。加えて、教材どおりに動かない問題に対して、他社メンバーと相談しながらログや設定を比較し、原因を切り分ける力も身につきました。業務で設計書や技術資料を読むときも、OS関連の処理を以前より深く理解できる場面が増えています。

初めてOSが起動したところ

おわりに:完成だけではなく、作る過程から得たもの

活動の最終段階では、システムコールや簡易アプリケーションの実装まで進みました。しかし、それ以上に価値があったのは、技術の背景や仕組みを自分の手で確かめた経験です。ブートローダーからOSへ処理が移り、メモリ管理やページング、システムコールといった機能が少しずつ加わっていく過程を、コードと動作の両面から学ぶことができました。

教材どおりに動かない場面でも、ログや設定を比較し、会社の枠を越えて原因を考えたことで、知識を実践的な理解へ変えることができました。また、受講者として手を動かすだけでなく、ノウハウ集やまとめ資料を作り、学び方そのものを改善したことも、今回の活動で得た大きな経験です。ニューソンでは、このような社外の技術コミュニティへの参加を通じた学びの機会も大切にしています。

こうした活動を通じて培われる力は、技術が急速に変化する今、ますます重要になっています。特に、生成AIの活用が広がる時代だからこそ、技術の本質を理解し、自ら考え、仲間と議論しながら学ぶ力が求められます。今回のOS自作の取り組みを通じて、企業の枠を越えて学び合うことで、一人では得られない気づきや成長が生まれることを改めて実感しました。メンバーの一人として、共創モビシス大学が、これからも企業の枠を越えて学び合い、共に考え、共に成長する場として、新たな価値を生み出し続けられるよう、活動をより良いものにしていきたいと思います。

執筆者:平原 慶裕

先進ソリューション事業部 自動車統括部 モビリティソフトウェア開発担当
2021年に入社。これまでに自動車のステリング制御システムのモデルベース開発やOTA機能の単体テストを経験。共創モビシス大学では、運営を行いつつ、自身の技術も研鑽中。


関連ニュースレター&コラム

index

生成AIを「業務の道具」にしていくために

生成AIの案件に多数携わりながら、「既存の業務の中で、どこに適用すると無理なく役に立ちそうか」を掘り下げつつ実案件に携わった当社の工夫と成果をご紹介します。



関連事例

該当の導入事例はありません。