メインコンテンツまでスキップ

08 - OS とネットワークの基礎

OS の基本概念

Relevant DSS-P Skills
  • 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
  • System call - コンピュータプログラムが実行されているオペレーティングシステムのカーネルにサービスを要求する、プログラム的な方法です
  • Protection ring - 障害や悪意ある動作からデータと機能を保護する仕組みです
  • Daemon - 対話的なユーザーの直接の制御下ではなく、バックグラウンドプロセスとして実行されるコンピュータプログラムです
  • Environment variable - 通常はオペレーティングシステムやマイクロサービスに組み込まれた機能を通じて、プログラムの外部で値が設定される名前付き変数です
  • POSIX standard - オペレーティングシステム間の互換性を維持するために IEEE Computer Society が規定した標準規格群です

プロセス管理

  • Process - 1 つ以上のスレッドによって実行されているコンピュータプログラムのインスタンスです
    • Thread - スケジューラによって独立に管理できる、プログラムされた命令列の最小単位です
    • Scheduling - タスクを実行するためにリソースを割り当てる行為です
    • Context switch - 後で復元して実行を再開できるように、プロセスまたはスレッドの状態を保存する処理です
    • Interrupt - イベントを適時に処理できるように、プロセッサに現在実行中のコードを中断させる要求です

プロセス間通信 (IPC)

  • パイプ
    • Anonymous pipe - 単方向のプロセス間通信に使用できる、単方向 FIFO 通信チャネルです
    • Named pipe - Unix および Unix 系システムにおける従来のパイプ概念を拡張したもので、プロセス間通信の手法の 1 つです
  • Shared memory - 複数のプログラム間の通信や重複コピーの回避を目的として、それらのプログラムから同時にアクセスできるメモリです
  • Signal - 発生したイベントを通知するために、プロセスまたは同一プロセス内の特定のスレッドに送信される非同期通知です
  • Unix domain socket - 同一ホストオペレーティングシステム上で実行されるプロセス間でデータを交換するためのデータ通信エンドポイントです

メモリ管理

  • Virtual memory - あるマシンで実際に利用可能なストレージリソースの理想化された抽象化を提供するメモリ管理技術です
    • Memory paging - コンピュータがメインメモリで使用するデータを二次記憶装置に保存し取得するメモリ管理方式です
    • Page fault - 実行中のプログラムが、メモリ管理ユニットによってプロセスの仮想アドレス空間に現在マッピングされていないメモリページにアクセスした際に、コンピュータハードウェアが発生させる例外の一種です
    • Resident set size (RSS) - プロセスが占有するメモリのうち、メインメモリに保持されている部分です
    • Working set size (WSS) - プロセスの仮想アドレス空間内のページのうち、現在メインメモリに常駐しているものの集合です
  • Page cache - 将来のデータ要求をより高速に処理できるように、データを保存するハードウェアまたはソフトウェアコンポーネントです

ストレージ管理

  • Disk partitioning - 各領域を個別に管理できるように、二次記憶装置上に 1 つ以上の領域を作成することです
  • Loop device - ファイルをブロックデバイスとしてアクセス可能にする擬似デバイスです
  • File system - オペレーティングシステムがデータの保存や取得の方法を制御するために使用する方式とデータ構造です
    • Journaling file system - ファイルシステムの主要部分にまだコミットされていない変更を記録する循環ログ、すなわちジャーナルを保持するファイルシステムです
    • Path - ファイルシステム内の一意の場所を指定する、ファイルまたはディレクトリの名前の一般的な形式です
    • Glob pattern - ワイルドカード文字を用いてファイル名の集合を指定するパターンです
    • File handle/descriptor - ファイルや、パイプ・ネットワークソケットなどの他の入出力リソースを識別する一意の識別子です
    • Symbolic link - 絶対パスまたは相対パスの形式で他のファイルやディレクトリへの参照を含み、パス名解決に影響を与えるファイルの総称です
    • Permissions - コンピュータのユーザーがファイルシステムの内容を閲覧・変更・移動・実行する能力を制御する、多くの現代的なファイルシステムの機能です
      • Setuid - ユーザーが実行可能ファイルの所有者またはグループの権限で実行ファイルを実行できるようにする、Unix のアクセス権フラグです
      • Sticky bit - Unix 系システムのファイルやディレクトリに割り当てることができる、ユーザー所有権に関するアクセス権フラグです
    • Inode - ファイルやディレクトリなどのファイルシステムオブジェクトを記述する、Unix 形式のファイルシステムにおけるデータ構造です
  • RAID - データの冗長化、性能向上、またはその両方を目的として、複数の物理ディスクドライブコンポーネントを 1 つ以上の論理ユニットに統合するデータストレージ仮想化技術です

