• オンラインツール
  • - 計算機
    • 文字数カウント
  • - ダウンロード
    • 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
  • 被害者「問題解決には程遠い」 旧ジャニーズ被害者らが会見
    2024-05-29

    住所要件の指摘受け自主的に転入 東京・足立区の20代選管委員・古野香織さん
    2024-05-30

    幸田文の名言「台所に立てば、…」【本と名言365】
    2024-05-30

    『マッドマックス:フュリオサ』に登場する「ある絵画」は何を意味しているのか? ギリシア神話と「ファム・ファタル」から考察する
    2024-06-01

    杉真理×和田唱がビートルズをとことん語る!NHK-FMの人気番組「ディスカバー・ビートルズ」がオンライン講座として復活!
    2024-06-02

    映像化は「作家の意向第一」と小学館が指針
    2024-06-02

    河合隼雄賞に八木詠美さん「休館日の彼女たち」、湯澤規子さん「焼き芋とドーナツ」
    2024-06-02

    「2億円トイレ」のイメージ図など公開 大阪・関西万博
    2024-06-04

    「企画展 歌と物語の絵 ―雅やかなやまと絵の世界」(泉屋博古館東京)開幕レポート。歌、物語、絵画が織りなす芸術世界へ
    2024-06-04

    社会的関与の芸術。清水穣評 城戸保「駐車空間、文字景、光画」展/野村浩「Painter」展
    2024-06-04

    性被害者支援の法人設立 スマイル社
    2024-06-04

    週末見たい展覧会5選。今週はTRIO展、吉田克朗展、建築の構造デザインに焦点を当てた展覧会など。【2024年6月第2週】
    2024-06-05

    大学入学共通テスト、追試は本試験1週間後 コロナ禍前に戻す 月経痛の配慮明記も
    2024-06-05

    「安全だと誰も言わない万博」爆発事故で教職員組合 大阪府に子供無料招待中止申し入れ
    2024-06-04

    古今東西 かしゆか商店【つづら】
    2024-06-05

    岡田将生の初ブランド「IN MY DEN」始動、第1弾グッズの受注販売がスタート
    2024-06-06

    田名網敬一が新作の巨大インスタレーションを発表へ。世界初の大規模回顧展「田名網敬一 記憶の冒険」
    2024-06-06

    写真家の吉田ルイ子さん死去
    2024-06-06

    書評:「普通にラッセンが好き」と言えない現代美術界へ。原田裕規『評伝クリスチャン・ラッセン 日本に愛された画家』
    2024-06-06

    パートナーとの強い絆から生まれた、ベンジャミン・ブリテンの代表作【クラシック今日は何の日?】
    2024-06-06

    ©  Dopu Box
    💛