uchan note

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

seccamp2018

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

OS 開発ゼミ 基本情報

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

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

x86-64 モードのプログラミングではスタックのアライメントに気を付けよう

x86-64 モードというのは x86 系 CPU の動作モードの一つです.64 ビットモードとかロングモードと呼ばれることもあります. x86-64 モードではページングが必須だったり,セグメント CS や DS に設定するベースアドレスやリミットが無視されるなど,CPU 自体の制約事項もあります. それ以外に,x86-64 モードでよく使われる ABI による制約もあり,ハマりやすい部分でもあるので本記事で説明します.

続きを読む

How to reset NVRAM of MinnowBoard Turbot

This article expresses how to reset a NVRAM of a MinnowBoard Turbot. MinnowBoard Turbot is a x86_64 board for embedded use.

Why this article is useful

Enabling fast boot in BIOS setup utility will block you to enter to the utility again. You can re-enter to it by resetting NVRAM on the board.

How to reset NVRAM

0. Prerequisite

You'll need a jumper connector to short-circuit two pins.

f:id:uchan_nos:20180109074238j:plain

1. Short-circuit two J7 pins

J7 (Jumper 7) pins are the upper right of the board.

f:id:uchan_nos:20180109074002j:plain

Connect two pins using a jumper connector.

f:id:uchan_nos:20180109074131j:plain

2. Boot up

Boot the board up and hit DELETE key repeatedly. Then your BIOS settings are reset and you should be able to get into BIOS setup utility.

3. Finish

Shut down the board and remove the jumper connector.

OS 自作に便利な C++ の機能 10 選(後編)

自作 OS Advent Calendar 2017 11 日目の記事です(盛大に遅刻しました). 1 日目の記事 に引き続き,OS を書く際に便利な C++ の機能を紹介していきます.

続きを読む

レガシー BIOS が 2020 年で消えたあとの世界

11 月に入って,Intel が 2020 年までにレガシー BIOS サポートを完全に消そうとしているというニュースが飛び込んできました.

www.itmedia.co.jp

OS を自作する場合はいまだに BIOS に頼った起動コードを書くことが多いと思います. このニュースが意味する正確なところを少し解説した後,レガシー BIOS がなくなった後の世界を自作 OS の視点から考えてみます.

自作 OS Advent Calendar 2017 5 日目の記事です.

続きを読む

mdadm の write-intent bitmap と bad block log を競合させてみる

本記事は Linux Advent Calendar 2017 の 4 日目の記事です.

概要

Linux のソフトウェア RAID の機能を管理するための mdadm コマンドにまつわるバグの再現実験を行います. そのバグとは,次の記事で紹介されている「バグ 1」のことです.

blog.cybozu.io

続きを読む