2016-01-01から1年間の記事一覧

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)プログラミングを試してみる 本シリーズの目次はコチラです。

ラズパイ3でベアメタル - その3:シリアル通信(UART)でデータ送信(割り込みなし)

今回は、UARTを使用してシリアル通信で「ラズパイ3からPCへデータ送信」を作ってみます。 まずは割り込みは使用せずに作ってみます。 なお、Raspberry Pi 3で64bitベアメタル(bare metal)プログラミングを試してみる 本シリーズの目次はコチラです。

ラズパイ3でベアメタル - その2:GPIO制御

「その1:何もしない無限ループプログラム」からの続きです。 今回はGPIOのあるピンのHigh/Lowを制御するところまでをまとめてみます。 なお、Raspberry Pi 3で64bitベアメタル(bare metal)プログラミングを試してみる 本シリーズの目次はコチラです。

ラズパイ3でベアメタル - その1:何もしない無限ループプログラム

ラズパイ3を買ってみました。 今回はベアメタルプログラミングで最も簡単な「何もしない無限ループ」のプログラムを作ってみるところまでを、 自分の経験のメモとしてまとめてみました。 なお、Raspberry Pi 3で64bitベアメタル(bare metal)プログラミングを…

近況報告: OS5がGoogle Chromeで動作!・4/8勉強会資料公開しました

OS5

OS5自体のアップデートではないのですが、OS5に関する近況報告です。 OS5がGoogle Chromeで動作します PNaCL QEMU[1]上でOS5が動作することを確認しました。 (IdleTime管理人様、ご連絡ありがとうございます)[1]: IdleTime様によるPNaClを使用したGoogle Chr…

Linux 4.6-rc1がリリースされました

旧聞ですが、ESTで3/26の19時半頃、 日本で3/27の9時半頃にLinux 4.6-rc1がリリースされました。 Linux-Kernel Archive: Linux 4.6-rc1 かなり大きなマージウィンドウとなりそうで、1日早くクローズしたとのことです。LKMLをちゃんと追っているわけでもなく…

4/8(金)に北海道札幌市内の勉強会で発表します

タイトル通りの単なるお知らせですが、 自作OS(OS5)も少なくともカーネル部分については一通りの機能が(一応、)そろったかなと思い、 北海道札幌市内で何度か参加させてもらっている「大人の放課後シリーズ」勉強会で相談してみたところ、 発表させてもらえ…

Linux 4.5がリリースされました

やや旧聞ですが、 リーナスのロサンゼルス時間では3/13(日)の22時頃、 日本時間では3/14(月)の14時頃にLinux 4.5がリリースされました。 LKMLでの告知内容を要約すると以下のとおりかと思います。 rc8は実施せず、4.5をリリースすることに決めた 問題点もあ…

Linux 4.5-rc7(最後のrc)がリリースされました

リーナスのロサンゼルス時間で昨日(3/6)の15時頃、 日本時間で今日(3/7)の朝8時頃にLinux 4.5-rc7がリリースされました。 前回のリリースでは「rc7が落ち着いてこなければ、rc8のリリースもあり得る」といったことが書かれていましたが、 どうも落ち着いてき…

Raspbian Jessie LiteイメージからOS構築(日本語環境・X Window System等)

2週間ほど前にRaspberry Pi 2を買いました。 Raspberry Pi 3がつい先日リリースされ、買うやいなや時代遅れになった感じがしますが、 ちょこちょこと、いじってみています。 まずは、microSDにOSインストールということで、 NOOBSといったすごく便利なものも…

Linux 4.5-rc6がリリースされました

リーナスのロサンゼルス時間で昨日(2/28)の朝9時、日本時間では今日(2/29)の午前2時に Linux 4.5-rc6がリリースされました。 https://lkml.org/lkml/2016/2/28/207 いつも通り、リーナスのアナウンスメールを翻訳してみました。 なお、要約すると以下のとお…

AVRマイコンで電卓もどきを作ってます(SC1602 LCDとキーマトリクスモジュール)

まだ掛け算しかできないので、「作りました」ではなく、「作ってます」です。。 ATmega168のAVRマイコンと、電子部品屋でよく見かける、 SC1602互換のキャラクタLCD 今回使用したのはこちら '0'〜'9'と'*'、'#'のキーマトリクスモジュール を使用した電卓も…

