meiling

enroot

enrootのソースコードの解析 -create-

この記事ではコンテナ実行環境の一つである enroot のソースコード、特に今回は enroot create コマンドの動作を解析する。enroot create コマンドは最終的に squashfs 形式で保存されているファイルシステムイメージを指定されたディレクトリに展開する作業を行おう。そこに至るまでの動作を解説する。
Linux

三角関数の値の求め方 (|x|が小さい場合)

|x|が小さい場合はsin(x) ≒ xとして出力している。ではどのくらいの範囲であればこのように出力できるのか?本稿では仮数部がすべて一致するときのxの範囲(指数の範囲)をマクローリン展開の誤差項から評価して求めている。
Linux

三角関数の値の求め方

glibcにおける三角関数の計算方法は一通りではなく、入力値xの値の範囲により方法を変えている。基本的にはマクローリン展開で求めるが、適用範囲が限られる。そこでテーブル引きや関数式の性質を利用した変形などを駆使して値を求めている。
Linux

Pending update of “snap-store” snap・・・の止め方

Ubuntu Linuxを使用中、Pending update of "snap-store" snap・・・というメッセージが表示されることがある。対処法としてはsnap-storeというアプリケーションを終了してsnapを手動更新する。
Linux

vmstatでパフォーマンス測定をしよう

Linuxアプリケーションが使用するメモリ、CPUを測定するにはvmstatコマンドを使用するのが手っ取り早い。プロセスの起動前にvmstatコマンドを実行し、プロセス終了とともにvmstatコマンドの実行を止める。
smp

SMPの実装を調査する

SMP (Symmetric Multiprocessing) の実装は意外と資料にまとまっていない。LinuxもSMPに対応しているが、このソースコードを解読するのは骨が折れる。 MITはxv6という教育用のOSのソースを作成、公開し、Operation Systemuの講義資料として活用している。このソースを解読することにより、SMPの実装を調査することができる。
git

複数のコミットのメールアドレスを変更する

複数のコミットのメールアドレスを変更する需要はそれなりにある。これを行うためにはgit rebaseに--execオプションを付けて実行するテクニックが知られている。 この動作を理解するためにはgit rebaseの挙動をよく知っておく必要がある。
git

DETACHED HEAD is 何?

DETACHED HEADとはHEADが直接commitを参照している状態のことである。この状態でcommitすると、commitした内容が迷子になり、不都合である。 DETACHED HEADは改めてブランチを作成し、HEADがそのブランチをさすようにすることで解消できる。
git

リモートリポジトリのブランチを持ってきたい

リモートリポジトリからブランチをチェックアウトする場合はgit checkout <remote-branch-name> とする。正確に指定する場合は git checkout -b <local-branch-name> <remote>/<remote-branch-name> とする。
Linux

ターミナルマルチプレクサのススメ

ターミナルマルチプレクサを使うことにより、一つのターミナルで複数のプロセスをフォアグランド状態で立ち上げることができる。しかし、その真価はそれぞれのプロセスを実際のターミナルから切り離せることである。 本記事ではターミナルマルチプレクサの概要とその有用性について説明する。そして、その一つであるtmuxの使い方について説明する。