linux

11月30日の学び(セッション①)

セッションは端末と関連している概念らしい。 やっぱり自前のLinux環境がないと辛い。 セッション セッションはセッションIDという値を共有するプロセスの集まりである 1つのプロセスグループ内のプロセスは同じ値のセッションIDを共有する つまりセッション…

11月29日の学び(プロセスグループ)

リペアレンティング Linux/Unixでは親プロセスが死ぬと子プロセスは「孤児プロセス」として取り扱われる 孤児となってしまったプロセスは即座にinitプロセスの配下に紐付けられ生き続けることができる この動作をリペアレンティングと呼び、カーネルによって…

11月26日の学び(trapコマンド)

trapコマンド 実行中のプロセスに対して送出されたシグナルを補足し、予め指定していた処理を実行するコマンド 使い方としてはシェルスクリプト内部にtrap処理を記載し、実行中のシェルスクリプトに外部からシグナルを送信した際の動作を指定できる trap 'コ…

11月23日の学び

たまにしか使わないのでいつも迷います。。。 リダイレクト 標準入力・標準出力・標準エラー出力の向き先を変更する 1> で標準出力のリダイレクト、2>で標準エラー出力のリダイレクト 1>の1は省略可能 $ ls 存在しないファイル 2> test.txt $ cat test.txt l…

11月11&12日の学び

プロセスの出力先 各プロセスの出力先はプロセス毎に個別に存在する 「/proc/PID/fd/数字」がファイルディスクリプタ 各プロセスの入出力は「/proc/PID/fd/数字」から確認ができる これを利用してバックグラウンドで実行しているプロセスの出力も確認可能 フ…

11月4日の学び②

長いので終わらなかった。続きはまた今度。 プロセステーブル(プロセス制御ブロック) Kernelがプロセスの状態を管理するデータ構造 プロセスの生成 あるプロセス上で別のプロセスを実行すると必ず親子関係が生じる CLIコマンドを実行すると端末(bash)が…

11月3日の学び

ファイルシステムの役割 当然だが新しい物理的な記憶装置が出現するとそれに対応したファイルシステムを利用する必要がある。 端的にいうと物理的な記憶装置を抽象化したレイヤーを提供する ファイルへのインタフェースを提供(ファイルの命名・フォルダ/デ…

10月21日の学び

昨日は勉強会の資料作成のためブログ更新はできず。。。 Proxyパターン 呼び元と処理を実行するクラスの間に中間のクラスを生成する 処理の実行時に初めて処理を実施するクラスをインスタンス化する サンプルコードを見てインタフェースは要はAPIを実装する…

10月19日の学び

コンソールを開いた状態でttyコマンドを実行すると以下のように表示される。 $tty /dev/pts/1 ttyコマンド 標準入力に紐付いた端末やファイルを表示するコマンド そもそも linuxでは全てのIOはデバイスファイルを経由する そのためttyコマンドを実行した際に…

メモリ管理(セグメント)

セグメント(セクション) 通常プログラムやデータはメインメモリの連続した領域を単位として管理される。 このプログラムやデータの管理単位となる連続した領域のことをセグメントと呼ぶ。 Programセクション(Pセクション) プログラムコードが格納される…

CPUモード

CPUにはカーネルモードとユーザモードの2つのモードがある。 CPUモードはCPUとしての機能(アセンブラとして提供)ではなくて、プログラムとしての機能だと思うのだが実際はどうなのだろう? カーネルモード(OSの核となる処理) デバイスドライバ プロセス…

Ubuntu16.04でvncserverの利用

前提条件は以下と同じ。 okn-yu.hatenablog.com VNCサーバの設定 vnc4serverのインストール sudo apt-get install vnc4server ~/.vnc/xstartupを以下のように編集 #!/bin/sh def export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS…

Ubuntu16.04でxrdpの利用

Ubuntu16.04のUnityとXRDPは相性が悪いらしい...。 前提条件 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS" $ uname -a Linux ***-VirtualBox 4.13.0-39-generic #44~…

デバイスファイル

意外と奥が深い。 デバイスファイルの別名はデバイスノード。 デバイスファイルの種類 デバイスファイルが2種類あるということはOS側からはハードウェアには2種類存在するということになる。 キャラクタデバイス システムが一文字ずつデータを転送を行う …

ユーザ空間とカーネル空間

ユーザ空間とカーネル空間は分離されている。 アプリケーションのバグ等によりカーネル空間を破壊してしまうのを防ぐため。 アプリケーションがカーネル空間に自由にアクセスできるのはセキュリティ上の重大な問題となるため。 SIGSEGVの発生する原因の一つ…

デバイス制御

用語の整理 デバイス:カメラ・ディスプレイ・スピーカなどの外付けハードウェア。 デバイスドライバ:ハードウェアをOSから制御するためのプログラム。 デバイスファイル:デバイスドライバのインタフェース。ソフトウェアからは入出力システムコールで制御…