• 在线工具
  • - 计算器
    • 字符计数
  • - 下载
    • TikTok 下载
    • 抖音下载
  • - 网络工具
    • BASE64
    • Base64 转图片
    • 图片转 Base64
    • URL 编码
    • JavaScript
    • 时间戳
    • Unicode 转换器
    • JSON 格式化
    • 修改扩展名
    • 制作列表
    • CSS 优化器
  • - 加密工具
    • MD5 加密
    • 随机生成器
  • - 图像工具
    • 图像压缩
    • 二维码生成器
    • 二维码识别器
    • 壁纸预览
  • - 信息表
    • 血型遗传
    • 服装尺码
  • [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 加密 随机生成器 图像压缩 二维码生成器 二维码识别器 壁纸预览 血型遗传 服装尺码
  • レノンのギター4.5億円 ビートルズ関連最高落札額
    2024-05-30

    歯科医師の技術で愛好家も納得するサウナを細部まで再現するミニチュア作家
    2024-05-30

    「現実をみんなに伝えたい」能登高校書道部が新作の書道パフォーマンスを披露…部員それぞれが抱える大地震の被害
    2024-05-30

    ドローンサッカーで世界2位 大阪・星翔高校チーム 「世界でも通用することがわかった」
    2024-05-30

    日テレ、意思疎通できず信頼喪失 「セクシー田中さん」の調査結果
    2024-05-31

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

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

    森鷗外の教師像に迫る 研究の「盲点」、記念館で特別展 学生の評判も紹介
    2024-06-01

    三姉妹が温泉旅行で取っ組み合いの大げんか うっとうしくてめんどうくさい家族愛描く「お母さんが一緒」
    2024-06-02

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

    稀代のピアニスト、マルタ・アルゲリッチの伝説の始まりはこの1曲から【クラシック今日は何の日?】
    2024-06-04

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

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

    太宰府天満宮で「Fukuoka Art Book Fair」が開催へ
    2024-06-04

    お台場エリアを舞台に新芸術祭「東京お台場トリエンナーレ 2025」が誕生
    2024-06-05

    東京都写真美術館で「今森光彦 にっぽんの里山」が開催へ
    2024-06-04

    「梅津庸一 エキシビションメーカー」(ワタリウム美術館)開幕レポート。きっとあなたも展覧会をつくりたくなる
    2024-06-04

    宗教2世のドラマが受賞 第50回放送文化基金賞
    2024-06-06

    青森で来年夏に音楽祭 沖澤のどかさんが総監督
    2024-06-06

    なぜ、いま「先住民の現代アート」なのか? 『美術手帖』2024年7月号は、「先住民の現代アート」特集
    2024-06-06

    ©  Dopu Box
    💛