ネットワークの基本概念とプロトコル

Relevant DSS-P Skills
  • 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
  • The OSI Model - システム間相互接続を目的とした標準規格開発の連携のための共通基盤を提供する概念モデルです

リンク層 (L2)

  • Ethernet - 有線コンピュータネットワーキング技術のファミリーです
    • ARP - 特定のインターネット層アドレスに関連付けられた、MAC アドレスなどのリンク層アドレスを発見するために使用される通信プロトコルです
      • MAC address - ネットワークセグメント内の通信でネットワークアドレスとして使用するために、ネットワークインターフェースコントローラに割り当てられる一意の識別子です
    • VLAN - コンピュータネットワークにおいて、データリンク層で分割・分離されたブロードキャストドメインです

インターネット層 (L3)

  • The Internet - ネットワークやデバイス間の通信にインターネットプロトコルスイートを使用する、相互接続されたコンピュータネットワークの世界的なシステムです
  • IP - インターネットプロトコルスイートにおけるネットワーク層の通信プロトコルです
    • Link-local address - ホストが接続されているネットワークセグメントまたはブロードキャストドメイン内の通信でのみ有効なネットワークアドレスです
    • IP-multicast - 単一の送信で興味を持つ受信者グループにインターネットプロトコルデータグラムを送信する方式です
    • IPv6 - ネットワーク上のコンピュータに識別・所在システムを提供し、インターネット上でトラフィックを経路制御する通信プロトコルであるインターネットプロトコルの最新版です
    • ICMP - インターネットプロトコルスイートにおける補助プロトコルです
    • ICMPv6 - インターネットプロトコルバージョン 6 向けの Internet Control Message Protocol の実装です
    • DHCP - ネットワークに接続されたデバイスに IP アドレスやその他の通信パラメータを自動的に割り当てるために、インターネットプロトコルネットワーク上で使用されるネットワーク管理プロトコルです
    • DHCPv6 - IPv6 ネットワークで動作するために必要な IP アドレス、IP プレフィックス、その他の設定データを、インターネットプロトコルバージョン 6 ホストに設定するためのネットワークプロトコルです
    • NAT - トラフィックルーティングデバイスを通過中のパケットの IP ヘッダー内のネットワークアドレス情報を変更することで、ある IP アドレス空間を別の空間にマッピングする手法です
    • NAT64 - IPv6 ホストと IPv4 ホスト間の通信を仲介する IPv6 移行メカニズムです
    • NDP - インターネットプロトコルバージョン 6 で使用される、インターネットプロトコルスイート内のプロトコルです
  • ルーティング
    • Routing table - 特定のネットワーク宛先への経路を列挙した、ルーターまたはネットワークホストに保存されるデータテーブルです
    • CIDR - IP アドレスの割り当てと IP ルーティングのための手法です

トランスポート層 (L4)

  • Network socket - コンピュータネットワークのネットワークノード内にあり、ネットワーク越しのデータ送受信のエンドポイントとして機能するソフトウェア構造です
  • TCP - インターネットプロトコルスイートの主要プロトコルです
    • TCP window scale option - Transmission Control Protocol で許容される受信ウィンドウサイズを、従来の最大値である 65,535 バイトより大きくするためのオプションです
  • UDP - インターネットプロトコルスイートの中核をなすメンバーです
  • QUIC - UDP ベースの、ストリーム多重化された暗号化トランスポートプロトコルです

