• オンラインツール
  • - 計算機
    • 文字数カウント
  • - ダウンロード
    • TikTok ダウンロード
    • Douyin ダウンロード
  • - Webツール
    • BASE64
    • Base64→画像
    • 画像→Base64
    • URLエンコード
    • JavaScript
    • タイムスタンプ
    • ユニコード変換
    • JSON整形
    • 拡張子変更
    • リスト作成
    • CSS最適化
  • - 暗号化ツール
    • MD5暗号化
    • ランダムジェネレーター
  • - 画像ツール
    • 画像圧縮
    • QRコードジェネレーター
    • QRコードリーダー
    • 壁紙プレビュー
    • 画像 EXIF
  • - 情報シート
    • 血液型遺伝
    • 服のサイズ
    • app.tool_clock
  • [email protected]
DopuBox
  • English
  • Español
  • Français
  • 日本語
  • 한국어
  • 简体中文
  • 繁體中文
全部 ニュース Meta Code 文化・アート
Linuxシステムのsystemd起動プロセスを詳しく理解する
2021-12-11

Linux起動プロセスの理解

Linuxコンピュータの電源を入れた後、最初に起動したプロセスはinitです。Initプロセスに割り当てられたPIDは1です。システムの他のすべてのプロセスの親プロセスです。Linuxコンピュータが起動すると、プロセッサはまずシステムストレージでBIOSを検索し、BIOSはシステムリソースを検出して最初のブートデバイスを見つけ、通常はハードディスクであり、その後、ハードディスクのプライマリブートレコード(MBR)を検索し、メモリにロードして制御権を渡し、その後の起動プロセスはMBRによって制御される。

プライマリブートレコードはブートプログラムを初期化します(Linuxには2つの有名なブートプログラムがあり、GRUBとLILO、80%のLinuxシステムはGRUBブートプログラムを使用しています)、このときGRUBまたはLILOはカーネルモジュールをロードします。カーネルはすぐに/sbinの下の「init」プログラムを検索して実行します。ここからinitはLinuxシステムの親プロセスになります。Initが読み込んだ最初のファイルは/etc/inittabで、initによってLinuxオペレーティングシステムの実行レベルが決定されます。ファイル/etc/fstabからパーティションテーブル情報を検索し、対応するマウントを行います。その後initは/etc/initを起動します。dで指定したデフォルトの起動レベルのすべてのサービス/スクリプト。すべてのサービスはここでinitによって1つずつ初期化されます。このプロセスでは、initは毎回1つのサービスしか起動せず、すべてのサービス/デーモンプロセスがバックグラウンドで実行され、initによって管理されます。

シャットダウンプロセスの差が少ないのは逆のプロセスで、まずinitはすべてのサービスを停止し、最後の段階でファイルシステムをアンインストールします。

システムの理解

システムの開発の主な目的は、システムの起動時間と計算コストを削減することです。Systemd(システム管理デーモンプロセス)は、最初はGNU GPLプロトコルのライセンスで開発され、現在はGNU LGPLプロトコルを使用するようになりました。これは、現在議論されている最も熱烈なブートとサービス管理プログラムです。LinuxシステムがSystemdブートを使用するように構成されている場合、従来のSysV initの代わりに起動プロセスがsystemd処理に渡されます。Systemdのコア機能の1つは、SysV initのポストスタートアップスクリプトを同時にサポートすることです。

