頭弱いがPCの勉強する

正真正銘のPC初心者。勉強ノートのつもり。
ITなんてトンチンカン、だから書くことやること全部適当。

ArchLinuxはSysVinitじゃなくてsystemd

2016-07-17 22:20:09 | Linuxの勉強
ランレベルについて勉強をしたのでArchにてrunlevelを実行してみるとunknowと表示されてしまいました。
ランレベルというのはSysVinitの機能であって、systemdを採用しているArchLinuxでは使えないんですね。
SysVinitは決められたものを上から順番に起動していくので遅いのですがsystemdなら並列的にサービスを起動できるので早いらしいです。
puppyLinuxを使ったことがあるのですが、あれは起動がゆっくりなのでSysVinitなのでしょうか?逆にArchはsystemdのおかげか起動が早かったです。
そういえば、SysVinitやsystemdやUpstartなどの起動の仕組みの総称はあるのでしょうか?
initプログラムといえば詳しい人にも伝わるのでしょうか?

ArchLinuxって何系のディストリビューションなの?

2016-07-17 14:39:16 | Linuxの勉強
Linuxについての情報を読んでいると「RedHat系」「Debian系」「Slackware系」などの系統のようなものをよく見ます。
あの有名なubuntuは何系なのかと調べてみると、「Debianのunstable」が元になっているのでDebian系だそうです。
CentOSやFedoraなんかはRedHat系らしいです、
しかし「ArchLinux 何系」で検索してもそれっぽい結果は出てきません。
なので「Linux 系統」で検索してみるとそれっぽい画像が出てきました。

linux from scratchってなんでしょうか?
調べてみると
「Linux From Scratchとは、Linuxを1から構築しようという試みである。」
らしいです。
じゃあ何だかよくわからないけどArchLinuxはLinux From Scratch系ということなの?とぱっとしないまま検索を続けてみるとLinuxのディストリビューションについてのwikipediaを発見しました。
Linuxディストリビューションの比較
これでArchの欄を見てみると、ベースディストリビューションがnoneになっています。
つまりは、ArchLinuxは1から構築されたLinuxなのでベースとなったディストリビューションは存在しない、なのでArchは何系でもない。
という事なのでしょう、、、多分。
もし間違っていたらご指摘お願いします。

Linuxについて分かったことを適当に書くPart3

2016-07-17 14:35:39 | Linuxの勉強
前回の続きです。

システムのシャットダウンとと再起動
・shutdown←システムをシャットダウンするコマンド
オプション
-h シャットダウンする
-r シャットダウン後にシステムを再起動する
-f 次回起動時にfsckをスキップする
-F 次回起動時にfsckを必ず実行する
-c 現在実行中のシャットダウンをキャンセルする

・shutdown -h +5
シャットダウンを5分後に行う

・init/telinitコマンドでシステムを停止再起動をする場合、利用中のユーザーには一切通知されない。shutdownコマンドではシステムがシャットダウンするメッセージをユーザーに通知されるようになっている。

SysVinit
・Linuxが起動する手順は、ここ数年で大きく変わった。
・これまではUNIX系OS全般で広く使われてきたSysVinitが主流でした、LPICでもSysVinitを前提にしていた。
・しかし現在では、systemdという新しい起動の仕組みが主流になってきている。
↑LPICでは療法の知識が必要

SysVinitによる起動
SysVinitでは、Linuxシステムで最初に実行されるプロセスであるinitが、/etc/inttabファイルの設定に従い、システムに必要なサービスを順次起動していく。
1.initが/etc/inttabファイルを読み込む
2.init/etc/rc.sysinitスクリプトを読み込む
3.initが/etc/rcスクリプトを実行する
4。/etc/rcスクリプトが「/etc/rc<ランレベル>.d」ディレクトリ以下のスクリプトを実行する。

・SysVinitでは順番通りに起動していくため、一つのサービスの起動が遅いとその後に続くサービスが待たされてしまうため時間がかかる。
・なので最近は、多くのディストリビューションがsystemdやUpstartといった新しい仕組みに切り替えている。
・Upstart←SysVinitを改善した新しい仕組み。