ネットワークアーキテクチャ

  • Peer-to-peer - 参加者が集中管理システムに頼ることなく、直接リソースを共有する分散コンピューティングまたはネットワーキングアーキテクチャです

ドメインネームシステム (DNS)

Relevant DSS-P Skills
  • 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
  • DNS - インターネットや他のインターネットプロトコルネットワークを通じて到達可能なコンピュータ、サービス、その他のリソースを識別するために使用される、階層的かつ分散化されたネーミングシステムです
  • mDNS - ローカルネームサーバーを含まない小規模なネットワーク内で、ホスト名を IP アドレスに解決するプロトコルです

ドメイン登録と検索

  • IANA WHOIS Service - ドメイン名または IP アドレスの登録データを検索するサービスです
  • Registration Data Access Protocol (RDAP) - ドメイン名レジストリや地域インターネットレジストリから登録データを配信する、コンピュータネットワーク通信プロトコルです
  • Domain drop catching - ドメイン名の登録が失効した直後に、そのドメイン名を登録する行為です

サーバーとリゾルバの実装

  • BIND (dnsutils) - 非常に柔軟でフル機能を備えた DNS システムです
  • dnsmasq - 軽量で設定が容易な DNS フォワーダー、DHCP、ルーターアドバタイズメントサーバーです
  • CoreDNS - プラグインを連鎖させる DNS サーバーです
  • systemd-resolved - ローカルアプリケーションにネットワーク名前解決を提供するシステムサービスです
  • mDNS の実装
    • Avahi - mDNS/DNS-SD プロトコルスイートを介して、ローカルネットワーク上でのサービス発見を容易にするシステムです
    • Bonjour - ゼロコンフィグレーションネットワーキングの Apple による実装です

クライアントツール

  • BIND の一部

    • dig - DNS ネームサーバーに問い合わせるための柔軟なツールです
    • nslookup - インターネットドメインネームサーバーに問い合わせるプログラムです
  • dog - コマンドライン DNS クライアントです

  • Doggo - Go で書かれた、モダンなコマンドライン DNS クライアント (dig のようなもの) です

  • マネージド DNS サービス

    • Amazon Route53 - 高可用性でスケーラブルなクラウド Domain Name System Web サービスです
    • Google Cloud DNS - コスト効率よくドメイン名をグローバル DNS に公開する、高性能でレジリエントなグローバル Domain Name System サービスです

メールシステム

Relevant DSS-P Skills
  • 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
  • Email - 電子デバイスを使用して人々の間でメッセージを交換する方法です
  • SMTP - 電子メール送信のための通信プロトコルです
  • POP - メールクライアントがメールサーバーから電子メールを取得するために使用される、アプリケーション層のインターネット標準プロトコルです
  • IMAP - メールクライアントが TCP/IP 接続を介してメールサーバーから電子メールメッセージを取得するために使用される、インターネット標準プロトコルです
  • MIME - ASCII 以外の文字セットのテキストをサポートするために、電子メールメッセージの形式を拡張する標準です
    • Quoted-printable encoding - 7 ビットのデータパスを使用して送信できるように、8 ビット ASCII 文字セットでデータを表現するエンコーディングです
    • Base64 - バイナリデータを基数 64 表現に変換することで ASCII 文字列形式として表現する、バイナリ-テキストエンコーディング方式群です

メールボックス形式

  • Unix Mbox
  • Maildir

サーバーソフトウェア (MTA/MDA)

  • Postfix - 広く使われている Sendmail プログラムの代替として IBM の研究部門で誕生したメールサーバーです
  • Maddy Mail Server - メールサービスを運用するために必要なすべての機能を実装した、オールインワンのメールサーバーです
  • テスト用サーバー
    • Mailpit - 小型で高速、低メモリ、依存関係ゼロのマルチプラットフォームな、開発者向けメールテストツール兼 API です
  • IMAP
    • Cyrus IMAP - 小規模から大規模の企業環境での使用向けに設計された、高いスケーラビリティを持つエンタープライズメールシステムです
    • Dovecot - Linux/UNIX 系システム向けのオープンソース IMAP・POP3 メールサーバーです

