
OctoByte
OctoByte(オクトバイト)— コンピュータの低レイヤーを、動く図解で解説するチャンネルです。「なぜそうなっているのか(Why)」を先に置いて、原理から辿り直します。
Episodes
Reading the feed…

OctoByte(オクトバイト)— コンピュータの低レイヤーを、動く図解で解説するチャンネルです。「なぜそうなっているのか(Why)」を先に置いて、原理から辿り直します。
Reading the feed…
電源ボタンを押した瞬間から、OSが立ち上がって操作できるようになるまで──コンピュータの中では何が起きているのか。CPUのリセットからスケジューラが回り始めるまでを、「なぜそうなっているのか(Why)」を先に置いて、動く図解で全7ステップ通しで解説します。 ▼ 図解つき本編(YouTube): https://youtu.be/ySD1HF86TMs ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
アイコンをダブルクリックすると、ウィンドウが開く──その一瞬に、OSの中では何が起きているのか。ディスクの上では「ただのバイト列」にすぎない実行ファイルが、fork と exec を経て「動き出す」までを、動く図解で通しで解説します。 ▼ 図解つき本編(YouTube): https://youtu.be/LlrIvqtrePE ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
タスクマネージャのメモリ使用量が、搭載量を超えて見える──それでも PC が落ちないのは、OS とハードウェアが協力して「アドレスの嘘」をついているからです。仮想アドレスが物理メモリへ翻訳される瞬間から、ディスクをメモリの延長にするからくりまで、動く図解で通しで解説します。 ▼ 図解つき本編(YouTube): https://youtu.be/IFzU5kS5ZEk ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
電卓のボタンを押した瞬間、もう答えが出ている──でも中身をどれだけ開けても、あるのは「電気を通すか、止めるか」しかできないスイッチの集まりで、九九の表も計算手順のメモもどこにもありません。スイッチが論理ゲートになり、ゲートが加算器になり、加算器が乗算器になる。3×5 というひとつの例が回路を通り抜けて 15 になるまでを、動く図解で通しで解説します。 ▼ 図解つき本編(YouTube): https://youtu.be/X6dMA6q4-ec ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
電卓なら 0.1 + 0.2 = 0.3。当たり前の計算です。ところがプログラムで同じ計算をすると 0.30000000000000004 が出てくる──これはバグでも、言語の癖でもありません。10進では有限の 0.1 が、2進では無限循環小数になり、有限のビットに収める時点で「正確な 0.1」がそもそも存在しない。0.1 が IEEE 754 の 64 ビットに詰められ、丸められ、足されてズレが表面化するまでを、動く図解で通しで解説します。 ▼ 図解つき本編(YouTube): https://youtu.be/K-7_a2kLiC8 ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
3GHz の CPU は1秒間に30億回クロックを刻みます。その1回、0.333ナノ秒の間に、光でさえ約10cmしか進めません。銅配線の信号はさらに遅い──「速いメモリを好きなだけ積む」ことは物理的にできず、速いメモリは小さく CPU の近くにしか置けない。だから容量とレイテンシは1段で両立できず、レジスタ→L1→L2→L3→DRAM と段階的に並べる。クロックの正体から、光速と距離の制約、キャッシュ階層の設計理由、そして自分の PC で階層を確認するところまで、動く図解で通しで解説します。 ▼ 図解つき本編(YouTube): https://youtu.be/7EszhYZptxA ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
スタジアムでゴールが決まった瞬間、その光は 1 万 km先のテレビにほぼ同時に届く。 なぜそんなことが可能なのか? ▼ 図解つき本編(YouTube): https://youtu.be/178xUbNkMh8 ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
アクセスが増えたのでサーバーを1台から3台にスケールアウトしました。 なのに負荷試験をかけた瞬間、スループットは見かけ上がったまま 98.8% が 502 エラーに──増やしたのに、なぜ壊れたのか? 水平スケーリングは「容量(キャパシティ)」を足す手段であり、1プロセスの中で詰まったイベントループ(event loop)は台数では治せません。 実測データで連鎖障害(cascading failure)の機構──CPU 飽和 → liveness probe 応答不能 → 連鎖 Evict──を追いかけ、 probe 調整・HPA(オートスケール)・worker_threads という3つの対策が、それぞれ「何を守るのか」をトレードオフで比較します。 C10K 問題から続くイベント駆動の設計思想、スループットとエラー率・p95 レイテンシの読み方まで、この1本で辿り直せます。 ▼ 図解つき本編(YouTube): https://youtu.be/235ZkzPumog ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
char buf[8] に9文字を書き込むと、なぜプログラムの制御そのものが奪われるのか。高級言語の変数がメモリ上でどう並び、バッファのすぐ隣にある「関数の戻り先住所(return address)」がどう上書きされるのかを、アドレス空間→スタックフレーム→溢れの進行→OS/CPUの防御まで、自前の検証環境の観察付きで一段ずつ潜って確かめます。 ▼ 図解つき本編(YouTube): https://youtu.be/4Sg7LP8mRIQ ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
ベンチマークを回したら、不思議な数字が出た。同じループ、同じデータ、同じコード。差はソートの有無だけ。未ソートで16.97秒かかる処理が、ソートするだけで2.69秒に縮む。6.3倍速くなった。 計算量は変わっていない。命令数もほぼ同じ。この差はアルゴリズムではなく、CPUの中で何かが起きているということだ。 ▼ 図解つき本編(YouTube): https://youtu.be/gsE2dvf_bOU ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
新機能のデータを、テーブルに分けるか、JSON で丸ごと持つか。迷ったことはありませんか。実は、どちらのモデルを選ぶかを決めるのは、好みでも新しさでもなく、データの中にある「関係のかたち」です。分散システム設計の定番『データ指向アプリケーションデザイン』第2章を下敷きに、リレーショナルとドキュメントの選び方を、設計者の視点で解説します。 ▼ 図解つき本編(YouTube): https://youtu.be/SRTabgu6Hfg ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
大量の行を DELETE したのに、ディスクの使用量が減らない。件数は確かに減っているのに、むしろ削除の直後に増えることさえある。消したはずのデータはファイルの中に残っていて、これは設定ミスでも不具合でもありません。追記型と呼ばれる系統のストレージエンジンでは、その場のデータを書き換えず、更新も削除も「新しい記録」としてファイルの末尾に書き足すからです。分散システム設計の定番『データ指向アプリケーションデザイン』第3章の前半を下敷きに、追記型ログ・ハッシュ索引・コンパクション・LSM-Tree・B-Tree を解説します。 ▼ 図解つき本編(YouTube): https://youtu.be/8ddyBJzMZew ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
SQL を書くとき「この index を使って」「この表から先に読んで」と書いたことはないはずです。標準の SQL には、それを書く場所がありません。それなのに同じ問い合わせが、こちらが1文字も変えていないのに、index を1本足すだけで速くなる。書く場所がないのは設計で、経路を選ぶ仕事がデータベース側に残してあるからです。分散システム設計の定番『データ指向アプリケーションデザイン』第2章の後半を下敷きに、宣言的クエリ言語とグラフデータモデルを解説します。 ▼ 図解つき本編(YouTube): https://youtu.be/HCQBPwhxoYs ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
乗換案内は、数えきれない行き方の中から最短ルートをどうやって一瞬で見つけているのか。 総当たりで全部試しているわけではありません。 ▼ 図解つき本編(YouTube): https://youtu.be/PjaAWGM-jOw ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
サービスのデータベースに、あなたのパスワードは入っていません。あるのは $2b$12$ から始まる60文字の記号列だけ。ではログインはどうやって照合されているのか——一方向ハッシュ・ソルト・ストレッチングの3層を、自前の検証環境の実測付きで潜って確かめます。 ▼ 図解つき本編(YouTube): https://youtu.be/DAvAEmNetWI ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
システムに不具合が起きた際、どのような対処法があるのかを説明する動画です。 ▼ 図解つき本編(YouTube): https://youtu.be/m57db4SrvPc ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
ブラウザと Slack と Docker。開いたアプリはたった3つなのに、アクティビティモニタを開くと動いているプロセスは100個を超えていました。 重さの正体は、OSがCPU・メモリ・入出力を配るときに生まれる3種類の「待ち」です。 top と vmstat で切り分けながら、OSの仕事を1枚の地図に描いていきます。 ▼ 図解つき本編(YouTube): https://youtu.be/YuN9Intvm_o ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
MacBook の購入画面で、メモリ +8GB とストレージ +512GB が、どちらも同じ 3 万円。 容量はおよそ 64 倍違うのに、値段は同じです。 ▼ 図解つき本編(YouTube): https://youtu.be/kZrNipKv13Y ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。
フルビルドで全コアが100%のとき、打った一文字はなぜ待たされることがあるのか。走れるタスクがコア数を超えた瞬間から、「次に誰を走らせるか」はスケジューラの公平の定義で決まります。Linux はこの定義を、およそ30年のあいだに3回作り直してきました。O(n)→O(1)→CFS→EEVDF の歴史を、1枚の紙に描き足しながら追いかけます。 ▼ 図解つき本編(YouTube): https://youtu.be/5BGNw3C2w6Y ▼ 手を動かして学ぶ: https://cs.n10u.jp ※ この番組は YouTube「OctoByte」の音声版です。図解は本編でご覧ください。