• 線上工具
  • - 計算器
    • 字元計數
  • - 下載
    • TikTok 下載
    • 抖音下載
  • - 網路工具
    • BASE64
    • Base64 轉圖片
    • 圖片轉 Base64
    • URL 編碼
    • JavaScript
    • 時間戳
    • Unicode 轉換器
    • JSON 格式化
    • 修改副檔名
    • 製作列表
    • CSS 優化器
  • - 加密工具
    • MD5 加密
    • 隨機生成器
  • - 圖像工具
    • 圖像壓縮
    • QR 碼生成器
    • QR 碼識別器
    • 壁紙預覽
    • 圖片 EXIF
  • - 資訊表
    • 血型遺傳
    • 服裝尺寸
  • [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 下載 抖音下載 BASE64 Base64 轉圖片 圖片轉 Base64 URL 編碼 JavaScript 時間戳 Unicode 轉換器 JSON 格式化 修改副檔名 製作列表 CSS 優化器 MD5 加密 隨機生成器 圖像壓縮 QR 碼生成器 QR 碼識別器 壁紙預覽 圖片 EXIF 血型遺傳 服裝尺寸
  • 藤井聡太八冠、瀬戸際の戦い 将棋叡王戦、31日に第4局
    2024-05-29

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

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

    鎌倉幕府の地頭から海の武士団・松浦党に…古文書群「青方文書」からみる中世の漁業や製塩事情
    2024-06-01

    【光る君へ】平安時代、強烈なエピソードで知られた2人の受領とは
    2024-06-01

    元アシスタントが語る Dr.スランプ「あのキャラ」の誕生秘話
    2024-06-01

    まだ無名だった作曲家エルガーが、婚約の贈り物として捧げた名曲【クラシック今日は何の日?】
    2024-06-01

    <今週の本棚・次回の予定>6月8日の毎日新聞書評欄は『新装版 ペルーからきた私の娘』ほか
    2024-06-03

    河合隼雄物語賞に八木詠美さん 学芸賞は湯沢規子さん
    2024-06-03

    イタリア・ヴェローナの歴史あるレストランをパトリシア・ウルキオラが再解釈。
    2024-06-03

    本年入試私立公立とも志願者微減 栄光ゼミナール担当者にきく 埼玉中高入試最新動向
    2024-06-04

    美術評論家連盟が「ガザ戦争に対する意⾒表明」を公開
    2024-06-04

    GROUP「島をつくる | Planning Another Island」(マイナビアートスクエア)開幕レポート。高層ビルのなかで建築をコンポストする
    2024-06-05

    ペース・ギャラリーが9月にグランドオープン。7月には特別内覧会を開催へ
    2024-06-04

    akakilikeの新作ダンス公演『希望の家』が松本・東京の2都市で上演へ
    2024-06-04

    横山奈美の個展「広い空に / Big Sky Mind」がN&A Art SITEで開催へ
    2024-06-05

    「避難いただけるほうが一安心」珠洲で激しい揺れに耐えた仏像、奈良博で縁つなぐ
    2024-06-04

    ビル・エヴァンスの名言「才能なんて取るに足りない」【本と名言365】
    2024-06-05

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

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

    ©  Dopu Box
    💛