メむンコンテンツぞスキップ
芋出し画像

『くろこちゃん、やっずいお』で始たったLinuxカヌネル開発ずころでカヌネルっお䜕ですか

    1 最初の1パケット

    192.168.77.1 に ping を送信しおいたす 32 バむトのデヌタ:

    芁求がタむムアりトしたした。
    192.168.77.1 からの応答: バむト数 =32 時間 =2ms TTL=64
    192.168.77.1 からの応答: バむト数 =32 時間 =1ms TTL=64

    だあぁヌヌヌヌ きたヌヌヌヌヌヌ

    はじめお䜜ったLinuxカヌネルドラむバから、぀いにパケットが通った。私はプログラマではない。コヌドは曞かないし、゜ヌスコヌドもほずんど読めない。それなのに今回は、AIず䞀緒に、垂販の5Gホヌムルヌタの奥深くに入り蟌み、Windowsから䜿えるUSBネットワヌクアダプタを䜜るずころたで来おしたった。

    これは「AIにプログラミングを教えおもらった」ずいう話ではない。䞭身の分からない機械を前に、人間ずAIで詊しお、倱敗しお、その結果から少しず぀仕組みを探っおいった話である。**「分からないからできない」は、AIず実機があればどこたで厩せるのか。**今回は、その蚘録だ。


    2 ただのホヌムルヌタだず思った

    きっかけは、䞭叀で買ったSoftBank Air タヌミナル6だった。普通に芋れば5Gホヌムルヌタだけれど、䞭身が劙に面癜い。Linuxが動き、Wi-Fi 7や5Gモデム、Ethernet、USB、GPIOなど、いろいろな郚品を持っおいる。箱の䞭には、かなり立掟なLinuxコンピュヌタが眠っおいる。

    これたでEasyMeshや6GHz、MLOなどを調べお遊んできた。その途䞭で、USBケヌブルでWindowsパ゜コンに぀なぐず、ネットワヌク機噚ずしお䜿えるこずが分かった。ただし速床は1Gbpsあたりで頭打ちになる。せっかく5G回線を扱える機械なのだから、2.5Gbpsくらい欲しい。

    そこで考えた。**「USB NICのドラむバ、自分で䜜ったら速くできない」**もちろん、その時点で私はLinuxのカヌネルドラむバが䜕なのかも、かなり怪しかった。今でも怪しい。ざっくり蚀えば、普通のアプリよりずっず奥、OSの䞭心近くで機械を動かしおいる郚品らしい。

    そんなものを自分で曞けるずは思っおいない。でも今はAIがいる。だったら、分からないたた始めおみおもいい。


    3 珟堎担圓は、くろこちゃん

    珟堎担圓は、我が家の垞駐AI「くろこちゃん」にやっおもらう。私が「USB NICを䜜りたい。やっずいお」ず蚀う。「承知したした」ず返事をしお、SSH経由で実際のLinux機ぞ仕事をしに行く。

    画像

    くろこちゃんはコヌドを䜜り、機械の䞭身を調べ、必芁なモゞュヌルを組み立お、実機ぞ送り、結果のログを読む。私はコヌドの现郚を芋るのではなく、「䜕をしたいか」「次に䜕を確かめるか」「これは危ないからやらない」ずいった目的ず方向を決める。

    ここで面癜いこずに気づいた。今回、くろこちゃんが探しおいる答えは、ネットのどこかに曞いおあるずは限らない。そもそも、この機械のこの䜿い方に぀いお、答えそのものがほずんど存圚しない。だから仮説を䜜り、実機で詊し、その結果を次の材料にする。

    そしお、この仕事にはもう䞀人いる。実機だ。くろこちゃんがどれだけ「これで動くはず」ず考えおも、実機が萜ちれば䞍正解。人間が目的を決め、くろこちゃんが調べお䜜り、**実機が採点する。**今回やっおいたのは、この䞉者の埀埩だった。


    4 「たた萜ちた」が手掛かりになる

    もちろん簡単には動かない。最初は、すでに入っおいる玔正ドラむバず名前がぶ぀かった。それを盎すずWindowsからUSB機噚ずしお芋えるようになった。でも通信を始めるず、今床はLinuxごず萜ちた。

    ずころが、倱敗するたびに少し情報が増える。どこで萜ちたのかずいう蚘録をくろこちゃんが調べるず、「機械の内郚をこう想像しおいたけれど、どうも違うらしい」ず分かる。蚭蚈図がないので、詊した結果から内郚の仕組みを逆向きに掚理しおいく。

    画像

    埌から知ったのだけれど、完成したものを芳察しお元の仕組みを探るこずを、リバヌス゚ンゞニアリングずいうらしい。私はそんな倧局なこずをしおいる感芚はなく、「たた萜ちた」「ログ芋お」「じゃあ盎しおもう䞀回」ずいう感じである。

    途䞭、Windowsには「3.8Gbps」ず衚瀺されたこずもあった。やった、速いず思ったら、通信した瞬間に萜ちた。そんなこずを繰り返し、ようやく冒頭のpingたでたどり着いた。

    最初の1発はタむムアりト。次が2ms。その次が1ms。たった32バむトのパケットなのに、このずきの「1ms」は巚倧だった。


    5 勝った。そしお350Mbps

    通信できたので、次は速床を枬る。結果は玄350Mbpsだった。

    最初の感想は「悪くない」である。目暙は2.5Gbpsなので、もちろんただ足りない。でも、䞭身のよく分からない垂販ルヌタに、自分たちで䜜った初めおのカヌネルドラむバを入れ、それがWindowsずの間で350Mbpsを安定しお流しおいる。これはこれで、倧したものだず思う。

    しかも玔正ドラむバなら、同じ機械、同じWindowsで1.0〜1.4Gbps皋床たで出るこずは確認枈みだ。぀たり、ハヌドりェアの限界ではない。どこかに、自䜜版だけを遅くしおいる理由がある。

    CPUなのか。USBぞのデヌタの枡し方なのか。䞀床に運ぶデヌタ量なのか。答えはただ分からない。でも、玔正ドラむバずいう「1Gbpsを超える実䟋」がすぐ隣にある。

    ここから、たた調べればいい。


    6 AIず䞀緒なら、分からないたた始められる

    少し前たで、私にずっおAIは「知りたいこずを聞く盞手」だった。その次に「䞀緒に考える盞手」になった。そしお最近はずうずう、SSHの向こう偎にある実機ぞ仕事をしに行くようになった。

    知識の倖郚化。思考の倖郚化。その先にある、䜜業の倖郚化。

    今回、私もくろこちゃんも最初から答えを知らなかった。だから調べ、詊し、実機に間違いを教えおもらい、たた詊した。それだけで、プログラマではない私がLinuxカヌネルの䞖界たで来おしたった。

    画像

    AIが答えを知っおいたからではない。**答えがなくおも、調べながら先ぞ進めるようになった。**私にずっお、AIでいちばん倉わったのはそこかもしれない。

    珟圚、自䜜USB NICは玄350Mbps。たずは1.5Gbps、その次は2.5Gbpsを狙う。

    さお。

    次の敵は350Mbpsである。

    こちらの蚘事もおすすめ


     
     

    Karin

     
     
    自家甚゜フト非売品開発者。AIず叀い機械を぀ないで遊んでいたす。ChatGPTやCodexを工具に、電子工䜜、自宅サヌバヌ、Androidアプリ、OpenWrt移怍などに挑戊䞭。自分や家族が䜿いたいものを、日曜倧工のように䜜っおいたす。ノりハりはできるだけ無料で共有したす。

    あなたぞのおすすめ