コース概要

はじめに

  • 目的
  • あなたとは
  • 1] ファンデーション
  • Linux ファンデーション・トレーニング
  • 認定プログラムとデジタルバッジ
  • Linux ディストリビューション
  • プラットフォーム
  • システムの準備
  • 仮想マシンの使用とダウンロード
  • 1]で変わること

予備知識

  • 手続き
  • 標準規格とLSB

OSSプロジェクトの進め方

  • 正しいコントリビュート方法の概要
  • セキュリティと品質のためにメインラインに近づく
  • プロジェクトのDNAを学び、理解する
  • 痒いところに手が届く [4]
  • メンテナーとその作業フローと方法を特定する
  • 早い段階から意見を聞き、オープンに作業する
  • 大きなコードダンプではなく、少しずつ貢献する
  • エゴを捨てよ:薄情にならない
  • 忍耐強く、長期的な関係を築き、親切にする

コンパイラ

  • GCC
  • その他のコンパイラ
  • 主なgccオプション
  • プリプロセッサ
  • 統合開発環境 (IDE)
  • ラボ

ライブラリ

  • スタティック・ライブラリ
  • 共有ライブラリ
  • ライブラリへのリンク
  • 動的リンクローダー
  • ラボ

メイク

  • makeとmakefileの使用
  • 大規模プロジェクトのビルド
  • より複雑なルール
  • 組み込みルール
  • 研究室

ソース管理

  • ソース管理
  • RCSとCVS
  • サブバージョン
  • ギット
  • ラボ

デバッグとコアダンプ

  • gdb
  • コアダンプファイルとは
  • コアダンプの作成
  • コアダンプを調べる
  • 研究室

デバッグツール

  • 時間の取得
  • プロファイリングとパフォーマンス
  • バルグラインド
  • ラボ

システムコール

  • システムコールとライブラリ関数の比較
  • システムコールの仕組み
  • 戻り値とエラー番号
  • 研究室

メモリManagementとアロケーション

  • メモリ[2]
  • 動的アロケーション
  • malloc()のチューニング
  • ページのロック
  • 研究室

1]のファイルとファイルシステム

  • ファイル、ディレクトリ、デバイス
  • 仮想ファイルシステム
  • ext2/ext3ファイルシステム
  • ジャーナリングファイルシステム
  • ext4/ ファイルシステム
  • 研究室

ファイル入出力

  • UNIXファイルI/O
  • オープンとクローズ
  • 読み書きとシーク
  • 位置入出力とベクトル入出力
  • 標準I/Oライブラリ
  • ラージファイルサポート(LFS)
  • ラボ

高度なファイル操作

  • 統計関数
  • ディレクトリ機能
  • イノティファイ
  • メモリマッピング
  • flock()とfcntl()
  • 一時ファイルの作成
  • その他のシステムコール
  • ラボ

プロセス I

  • プロセスとは
  • プロセスの制限
  • プロセス・グループ
  • proc ファイルシステム
  • インタープロセス Communication メソッド
  • 研究室

プロセス II

  • system()によるプロセスの生成
  • fork()を使用してプロセスを作成する
  • exec()を使用してプロセスを作成する
  • clone()を使用する
  • プロセスの終了
  • コンストラクタとデストラクタ
  • 待機
  • デーモン・プロセス
  • ラボ

パイプとFifos

  • パイプとインタープロセス [0]
  • popen() および pclose()
  • パイプ()
  • 名前付きパイプ (FIFO)
  • splice()、vmsplice()、および tee()
  • ラボ

非同期I/O

  • 非同期I/Oとは?
  • POSIX非同期I/O API
  • Linux 実装
  • 研究室

シグナルI

  • シグナルとは?
  • 利用可能なシグナル
  • シグナルの発信
  • アラーム、一時停止、スリープ
  • シグナルハンドラの設定
  • シグナルセット
  • シグアクション()
  • 研究室

シグナルII

  • 再トランシーとシグナルハンドラ
  • ジャンプと非ローカル・リターン
  • siginfoとsigqueue()
  • リアルタイム・シグナル
  • 研究室

POSIXスレッドI

  • 1]の下でのマルチスレッド
  • 基本的なプログラム構造
  • スレッドの作成と破棄
  • シグナルとスレッド
  • フォークとスレッド
  • 研究室

POSIXスレッドII

  • デッドロックとレース状態
  • ミューテックス操作
  • セマフォ
  • ミューテックス
  • 条件操作
  • 研究室

Networkingとソケット

  • Networking レイヤー
  • ソケットとは?
  • ストリーム・ソケット
  • データグラム・ソケット
  • ロー・ソケット
  • バイト順序
  • 研究室

ソケットアドレスとホスト

  • ソケットアドレス構造
  • IPアドレスの変換
  • ホスト情報
  • 研究室

ソケットポートとプロトコル

  • サービスポート情報
  • プロトコル情報
  • ラボ

ソケットクライアント

  • クライアントの基本シーケンス
  • ソケット()
  • connect()
  • close() と shutdown()
  • UNIXクライアント
  • インターネットクライアント
  • ラボ

ソケットサーバー

  • サーバーの基本シーケンス
  • bind()
  • listen()
  • accept()
  • UNIXサーバー
  • インターネットサーバー
  • 研究室

ソケット入出力操作

  • write()、read()
  • send()、recv()
  • sendto()、recvfrom()
  • sendmsg()、recvmsg()
  • sendfile()
  • ソケットペア()
  • 研究室

ソケットオプション

  • ソケットオプションの取得と設定
  • fcntl()
  • ioctl()
  • getsockopt() および setsockopt()
  • 研究室

ネットリンクソケット

  • ネットリンクソケットとは?
  • ネットリンクソケットを開く
  • ネットリンクメッセージ
  • 研究室

ソケットの多重化と同時サーバー

  • 多重化と非同期ソケットI/O
  • select()
  • poll()
  • pselect() および ppoll()
  • epoll
  • シグナル駆動と非同期I/O
  • 並行サーバー
  • 研究室

インタープロセス [0]

  • IPCの方法
  • POSIX IPC
  • システムV IPC**
  • 研究室

共有メモリ

  • 共有メモリーとは?
  • POSIX共有メモリー
  • システムVの共有メモリ**について
  • 研究室

セマフォ

  • セマフォとは?
  • POSIXセマフォ
  • システムVのセマフォ
  • 研究室

メッセージキュー

  • メッセージキューとは?
  • POSIXメッセージキュー
  • システムVのメッセージキュー**について
  • 研究室

要求

このコースは経験豊富な開発者向けです。C言語プログラミングに習熟し、基本的なLinuxユーティリティやテキストエディタに精通していることが望ましい。

受講対象

このコースは、経験豊富な開発者を対象としています。C言語プログラミングに習熟し、基本的なLinuxユーティリティやテキストエディタに精通していることが望ましい。

経験レベル:中級

 28 時間

参加者の人数



Price per participant

関連コース

関連カテゴリー