技術書典6で自作NICドライバ本「ぼくらのイーサネットフレーム!」出します!

4/14(日)に 池袋サンシャインシティ2F 展示ホールD(文化会館ビル2F) で開催される 「技術書典6」に「へにゃぺんて(配置:う37)」で出展します! サークルページ - へにゃぺんて(配置:う37) 新刊については後述(「続きを読む」から) 低レイヤブースまとめ 前…

はてなブログへ移行しました

長らく使ってきた「はてなダイアリー」が 1月末に記事の更新を停止し、 2月末には全機能を停止するとのことで、 ついに「はてなブログ」へ移行しました。 リダイレクト設定を行っているので、 はてなダイアリーの頃のURLは、こちらのはてなブログへ転送され…

コミックマーケット95で「システムコールの薄い本」出します!

この記事は自作OS Advent Calendar 2018の10日目の記事です。(宣伝ですみません。。)次の冬コミ(コミックマーケット95)の2日目(12/30(日))に東テ55aにて、サークル「へにゃぺんて」で出展します。 へにゃぺんて | Comike Web Catalog 新刊は「システムコール…

OSCへ参加/出展して知った15の事

OSC

この記事はオープンソースカンファレンス Advent Calendar 2018の9日目の記事です。 11/12の意見交換会で「アドベントカレンダーやってみる」には私も「いいね」と言っておきながら、実際に始まっていたことに昨日の小江戸らぐで知りました。ごめんなさい。…

技術書典5で「遺伝的MBR本」出します!