クライアントソフトウェアとユーティリティ

  • TUI クライアントとユーティリティ
    • mailutils - 電子メールを扱うためのライブラリとユーティリティのセットです
      • mail command - メールを送受信するコマンドです
    • Himalaya - Rust で構築された CLI アプリケーションで、IMAP、Maildir、SMTP、OAuth 2.0、PGP 暗号化をサポートし、シェルコマンドを通じてメールを操作できます
    • Mutt - Unix オペレーティングシステム上で電子メールを読み書きするための、小さいながら非常に強力なテキストベースのプログラムです
    • swaks - 機能豊富で柔軟、スクリプト可能なトランザクション指向の SMTP テストツールです
    • msmtp - 配送のためにメールを SMTP サーバーへ送信する SMTP クライアントで、メールクライアント向けの sendmail 代替として設定できるように設計されています
    • Pop - ターミナルからメールを送信するためのライブラリです
    • GNU sharutils - シェルアーカイブを作成・展開するためのユーティリティ一式です
  • ライブラリ
    • go-mail - シンプルに使えて機能豊富な、Go 向けメールライブラリです
  • GUI クライアント
    • Thunderbird - セットアップとカスタマイズが容易な無料のメールアプリケーションです
    • Sylpheed - シンプルで軽量ながら機能豊富、使いやすい電子メールクライアントです

スパムテストとレピュテーション

  • mail-tester - スパム、不正な形式のコンテンツ、メールサーバー設定の問題についてメールをテストできる無料のオンラインサービスです

  • Spamhaus Project - スパムおよび関連するサイバー脅威を追跡する非営利組織です

  • クラウドサービス

    • Amazon SES - 開発者が任意のアプリケーション内からメールを送信できる、コスト効率が良く柔軟でスケーラブルなメールサービスです
    • SendGrid - 大規模なトランザクションメールおよびマーケティングメールの信頼性の高い配信を提供する、クラウドベースのメール配信プラットフォームです

Unix 系オペレーティングシステム

Relevant DSS-P Skills
  • 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
  • The Linux Kernel - Linux オペレーティングシステムの主要コンポーネントであり、コンピュータのハードウェアとプロセスの間の中核的なインターフェースです
    • スレッド
      • Pthreads - プログラミング言語から独立して存在する実行モデルであり、並行実行モデルでもあります
    • ファイルシステム
      • Ext4 - 多くの主要な Linux ディストリビューションのデフォルトファイルシステムです
      • XFS - Silicon Graphics, Inc が開発した、高性能なジャーナリングファイルシステムです
      • Btrfs - スナップショット、RAID、自己修復などの高度な機能を備えた、Linux 向けの copy-on-write ファイルシステムです
      • UnionFS - 他のファイルシステムに対する union mount を実装する、Linux、FreeBSD、NetBSD 向けのファイルシステムサービスです
      • OverlayFS - Linux 向けの union mount ファイルシステム実装です
      • proc.5 - カーネルのデータ構造へのインターフェースを提供する仮想ファイルシステムです
      • sysfs.5 - さまざまなカーネルサブシステム、ハードウェアデバイス、関連するデバイスドライバに関する情報をエクスポートする仮想ファイルシステムです
    • コンテナサポート
      • cgroups - プロセスを階層的なグループに編成し、さまざまな種類のリソースの使用量を制限・監視できるようにする Linux カーネルの機能です
      • namespaces - グローバルなシステムリソースをラップする抽象化であり、名前空間内のプロセスからはそのグローバルリソースの独立したインスタンスを持っているかのように見せます
      • lxc/rootfs - Linux カーネルのコンテインメント機能に対するユーザースペースインターフェースです
      • nsenter - 他のプロセスの名前空間内でプログラムを実行するコマンドです
    • FUSE (Filesystem in Userspace) - ユーザースペースプログラムがファイルシステムを Linux カーネルにエクスポートするためのインターフェースです
      • s3fs - Amazon S3 バケットをローカルファイルシステムとしてマウントできる FUSE ファイルシステムです
    • eBPF (Extended Berkeley Packet Filter) - 特権的なコンテキストでサンドボックス化されたプログラムを実行できる、Linux カーネルに起源を持つ革新的な技術です