ランレベル
・Sysvinitを採用しているシステムではランレベルと呼ばれるいくつかの動作モードにがある。
・ランレベルごとに、どのようなサービスが稼働するか(もしくは稼働しないか)を決定できる。
・ランレベル5ではクライアントPCとして必要なGUI環境を利用できる。
・ランレベル3では各種サーバソフトウェアを使ったネットワークサービスを提供する
RedHat CentOS Fedoraのランレベル
0 停止
1 シングルユーザーモード
2 マルチユーザーモード(テキストログイン、NFSサーバ)
3 マルチユーザーモード(テキストログイン)
4 未使用
5 マルチユーザー(グラフィカルログイン)
6 再起動
Sまたはs シングルユーザーモード

ubutu、Debian GNU/Linuxでのランレベル
0 停止
1 シングルユーザーモード
2 マルチユーザーモード
3 マルチユーザモード
4 マルチユーザーモード
5 マルチユーザいモード
6 再起動
Sまたはs シングルユーザーモード

・シングルユーザーモードは、rootユーザーだけが利用できる特殊な状態。
システムメンテナンスなど、一般ユーザーがシステムを利用していては困る場合などに使われる。

ランレベルの確認と変更
・runlevel←現在のランレベルを確認するコマンド


長くなったので一回休憩します。
初耳なものが多いです。

Linuxについて分かったことを適当に書くPart2

2016-07-17 00:10:57 | Linuxの勉強
前回の続きです。
udev
・/dev以下に自動的にデバイスファイルを作成している仕組み
・従来のLinuxではデバイスを使用するしないにかかわらず、多数のデバイスファイルをあらかじめ/devに作成して置かなければならなかった。またカーネルが認識してもデバイスファイルがなければ使えなかった。
・udevの仕組み
ハードウェアが接続されると、カーネルがそれを検知し、/sysディレクトリにデバイス情報を作成する。udevデーモン(udevd)はそのデバイス情報を参照して/dev内にデバイスファイルを作成する。
その際に/etc/udev/rules/dディレクトリ以下の設定ファイルが使われる。
設定ファイルを編集することで、特定のハードウェアを任意の名前のデバイスファイルとして扱うこともできる。

デバイスドライバのロード
・デバイスを利用するのに必要なプログラム→デバイスドライバ
・Linuxではデバイスドライバはカーネルの一部(カーネルモジュール)として提供されている。
・$ lsmod←ロードされているカーネルモジュールを確認するコマンド
・$ modprode←通常カーネルモジュールは自動的にロードされるが、手動でやる場合はこのコマンドを使う


システムが起動するまでの流れ(x86/x86_64アーキテクチャの場合)
1.BIOS/UEFI
ハードウェアのチェックや初期化を行い、起動ディスクからブートローダを読み出し制御を移す。
2.ブートローダ
起動デバイスからカーネルをメモリ上に読み込む。
3.カーネル
メモリの初期化やシステムクロックの設定などを行い、狩りのルートファイルシステム(initramfs:初期RAMディスク)をマウントする。※初期RAMディスクにはシステムの起動に必要なデバイスドライバが組み込まれており、これを使ってハードディスクにアクセスできるようになる。
ルートファイルシステムが使えるようになると、カーネルは最初のプロセスである「init」(またはsystemd)プロセスを実行する。
4.init/systemd
必要なサービスを順次起動していき、最後にログインぷろんプロを表示して起動処理を完了する。
BIOS/UEFI→ブートローダ→カーネル→init/systemd
この一連の処理の流れをブート(boot)、またはブートストラップ(bootstrap)という。

起動時のイベント確認→$ dmesg


気づいたら12時を回っていたのでもう寝ます。
今の所読んだところで「完全にわからない!」というところはなく、だいたい理解できている気がします。
ただ寝て起きて覚えていられるかどうかは…ね。