Systemdはパラレル起動の概念を導入し、起動する必要があるデーモンごとにソケットを構築します。これらのソケットは、それらを使用するプロセスにとって抽象的であり、異なるデーモン間のインタラクションを可能にします。Systemdは新しいプロセスを作成し、各プロセスに制御グループ(cgroup)を割り当てます。異なる制御グループにあるプロセス間では、カーネルを介して相互に通信することができる。システムdは起動プロセスを処理する方法が非常にきれいで、従来のinitベースのシステムに比べて最適化されすぎます。Systemdのいくつかのコア機能を見てみましょう。

  • Initに比べてブートプロセスが大幅に簡素化されました
  • Systemdは同時起動プロセスをサポートし、より迅速に起動できます。

    PIDではなく、グループを制御してプロセスを追跡します。

    ブート・プロシージャとサービス間の依存を処理する方法を最適化

    システムスナップショットとリカバリのサポート

    起動したサービスを監視します。クラッシュしたサービスの再起動もサポート

    システムd-loginモジュールを含んでユーザーのログインを制御します

    コンポーネントのロードとアンインストールをサポート

    低メモリ使用痕跡およびタスクスケジューリング能力

    イベントを記録するJournaldモジュールとシステムログを記録するsyslogdモジュール
    Systemd構造の概要

    Linuxシステムがシステムdをブートプログラムとして使用する場合の起動プロセスの構造的詳細を見てみましょう。簡単にするために、次の手順に従います。

    1.電源を入れた後、コンピュータが最初にしたことはBIOSの初期化です。BIOSは、ブートデバイス設定を読み出し、MBRにシステム制御権を位置決めして伝達する(ハードディスクが第1のブートデバイスであると仮定する)。
    2.MBRは、GrubまたはLILOブートから関連情報を読み出し、カーネルを初期化する。次に、GrubまたはLILOによってシステムの起動が継続される。grubプロファイルにsystemdをブートマネージャとして指定すると、その後のブートプロセスはsystemdによって完了します。Systemdは「target」を使用してブートおよびサービス管理プロセスを処理します。これらのsystemdの「target」ファイルは、異なるブートユニットをグループ化し、同期プロセスを開始するために使用されます。

    「multi-user.target」は、別のレイヤ「basic.target」に制御権を渡します。

    7. local-fs.target、このtargetユニットはユーザー関連のサービスを開始せず、最下位のコアサービスのみを処理します。このtargetは、/etc/fstabおよび/etc/inittabに基づいて関連操作を実行します。

    システムブートのパフォーマンス分析
    Systemdは、ブートに関連する問題またはパフォーマンスの影響を識別および特定するためのツールを提供します。Systemd-analyzeは、ブートプロセスを検出するために組み込まれたコマンドです。起動中にエラーが発生したユニットを特定し、ブートコンポーネントの問題を追跡して修正できます。一般的なsystemd-analyzeコマンドを以下に示します。
    Systemd-analyze timeは、カーネルと通常のユーザ空間の起動にかかる時間を表示します。

    コードのコピー

    $ systemd-analyze time

    Startup finished in 1440ms (kernel) + 3444ms (userspace)

    Systemd-analyze blameには、実行中のすべてのユニットがリストされ、初期化から現在までの時間でソートされます。これにより、どのサービスがブート中に起動するのに時間がかかるかがわかります。

    コードのコピー
    $ systemd-analyze blame

    2001ms mysqld.service

    234ms httpd.service
    191ms vmms.service

    Systemd-analyze verifyは、すべてのシステムユニットに構文エラーがあるかどうかを示します。

    Systemd-analyze plotは、ブートプロセス全体をSVG形式のファイルに書き込むために使用できます。ブートプロセス全体が長くて読みにくいので、このコマンドで出力をファイルに書き込んでから確認して分析することができます。次の命令はこれです。
    コードのコピー

    systemd-analyze plot > boot.svg

    Systemdの議論

    Systemdは幸運にもすべての人に愛されていません。一部の専門家と管理者は、その働き方と開発について異なる意見を持っています。Systemdに対する批判によると、一部のシステムサービスを置き換えてみるため、「クラスUnix」方式ではない。一部の専門家もバイナリプロファイルを使用する考えが好きではありません。システムdの構成を編集するのは非常に困難で、使用可能なグラフィックツールは一つもないという。
    Ubuntu 14.04と12.04でSystemdをテストする方法
    本来,Ubuntuは,Ubuntu 16.04 LTSから現在のブートプロセスをSystemdで置き換えることにした.Ubuntu 16.04は2016年4月にリリースされる予定ですが、Systemdの流行やニーズを考慮して、リリースされたばかりのUbuntu 15.04はデフォルトのブートプログラムとして採用されています。また、Ubuntu 14.04 Trusty TahrとUbuntu 12.04 Precise Pangolinのユーザーは、マシン上でSystemdをテストすることができます。テストプロセスは複雑ではありません。関連するPPAをシステムに含め、倉庫を更新し、システムをアップグレードするだけです。

    宣言:Ubuntuのテストと開発の段階にあることに注意してください。テストパッケージをアップグレードすると、未知のエラーが発生し、最悪の場合、システム構成が破損する可能性があります。アップグレードを試みる前に重要なデータがバックアップされていることを確認してください。


    ソース元URL:https://dopubox.com/article/p/608314ee67c01071

    その他のツール
  • 文字数カウント TikTok ダウンロード Douyin ダウンロード BASE64 Base64→画像 画像→Base64 URLエンコード JavaScript タイムスタンプ ユニコード変換 JSON整形 拡張子変更 リスト作成 CSS最適化 MD5暗号化 ランダムジェネレーター 画像圧縮 QRコードジェネレーター QRコードリーダー 壁紙プレビュー 画像 EXIF 血液型遺伝 服のサイズ app.tool_clock
  • テレビ東京、不適切表現で謝罪 「激録・警察密着24時!!」
    2024-05-29

    藤子・F・不二雄の名言「ありそうもない話をありそうに描きたい」【本と名言365】
    2024-05-29

    藤井聡太八冠、瀬戸際の戦い 将棋叡王戦、31日に第4局
    2024-05-29

    被害者「問題解決には程遠い」 旧ジャニーズ被害者らが会見
    2024-05-29

    民藝・イズ・ビューティフル。 日本文化と黒人文化が融合する「アフロ民藝」とは?
    2024-05-30

    黒柳徹子さん、北京で特別授業 「日本語勉強続けて」
    2024-05-31

    “家形埴輪”大集合、総選挙も 「住宅展示場の気分で」、奈良
    2024-06-01

    エリザベートコンクールで吉田さん6位入賞
    2024-06-01

    死後に再評価が進んだ作曲家の筆頭、ビゼー。その裏には友人の存在が【クラシック今日は何の日?】
    2024-06-02

    小学館「作家の意向第一に協議」 映像化指針、ドラマ原作者死去で
    2024-06-03

    映画「ゴジラ‐1.0」の震電は「コックピットだけ復元」のはずだった…山崎貴監督がエピソード披露
    2024-06-04

    第34回福岡アジア文化賞受賞者が決定。大賞は真鍋大度
    2024-06-04

    エドガー・サラン個展「EDGAR SARIN ー HUNKY DORY」(VAGUE KOBE)レポート。展示空間の可能性やその調和の在り方を問いかける
    2024-06-04

    今週末に見たい展覧会ベスト13。「令和6年 新指定国宝・重要文化財」展から国立西洋美術館の現代美術展、KYOTOGRAPHIEまで
    2024-06-04

    フィギュアスケートにもぴったり! ハチャトゥリアン作曲の『仮面舞踏会』【クラシック今日は何の日?】
    2024-06-06

    ご当地体操「いちょう体操」に小学生の指導委員が誕生 「体がのびやかに動く」
    2024-06-06

    安藤忠雄さん設計の美術館名称決まる…香川・直島に2025年オープン
    2024-06-05

    藤井八冠、5連覇へ白星発進 将棋棋聖戦、山崎八段破る
    2024-06-06

    向田邦子の名言「…これが私の料理のお稽古なのです。」【本と名言365】
    2024-06-07

    「さどの島銀河芸術祭2024」が開催。新潟・佐渡島各所で作品を制作展示
    2024-06-06

    ©  Dopu Box
    💛