10/8(月・祝)に開催される技術書典5に、 サークル「へにゃぺんて(配置: お07)」で出展します!新刊は「自作OS自動化のPoCとしての遺伝的MBR」です。 「自作OS自動化」のPoC(概念実証)として、 BIOSにより最初に実行される512バイトのMBR(マスタブートレコー…

コミックマーケット94で「HPETでスケジューラ作る本」出します!

次の夏コミ(コミックマーケット94)の1日目(8/10(金))に西め42bにて、サークル「へにゃぺんて」で出展します。 へにゃぺんて | Comike Web Catalog 新刊はx86_64自作OSのパート2(「フルスクラッチで作る!」シリーズとしては4冊目)で、 「ACPIでHPET取得してス…

/dev/kvmを直接叩く - BIOSを動かす

前回の記事で/dev/kvmへioctlを発行することでVMを作成し、その上で"Hello KVM!"をシリアル送信するプログラムを動作させてみました。 次はx86 PCにおいて電源を入れてから一番最初に実行されるソフトウェアとしてBIOSを動作させてみます。

/dev/kvmを直接叩く - Hello KVM!

LinuxカーネルにはKernel-based Virtual Machine(KVM)という機能があり、その名の通り仮想マシンを実現するための機能を提供しています。 KVMは/dev/kvmというデバイスファイルでカーネルから提供されています。この記事では/dev/kvmを直接叩いてVMを作成し…

技術書典4でx86_64自作OS本出します!

技術書典4へ、サークル名"へにゃぺんて"、配置場所"け52"で↑の本を出します! 「フルスクラッチで作る!」シリーズの第3弾で、前著までの内容で作ったブートローダーを使い、その上で動くカーネルとアプリを作る本です。

(自分メモ)Meltdown・SpectreのGoogle Project Zeroの報告内容について

Meltdown・Spectreについて報告されている Project Zero: Reading privileged memory with a side-channel の内容について、自分なりに理解した自分メモを記録として残しておきます。

Debian Jessie以前で最近のLinuxカーネルをmake-kpkgする際に"missing REPORTING-BUGS"に陥った際の対処

本記事はDebian/Ubuntu Advent Calendar 2017の12/17(日)向けに書いてみた小ネタです。 Debian Jessieを今だに抜け出せず、使い続けているのもアレなのですが、Jessieでmake-kpkgで最近のLinuxカーネルをビルドしようとすると"missing REPORTING-BUGS"という…

QEMU/実機共に起動できるDebianをUSBフラッシュメモリに構築する

本記事は少し早いですがDebian/Ubuntu Advent Calendar 2017の12/12(火)向けに書いた記事です。Debian関係で最近やったことを記事にしてみます。 Linuxカーネルのブロックレイヤー向けドライバを動かしてみる時などに、Linuxカーネルごと別の環境が欲しくな…

QEMU上で'_'(アンダーバー)を入力できない問題の解決法(debian packageへのコード修正・再ビルド)

少し早いですが、本記事はDebian/Ubuntu Advent Calendar 2017の12/7(木)の記事として書いてみたものです。 qemu-system-x86_64(qemu-system-x86パッケージ、バージョン:1:2.1+dfsg-12+deb8u6)を使用していて、ゲスト上で'_'(アンダーバー)を入力できないと…

自作OS(OS5)のUEFI+x86_64対応でやったこと/やっていること(そして-fPIEの謎挙動)

少し早いですが、この記事は「自作OS Advent Calendar 2017」の12/3(日)の記事です。 自作OS(OS5、GitHub)の「UEFI + x86_64」対応で やったこと(masterブランチへマージ済の内容) やっていること(作業ブランチで作業中の内容)、そして-fPIEの謎挙動 を紹介…

技術書典3でフルスクラッチのUEFIベアメタルプログラミング本 パート2出します!

技術書典3へ、サークル名"へにゃぺんて"、配置場所"か13"で↑の本を出します! (相変わらず、PC画面の写真が表紙です。) EDK2やgnu-efiといった開発環境やツールチェインを使わず、 エディタとコンパイラのみのフルスクラッチでUEFIファームウェアを叩く本の…

Linux 4.12: livepatch: 適用したライブパッチを無効化する機能の動作確認

久々のLinuxの記事です。一つ前のリリースですが、Linux 4.12でライブパッチ(livepatch)へ機能追加がなされ、 適用したライブパッチを無効化することができるようになりました。サンプルに記載のとおりですが、試してみたので記事にしてみます。 なお、ライ…

夏コミ(C92)でフルスクラッチのUEFIベアメタルプログラミング本出します!

次の夏コミ(C92)の1日目(8/11)に"東た27b"で↑の本を出します! (PC画面の写真が表紙です。) EDK2やgnu-efiといった開発環境やツールチェインを使わず、 エディタとコンパイラのみのフルスクラッチでUEFIファームウェアを叩く方法を紹介し、 OSっぽいものを作…

GPD WINへDebian 8(Jessie)をインストール

GPD WINを買いました。 Debian 8(Jessie)をインストールしてみたので、やったことなどをメモしておきます。

UEFIベアメタルプログラミング - マルチコアを制御する

UEFIベアメタルプログラミング - Hello UEFI!(ベアメタルプログラミングの流れについて) - へにゃぺんて@日々勉強のまとめ こちらの記事の続きです。UEFIでマルチコアを扱う方法が分かったので、 この記事ではその方法をまとめてみます。

UEFIベアメタルプログラミング - Hello UEFI!(ベアメタルプログラミングの流れについて)

わんくま同盟 札幌勉強会 #1やOSC 2017 Tokyo/SpringのLTでは発表していましたが、 最近、自作OSをUEFI+x86_64でやるために、まずはUEFIの勉強をしています。 UEFIの勉強として、UEFIの機能を呼び出すプログラム(UEFIアプリケーション)を、 EDK2やgnu-efiと…

技術書典2で同人誌を出します!

お知らせです。 4/9(日)に秋葉原UDX 2Fのアキバ・スクエアで開催される 「技術書典2」という技術書限定の同人誌即売会で、 OS5の同人誌を出します!配置は「え-15」で、 サークル紹介ページはこちらです。

ファイルシステムでマルチブロックに対応しました

自作OS(OS5)の紹介とユーザーランド周りの機能追加について - へにゃぺんて@日々勉強のまとめ こちらの記事の続きで、自作OS(OS5)のアップデートについてです。 今回はファイルシステムでマルチブロックに対応しました。 これまで、ファイルシステムの仕様…

chrootとunshareを使い、シェル上でコマンド7つで簡易コンテナ

コンテナ型仮想化であるDockerは、様々な名前空間の分離やcgroupなどのLinuxの機能を使用して実現されています。 ここでは、簡易的に機能を「ルートディレクトリとPID名前空間も分離されている」と限定し、シェル上で7つのコマンドでコンテナを立ち上げてみ…

自作OS(OS5)の紹介とユーザーランド周りの機能追加について

本記事は、「自作OS Advent Calendar 2016 - Adventar」の12/13(火)の記事です。 自作OS(OS5)について改めての紹介と、今回のリリースで追加した機能の紹介です。

libcgroup無しで、cgroupによるプロセスへのCPU割り当て制限

LinuxカーネルにはCPUやメモリといったリソースをプロセス単位で制限できるcgroupという機能があります。 cgroupの使い方を紹介する多くの記事ではaptやyumでlibcgroupをインストールしていますが、 組み込みなどでは、apt/yumを使えず、ライブラリの追加が…

out of treeでライブパッチを試す、/dev/nullへのパッチ紹介

Linuxカーネルのバージョン4.0から追加されたライブパッチ(Livepatch)機能を今更ながら、試してみました。 (Linux4.0の記事でライブパッチに触れていますが、32bitのマシンしか無く、試せなかったんですね。。) なお、本記事は「CLR/H #clrh101」のLTで発表…

ラズパイ3でベアメタル - QEMUでUART(PL011)

「キー入力と文字の画面表示」くらいはRaspberry Pi 3実機を使わずに、 QEMUで動作確認できると便利です。 現状のQEMU(Debian JessieでAPTでインストールできるもの)でも、 UARTでPL011(*1)が利用可能です。 (*1): PrimeCell UART(PL011) Technical Referenc…

Raspberry Pi 3で64bitベアメタル(bare metal)プログラミング

ラズパイ3で64bitベアメタルプログラミングを試してみるシリーズの目次ページです。 (ブログの使い方として間違っているのかも知れませんが。。。)

ラズパイ3でベアメタル - U-Bootでネットワーク起動

ラズパイ3での動作確認のために毎回microSDカードを書き換えるのは面倒なので、 U-Bootを使用してネットワーク経由でkernel8.imgをRAMの0x80000以降にダウンロードし、起動してみます。 なお、Raspberry Pi 3で64bitベアメタル(bare metal)プログラミングを…

ラズパイ3でベアメタル - その4:シリアル通信(UART)でエコーバック(割り込みなし)

今回は、前回のプログラムに文字受信を追加して、 PCからラズパイ3へ送信した文字をそのまま送り返す(エコーバック) を作ってみます。 なお、Raspberry Pi 3で64bitベアメタル(bare metal)プログラミングを試してみる 本シリーズの目次はコチラです。