2020-01-01から1年間の記事一覧
Raspberry Pi の GPIO2/3 に備わっているプルアップ抵抗はソフトウェアで無効化することができず、かつ抵抗値が小さいため、注意が必要だという話です。
Apple Silicon(M1)搭載のMac miniを購入し、Thunderbolt 3対応のアダプタを使ってSSDを増設してみました。 今回買ったアダプタは WL-UTE02、SSD は WD Blue SN550 2TBです。4 万円未満で 2TB の SSD を増設できてお得でした。 速度は書き込み 1,800MB/s、…
この記事は 自作OS Advent Calendar 2020 の 8 日目の記事です。 概要 Raspberry Pi 4 を買ってセットアップしたので,その過程を記録しました。 これから買う方の参考になれば幸いです。 この記事では OS のインストールと SSH で公開鍵認証を用いて接続す…
この記事は 自作OS Advent Calendar 2020 の 6 日目の記事です。 セキュリティ・キャンプ とは毎年夏に開催される,合宿形式の勉強会です。 情報セキュリティ分野で活躍する講師が受講生にみっちりと講義や演習を実施します。 2020 年は新型コロナウイルスの…
この記事は 自作OS Advent Calendar 2020 の2日目の記事です。 概要 uchan は東京工業大学で特任助教をしておりますが,なんと自作 OS の授業をさせていただけることになりました。 残念ながら今年度限りの開講ですが,なるべく楽しい授業を提供したいと思い…
この記事は 自作OS Advent Calendar 2020 の1日目の記事です。 概要 自作 OS である MikanOS 用の USB3.0 ホストコントローラドライバ(xHCI ドライバ)を開発する際に遭遇した様々な罠に遭遇しました。 罠の概要と解決した方法を集めて紹介します。 MikanOS…
MOVZX は,レジスタやメモリの値を,それよりビット数の大きいレジスタに 0 拡張しつつコピーする x86-64 の命令です。 その中の MOVZX r64, r/m8 の存在意義が分からなかったので,どなたかご存知の方は教えてください。
C++ の release sequence とはアトミック変数の読み書きに関するルールです。release sequence は release store を先頭とし,それに続く read-modify-write の列です。先頭の store,または後続の read-modify-write によって書き込まれた値を acquire load…
この記事は,マルチスレッドのプログラムでしばしば見る,そして発見が困難であるバグ「データ競合」と,それを見つけるのによく使われる「happens-before 関係」について解説します。 筆者は特に x86-64 アーキテクチャにおけるバグ検出に興味がありますの…
C++ の std::atomic がメモリオーダーの指定によってどう挙動が変わるかを調べました。 x86-64 アーキテクチャにおいて,アトミック変数の読み書きがどのような機械語になるかが主なテーマです。 (2020/06/15 筆者の知識がアップデートされましたので記事を…
新規にインストールした Ubuntu 20.04 上で Intel Pin 3.13 (March 25, 2020) が上手く動かなかったので原因究明したメモです。 make と g++ パッケージのみを導入した状態では /usr/bin/cc が存在せず,それが原因で Intel Pin ツールのビルドが上手くいっ…
ベクタークロック(vector clock)という名前は,クロック(時計)を並べたベクターというところからきています。 マルチスレッドプログラムの競合検査の分野で言うベクタークロックは,各スレッドの論理時刻を並べたものです。 uchan がベクタークロックを…
技術書典 応援祭 が 3 月 7 日に開始しましたね。 サークル単位の頒布物一覧を探しにくいようなので,サークル「bitnos」の頒布物をまとめておきます。 この記事を読む方は自作 OS に興味があると思うので,他サークルの自作 OS 関連物も後半にまとめていま…
OS 自作はとてもニッチな趣味ですが,ときどきやっている人を見かけます。 「OS を自作してみよう」と思うまでには,まずコンピュータに触れる経験が必要で,加えて OS の存在に気付く必要があるはずです。 業務命令で OS を自作するようなケースを除けば,O…
技術書オンリーの同人誌即売会「技術書典 応援祭」が,2020/03/07(土)からオンライン開催されます。 『OS 自作技術 ステップアップ問題集』と『マイクロカーネルの設計と実装』を頒布しますのでお知らせします。 頒布情報 技術書典 8 は開催中止です。 そ…