Post

コンピューターアーキテクチャ

2020-08-25 21:54:32

リトルエンディアン・ビッグエンディアン・ミドルエンディアン・バイエンディアンの違いについて

概要リトルエンディアンとビッグエンディアンの違いについてまとめる。 エンディアンとは 複数のバイトの並びの方式をエンディアン、またはバイトオーダーと呼ぶ データをメモリ上にロードするときの配置の仕方  エンディアンはCPUやプロトコル、OSによってそれぞれ決まっている 異なるシステム間やネットワーク間でデータをやりとりする際にエンディアンによる問題が発生しやすい ex. バイナリを解析したいときなどエンディアン変換が必要となる ビッグエンディアン メモリの下位アドレスから順番に、データの上位バイトから下位バイトの順で配置していく方式 ex. 16進数 00 01 02 03 → 00 0...

コンピューターアーキテクチャ

メモリー

2020-08-24 22:37:03

孤児プロセスとゾンビプロセスの違い

概要Dockerを触っていたらorphan(孤児の意)というプロセスの存在を知ったのでゾンビプロセスとの違いを調べてみた。 ゾンビプロセスとは 処理が終了した子プロセス プロセステーブルに残った状態で親プロセスのwaitを待つ システムリソースは使用しないが、PIDは保持される ゾンビプロセスが大量に増えると、使用可能なPIDが減り、他のプロセスを起動できなくなる ゾンビプロセスの確認方法 ps auxでstatがZ、末尾がdefunctのものがゾンビプロセス ps -ef | grep defunctでゾンビプロセスだけ出力 ゾンビプロセスのkill 親プロセスをkillする 孤児...

コンピューターアーキテクチャ

UNIX プロセス

2019-01-22 23:04:43

grep入門

概要grep雰囲気で使っているマンだったのでとざっくり調べてみた。l 基本grep 検索正規表現 ファイル名 ワイルドカードが使えるので、例えばカレントディレクトリ内の全ファイルを対象とした場合は、 grep "foo" ./* といった具合にできる。 カレントディレクトリ以下のディレクトリも対象にしたい場合は、-rオプションを使う。 grep -r "foo" ./* オプションよく使いそうなものだけピックアップした。 -i 大文字・小文字を区別しない -v 一致しないものを対象にする -n 検索結果で行番号を表示 -l 検索結果でファイル名を表...

コンピューターアーキテクチャ

Linux grep

2018-11-30 17:21:19

メモリ管理に関する用語まとめ

概要試して理解 Linuxの仕組みのメモリ管理の章を読んでいて理解の乏しい単語があったのでいくつかピックアップしてまとめる。 OOM Out of memory システムが物理メモリと仮想メモリを使い切ったことにより、新規にメモリを確保できない状態 OOM Killer(Out of Memory Killer) OOMのときにプロセスを強制終了させることで空きメモリーを確保するLinuxカーネルの仕組み 仮想記憶 OSなどが物理メモリを主記憶装置に見えるように仮想化させたメモリ 物理メモリ上のバラバラのアドレスを連番でのアドレスとして扱えるようにしたもの ハードディスク上の一部の領域を...

コンピューターアーキテクチャ

Linux メモリー

2018-11-27 16:01:41

2進数、10進数、16進数の変換について

概要2進数、10進数、16進数をそれぞれ変換するための計算方法についてまとめる。 重みとは計算する前の前提として、重みについて理解する。 重みとはそれぞれの桁を表す数のこと。 ex. 10進数1234 10^04 = 410^13 = 3010^22 - 20010^31 = 1000 sum 1234 10^0、10^1、10*2...が重み。 ex. 2進数11012^01 = 12^10 = 02^21 = 42^31 = 8 sum 13 2^0、2^1、2^2...が重み。 基数とは2進数なら2、10進数なら10、16進数なら16。 2進数から10進数重みとそれぞれの桁...

コンピューターアーキテクチャ

基数変換 離散数学

2018-07-19 12:56:12

Linuxのパーミッションの読み方と指定方法について

概要Linuxのパーミッションについてまとめる パーミッションの読み方ファイル種別最初の1文字は、ファイル種別を表している。 ファイルd ディレクトリl シンボリックリンク 以降3文字単位でファイルのオーナー別に権限を表している。 2~4文字目 ユーザー ファイルの所有者に対する権限5~7文字目 グループ ファイルの所有グループに対する権限8~10文字目 その他 その他に対する権限 権限の種類権限の種類は以下の3つある。 r 読み取りw 書き込みx 実行 ファイルとディレクトリのどちらかによって意味合いが変わるので注意。 ファイルの場合r 読み取り ファイルの内容を読み出すこと...

コンピューターアーキテクチャ

Linux パーミッション

2018-07-08 22:12:47

Unixコマンドメモ

概要Unixコマンドのメモ。 jqJSON形式のデータを加工するコマンド。 JSONのPretty Printecho '[{"name": "Tom", "age": 20}}]' | jq . Pretty Print以外にもオブジェクトからプロパティを指定してデータを取り出したり、オブジェクトの長さを取得したり、色々な使い方がある。 tee標準入力を標準出力とファイルの両方に出力する。sudoが使える。オプションなしで上書き、オプション-aで追記。 echo 'hello world' | sud...

コンピューターアーキテクチャ

unixコマンド jq tee

2018-06-25 01:20:02

プロセスとスレッドの違い

概要プロセスとスレッドの違いについてまとめる プロセスとは プログラムの実行単位 CPU上で実行される リソースの共有はできない 専用のメモリ領域を使用 仮想アドレス空間を保持している プロセスの切り替えには仮想アドレスと物理アドレスのマッピング必要 プロセスの保持するデータ構造プロセスがメモリに保持しているデータ構造は2つのセグメントに分かれている。 テキストセグメント プログラムの命令列(実行されるプログラム自体) 読み取りだけ データセグメント PDA(Processor Data Area) プロセッサの情報やプロセス管理用のデータなど スタックポインタやプログラ...

コンピューターアーキテクチャ

os スレッド プロセス スタック ヒープ

2018-05-24 12:35:03

シンボリックリンクとハードリンクの違い

概要シンボリックリンクとハードリンクの違いについてまとめる 前提 inode データ構造 ファイルシステム上の属性情報(作成者、グループ、作成日時など)をデータとして持つ ls -i1 /またはstat /でinode番号を確認できる シンボリックリンクとは 元のファイルまたはディレクトリのパスを参照するディレクトリエントリを追加 実験touch a.md ln -s a.md a_symbolic_link.md // シンボリックリンクを作成 ls -i1 a.md a_symbolic_link.md // inodeが違うことが確認できる 元ファイルを移動すると参照不可 元ファ...

コンピューターアーキテクチャ

シンボリックリンク ハードリンク

2018-05-12 13:08:23

osメモ

概要OS周りの勉強をしている時に調べたこと。 swapメモリが足りない時にメモリの中身をハードディスクに移す機能のこと ページキャッシュとは CPUはストレージからデータを直接読み込みができない データは一旦メモリに読み込む必要がある メモリに読み込まれたデータはページキャッシュとして再利用できる ファイル単位でアクセスする時に使用されるキャッシュ バッファキャッシュ ブロックデバイスを直接アクセスする時に使用されるキャッシュ slabキャッシュ ディレクトリのメタデータ情報を格納するdentryやファイルのメタデータ情報を格納するinode構造体などをキャッシュしているカーネル内のメモリ...

コンピューターアーキテクチャ

os