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

"Non-temporal" あえてキャッシュに入れない

8/29に開催されたカーネル読書会でARM 64bitの話をしてきました。同じスライドで話すのは3回目なのですが質問が多くでて今回が最も盛り上がりました。 (撮影:@hyoshiok さん) ARM 64bit has come! from Tetsuyuki Kobayashi 特にキャッシュの操作に関しての…

makeのときにCPU個数を自動で調べて-jオプションのジョブ数に指定する簡単な方法

makeコマンドで並列に処理するには、-jオプションでジョブ数を指定します。 $ make -j4 ジョブの個数にはビルドするホストのCPUの個数を指定したいので、スクリプトの中で定数で書いてしまうのはかっこ悪いです。(特に他の人に渡すようなビルドスクリプトで…

perfコマンドをソースからビルドする

linuxカーネルの計測ツールであるperfコマンドをソースからビルドしました。必要なライブラリを揃えるのにけっこう苦労したのでメモを残します。linux 3.16.1 debian jessie armel 準備 $ sudo apt-get install \ flex bison python pkg-config libaudit-dev…

clang/llvmをソースからビルドする

LLVM 3.5 がそろそろリリースされそうですが、それを待たずにソースコードからclang/llvmをビルドしてみました。 ビルドの方法は以下に書かれています。 Getting Started with the LLVM System — LLVM 9 documentation 本家のリポジトリはsvnなのですが、git…

クロスDockerのためのDockerfile

dockerhubにはx86, x86_64以外のアーキテクチャ用のコンテナもいくつかpushされています。これをqemuを利用したクロス環境のDockerとして動作させるためには、以下の準備が必要です。(1) binfmt_misc でクロスで動かしたいアーキテクチャのELFファイルの設定…

Aarch64で遊ぶ最も手軽な方法

Aarch64(ARM64)の実機はまだまだ入手は困難ですが、qemuを使ってAarch64のユーザーランドを動かすことは可能です。そしてDockerを利用すると手軽にAarch64の環境を試すことができます。コンパイラも動きます。 準備 Ubuntu 14.04 (x86_64)を使用しています。…

Dockerをソースからビルドしてみた

昨日に続いてDockerの話。Dockerに関しては驚くことばかりです。検索するとほぼ一年前に盛り上がっていたようですね。周回遅れです。DockerはGo言語で書かれていてソースコードがGithubで公開されています。 GitHub - moby/moby: Moby Project - a collabora…

Dockerでダウンロードしたファイルはどこに置かれるのか

昨日に続いてDockerをさわってみた話です。docker run ... で自動的にルートファイルシステムがダウンロードされますが、それらのファイルはいったいどこに置かれたのでしょうか? カレントディレクトリには何も新しいファイルはできていません。ダウンロー…

遅ればせならDockerを試してみた

先日のLinuxCon Japanでも話題になっていたDockerを遅ればせなら試してみた。 拍子抜けするほど簡単だった。誰かが用意してくれたものを使うだけなら。 Ubuntu 14.04 でのDockerのインストール $ sudo apt-get install docker.io これだけ。 busyboxの小さな…

LLVMLinuxをビルドしてみた

LLVMLinuxはLinux kernelをClang/LLVMでビルドできるようにしようというプロジェクトです。先日のELCでも紹介されていました。興味があったので、まずはビルドしてみました。基本的には以下のページの手順に従ってやっただけ。 Useful links | ClangBuiltLin…

「ARM 64bitがやってきた!」を発表してきました

"ARM 64bit has come!" というスライドを作ってテクニカルジャンボリーとカーネル/VM探検隊で発表してきました。ARMv8のaarch64に関する話です。 ARM 64bit has come! from Tetsuyuki Kobayashi テクニカルジャンボリーでのビデオ デモしたときのフォントが…

LinuxCon Japan 2014に参加しました

2014年5月20-22日にホテル椿山荘で開催されたLinuxCon Japan 2014に参加しました。LinuxCon Japan 2014 day 1 #linuxcon - Togetter LinuxCon Japan 2014 day 2 #linuxcon - Togetter LinuxCon Japan 2014 day 3 #linuxcon - Togetter今年はTizenやYoctoのト…

AndroidのARTでは実行中にプロファイリングを行ってそれに基づいて再コンパイルするようだ

DalvikVMのJIT vs ARTのAOT AndroidのDalvikVMではDEXコードをインタプリタで実行しつつ、プロファイリングを行っていて実行頻度の高い部分をJITコンパイルします。コンパイルはメソッドよりも小さな単位で行われ、コンパイルにかかる時間もメモリも小さいの…

Android AOSPの64bit化の現在の状況

2014/05/03(#yapf)横浜Android and モバイルOSプラットフォーム部第35回勉強会での@hidenorly さんの発表Investigation report on 64 bit support in Android Open Source Projectに触発されて、現在(2014/5/10)のAOSPでarm64とx86_64でビルドしてみました。…

Computer History Museumでは一番最初に日本のソロバンがでてきたぞ

シリコンバレーに行ったときには見に行くといいよと複数の人から薦められていた "Computer History Museum" に行ってきました。 Welcome | Computer History Museum 場所はMountain View。Caltrain/路面電車の駅から3kmくらいのところ。駅でタクシーを捕まえ…

ELC(Embedded Linux Conference)2014に行ってきました

2014/4/28 - 5/1 にアメリカのサンノゼで開催されたELC(Embedded Linux Conference)2014に行ってきました。前回のELC2013では発表したのですが今回は聴くだけです。 セッションのスケジュール Embedded Linux Conferenceのスライド Android Builders Summit…

Intel minnow board MAX

アメリカのSan Joneで開催されているEmbedded Linux Conferenceに来ています。そのIntelのブースで先日発表されたminnow board MAXが動いていました。IntelのキーノートスピーチではAndroidの64bit対応がうたわれ、ブースでは動いているものが見られると言っ…

ARM Linuxカーネルの中でNEONのSIMD命令を使用する方法

Linuxカーネルの中ではFPUを使った浮動小数点演算を一切行いません。カーネルのコードの中でFPUにアクセスするのはFPUレジスタの退避、復帰だけです。 NEONのSIMD命令はFPUレジスタを使用します。そのため以前はカーネルの中ではNEONのSIMD命令を使用するこ…

qemuでLinaroのaarch64のルートファイルシステムを動かす

LinaroのダウンロードサイトからOpenEmbeddedベースのaarch64用のルートファイルシステムを入手できます。これをqemuのユーザーモードエミュレーションを使って動かしてみます。 $ wget http://releases.linaro.org/14.04/openembedded/aarch64/linaro-image…

LLVMのバックエンドのaarch64とarm64の違い

Linaroのtoolchainのチームは週報をMLで公開しています。それを見ていたらLLVMのバックエンドのaarch64とarm64の違いについてとても簡潔な説明があったので紹介します。[ACTIVITY] Week 17LLVMのAArch64とARM64の比較のテストをしていると週報を書いたRenato…

Ubuntu 14.04でruby-2.1.1をソースからビルドする

Ubuntu 14.04でruby-2.1.1をソースからビルドして動かしてみようとしたのですが、ちょっと引っかかったことがあったのでここにメモします。本家のサイトからソースアーカイブをダウンロードしてきて、Ubuntu 14.04 (x86_64)でビルドしてみました。 $ tar xf …

Ubuntu 14.04でarm 64bit(aarch64)のコードをコンパイルして動かしてみる

先日リリースされたqemu 2.0でaarch64がサポートされました。これをソースからビルドして試そうと思ったのですが、実はUbuntu 14.04ではすでにqemu 2.0が入っていました。なので、以下のように簡単にセットアップできます。 $ sudo apt-get install qemu-use…

ARM 64bit でLLVMは見逃せない

iPhone5S, iPad Airで64bit ARMプロセッサをいち早く製品化したAppleですが、驚きのニュースがありました。AppleはOS X, iOSのコンパイラツールチェインをgccからclang/LLVMに移行しています。その64bit ARM向けのバックエンドをLLVMのコミュニティに公開し…