株式会社エヌ・アンド・アイ・システムズ

営業時間 9:00~18:00(土・日・祝日は除く)

株式会社エヌ・アンド・アイ・システムズ

コマンドが成功してガッツポーズをとるエンジニア
People

はじめに

「Linux¹を組込み機器で使うなんて、夢みたいな話だよ」――最初にそう言われたのは、もう十数年前のこと。
当時、組込みの世界といえばOSレスかVxWorks²といったリアルタイムOSが当たり前。Linuxは「サーバーかPC用のもの」という認識が強かった。 でも私は、その“自由に使えるOS”の可能性に強く惹かれた。まだ誰もやったことがないなら、やってみたい。――そう思ったのが、私とLinuxの最初の出会いだった。

それから年月を重ね、気づけば私はハードからクラウドまでをまたぐ、たくさんの開発に携わってきた。Tuxリアルタイム制御も、カーネルも、アプリも、クラウド連携も。この小さなペンギンのロゴ(Tux)とともに歩んだ道のりを、いま改めて振り返ってみたいと思う。

VxWorksの現場で学んだ「リアルなソフトウェア」

社会人として初めての現場は、VxWorksを使った通信基地局向けの開発だった。“リアルタイム”という言葉の重みを、ここで初めて思い知る。

VxWorksは火星探査で使用されたマーズ・パスファインダー³にも搭載されていた、高性能なリアルタイムOSである。
1ミリ秒の遅れも許されない。割込み処理の順序が1つ狂えば、通信が止まる。タイマ割込みを追いながら、オシロスコープ越しに波形を見つめ、「この1ピンの遅れがなぜ起きたか」を徹底的に突き詰める日々。

そのとき学んだのは、「ハードウェアの上に生きるソフトウェア」の感覚だった。OSの下には常に物理があり、電気がある。この“生々しさ”を知ったことが、私のエンジニアとしての原点になった。

やがてオリジナルの基板で、OSをリアルタイムOSからLinuxへ移植するポーティングを任された。初めてカーネルがブートするログを吐きながら立ち上がった瞬間、思わず声を上げた。「動いた……!」コンソールに並ぶ文字列が、とても眩しく見えた。――Linuxが、私の中で“理論”から“現実”に変わった瞬間だった。

LinuxとAndroid ― システムの全体を見渡す力

次に挑んだのは、Linuxカーネルやデバイスドライバ、そしてAndroidのOSレイヤー。一見するとまったく別の世界だが、底に流れるのは同じLinuxの血脈だ。

Linuxはオープンソースで世界中の技術者が開発に携わっており、人類の英知を結集したソフトウェアといっても過言ではない。そして、ハードウェア制御の世界から、ユーザーが触れるアプリの世界へ――視点を変えるだけで、見える景色が一気に広がった。アプリがどんな意図でシステムコールを叩き、その先でドライバがどう応答しているのか。下からも上からも同じシステムを眺められるようになって、「一枚岩としてのOS」を初めて実感した。

Androidは単なるスマホ向けOSではなく、Linuxの新しい表現形だと気づいた。ユーザー体験を設計することと、OSを最適化すること――実は根っこは同じ“つながりのデザイン”だったのだ。

複数OSで同じ機能を ― 共通の価値を形にする

ある時期から、開発のフィールドはさらに広がった。Linuxだけでなく、Android・Windows・iOSなど、複数OSで動作するアプリケーションを開発するようになったのだ。

言語も開発環境も異なる中、目指すのは「同じ体験」。そのとき私が意識したのは、**「何を共通化するか」**という視点だった。UIの見た目や機能の順序よりも、ユーザーが感じる“使いやすさ”の根底――それをロジックとして抽出し、プラットフォームをまたいで実装できる形に整える。

たとえば通信制御の部分はC++⁵で共通化し、それを各OSがラップして利用する。結果、チーム全体の生産性も品質も飛躍的に向上した。

「OSが違っても、届けたい価値は同じ」。その気づきが、技術を越えた開発思想へとつながっていった。

Raspberry PiとBLE ― 小さなデバイスがつなぐ世界


Raspberry Pi⁴が登場したとき、私は真っ先に飛びついた。「これで何ができるだろう?」そんなワクワクを抑えきれなかった。

Linuxを載せた小さな基板が、センサーを制御し、BLEを通じてスマホと通信する。それは、ハードウェア・ソフトウェア・通信・UIのすべてが混ざり合う新しい領域――IoTの幕開けだった。

BLEは無線のBluetooth規格の一つで、消費電力が少なく忘れ物タグのような小型のデバイスにも採用されている。「小さなデバイスが大きなシステムを動かす」。その感覚は、いまでも私の中で生きている。Raspberry Piは、エンジニアに“遊びながら学べる自由”をくれた存在だった。

今の仕事 ― 組込みとクラウドを結ぶ通信システム

現在の私は、組込みLinuxシステムにJavaアプリケーション⁶を組み込み、クラウドと連携する通信システムを開発している。

現場の装置からデータを集め、クラウドへ送信。そのデータを解析し、結果を装置やユーザーへ伝達する。まるで呼吸するように、現場とクラウドがデータを行き来する。

以前は閉じた世界だった組込み機器が、いまやクラウドの一部として動作している――そんな時代だ。ハードウェアの上に動くLinuxと、クラウド上で走るLinuxが、シームレスにつながる瞬間を見られるのは、この仕事の醍醐味でもある。

Linuxは、ただのOSではない。「現場とクラウドをつなぐ心臓」。それが、いま私が見ているLinuxの姿だ。

おわりに

20年前、初めてLinuxを動かしたとき、まさかこのOSが産業の中心に立つとは思ってもみなかった。でも、オープンソースの力と、そこに集うエンジニアたちの情熱が、世界を少しずつ変えてきたのだと思う。

ハードウェアを理解し、ソフトウェアを磨き、クラウドでつなぐ。そのすべての層にLinuxが関わっている――それは、もはや偶然ではなく、時代の必然だ。

私自身も、その成長の一端を支えてこられたことを誇りに思う。これからも、技術で世界を“つなぐ”エンジニアでありたい。

もしこの記事を読んで、「そんな現場で、自分も汗をかいてみたい」と思ったなら――きっと、あなたの中にも組込みLinuxのDNAが息づいている。

 

注釈

1.Linux(リナックス): 無料で使えるオープンソースのOS。パソコン、サーバー、スマホ(Android)など幅広い機器で利用され、カスタマイズ性と安定性が高いのが特徴。
2.VxWorks(ブイエックスワークス): 組込み機器向けの専用OS。工場ロボット、医療機器、宇宙探査機などを安全かつ安定して動かすために使われる。
3. マーズ・パスファインダー: NASAが火星に送り込んだ探査機と着陸ミッション。着陸器と小型探査車「ソジャーナ」が火星表面を観測し、地形や大気、岩石の情報を地球へ送った。
4.Raspberry Pi(ラズベリー・パイ): 手のひらサイズの小型コンピュータ。安価で扱いやすく、プログラミング学習、電子工作、IoT機器の試作などに広く利用される。
5.C++(シープラスプラス): 高速で複雑な処理が得意なプログラミング言語。ゲームエンジン、組込みシステム、業務アプリなど性能が求められる分野で広く使われる。
6.Javaアプリケーション: Java言語で作られたプログラム。OSに依存せず動くため、Webサービス、業務システム、Androidアプリなど多様な場面で利用される。

IoTエンジニア
O

株式会社エヌ・アンド・アイ・システムズ

株式会社エヌ・アンド・アイ・システムズ