Sinopsis
CPUUnixCPUxv6 Unix (@nullpo_head)https://turingcomplete.fm/9TTSneoCPUCPUUNIXOS (xv6) CPUCOSCPU & xv6Jeff DeanRuss CoxRobert MorrisMorris wormMySpace 14John CarmackLLVMELVM8cc CC2048
Episodios
-
31. 携帯電話のハッキング、コンピュータサイエンスの論文 (るくす)
01/10/2018 Duración: 01h24sカーネギーメロン大学の客員研究員として明日から赴任するるくすくんと、コンピュータのセキュリティや、システムズ系のコンピュータサイエンスの論文などについて話をしました。出演者: るくす (@RKX1209)、Rui Ueyama (@rui314) https://turingcomplete.fm/31 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) カーネギーメロン大学に明日から行きます (0:47) Samsung Galaxyのシリアルコンソールを有効にするハードウェアの裏技 (9:00) iPhoneではアンロックしてから1時間が経過するとUSBデータ通信が完全無効化される (16:00) メモリアクセスのときに放射される電磁波ノイズでラジオを鳴らす (17:30) 初代XBoxのメモリバスをタップしてデータを取得 (18:54) るくすくん作成のNintendo Switchエミュレータ公開されました (22:00) Nintendo SwitchにAndroidを移植 (26:10) Linus、他人に対する振る舞いを改善するために一時的に公的な立場を退く (27:50) るくすくん、Kernel/VM関西というイベントを主催 (34:06) x86ネイティブコードを安全に動かすNaCLの論文 (36:30) 4KiBページを自動的に2MiBのスーパーページに昇格するというFreeBSDの機能 (44:57) Hans Boehmの「スレッドはライブラリとしては実装できない」という論文 (50:20) カーネギーメロン大学における生活 (55:59) エンディング (59:46) iOSのUSB制限モード Macbook system bus radio るくすくんのSwitchエミュレータ Native Client: A Sandbox for Portable, Untrusted x86 Native Code Practical, transparent operating system support for superpages (PDF) Threads Cannot be Implemented as a
-
30. セルフホストできるCコンパイラの作り方を夏休みの特別授業で教えた話 (hikalium)
23/09/2018 Duración: 01h15minセキュキャンのCコンパイラ自作コースが無事に終わりました。共同講師だったhikaliumと一緒に、コンパイラ自作の要点やコンピュータサイエンスの教え方などについて振り返りました。出演者: hikalium (@hikalium)、Rui Ueyama (@rui314) https://turingcomplete.fm/30 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) よい寄付先とは (4:47) セキュキャンのCコンパイラ自作ゼミとは (7:51) インクリメンタルにCコンパイラを作る (12:21) 左辺値と右辺値 (17:55) 似て非なるものを作るのは努力の重複ではない (19:17) 9cc書き始めました (20:51) 自作コンパイラの性能もそんなに悪くはない (21:18) Ken Thompsonのログインハック (23:10) Cコンパイラ、アセンブラ、リンカ、libc関数を全て自前で書く (32:16) Stanford CS140 (34:59) Stanford CS140e (37:40) 三億円事件 (40:59) 仮想通貨盗難事件のスケールの大きさ (45:29) ビットコイン盗難とSIMスワップ攻撃 (48:11) ハードウェアのセキュリティキー (49:08) hikalium、Ergodoxキーボードを買う (51:24) キーボード早打ち対決 (55:35) 国によってキー配列が違う (58:55) プログラミングを教える時の心構え (1:01:31) Keithというよい講師の話 (1:05:07) 褒めるときに悪い話をセットにしない (1:07:10) 久しぶりのTCFM (1:11:58) エンディング (1:14:14) An Incremental Approach to Compiler Construction (PDF) Let's Build a Compiler, by Jack Crenshaw Writing A Compiler In Go 8cc C Compiler 9cc C Compiler sk2cc aqcc Ken Thompsonの
-
29. ユタ・ティーポット、Cコンパイラ開発の授業、中学生時代のOS自作エピソード (hikalium)
01/08/2018 Duración: 01h42minセキュキャンのCコンパイラ作成コースの話、CGでよくでてくるティーポットの実物を入手した話、hikaliumの中学生時代のOS自作の話をしました。出演者: hikalium (@hikalium)、Rui Ueyama (@rui314) https://turingcomplete.fm/29 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) セキュキャン事前学習始まりました (1:33) 「低レイヤを知りたい人のためのCコンパイラ作成入門」(仮題)、現在7万字 (3:58) Cの不可解な言語仕様のルーツを知るために1972年の最初期のCコンパイラのコードを読んでみた (6:07) 符号拡張とマイナス2進数 (13:04) コース参加者のコードのほうが8ccのコードよりきれい (17:57) 一番最初のコンパイラは構文解析が非常に苦労した (20:23) CGでよくでてくる例のティーポットを買いました (22:07) 元々はボストンのコンピュータ博物館で展示されていた (25:15) Frieslandという会社が今でも同じティーポットを作っている (26:03) ユタ・ティーポットはなにがCGに適しているのか (28:27) ユタ・ティーポットと南部鉄器の類似性 (30:31) 内輪ネタとしてのユタ・ティーポット (33:14) ユタ大学のUtah Teapot Rendering Competition (34:00) 画像処理の標準テストイメージとしてよく使われる女の人Lennaの話 (37:57) ユタ・ティーポットは日本からも普通に買えるはず (41:47) hikaliumのOS自作入門 (43:28) hikaliumの小学生時代のホームページ (44:21) 30日OS自作入門本のOSのファイルシステム (48:00) GUIの多色対応 (51:36) 30日OS自作入門本のmalloc (55:29) K&R mallocを自力で発明して実装 (58:10) テキストボックスを実装 (1:00:33) ARMの実行のみできるページ(読めない)という新しい機能 (1:03:17) x86のページテーブルがいつの間に
-
28. プログラミング言語のブートストラッピング問題、コードとの互換性を保ちつつ言語を変更していく話 (川合史朗)
24/07/2018 Duración: 01h15minGauche Schemeの作者の川合史朗さんと言語処理系についての話をしました。GaucheのCコードとの互換性を保ちつつ無限リストを導入するために採用したトリックや、Gauche自身で書かれているGaucheを過去のバージョンでビルドするために気をつけていることなどの話をしました。出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314) https://turingcomplete.fm/28 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) 電卓そろばん対決の動画存在しました (2:28) Gaucheとそのほかのプログラムのリリースプロセス (3:33) コンパイラのブートストラッピング問題とバージョン間の互換性 (4:51) GCCやClangにおけるブートストラッピング問題 (18:08) Goでは言語仕様がフリーズされていてGo 1の間は変更されない (19:41) Webブラウザの6週間のリリースサイクルは短いのか長いのか (20:35) FirefoxもClangとlldにスイッチ (21:32) Gaucheがstdioを使わずに独自bufferred IOを実装している理由 (22:58) FILE構造体の内部にアクセスする(移植性のない)実装 (26:41) プログラム終了時にバッファをフラッシュしないといけない (27:13) stdioではstdinを読もうとしたらstdoutがフラッシュされる (28:24) 遅延シーケンス(無限リスト) (31:05) Cレベルでの互換性を保ったままconsセルを遅延シーケンスにするトリック (34:52) 遅延シーケンスをどこで使っているのか (37:29) 遅延シーケンスのパフォーマンス最適化 (38:45) Clojure言語のTransducerという仕組み (42:07) カリー化とは何か (46:06) キーワードとシンボル (48:09) キーワードをシンボルのサブクラスにして発生した問題 (54:27) Scheme言語仕様にはキーワードはない(シンボルで十分?) (56:08) 現在仕様策定中のScheme言語仕様R7RS (58:
-
27. 歴史の中のコンピュータ: 1946年の電王戦、エニグマ暗号の解読 (うどん)
15/07/2018 Duración: 01h37min今週は歴史回です。僕からは、終戦の翌年の東京で、日本のそろばん名人が米軍代表の電卓オペレータと大規模な公開マッチを行って、そろばん名人が勝利したという知られざるエピソードを紹介します。うどんくんからは、第二次世界大戦のドイツ軍の暗号がどう破られたのかという話をします。出演者: うどん (@kw_udon_)、Rui Ueyama (@rui314) https://turingcomplete.fm/27 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) コンピュータ歴史博物館 (0:40) そろばん対決の当時の新聞記事を図書館で探す (4:22) 星条旗新聞の一次資料を発見 (8:24) 日本側挑戦者は逓信省に勤めるマツザキ・キヨシさん (9:50) 新聞の興行としての計算勝負 (12:52) 会場はアーニー・パイル・シアター(旧東京宝塚劇場) (14:55) アメリカ側挑戦者はGHQ財務局のThomas Nathan Wood二等兵 (16:32) モータを内蔵した機械式計算機 (17:19) 勝負の予想は半々に割れる (18:40) 日本側からNHKや新聞が取材に来ていてフィルムも残っているはず (20:39) マツザキさんが勝利 (21:27) マツザキさんの勝利を報じる星条旗新聞 (23:35) この計算対決があったことはほとんど知られていない (24:35) エニグマ暗号機 (27:24) 大昔のコンピュータを、現役学生時代にMITでハックしていた人がデモしてくれる (27:56) エニグマの基本構造 (29:46) シーザー暗号やヴィジュネル暗号との比較とその解読法 (33:29) ワンタイムパッドとは (38:56) バベッジとバベッジの階差機関 (41:05) エニグマの基本構造と鍵空間の大きさ (43:24) エニグマはいつ解読されたのか (46:54) 分散コンピューティングで解読する現代の試み (49:32) ポーランドが暗号化手順の脆弱性を発見してエニグマのレプリカを作ることに成功 (51:02) ソ連のページが重複した「乱数表」でアメリカが通信解読に成功していた事件 (1:06:30) ポーランド侵攻の直前にイギ
-
26. Nintendo Switchのエミュレータでhomebrewアプリを動かす話、サイバーセキュリティと政府機関 (るくす)
08/07/2018 Duración: 01h14minるくすくんとSwitchエミュレータの進歩や、政府機関のサイバー部隊に就職したい話、セキュリティ全般について話をしました。出演者: るくす (@RKX1209)、Rui Ueyama (@rui314) https://turingcomplete.fm/26 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) Switchエミュレータでネットワーク通信が動くようになった (0:53) SwitchのHomebrewのアプリをエミュレータで動かして動作確認 (1:48) Webブラウザの脆弱性を使ってアプリをインストール (4:12) 完成度はまだまだだが、Switch用のNES(ファミコン)エミュレータくらいは動く (8:17) GPUのエミュレーションの方法 (14:01) 既存のエミュレータと動作を比較してデバッグ (15:27) 開発期間は4〜5ヶ月 (20:47) main関数に到達するまでが大変 (22:47) QEMUベースのSwitchエミュレータの比較 (26:04) オープンソース化したらどういう反応があるのか (27:13) るくすくんのセキュリティのサーベイ記事 (29:42) 日本の政府機関のサイバー部隊 (30:55) 日本の政府機関のハイテク音痴ぽさ (37:10) アメリカの情報機関に就職するには国籍がないと難しい (38:25) スパイ衛星の運用は内調 (39:20) ハッキングチームの情報流出事件 (42:00) ハードウェアの脆弱性を使ったターゲット攻撃 (45:34) PlayStation 4でWebブラウザがクラッシュすると警告文が出る (48:46) 法執行機関に対抗してユーザのプライバシーを守ろうとするAppleの姿勢と努力 (50:56) セキュアブートとは (55:02) 拡張ハードウェアを使ったセキュアブートの回避 (57:31) TCFMミートアップのQ&Aコーナーの質問 (1:00:20) ワーム事件を引き起こしたRobert Morrisは今はMITの教授 (1:08:29) Kevin Mitnickの逮捕に協力した下村努はノーベル賞受賞者の下村脩の息子 (1:10:21)
-
25. Chromeのローディングの最適化、脆弱性報奨システム、ブラウザとマイクロカーネル (Kinuko)
01/07/2018 Duración: 01h24minChrome開発者のKinukoさんと、Chromeのページロードを速くする話や、ブラウザのセキュリティ、ブラウザのマルチプロセスアーキテクチャとマイクロカーネルの類似性などについて話をしました。出演者: Kinuko (@kinu)、Rui Ueyama (@rui314) https://turingcomplete.fm/25 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) Chromeのローディングを担当 (1:24) リンクはクリックしたら一瞬で表示されてほしい (3:32) Service Worker (4:28) WebページをまとめるWeb Packaging (6:23) Web PackagingとCDNとデジタル署名 (10:35) 信頼できる第三者による署名 (15:06) マウスオーバーでプリフェッチ (16:22) 機械学習でプリフェッチ (17:32) Chromeのデータセーバー (18:28) 遅い機能を使っていないことを宣言できるfeature policy (21:14) ブラウザの深い話をするつもりが普通のWeb開発の話になっていた (23:00) Service WorkerはGoogle検索も使っている (24:22) Service Workerの最適化 (26:23) Service Workerを使っている大規模サイトの例 (30:36) ブラウザはとにかく大きくて複雑 (32:05) 細かくプロセスに分ける現代のブラウザはマイクロカーネルぽい (34:11) File descriptor passing (42:04) ブラウザのタブをVMにしたら? (44:06) KinukoさんはOSぽい研究をしていた (47:43) 分散ファイルシステムの研究 (48:40) WWWのデザインの適当さの衝撃度 (51:39) Chromeの脆弱性報奨システム (55:10) 定評のあるオープンソース開発者が意図的に悪意あるコードを書いたら見つけられるか? (1:00:03) SanitizerがC++を延命している (1:05:31) セキュリティレビューワーは何をみているのか (1:11:3
-
24. 細胞内の物質の濃度を測る研究、ヒトゲノム計画、害虫の根絶 (Shiro Kadowaki)
24/06/2018 Duración: 01h24min東大医学部卒業後にソフトウェアエンジニアをしている門脇さんと、生物の研究の話や最近の遺伝子技術の進歩などについて話をしました。出演者: Shiro Kadowaki、Rui Ueyama (@rui314) https://turingcomplete.fm/24 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) 東大医学部 → ソフトウェアエンジニア (1:43) DOS版のソフトをWindows 3.1に移植 (4:51) 医学部に行くと普通は医者になる (6:55) 細胞内の物質の濃度を測る研究 (9:40) IP₃の濃度を蛍光タンパク質を使って測定 (16:15) 生物の実験と再現性の問題 (19:33) 測定することで測定対象に影響を与える問題 (24:00) 遺伝子を一から作ることはできるのか (25:08) 人体を設計し直せるとしたら (29:35) 蛍光の観察方法 (31:26) 制御装置をビジュアルプログラミング言語で作る話 (36:27) 細胞のシートや立体構造を作る話 (38:29) 実験の動画をMOで保存 (39:37) 実験装置の光源 (40:56) ヒトゲノム計画 (46:29) Perlの正規表現で遺伝子を探索 (50:37) 遺伝子の候補を見つけた後どう検証するのか (55:18) ディープラーニングを使って眼底写真から血圧や性別を判別する話 (58:22) 蚊を根絶する話 (1:00:50) 沖縄における不妊虫放飼の実例 (1:03:07) タスマニアデビルの感染性のガン (1:06:03) 野生生物の種単位での根絶を可能にするGene Drive (1:07:37) 数珠つなぎ式Gene Drive (1:11:11) UnicodeのDNA絵文字のバグ (1:14:53) マッドサイエンティストなPCR発明者 (1:18:49) Wikipediaの専門のページ (1:20:40) Win32s IP₃受容体 蛍光タンパク質 MOドライブ SyQuestのリムーバブルハードディスク ヒトゲノム計画 タスマニアデビルの感染性のガン 不妊虫放飼 毎週数百万匹の不妊化蚊を放って蚊を地域から根絶する計画 G
-
23. マッチングアルゴリズム、不揮発性メモリ、水槽の脳 (hikalium)
17/06/2018 Duración: 01h18min戦略投票を行わなくてよいマッチングのアルゴリズム、Intel 3D XPointのような不揮発性メモリ、この世界はシミュレーションか、といった話などをしました。出演者: hikalium (@hikalium)、Rui Ueyama (@rui314) https://turingcomplete.fm/23 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) セキュキャン2018 (2:05) 戦略を必要としないマッチングアルゴリズム (3:34) デュヴェルジェの法則 (12:44) 比例投票制の制度設計 (18:32) 完全比例代表制と阻止条項 (20:41) 不揮発性DIMM (24:43) 不揮発性DIMMをどうモデル化するか (30:56) 不揮発性DIMMはファイルシステムとして見えるべきか、永遠に存在するプロセスとして見えるべきか (33:08) 3D XPointメモリは8バイト単位での書き込みがアトミック (39:37) Compare-and-swap命令 (42:57) ストレージ階層に新たな層が加わるのは面白い (45:32) シングル磁気記録方式のHDD (46:42) 水槽の脳 (52:02) 世界シミュレーション仮説 (54:33) シミューレーションと浮動小数点数演算の誤差 (55:19) パイオニア・アノマリー (58:25) カール・ポパーと反証可能性 (1:00:47) hikaliumはこの世界はシミュレーションだと思うかどうか (1:03:44) 世界無課金ゲーム仮説 (1:07:25) シンギュラリティ後の世界でコンピュータ内に移住したいかどうか (1:08:40) 「脳のなかの幽霊」と半球無視 (1:10:55) デュヴェルジェの法則 MTRRレジスタ Compare-and-swap シングル磁気記録方式 水槽の脳 胡蝶の夢 シミュレーション仮説 パイオニア・アノマリー 原子力電池 カール・ポパー 反証可能性 脳のなかの幽霊(書籍)
-
22. gVisor(LinuxユーザプログラムとしてLinuxカーネルを実装したサンドボックス)とNoahの話 (ぬるぽへ)
11/06/2018 Duración: 01h38mingVisorというLinux向けサンドボックスがオープンソース化されました。gVisorの構成は、ぬるぽへさんが作成していたNoahとかなりよく似ています。そこで、ぬるぽへさんからNoahの経験をもとにgVisorの話を伺いました。出演者: ぬるぽへ (@nullpo_head)、Rui Ueyama (@rui314) https://turingcomplete.fm/22 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) NoahはLinux互換環境を提供する薄いVM環境 (1:38) NoahでもgVisorでもないサンドボックス環境の例 (2:40) Noahをサンドボックスにするアイデアはあった (4:51) gVisorはGoogleのクラウドで数年間使われている実績のあるもの (5:37) gVisorがlldでリンクできなかった問題 (6:36) -mcmodel={medium,large} (7:05) gVisorがうっかりlibcをリンクしていた (9:24) gVisorはNoahに似ている (11:53) gVisorは複数プロセスを持つことができる (12:55) gVisorはLinuxカーネルをGoで実装したもの (15:16) gVisorはTCP/IPプロトコルスタックを自前で実装 (19:54) TCP/IPはなぜカーネルに実装されているのか (26:52) Go Genericsパッケージ (28:28) C11の型でディスパッチするマクロ (30:02) C言語の正しいgoto文の使い方 (32:12) C言語にテンプレートを入れてほしい (34:15) コンテナはサンドボックスなのか (37:34) 起動の速いVMの研究 (40:32) プロセスイメージのダンプ・アンダンプをgVisor/Noahでできないか (41:54) ダンプ・アンダンプはLispの伝統的テクニック (45:45) gVisorはptraceも実装 (51:51) VDSO (53:58) ソフトウェアでVMを実装するほうがハードウェアより速いことがよくある (56:56) Intel EPT (nested pages
-
21. 東大CPU実験でRISC-Vプロセッサを自作した話 (高橋祐花)
02/06/2018 Duración: 01h28min東大の授業ではCPUやコンパイラを作ってレイトレイサを動かすという授業があります。高橋さんのチームはRISC-Vプロセッサを実装して汎用OSを動かそうとしました。その話を伺いました。出演者: 高橋祐花 (@00_)、Rui Ueyama (@rui314) https://turingcomplete.fm/21 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) CPU実験のコア係とコンパイラ係 (1:46) CPU実験と商業的なプロセッサとの比較 (6:43) CPUシミュレータ作成係 (9:29) コアのデバグの辛さ (10:58) Intel 4004(Intel最初のCPU)の設計の話 (13:08) チップアート(シリコンの上の微小な落書き) (14:20) 各社のCPUID命令 (15:33) コア係をするかコンパイラ係をするか (17:43) 自作CPUにLinuxを移植したかったが頓挫 (19:55) 1日で代替の自作OSを作成 (21:01) 自作OSはマルチタスクもサポート (27:11) ユーザスレッドとカーネルスレッド (28:16) 自作CPU作成に必要な機材 (31:41) ミニマムなCPUを作って最小限の命令を次第に足していく (34:21) 自作CPUではDRAMは使っていない (40:23) SRAMとDRAMの解説 (41:24) 浮動小数点数の演算はIPコアを使ってよいルール (43:24) 浮動小数点数の丸めモード (45:48) IOはUARTでシリアル通信をサポート (48:20) UARTはデバグが辛い (49:33) 暗中模索になりがちな低レイヤのデバグの話 (50:54) 命令セットにはRISC-Vを選択 (54:09) Linuxが動くCPUを作るのは大変 (55:44) ELFフォーマットのカーネルをロードするのも面倒 (57:56) MMUを実装する必要性 (1:00:19) 1stコアはハーバードアーキテクチャ (1:01:56) MMUの解説 (1:04:05) 残り5日でOSを実装 (1:05:52) タイマ割り込みはクロックを数えて実現 (1:06:54) 自作CPUをメインで
-
20. Nintendo Switchのハッキングとコンピュータセキュリティ (るくす)
27/05/2018 Duración: 01h19minるくすくんと一緒に、デバグ例外を使ってx86プロセッサ上のOSのセキュリティホールをつく手法や、Nintendo Switchのハッキング、ゲーム機のセキュリティなどについて話をしました。出演者: るくす (@RKX1209)、Rui Ueyama (@rui314) https://turingcomplete.fm/20 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) るくす君がカーネギーメロン大学に客員研究員として1年間行きます (1:30) POP SSデバグ例外を使った脆弱性 (10:47) セグメントレジスタを変更する命令に対するデバグ割り込みだけは特別扱いになるというCPUのマイナーな仕様を誰もよく理解していなかった (19:17) OpenBSDの強いセキュリティ (25:10) 低レイヤのマイナーな仕様の不理解を突く脆弱性はまだまだあるはず (29:52) Nintendo Switchのハッキングやエミュレータの作成 (36:47) Switchで任意コードが最高権限で実行できるファームウェアのバグが最近見つかった (37:49) USBからのデータを正しく検証していないという、SwitchのブートROMのバグ (42:00) スーパーファミコンの「セキュア」チップ (47:33) スーパーマリオの最短時間クリア記録 (54:50) 高品質なアスキーアートを生成する論文 (59:43) AlphaGoの次はスタークラフトで人間に勝つのが目標 (1:06:58) John CarmackとSteve Jobsの思い出 (1:11:11) マスターとPhDとその後 (1:13:48) POP SS debug exception vulnerability 分岐予測の詳細なリバースエンジニアリング資料 ソーシャル・エンジニアリング フューズで不可逆にNintendo Switchのファームをアップデートする話 Nintendo SwitchのブートROMのバグ Wiiのゲーム「ゼルダ 風のタクト」、Switch上のエミュレータで動く Dolphinエミュレータ Wine - Windows互換実行環境 ジーコサッカー
-
19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗)
21/05/2018 Duración: 01h42min川合史朗さんが作っているScheme処理系Gaucheの実装について、特にメモリ管理やクロージャ、継続の実装などに焦点を当てて話をしました。最近のCPUでは単純にJITしても速くならない理由などについても話をしています。出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314) https://turingcomplete.fm/19 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) Schemeのストレージモデルではすべてが無限エクステント (1:06) 関数呼び出しのモデルとアクティベーションレコードのアロケーション (4:34) SPARCのレジスタウィンドウ (9:20) Alphaの速さの秘密 (12:41) 大コケしたIntel Itaniumプロセッサ (14:11) GoのGC停止時間の劇的な改善 (16:55) ページテーブルのダーティービットをユーザプログラムから使う話 (20:14) Goの分割スタック機能 (23:07) クロージャを作ったときに使ってない変数を不必要に掴んでしまう問題 (25:54) 32ビットハッシュ値を大量に作ると32ビットマシンで偽ポインタがたくさんできてしまう問題 (27:44) 決してreturnしないCプログラムにコンパイルするScheme処理系 (33:00) タグ付きポインタ (41:23) C言語の仕様を満たすためのBoehm GCの機能と、それを使いたくない理由 (46:10) 64ビット浮動小数点数をなるべくヒープにアロケートせずに扱いたい (50:30) 16ビット"Brain"浮動小数点フォーマット (55:27) Gaucheの正規表現エンジン (56:44) Scheme→C→Schemeという呼び出しをした先で継続を取得すると限定継続になる (1:00:19) Schemeスタックからヒープへのコピー (1:04:44) 末尾呼び出しはスタックを消費しないように手続きを呼び出す (1:05:50) Chez Schemeでは多値ありと多値なしの2つの継続を渡す (1:10:29) 最近のCPUの分岐予測の賢さとMeltdow
-
18. セキュキャン、LLVMプロジェクト、コンピュータサイエンスの書籍 (hikalium)
14/05/2018 Duración: 01h23minhikaliumのセキュキャン体験、コンピュータセキュリティ、LLVMプロジェクト、コンピュータサイエンスのおすすめ書籍などについて話をしました。出演者: hikalium (@hikalium)、Rui Ueyama (@rui314) https://turingcomplete.fm/18 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) セキュキャン2018ではセルフホストできるCコンパイラの作成を目指す (1:10) IRC、Slack、シンギュラリティ (7:15) hikaliumのセキュキャン2016体験話 (9:24) イーサネット(10BASE-T)の物理的なワイヤフォーマット (10:37) 謎のボードを気合いで解析するお題 (21:31) USBメモリを使ってアメリカとイスラエルがイランの核計画を妨害した話 (25:07) セキュアなオリジナルCPUの開発 (32:30) セキュキャンの講師はどう選んでいるのか (40:59) コンパイラ業界の景気の良さ (43:28) hikalium、Cコンパイラを書く (45:04) 演算子優先順位文法 (47:55) LLVMプロジェクト (52:30) 本のプレゼント企画 (1:11:21) セキュキャン2018 xkcdのマンガ 詳説イーサネット(書籍) マンチェスタ符号 8b/10bエンコーディング Ethernetフレーム ALOHAnet Return-oriented programming イランの核計画を妨害したワームStuxnet Bruce Schneier hikaliumのセキュキャン応募書類 OSECPU(オセクプ) Misreading Chat Rebuild 8cc tcc RUCC Udon C Compiler 演算子優先順位文法 Rafaelのメールの勝手翻訳 lldリンカ 「悪い方が良い」原則と僕の体験談 TCFM18書籍プレゼント応募フォーム 30日でできる! OS自作入門(書籍) CPUの創りかた(書籍) 数学ガール(書籍) Cプログラマのためのアルゴリズムとデータ構造(書籍) すべてがFになる(書籍) 追記 イーサネットフレ
-
17. Gauche Schemeの基本デザインの選択理由、オブジェクトデータベース、浮動小数点数の落とし穴 (川合史朗)
07/05/2018 Duración: 01h27minプログラミング言語を作る時には、途中で変えることが極めて難しいデザイン選択を最初に行わないといけないことがあります。今回は川合史朗さんがGaucheを設計した時に行ったデザイン選択の判断について話を伺いました。また、浮動小数点数のトリッキーさについても話をしています。出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314) https://turingcomplete.fm/17 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) セキュキャン参加者募集中 (0:41) 俳優のオーディションとその心構え (2:43) 川合史朗さんが出演している映画がサンフランシスコで上映されます (5:16) 前回の訂正 (7:40) Gaucheを作った経緯 (8:57) STkのオブジェクトシステム (12:22) CLOS(Common Lispのオブジェクトシステム)ではインスタンスのクラスを動的に変更できる (14:35) CLOSを使ってオブジェクトデータベースを作った話 (18:39) 三つ組を使ったグラフデータベースを作った話 (24:38) 構文木インタープリタではなくVMを選んだ理由は、継続 (29:24) プログラミングにおける概念としての「継続」 (30:39) 文字列の内部表現はどうするか (36:46) マルチスレッドの対応 (37:47) GCのAPIはどうするか(GaucheはBoehm GCを使って保守的GC) (39:36) 保守的GCとは何か (43:13) 自分ではGCを書かなかった理由 (45:03) Precise GCにしなかった理由はC言語との親和性 (46:45) マルチスレッドとGCとUnixのシグナル (47:50) GoやErlangの並行処理モデルを導入していない理由 (51:17) Gauche版のjava.util.concurrent (52:31) R5RSの範囲を実装するのは1ヶ月以内でできた (55:16) 浮動小数点数を10進で書き出して読み出した時、同じ数に戻ることを保証するには (57:37) Schemeは分数を正確な分数のままで扱うことができる (1:0
-
16. プログラムの静的検証、システムズプログラミングの論文 (うどん)
30/04/2018 Duración: 01h29minうどんくんが研究していたプログラム検証の話や、システムズプログラミングの古典的な論文についての話をしました。出演者: うどん (@kw_udon_)、Rui Ueyama (@rui314) https://turingcomplete.fm/16 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) Patreon (1:33) Wikipediaに寄付するとどうなるか (2:52) セキュキャン2018の講師やります (7:57) プログラム検証とは何か (13:09) Rustは型システムによってコンパイル時に安全性を検証できる (18:38) 線形論理と線形型 (22:16) 定理証明支援系Coq (26:29) 関数型プログラミング言語に対するモデル検査 (39:25) プログラミング言語の研究が応用されるまでには時間がかかる (44:04) Misreading Chat (48:17) Stanford CS240 (49:38) 「悪いほうが良い」エッセイ (52:05) Eraserによる動的エラー検出 (56:41) 割り込みハンドラが忙しすぎてマシンがハングアップする問題を解決する論文 (1:03:23) VMware ESXのメモリ管理の論文 (1:09:23) MicrosoftのMidori OS (1:20:03) TCFMの話題のバリエーションについて (1:21:29) ガラケーを自動操作するデバイスを自作 (1:23:28) セキュキャン2018 線形論理 モデル検査 高階モデル検査 うどんくんの出身研究室が開発している関数型プログラムの自動検証器 プログラミング言語Rust カリーハワード同型対応 Coq COMPCERT Cコンパイラ INRIA 四色問題 ケプラー予想 プログラミング言語Eiffel Misreading Chat 簡単なプログラミング言語を30分で作る実況動画 音の良いポッドキャストを録音するために ― Turing Complete FMの収録テクニック Turing Complete FMの裏側 ― Webサイト構築編 Stanford CS240 「悪い方が良い」原則と僕の体
-
15. CERNでのソフトウェアエンジニアリング (高橋祐花)
22/04/2018 Duración: 01h18minCERNでソフトウェアエンジニアとして仕事をしている高橋祐花さんと、CERNでの話やスイスでの暮らし、外国語、フェミニズムなどについて話をしました。出演者: 高橋祐花 (@00_)、Rui Ueyama (@rui314) https://turingcomplete.fm/15 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) CERNはWWWが発明された場所 (1:25) Patreonを使ってサポーター制度を導入 (2:50) CERNの粒子加速器が生成するペタバイトレベルのデータを処理している (8:27) TensorFlowを使って太陽系外の惑星を発見する話 (14:39) C++で大量のデータを処理 (17:43) 物理学者でも使えるように考慮されたインタラクティブなC++ (24:17) C++ modules (29:42) コンパイル時間を短くしたい (32:13) スイスでの生活とCERNの仕事環境 (36:40) 大量のデータの話 (40:07) CERNの(自然)言語 (43:46) 言語獲得の臨界期説 (48:46) プログラミングを始めたのは3年前 (52:01) 物理学者の書くコードはキレイではない? (57:11) 国際女性デー (1:00:28) 東大の女子率低すぎ問題 (1:03:34) 出世して少女に夢を与えられる人になりたい (1:07:39) ファンを増やす話 (1:10:24) 年齢性別その他の属性気にしすぎ問題 (1:13:55) CERN欧州原子核研究機構 高橋祐花さんのLLVM Dev meeting 2017での発表動画 CERNの場所 WWWの発明者 ティム・バーナーズ=リー 世界最初のWebサイト info.cern.ch 東大のCPU実験で自作コア上の自作OS上で自作シェルを動かした話 Auphonic 音の大きさ(ラウドネス) Accidental Tech Podcastの広告出稿ページ CERNの粒子加速器 ヒッグス粒子 P≠NP予想 TensorFlowを使って遠くの恒星の惑星を発見 スーパー・アース 数百キロの深さの海を持つ海洋惑星 Sawzall CERNのRoot
-
14. 少年時代にPCを(本当の意味で)自作した話 (川合史朗)
16/04/2018 Duración: 01h24minGauche Schemeの作者の川合史朗さんと、Z80 CPUを使ったPCをホストコンピュータなしに自作した話や、Schemeの話などをしました。出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314) https://turingcomplete.fm/14 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 ハワイ在住で副業は俳優 (0:00) Gaucheは仕事でも使っている (2:21) Common LispはGoogle(元ITA)でも使っている (3:11) Noahでプロセスのundumpができないだろうか? (5:00) Clojureの起動はJVMなので速くない (6:02) Lispコンパイラは改善の余地あり (8:47) Webのスクリプト言語はJavaScriptではなくSchemeが採用されるはずだった (10:09) ShiroさんはGCCのコードから多くを学んだ (12:12) 並列Cコンパイラのプロジェクト (13:45) Gauche Schemeはとてもきれいなソースコード (14:55) 中学生のころに電子工作としてZ80の自作PCを作り始める (17:55) 本物のPCは高すぎて買ってもらえなかったので電気屋の店頭でコードを打ち込んでいた (20:04) 親にこれからコンピュータは絶対必要になるとアピールするも失敗 (21:13) テレビを修理しようとする話 (22:58) トラ技で「Z80を使ってマイコンを組み立てよう」といった記事などをみて自作を始める (25:17) 入出力はスライドスイッチとLED (26:13) バスを直接スイッチで操作してメモリに手で書き込んでいく (28:29) プログラムを書き込むためのプログラムを作る (29:58) 7セグLEDと16進キーボードを作って接続 (31:20) ROMライターを作ってROMから起動できるように (33:42) 殺虫灯でEPROMを消去 (34:19) フルキーボードとテレビを接続できるように (36:41) フォントを作ってキャラクタROMを作り画面に文字を出す (37:35) テトリスを作る (40:08) テトリス作者とその後一
-
13. 自作アセンブラ、リンカの最適化、トリッキーなビット操作の楽しさ、外資系IT企業のコーディング面接対策 (hikalium)
09/04/2018 Duración: 01h28minhikaliumの自作アセンブラや自作言語、データ構造やトリッキーなビット操作を使ったアルゴリズム、リンカの最適化などについて話をしました。出演者: hikalium (@hikalium)、Rui Ueyama (@rui314) https://turingcomplete.fm/13 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) asmium — hikalium自作アセンブラ (1:20) Mach-Oオブジェクトファイルを自作アセンブラから出力するには (6:27) AppleがCPUをIntelからスイッチするという噂 (8:21) ラベルの後方参照がオブジェクトファイル内で解決されていない? (11:55) RISCプロセッサなら32ビットオフセットでジャンプできないのが普通 (16:30) リンカに手を入れてAndroid版Chromeのバイナリサイズを涙ぐましく削減する話 (20:42) Unixの共有ライブラリのシンボル解決のセマンティクス (24:01) ブルームフィルタというデータ構造 (27:22) オンディスクのハッシュテーブルを一個だけ作る (32:20) 文字列の末尾部分だけをマージするサイズ最適化 (33:40) x86機械語のエンコーディングが難しい (36:53) (アセンブリ言語ではなく)アセンブラそのものを書けないと負け? (40:33) Goのアセンブラ (41:59) GoはCライブラリを使わずシステムコールを自前で呼び出している (44:10) GoはほとんどライブラリもGo自体で書かれている (46:25) GoのWaitGroupのバグとマルチスレッドプログラミングの難しさ (49:14) ビット操作の楽しさ (54:11) 分岐なしで絶対値を求める (56:11) 掛け算と割り算は2ワードの結果を出力するのにC言語ではそれにアクセスできない (1:01:08) サイボウズ・ラボユース (1:05:21) nv — hikalium自作言語 (1:08:46) Intelも使っているXbyak(カイビャク) (1:14:46) インターンコンバージョン (1:14:54) コーディング
-
12. Unicode、絵文字、Androidのテキスト関連のハンドリング、無数の文字トリビア (のな)
01/04/2018 Duración: 01h18minAndroidのテキスト処理を担当しているのなさんと、UnicodeやUnicode絵文字、テキスト処理の複雑さ、文字トリビアなどについて話をしました。出演者: のな (@ttuusskk)、Rui Ueyama (@rui314) https://turingcomplete.fm/12 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) 自分の読めない言語のテキスト処理は大変 (1:28) MMDDYYYYとDDMMYYYYの違いによる国際化バグ (3:07) Left-to-right言語とright-to-left言語 (5:23) アラビア語と英語のハイフネーション (6:15) 日本語の禁則処理 (7:19) Android Oで絵文字の表示が最大3倍速くなった (9:12) 結合絵文字の規格が決まっていない状態で実装を書くのは大変 (12:23) 国旗の絵文字の仕組みと仕様バグ (14:49) ハンバーガー絵文字では肉の上にチーズが乗っているべきか (18:18) 絵文字はガラケー起源 (20:30) モヤイ像の絵文字はあるけどモアイ像の絵文字はない (23:42) ガラケーに存在したけどUnicodeに収録されなかった稀な絵文字 (24:52) 新元号の合成文字 (27:28) ひらがなやカタカナはもっと若いコードポイントに割り当ててくれればよかった (30:49) UTF-8は新世界のASCII (33:40) 英語はフォントの機能を比較的ふんだんに使う言語 (38:47) 汎用的な数式プロセッサをフォントだけで作ることができるかも? (40:40) Unicode規格書の紙バージョン (42:42) JISの幽霊文字 (43:41) 将棋の相手の駒の記号(上下逆の漢字)をUnicodeに追加したい (47:01) 100万文字は十分か (50:32) Unicodeの文字名称の規格バグ (52:12) Swiftは文字がgrapheme単位 (53:47) Goだとコードポイント単位 (55:21) ミャンマーのZawgyiフォントがUnicodeの既存の文字を勝手に使っている (57:50) 東アジアのコンピュータ用文字