uchan note

プログラミングや電子工作の話題を書きます

「asm volatile」におけるvolatileの効果

インラインアセンブラは低レイヤプログラミングをする人にとっては有名な機能ですが,私はなぜ「volatile」を付ける必要があるのかイマイチ分かりませんでした。いままで「volatile」を付けずとも意図通り動いていたからです。しかし今回,「volatile」を付けない場合に意図しない最適化をされてしまったのでここで紹介します。

続きを読む

FIFOバッファ

この記事はプログラミング,とりわけ自作OSに興味を持った計算機科学初心者の方に向け,FIFOバッファの紹介,および具体的な実装例を紹介するものです. FIFOバッファとは何か,自作OSでの応用例,ナイーブな実装例と性能を多少考慮した改良例を紹介します.

続きを読む

割り込み「ベクタ」と呼ぶ理由

割り込みハンドラへのポインタを配列状に並べたものを「割り込みベクタテーブル」と呼びます。英語ではInterrupt Vector Table。なぜ「ベクタ(ベクトル)」という語が使われるのか疑問に思い、ツイッターで聞いたりした結果、ベクタはポインタとほぼ同じ意味である、という結論になりました。

続きを読む

セキュリティキャンプ2019全国大会 OS開発ゼミ 紹介

このページはセキュリティキャンプ全国大会 2019 の集中開発コース「OS 開発ゼミ」の紹介ページです.

OS 開発ゼミ 基本情報

OS 開発ゼミの基本的な情報は以下の通りです。

  • イベント:セキュリティキャンプ全国大会 2019
  • コース:集中開発コース
  • トラック:システムプログラミングトラック
  • ゼミ:OS 開発ゼミ
  • 時間帯:3 日間連続(8/14 - 8/16)
  • 必要機材:PC、その他必要に応じて仕様書や参考書など
  • 事前学習:あり(詳しくは後述)
  • 講師:粟本さん,武内さん,西永さん,内田
続きを読む

【技術書典6】「Local APICタイマー入門」を出します(ダウンロード頒布有)

大人気の技術書オンリーの同人誌即売会技術書典 6」が、2019/04/14(日)に池袋サンシャインシティで開かれます。

今回は「Local APICタイマー入門」を出しますので、そのお知らせです。

頒布情報

  • 日時 2019 年 4 月 14 日(日)
  • 場所 池袋サンシャインシティ 2F 展示ホール D(文化会館ビル 2F)
  • ブース う38「bitnos」 bitnos のサークルページ
  • 書名 Local APICタイマー入門
    • bitnos ブースでは既刊 4 種類も展示します。
  • ページ数 44(表紙含む)

f:id:uchan_nos:20190327212524p:plain:w150

その他の新刊

う38 ではその他に委託の新刊を頒布する予定です。

  • PythonとColabでできる - ゼロから作るRAW現像
    • 著者 @MuneOiz
    • デジタルカメラのRAW画像についての解説をし、RAW画像をRGBカラー画像へと現像するソフトウェアを作ってしまう意欲作
  • もしかしたら後1冊、新刊が出るかも!?
続きを読む

C++ autoの使いどころ・使わない方が良い場面

この記事では C++11 から導入された型推論 auto の使いどころ,使うべきでない場面を紹介します. 可読性や保守性の高いプログラムにするために記事が役立てば幸いです. (筆者の考え方が偏っているかもしれません.是非,ご意見ご感想をお寄せください)

結論をまとめると次の通りです.

  • auto を使った方が良いのは
    • 右辺の式から型がはっきりわかる
    • 具体的な型があまり重要ではない
    • ラムダ式を受け取る
  • auto を使うべきでないのは
    • その場所でその型になっていることを保証する
    • 親クラスの参照として受け取る
    • その変数を後でオーバーロードされた関数に渡す
続きを読む