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

自作OS(OS5)の紹介とユーザーランド周りの機能追加について - へにゃぺんて@日々勉強のまとめ
こちらの記事の続きで、自作OS(OS5)のアップデートについてです。


今回はファイルシステムでマルチブロックに対応しました。
これまで、ファイルシステムの仕様上、各ファイルには「ブロックサイズ(4KB)以下」の制限がありました。
マルチブロックに対応したので、今後、この制限は無くなります。


コミット数としては11コミットと、いつものアップデートに比べるとコミット数は少ないですが、
カーネル周りについては一段落ついたかなというとことで、この段階でリリースします。

続きを読む

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

コンテナ型仮想化であるDockerは、様々な名前空間の分離やcgroupなどのLinuxの機能を使用して実現されています。


ここでは、簡易的に機能を「ルートディレクトリとPID名前空間も分離されている」と限定し、シェル上で7つのコマンドでコンテナを立ち上げてみます。


最終的な目標は、立ち上げたコンテナ上でpsを実行し、以下のようにPIDが1から割り振られていることを確認することです。

bash-4.3# ps
  PID TTY          TIME CMD
    1 pts/1    00:00:00 bash
    7 pts/1    00:00:00 ps
bash-4.3#
続きを読む

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

LinuxカーネルにはCPUやメモリといったリソースをプロセス単位で制限できるcgroupという機能があります。


cgroupの使い方を紹介する多くの記事ではaptやyumでlibcgroupをインストールしていますが、
組み込みなどでは、apt/yumを使えず、ライブラリの追加が容易ではない環境もあります。


そこで、libcgroupを使わずにcgroupによるCPU割り当て制限を試してみました。

続きを読む

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 Reference Manual


今回は、PL011 UART向けにこれまでのUARTのプログラムを書き換え、
QEMU上で動作確認してみます。


なお、Raspberry Pi 3で64bitベアメタル(bare metal)プログラミングを試してみる
本シリーズの目次はコチラです。

続きを読む

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

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

続きを読む