getcpu_cacheシステムコール追加パッチを試してみました(後編: サンプルを動かしてみた)

昨日(2/24)の記事の続きです。 2/24に、LKMLで流れていた以下のパッチについて、 http://article.gmane.org/gmane.linux.kernel/2159632 昨日(2/24)は、以下の1.と2.まで紹介しました。 1. getcpu_cache()について、主にメール本文やコミットメッセージから…

getcpu_cacheシステムコール追加パッチを試してみました(前編: pwclientでパッチ適用まで)

今日(2/24)、LKMLで以下のパッチが流れていました。 http://article.gmane.org/gmane.linux.kernel/2159632 「getcpu_cache()システムコールを追加する」パッチで、Linux 4.6に向けたものなので、 もう少し先のパッチです(現在は4.5のrc期間)。 まだ、パッチ…

Linux 4.5-rc5がリリースされました

リーナスのロサンゼルス時間では2/20の14時頃、日本時間では今日2/21の朝7時頃に、 Linux 4.5-rc5がリリースされました。 https://lkml.org/lkml/2016/2/20/168 要約すると、以下のとおりかと思います。 通常どおり VM THP(transparent huge-page) cleanupが…

Linux 4.5-rc4がリリースされました

日本時間で今日、ロサンゼルスでは2/14バレンタインに、 Linux 4.5-rc4がリリースされました。 http://article.gmane.org/gmane.linux.kernel/2151840 ※ lkml.orgでメールが見れない(?) パターン化してきてしまっていますが、 要約すると以下のとおりかと思…

Debian Jessie上にAVRマイコン開発環境構築〜LEDチカチカまで

何年かぶりに、AVRマイコンをいじってみようかと思い、 以前はWindows上で開発していたのですが、Debianでもできる様子なので、試してみました。 ※ パスコンは手元になかったので繋いでいないです(買っておいたはずなのに。。。) そもそも、Vcc 3.0Vの低電圧…

Linux 4.5-rc3がリリースされました

旧聞ですが、日本時間で2/8の朝9時(Linusのロサンゼルス時間では2/7の16時)に、 Linux 4.5-rc3がリリースされました。 LKML: Linus Torvalds: Linux 4.5-rc3 また例によって、LKMLでのアナウンスを訳してみました。 要約すると、以下のようなところかと思い…

自作OSにファイルシステム・アプリローダを追加しました

システムコールと特権管理などを追加しました - へにゃぺんて@日々勉強のまとめ こちらの記事の続きで、自作OS(仮称:OS5)の記事です。 自作OSについては、以下のページにこれまでの記事や成果物のまとめを載せています。 http://funlinux.org/os5/ 今回は以…

Linux 4.5-rc2がリリースされました

日本時間で今日(2/1)の朝11時にLinux 4.5-rc2がリリースされました。 (Linusのロサンゼルスの時間では1/31の18時)また例によって、以下のLinusのLKMLのアナウンスを訳してみました。 LKML: Linus Torvalds: Linux 4.5-rc2 要約すると、 プルリクエストの数に…

Linux 4.5-rc1 のLinus発表を訳してみました

Linux 4.5-rc1が本日(1/25)、LKMLで発表されました。 今回は、自分の英語の勉強の意味も兼ねて、LinusのLKMLでの発表を訳してみました。 要約すると、以下のとおりかと思います。 マージウィンドウが終了したので、テストしてほしい 特に変わったところのな…

Linuxカーネル4.4をビルド・動作確認と差分について(ゴホッ、android-x86、ゴホッのx86-32 sysenter ABI誤用について)

昨日、Linuxカーネル4.4がリリースされました。 Linux-Kernel Archive: Linux 4.4 Linuxカーネル4.4はLTS(Long Term Support)で、今後2年間サポートされます。 https://plus.google.com/+gregkroahhartman/posts/WMEWz4noxFm いつもの確認事項 ビルド〜起動…

自作OSの成果物まとめページを作成しました

自作OSについて、成果物をまとめておこうと思い、 以下のページを作成してみました。 http://funlinux.org/os5/ 上記のページには以下の成果物をまとめています。 ビルド結果の生成物(FDイメージ) ソースコード(GitHubへのリンク) ブログ記事(はてなダイアリ…