Linux ディストリビューション

  • 汎用
    • Arch Linux - シンプルで軽量なディストリビューションです
    • Debian - 完全な自由なオペレーティングシステムです
    • Fedora - ハードウェア、クラウド、コンテナ向けにコミュニティによって構築された、革新的でフリーかつオープンソースのオペレーティングシステムプラットフォームです
    • Gentoo - カスタマイズ性とパフォーマンスを重視した、非常に柔軟なソースベースの Linux ディストリビューションです
    • NixOS - パッケージと設定の管理に独自のアプローチを採用した Linux ディストリビューションです
    • openSUSE - デスクトップ、サーバー、コンテナ向けの無料 Linux オペレーティングシステムです
  • サーバー向け
    • Ubuntu server - パブリッククラウド、オンプレミス、IoT デバイス向けの標準プラットフォームです
  • デスクトップ向け
    • Debian ベース
      • Ubuntu desktop - デスクトップからクラウド、インターネットに接続されたあらゆるモノまで動作する、Linux ベースのオペレーティングシステムです
      • BunsenLabs Linux - 軽量で簡単にカスタマイズできる Openbox デスクトップを提供するディストリビューションです
    • Arch ベース
      • Manjaro Linux - 独立して開発された Arch オペレーティングシステムをベースにした、使いやすい Linux ディストリビューションです
      • Mabox Linux - 高速で軽量、機能的な Linux Desktop の「リラックスした」ローリングリリースで、Manjaro をベースに Openbox Window Manager を採用しています

BSD ディストリビューション

  • FreeBSD - Berkeley Software Distribution (BSD) の流れを汲む、フリーでオープンソースの Unix 系オペレーティングシステムです
  • NetBSD - フリーで高速、安全、高い移植性を備えた Unix 系のオープンソースオペレーティングシステムです
  • OpenBSD - 極めて高いセキュリティと暗号技術を重視した、NetBSD のフォークとしてのフリーでオープンソースな Unix 系オペレーティングシステムです

システムサービスと認証

  • Systemd - Linux オペレーティングシステム向けのシステムおよびサービスマネージャーです
    • journald - ログデータを収集し保存するシステムサービスです
    • hostnamed - ユーザープログラムからホスト名や関連するマシンのメタデータを制御するために使用できるシステムサービスです
    • networkd - ネットワークを管理するシステムサービスです
    • resolved - ローカルアプリケーションにネットワーク名前解決を提供するシステムサービスです
    • timesyncd - ローカルシステムクロックをリモートの Network Time Protocol サーバーと同期するために使用できるシステムサービスです
  • linux-pam - Linux システム内のアプリケーションとサービスの認証タスクを処理するライブラリ群です

マシン仮想化

Relevant DSS-P Skills
  • 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用
  • Virtualization - 仮想コンピュータハードウェアプラットフォーム、ストレージデバイス、コンピュータネットワークリソースなど、何かの仮想版を作成する行為です
  • libvirt - 仮想化プラットフォームを管理するためのツールキットです

Type-1 ハイパーバイザー

  • KVM - 仮想化拡張機能を備えた x86 ハードウェア上の Linux 向けの完全仮想化ソリューションです
  • Hyper-V - Microsoft のハードウェア仮想化製品です
  • Proxmox VE - エンタープライズ仮想化向けの完全なオープンソースサーバー管理プラットフォームです

