トレーニング > ウェブアプリケーション > Developing Applications For Linux (LFD401)
インストラクター主導のコース

Developing Applications For Linux (LFD401)

Linux環境用のアプリケーションを開発する方法を学びます。このインストラクター主導のコースでは、Linuxアプリケーション開発に必要なツールと方法を実際に体験し、Linuxに固有の機能とテクニックについて学びます。

対象者

このコースは経験豊富な開発者向けです。受講生はCプログラミングに習熟し、基本的なLinuxユーティリティとテキスト エディタに精通している必要があります。
少なく読む 続きを読む
学習内容

このコースでは、Cプログラムを開発し、Linuxでシステムプログラミングを行うためのツールと方法、デバッグ手法、プロセス管理、Linux固有の有料およびシステムコールなどについて学習します。
少なく読む 続きを読む
身につく知識

このコースでは、Linux環境用のアプリケーションを開発する準備をします。
少なく読む 続きを読む
おもなテーマ
すべて展開
すべて折りたたむ
前書き
目的
あなたは誰ですか
The Linux Foundation
Linux Foundationのトレーニング
Linuxディストリビューション
プラットフォーム
システムの準備
仮想マシンの使用とダウンロード
Linuxで物事が変わる
コース登録
予選
手続き
規格とLSB
OSSプロジェクトでの作業方法**
適切に貢献する方法の概要
セキュリティと品質のためにメインラインの近くにとどまる
プロジェクトDNAの研究と理解
スクラッチしたいものを把握する
メンテナーとそのワークフローと方法を特定する
初期の入力を取得し、オープンで作業する
大きなコードダンプではなく、増分ビットを提供する
ドアにあなたのエゴを残してください:薄皮にしないでください
忍耐強く、長期的な関係を築き、助けになる
コンパイラー
GCC
その他のコンパイラ
主要なgccオプション
プリプロセッサ
統合開発環境(IDE)
ラボ
図書館
静的ライブラリ
共有ライブラリ
ライブラリへのリンク
ダイナミックリンクローダー
ラボ
作る
makeおよびMakefileの使用
大規模プロジェクトの構築
より複雑なルール
組み込みルール
ラボ
ソース管理
ソース管理
RCSおよびCVS
転覆
ギット
ラボ
デバッグとコアダンプ
gdb
コアダンプファイルとは何ですか?
コアダンプの生成
コアダンプの調査
ラボ
デバッグツール
電気柵
時間を取得する
プロファイリングとパフォーマンス
valgrind
ラボ
システムコール
システムコールとライブラリ関数
システムコールの作成方法
戻り値とエラー番号
ラボ
メモリ管理と割り当て
メモリ管理
動的割り当て
malloc()のチューニング
ページのロック
ラボ
Linuxのファイルとファイルシステム**
ファイル、ディレクトリ、デバイス
仮想ファイルシステム
ext2 / ext3ファイルシステム
ジャーナリングファイルシステム
ext4 /ファイルシステム
ラボ
ファイルI / O
UNIXファイルI / O
開閉
読み取り、書き込み、およびシーク
位置およびベクターI / O
標準I / Oライブラリ
大容量ファイルのサポート(LFS)
ラボ
高度なファイル操作
統計関数
ディレクトリ機能
inotify
メモリマッピング
flock()およびfcntl()
一時ファイルを作成する
その他のシステムコール
ラボ
プロセス–私
プロセスとは何ですか?
プロセス制限
プロセスグループ
procファイルシステム
プロセス間通信メソッド
ラボ
プロセス– II
system()を使用してプロセスを作成する
fork()を使用してプロセスを作成する
exec()を使用してプロセスを作成する
clone()の使用
終了
コンストラクターとデストラクター
待っています
デーモンプロセス
ラボ
パイプとFifo
パイプとプロセス間通信
popen()およびpclose()
パイプ()
名前付きパイプ(FIFO)
splice()、vmsplice()およびtee()
ラボ
非同期I / O **
非同期I / Oとは何ですか?
POSIX非同期I / O API
Linuxの実装
ラボ
信号–私
シグナルとは何ですか?
利用可能な信号
信号の発信
アラーム、一時停止および睡眠
シグナルハンドラーのセットアップ
信号セット
sigaction()
ラボ
信号– II
再入可能性とシグナルハンドラ
ジャンプと非ローカルリターン
siginfoおよびsigqueue()
リアルタイム信号
ラボ
POSIXスレッド– I
Linuxでのマルチスレッド
基本的なプログラム構造
スレッドの作成と破棄
シグナルとスレッド
分岐とスレッド
ラボ
POSIXスレッド– II
デッドロックと競合状態
ミューテックス操作
セマフォ
フューテックス
条件付き操作
ラボ
ネットワーキングとソケット
ネットワーク層
ソケットとは何ですか?
ストリームソケット
データグラムソケット
生のソケット
バイト順
ラボ
ソケット–アドレスとホスト
ソケットアドレス構造
IPアドレスの変換
ホスト情報
ラボ
ソケット–ポートとプロトコル
サービスポート情報
プロトコル情報
ラボ
ソケット–クライアント
基本的なクライアントシーケンス
ソケット()
connect()
close()およびshutdown()
UNIXクライアント
インターネットクライアント
ラボ
ソケット–サーバー
基本的なサーバーシーケンス
練る()
聴く()
accept()
UNIXサーバー
インターネットサーバー
ラボ
ソケット–入出力操作
読み取り、書き込み()
send()、recv()
sendto()、recvfrom()
sendmsg()、recvmsg()
ファイルを送信()
socketpair()
ラボ
ソケット–オプション
ソケットオプションの取得と設定
fcntl()
ioctl()
getsockopt()およびsetsockopt()
ラボ
Netlinkソケット**
netlinkソケットとは何ですか?
netlinkソケットを開く
netlinkメッセージ
ラボ
ソケット–多重化および同時サーバー
多重化された非同期ソケットI / O
選択する()
poll()
pselect()およびppoll()
エポール
信号駆動および非同期I / O
同時サーバー
ラボ
プロセス間通信
IPCの方法
POSIX IPC
System V IPC **
ラボ
共有メモリ
共有メモリとは何ですか?
POSIX共有メモリ
System V共有メモリ**
ラボ
セマフォ
セマフォとは何ですか?
POSIXセマフォ
System Vセマフォ**
ラボ
メッセージキュー
メッセージキューとは何ですか?
POSIXメッセージキュー
System Vメッセージキュー**
ラボ
Closing and Evaluation Survey

**これらのセクションは、一部または全体をオプションと見なすことができます。これらには、背景の参考資料、専門的なトピック、または高度な主題が含まれています。インストラクターは、教室での経験と時間の制約に応じて、それらをカバーするかしないかを選択できます。
前提知識
このコースは経験豊富な開発者向けです。受講生はCプログラミングに習熟し、基本的なLinuxユーティリティとテキスト エディタに精通している必要があります。