uchan note

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

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

若干釣りタイトルですが,私が「Rust にはない C++ の良さ」を募ったところ,12 個ほどの優れている点が報告されたので,まとめてみます.

背景

私は 2018/10/08 開催予定の技術書典5で,『C++でできる!OS自作入門』と題して,Clang+LLD で C++ を使って OS 開発する際の注意点とか C++ の活用例を解説する同人誌を書こうと思っています. その下調べもかねて,このようなツイートをしました.

続きを読む

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

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

フルスクラッチ OS を書こう!」の概要

フルスクラッチと言いつつキャンプの 3 日間(名目上は 5 日間だが,前後 1 日は作業できない)ではフルスクラッチで OS を作るのは難しいので, 小さな OS を作る,または改造するという方向で受講者とネタを考えました. 結果,2 人はそれぞれ次のネタをやることになりました.

  • 「はりぼて OS」にコマンドを増やす
  • xv6 を UEFI で起動する
続きを読む

「30 日でできる!OS 自作入門」のような段階的に進展するプログラムについての解説書の執筆を Git で支援する

プログラムについての解説書を Git を用いて執筆する方法の提案です.

まえがき

プログラミングに関する解説書には大きく分けて 2 つの系統があります. 1 つはテーマごとにサンプルプログラムを提示して解説するもの,もう 1 つは特定のプログラムの各部分について解説するものです. 後者の中でも,完成形を用いるものと,段階的に進展する各時点での断面(スナップショット)を解説するものがあります. この記事は,後者の執筆を Git で支援するというものです. この形態の書籍としては「30 日でできる!OS 自作入門」が有名でしょう. OS の作り方を 30 章に分け,各章で少しずつ OS を作り上げていきます.

続きを読む

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

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

概要

  • M.2 は「フォームファクタ」と言って,コネクタの物理的な形の規格名です.
  • PCIe と SATA はどちらもシリアル通信を用いる周辺機器のインターフェース規格です.
  • AHCI と NVMe はどちらもホストが SSD を制御するためのコントローラの規格です.

簡単にまとめると上記の通りです.以下,もう少し詳細に説明していきます.

続きを読む

OS自作入門の入門

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

続きを読む

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

2018 年の夏季 3 日間で集中して OS を開発するイベントのご紹介です。なんと参加費、交通費、宿泊費など無料なので、学生さんは奮ってご参加ください!

概要

オペレーティングシステム(OS)は IT システムを構成する重要な要素です。しかし OS の中身を知らなくてもアプリケーションを開発できるため、多くの人にとっては OS が具体的に何をするかは謎ですし、謎のままでそんなに困っていないかもしれません。

f:id:uchan_nos:20180426162030j:plain

しかし、性能を求めるソフトウェアシステムを構成したり、低レイヤ部分に原因がある問題を解析したりするためには OS についての深い知識が欠かせません。特にこのレイヤにセキュリティ脆弱性があると、単一のアプリーションにとどまらず、システム全体の安全を脅かします。2018 年頭から世間を賑わわせている Spectre & Meltdownはその代表例でしょう。多数の顧客が同一システムに載るクラウドサービスが全盛の現代では、低レイヤを深く知る重要性がより高まっていると言えます。

そこで、学生に OS についての知識を会得してもらうために、x86 CPU 向けの OS を集中的に開発する 「OS 開発ゼミ」を開催します。テーマは「フルスクラッチ OS を書こう!」「最先端 OS 談義」「Linux 開発者を目指そう!」の 3 つです。夏の 3 日間で OS 開発にチャレンジしてみませんか?それぞれのテーマを得意とする講師がみなさまをバックアップします。

もっと詳しく

OS 開発ゼミを講師自ら紹介する動画を公開しております.是非ご覧ください.

各テーマの紹介文は別記事 seccamp2018 を参照してください。

応募するには?

IPA の応募要項ページ からエントリーをお願いします。

基本情報

  • 開催日:2018/08/15 - 17
  • 場所:クロス・ウェーブ府中(東京都)
  • イベント:セキュリティキャンプ全国大会 2018
  • ゼミ:集中開発コース システムプログラミングトラック OS 開発ゼミ
  • 講師:粟本(@liva_jy)、武内(@satoru_takeuchi)、内田(@uchan_nos)
  • 対象者:2019/03/31 時点で 22 歳以下の生徒、学生
  • 選考:書類選考のうえ決定
  • 応募締め切り:2018/05/28
  • 参加費:無料(交通費、宿泊費、食費など主催者負担)

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

大人気の技術書オンリーの同人誌即売会技術書典 4」が、2018/04/22(日)に秋葉原 UDX で開かれます。

今回は「USB 3.0 ホストドライバ自作入門」を出しますので、そのお知らせです。

頒布情報

  • 日時 2018 年 4 月 22 日(日)
  • 場所 秋葉原 UDX アキバ・スクエア
  • ブース け 51「windhole」 windhole のサークルページ
  • 書名 USB 3.0 ホストドライバ自作入門
    • windhole ブースでは他にも Linux や自作 OS 系の低レイヤな同人誌を頒布しています。
  • ページ数 52(表紙含む)

f:id:uchan_nos:20180414175839j:plain:w150

続きを読む