以下の内容はhttps://ryuichi1208.hateblo.jp/entry/2019/01/13/221620より取得しました。


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

f:id:ryuichi1208:20190113221304p:plain

ユーザ空間とは

ユーザに割り当てられる計算リソースで実行しているプログラムが直接アクセス可能なリソース

カーネル空間とは

カーネルが使用する領域のこと

両者の違い

メモリ領域に違いがある。 ユーザ空間とカーネル空間はそれぞれ独立しており、互いが互いのメモリ領域に直接アクセスできることはない

分ける理由としてはシステムの中枢であるカーネルが動いているメモリ領域がもしバグが存在したらOS毎停止してしまうことになる。 (多々のテストプログラムでさえも致命的な問題になり得る)

メモリ空間を分けることでそのような致命的な問題が発生することを防ぐ目的がある。 (カーネル界隈の開発者は常にOSパニックを意識しての開発が必要なのか。。。正直辛そう。。。)

デーモンとは

デーモンは起動シーケンスによって自動的に開始されるプロセスのこと。デーモンはバックグラウンドで実行され続けるプロセス。

メモリに常駐し続けて実行されるプロセスの一つである。

C言語にはデーモンを生成するためのライブラリ関数daemon(3)があり以下のように簡単に起動することができる

#include <stdio.h>
#include <unistd.h>

int main(void) {
    if(daemon(0, 0) == 0) {
       sleep(5);
    } else {
        printf("error\n");
    }   
    return 0;
}



以上の内容はhttps://ryuichi1208.hateblo.jp/entry/2019/01/13/221620より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14