Type-2 ハイパーバイザー

  • VirtualBox - 企業利用にも家庭利用にも適した、強力な x86・AMD64/Intel64 仮想化製品です
  • QEMU - 汎用のオープンソースマシンエミュレーター兼仮想化ソフトウェアです

CPU エミュレーター

  • QEMU - 汎用のオープンソースマシンエミュレーター兼仮想化ソフトウェアです

コンピュータハードウェア

  • 処理装置
    • Central processing unit (CPU) - 算術・論理・制御・入出力操作を実行することでプログラム命令を処理する、コンピュータの主要なプロセッサです
    • Graphics processing unit (GPU) - グラフィックスレンダリングと並列コンピューティングタスクの高速化のために設計された特殊な電子回路で、3D グラフィックス、AI/ML ワークロード、動画処理に広く使用されています
    • Neural processing unit (NPU) - ニューラルネットワークとコンピュータビジョンタスクを効率的に実行することで、人工知能と機械学習アプリケーションを高速化するために設計された特殊なハードウェアです
  • CPU アーキテクチャ
    • x86-64 - x86 命令セットの 64 ビット版です
    • ARM64 - ARM アーキテクチャファミリーの 64 ビット拡張です
  • CPU 拡張機能

Linux ホスト管理

Relevant DSS-P Skills
  • 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用

コアユーティリティ

  • util-linux - Linux ユーティリティの雑多なコレクションです
    • lsblk - 利用可能なすべてのブロックデバイス、または指定したブロックデバイスの情報を一覧表示するコマンドです
    • lsns - 現在アクセス可能なすべての名前空間、または指定した名前空間の情報を一覧表示するコマンドです
    • swapon - ページングとスワッピングを行うデバイスを指定するために使用されるコマンドです
  • rsync - 高速な増分ファイル転送を提供するオープンソースユーティリティです
  • sudo - システム管理者が特定のユーザーに root または他のユーザーとしていくつかのコマンドを実行する権限を委任するためのものです
  • shadow-utils - UNIX パスワードファイルをシャドウパスワード形式に変換するために必要なプログラムと、ユーザーおよびグループアカウントを管理するプログラムを含みます
    • useradd - ユーザーを追加するための低レベルユーティリティです
  • jc - 一般的なコマンドラインツールやファイル形式の出力を JSON または Dictionary に変換する CLI ツール兼 Python ライブラリです
  • aha - Ansi HTML Adapter です
    • NO_COLOR - コマンドラインソフトウェアで ANSI カラーを無効化するための環境変数です
  • Vixie Cron - POSIX Cron のオープンソース実装です
    • Crontab.guru - cron のスケジュール式のための、素早くシンプルなエディタです
  • logrotate - ログファイルの自動ローテーション、圧縮、削除、メール送信を可能にします
  • Syslog - メッセージロギングのための標準です

プロセスとシステムの監視

  • procps - 通常 /proc にある擬似ファイルシステムから情報を提供する、コマンドラインおよびフルスクリーンユーティリティのセットです
    • ps - 選択したアクティブなプロセスの情報を表示するコマンドです
    • top - 稼働中のシステムの動的なリアルタイムビューを提供するプログラムです
    • free - システム内の空きおよび使用中の物理メモリとスワップメモリの合計量を表示するコマンドです
    • vmstat - プロセス、メモリ、ページング、ブロック IO、トラップ、ディスク、CPU 活動に関する情報を報告するコマンドです
  • psmisc - proc ファイルシステムを使用する小さなユーティリティのパッケージです
    • pstree - 実行中のプロセスをツリー形式で表示するコマンドです
    • killall - 指定したコマンドのいずれかを実行しているすべてのプロセスにシグナルを送信するコマンドです
  • lsof - オープンファイルを一覧表示する (LiSt Open Files) コマンドです
  • strace - Linux 向けの診断・デバッグ・学習用ユーザースペースユーティリティです
  • inxi - フル機能を備えたシステム情報スクリプトです
  • witr - 実行中のプロセスの因果的な系統と目的を説明するツールです
  • パフォーマンスモニター
    • sysstat - Linux 向けのパフォーマンス監視ツールのコレクションです
      • iostat - システムの入出力デバイスの負荷を監視するために使用されるコマンドです
    • Monit - Unix システムを管理・監視するための小さなオープンソースユーティリティです
    • atop - Linux 向けの ASCII フルスクリーンパフォーマンスモニターです
    • smem - Linux システムにおけるメモリ使用状況について多様なレポートを生成できるツールです

