uchan note

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

自作OS

QEMUのトレース機能でOSのデバッグを支援する

この記事では QEMU が持つ「トレース」および DPRINTF マクロの機能を有効化して OS 開発のデバッグに役立てる方法を説明します. 自作 OS アドベントカレンダー 2018 の 1 日目の記事です. OS,特にハードウェアを制御するドライバの開発はなかなか苦労す…

【技術書典5】「C++でできる!OS自作入門」を出します(ダウンロード頒布有)

大人気の技術書オンリーの同人誌即売会「技術書典 5」が、2018/10/08(月・祝)に池袋サンシャインシティで開かれます。 秋葉原 UDX ではないのでご注意を! 今回は「C++でできる!OS自作入門」を出しますので、そのお知らせです。 頒布情報 日時 2018 年 10…

Rust より C++ が優れている 12 のポイント

若干釣りタイトルですが,私が「Rust にはない C++ の良さ」を募ったところ,12 個ほどの優れている点が報告されたので,まとめてみます. 背景 私は 2018/10/08 開催予定の技術書典5で,『C++でできる!OS自作入門』と題して,Clang+LLD で C++ を使って OS…

セキュリティキャンプ 2018「フルスクラッチ OS を書こう!」テーマまとめ

セキュリティキャンプ 2018 全国大会の集中開発コースの講師をやったので報告です. 「フルスクラッチ OS を書こう!」というテーマで,自作 OS を一から作るお手伝いをしました. 「フルスクラッチ OS を書こう!」の概要 フルスクラッチと言いつつキャンプ…

SSD 周りの用語まとめ(M.2,PCIe,SATA,AHCI,NVMe)

SSD 関連の用語で違いがよく分からなかったりしませんか? 特に,M.2,PCIe(PCI Express),SATA(Serial ATA),AHCI,NVMe(NVM Express)などの用語が飛び交っていて,筆者も少しあいまいだったので,今回調査してまとめてみました. 概要 M.2 は「フォ…

OS自作入門の入門

この記事では OS 自作の最初の一歩の部分を紹介します.OS 開発を始める前に雰囲気をつかみたい,という方に向けて書いています. 「セキュリティキャンプ 2018」の「OS 開発ゼミ・フルスクラッチ OS を書こう!」の補足資料でもあります.

OS を作る!? 夏の集中開発ゼミ開催!

2018 年の夏季 3 日間で集中して OS を開発するイベントのご紹介です。なんと参加費、交通費、宿泊費など無料なので、学生さんは奮ってご参加ください! 概要 オペレーティングシステム(OS)は IT システムを構成する重要な要素です。しかし OS の中身を知…

【技術書典4】USB 3.0 ホストドライバ自作入門を出します(ダウンロード頒布有)

大人気の技術書オンリーの同人誌即売会「技術書典 4」が、2018/04/22(日)に秋葉原 UDX で開かれます。 今回は「USB 3.0 ホストドライバ自作入門」を出しますので、そのお知らせです。 頒布情報 日時 2018 年 4 月 22 日(日) 場所 秋葉原 UDX アキバ・ス…

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

x86-64 モードというのは x86 系 CPU の動作モードの一つです.64 ビットモードとかロングモードと呼ばれることもあります. x86-64 モードではページングが必須だったり,セグメント CS や DS に設定するベースアドレスやリミットが無視されるなど,CPU 自…

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

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

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

11 月に入って,Intel が 2020 年までにレガシー BIOS サポートを完全に消そうとしているというニュースが飛び込んできました. www.itmedia.co.jp OS を自作する場合はいまだに BIOS に頼った起動コードを書くことが多いと思います. このニュースが意味す…

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

自作 OS Advent Calendar 2017 1 日目の記事です. 筆者が大好きな C++ の機能の中で,OS を書く際に便利なもの 10 個を紹介する予定です.

UEFI + iPXE で自作 OS をネットワーク起動する

概要 開発マシン上に置いた自作 OS のカーネルを,ネットワーク経由でターゲットマシンに読み込ませ,起動させるやり方についての記事です. ディスクイメージをネットワークブートする - Raphine Project の記事を大いに参考にしました.Raphine Project の…

【技術書典3】システムプログラミングハンドブックを出します(ダウンロード販売有)

大人気の技術書オンリーの同人誌即売会「技術書典3」が、10/22(日)に秋葉原 UDX で開かれます。 前回の技術書典2ではLinuxカーネルモジュール自作入門を出しました。 今回は「システムプログラミングハンドブック」を出しますので、そのお知らせです。 頒…

Newlibビルドメモ

Newlibをclangを使って自作OS向けにビルドしたメモ 環境:Ubuntu 16.04、clang 3.8 Newlibバージョン:d6cac3e1da1a117f8a93b91371f3f0a5c071219f Newlibはなぜか、host=targetでconfigureしてしまうと何もビルドが走らない。 たとえホスト環境と同じ環境で…

自作OS Advent Calendar 2016 目次

これは 自作 OS Advent Calendar 2016 の 25 日目の記事です。 1 日目から 24 日目までの記事をまとめた目次になっています。 それぞれの記事のURLの後に書いてある一言紹介は、uchanによるものです。 記事の著者さんに確認を取っておらず、もしかしたら誤っ…

はりぼてOSでELFなアプリを起動する

これは 自作 OS Advent Calendar 2016 の 18 日目の記事です。 概要 『30 日でできる!OS 自作入門』 の「はりぼて OS」が対応している実行可能形式は HRB 形式です。 HRB という名の通り「はりぼて OS」独自の形式で、.text、.data、.bss セクションに相当…

osdev-jp という自作 OS のコミュニティを作りました

これは 自作 OS Advent Calendar 2016 の初日の記事です。 自作 OS Advent Calendar といいつつ、初日は技術的なことは書かずにコミュニティの紹介をします。期待してくださった方にはすみません(^^;) 自作 OS コミュニティの昔と今 私が自作 OS というもの…