時刻同期

  • NTP - パケット交換方式で遅延が可変のデータネットワーク越しに、コンピュータシステム間でクロックを同期するためのネットワーキングプロトコルです
  • chrony - Network Time Protocol の汎用的な実装です
  • pool.ntp.org - 何百万ものクライアントに信頼性が高く使いやすい NTP サービスを提供する、タイムサーバーの大規模な仮想クラスタです

モダンな CLI 代替ツール

  • gdu - Go で書かれた、コンソールインターフェースを備えた高速なディスク使用量アナライザーです
  • lsd - 色、アイコン、ツリービュー、その他の書式オプションなど多くの機能を追加した GNU ls の書き換え版です
  • eza - ls のモダンな代替です
  • broot - ディレクトリツリーを閲覧・移動する新しい方法です
  • bat - 翼の生えた cat(1) のクローンです
  • dust - Rust で書かれた、より直感的な du のバージョンです
  • dua - ディスク容量の使用状況を確認し、不要なデータを高速に削除するツールです
  • duf - より優れた 'df' の代替です
  • procs - Rust で書かれた ps のモダンな代替です
  • htop - Unix システム向けの対話的なプロセスビューアです
  • btop++ - Linux、macOS、FreeBSD 向けのリソースモニターです
  • glances - curses または Web ベースのインターフェースを通じて大量の監視情報を提示することを目指す、クロスプラットフォームな監視ツールです
  • neofetch - コマンドラインシステム情報ツールです

パッケージ管理ツール

  • dpkg - Debian の基本パッケージ管理システムです
    • apt - Ubuntu、Debian、および関連する Linux ディストリビューションで deb パッケージのインストール、更新、削除などの管理を行うコマンドラインユーティリティです
  • Pacman - Linux でソフトウェアパッケージを管理するユーティリティです
    • Yay - Go で書かれた AUR ヘルパーです
  • yum - rpm システム向けの自動アップデーターおよびパッケージインストーラー/リムーバーです
  • dnf - yum の次世代版です
  • Homebrew - macOS (または Linux) に欠けていたパッケージマネージャーです
  • pipx - 分離された環境で Python アプリケーションをインストール・実行するツールです
  • Flatpak - Linux 上でサンドボックス化されたデスクトップアプリケーションを構築・配布・実行するためのシステムです
  • Snapcraft - Linux カーネルを使用するオペレーティングシステム向けに Canonical が開発した、ソフトウェアのパッケージングとデプロイのシステムです
  • arkade - お気に入りの DevOps CLI をダウンロードしたり、Kubernetes クラスタに helm チャートをインストールしたりできる、ポータブルなマーケットプレイスです
  • Plaza - pacman、AUR、apt、dnf、Flatpak にまたがってパッケージを検索・インストール・管理できる、カスタマイズ可能で装飾可能なターミナル UI です

Linux ネットワーク管理

Relevant DSS-P Skills
  • 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用

設定と管理

  • iproute2 - Linux で TCP/IP ネットワーキングとトラフィック制御を行うためのユーティリティ集です
    • ip - ルーティング、ネットワークデバイス、インターフェース、トンネルを表示・操作するための主要なコマンドです
    • ss - ソケットを調査するユーティリティです
  • net-tools (legacy) - Linux カーネルのネットワークサブシステムを制御するプログラム集です
    • ifconfig - ネットワークインターフェースを設定するために使用されるコマンドです
    • netstat - ネットワーク接続、ルーティングテーブル、インターフェース統計、マスカレード接続、マルチキャストメンバーシップを表示するコマンドです
  • NetworkManager - libudev やその他の Linux カーネルインターフェースの上に位置し、ネットワーク設定のための高レベルインターフェースを提供するデーモンです
  • Ubuntu NetPlan - ネットワーク設定の抽象化レンダラーです

分析とセキュリティ

  • tcpdump - 強力なコマンドラインパケットアナライザーです
  • wireshark - 世界で最も定評あるネットワークプロトコルアナライザーです
  • nmap - ネットワーク探索とセキュリティ監査のためのオープンソースツールです
    • ncat - コマンドラインからネットワーク越しにデータを読み書きする、機能満載のネットワーキングユーティリティです
  • traceroute - インターネットプロトコルネットワーク越しのパケットの経路を表示し、通過遅延を測定するコンピュータネットワーク診断ツールです

プロキシとゲートウェイ

  • SOCKS Proxy - プロキシサーバーを介してクライアントとサーバー間でネットワークパケットを交換するインターネットプロトコルです
    • Dante - RFC 1928 および関連標準を実装した SOCKS サーバー兼 SOCKS クライアントです
    • tun2socks - TUN デバイスからのすべての接続を処理する、TCP・UDP 向けの SOCKS プロキシです
    • proxychains - 任意のアプリケーションが行う TCP 接続を、TOR や他の SOCKS4、SOCKS5、HTTP(S) プロキシなどのプロキシ経由に強制するツールです
  • トンネリング
    • cloudflared - Cloudflare ネットワークからオリジンへトラフィックをプロキシするデーモンである Cloudflare Tunnel のコマンドラインクライアントです
    • ngrok - ローカルアプリケーションをインターネットに公開するために、リバースプロキシ、API ゲートウェイ、セキュアなトンネルを提供する統合イングレスプラットフォームです

ファイル共有とリモートアクセス

Relevant DSS-P Skills
  • 3. テクノロジー > 3.1 ソフトウェア開発 > クラウドインフラ活用

ファイルサーバーとプロトコル

  • SMB - ネットワーク上のノード間でファイル、プリンター、シリアルポートへの共有アクセスを提供するネットワーク通信プロトコルです
    • Samba - Linux と Unix 向けの標準的な Windows 相互運用プログラム群です
  • FTP - コンピュータネットワーク上でサーバーからクライアントへコンピュータファイルを転送するために使用される標準通信プロトコルです
    • vsftpd - Linux を含む UNIX 系システム向けの GPL ライセンスの FTP サーバーです
  • SFTP - 信頼性のあるデータストリーム越しにファイルアクセス、ファイル転送、ファイル管理を提供するネットワークプロトコルです
    • SFTPGo - フル機能で高度に設定可能な SFTP サーバーで、オプションで HTTP/S、FTP/S、WebDAV をサポートします

リモートアクセスサーバーとプロトコル

  • SSH - 保護されていないネットワーク越しにネットワークサービスを安全に運用するための暗号化ネットワークプロトコルです
    • openssh - SSH プロトコルによるリモートログインのための第一級の接続ツールです
  • RDP - ネットワーク接続越しに他のコンピュータへ接続するためのグラフィカルインターフェースをユーザーに提供する、Microsoft が開発した独自プロトコルです
    • xrdp - オープンソースの Remote Desktop Protocol サーバーです
  • RFB - グラフィカルユーザーインターフェースへのリモートアクセスのためのシンプルなプロトコルです
    • x11vnc - X11 向けの VNC サーバーです
    • TightVNC - 無料のリモートデスクトップアプリケーションです
  • Mosh - 対話的な SSH ターミナルの代替です
  • メッシュ VPN
    • Tailscale - レガシーな VPN、SASE、PAM を置き換え、リモートチーム、マルチクラウド環境、CI/CD パイプライン、エッジ・IoT デバイス、AI ワークロードを接続する、ID ベースのゼロトラスト接続プラットフォームです