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

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

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

身につく知識
このコースでは、Linux環境用のアプリケーションを開発する準備をします。
少なく読む
続きを読む

- あなたについて
- The Linux Foundation
-著作権および機密情報なし
- Linux Foundationトレーニング
- 認証プログラムとデジタル バッジ
- Linuxディストリビューション
- プラットフォーム
- システムの準備
-仮想マシンの使用とダウンロード
- Linux とオープン ソース プロジェクトの変化

-規格とLSB

-コードがどこから来ているかを知る:DCOとCLA
- メインラインの近くでセキュリティと品質を保つ
- プロジェクトのDNAを研究して理解する
- スクラッチするべき部分を見つけ出す
- メンテナーおよび彼らのワークフローやメソッドを特定する
- 早い段階で意見を訊き、オープンに作業する
- 大きなコード ダンプではなく、差分のコードをコントリビュートする
- エゴを捨てよう。敏感にならないように。
- 忍耐強く、長期的な関係を築き、助けの手を差し伸べよう

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

-共有ライブラリ
-ライブラリへのリンク
-ダイナミックリンクローダー
- 演習

-大規模なプロジェクトの構築
-より複雑なルール
-組み込みのルール
- 演習

-RCSとCVS
-Subversion
- ギット
- 演習

-コアダンプファイルとは何ですか?
-コアダンプの作成
-コアダンプの調査
- 演習

-プロファイリングとパフォーマンス
--valgrind
-アドレスサニタイザー
- 演習

-システムコールの作成方法
-戻り値とエラー番号
- 演習

-動的割り当て
--malloc()のチューニング
-ページのロック
- 演習

-仮想ファイルシステム
-ext2 / ext3ファイルシステム
-ジャーナリングファイルシステム
-ext4 /ファイルシステム
- 演習

-開閉
-読む、書く、求める
-位置およびベクトルI / O
-標準I / Oライブラリ
-ラージファイルサポート(LFS)
- 演習

-ディレクトリ機能
--inotify
-メモリマッピング
--flock()およびfcntl()
-一時ファイルの作成
-その他のシステムコール
- 演習

-プロセス制限
-プロセスグループ
-procファイルシステム
-プロセス間通信方法
- 演習

-fork()を使用してプロセスを作成する
-exec()を使用してプロセスを作成する
-clone()の使用
-終了
-コンストラクタとデストラクタ
- 待っている
-デーモンプロセス
- 演習

--popen()およびpclose()
--pipe()
-名前付きパイプ(FIFO)
--splice()、vmsplice()、tee()
- 演習

-POSIX非同期I / O API
-Linuxの実装
- 演習

-利用可能な信号
-信号のディスパッチ
-アラーム、一時停止、スリープ
-シグナルハンドラーの設定
-信号セット
--sigaction()
- 演習

-ジャンプと非ローカルリターン
--siginfoおよびsigqueue()
-リアルタイム信号
- 演習

-基本的なプログラム構造
-スレッドの作成と破棄
-シグナルとスレッド
-フォークとスレッディング
- 演習

-ミューテックスオペレーション
-セマフォ
-Futexes
-条件付き操作
- 演習

-ソケットとは何ですか?
-ストリームソケット
-データグラムソケット
-rawソケット
-バイト順序
- 演習

-IPアドレスの変換
-ホスト情報
- 演習

-プロトコル情報
- 演習

--socket()
- 接続()
--close()およびshutdown()
-UNIXクライアント
-インターネットクライアント
- 演習

- 練る()
- 聞く()
- 受け入れる()
-UNIXサーバー
-インターネットサーバー
- 演習

--send()、recv()
--sendto()、recvfrom()
--sendmsg()、recvmsg()
- ファイルを送信()
--socketpair()
- 演習

--fcntl()
--ioctl()
--getsockopt()およびsetsockopt()
- 演習

-ネットリンクソケットを開く
--netlinkメッセージ
- 演習

- 選択する()
--poll()
--pselect()およびppoll()
--epoll
-信号駆動および非同期I / O
-並行サーバー
- 演習

-POSIX IPC
-System V IPC **
- 演習

-POSIX共有メモリ
-SystemV共有メモリ**
- 演習

-POSIXセマフォ
-SystemVセマフォ**
- 演習

-POSIXメッセージキュー
-SystemVメッセージキュー**
- 演習

これらのセクションは、部分的にまたは全体を
オプションとして考えることができます。これらのセクションには、
背景となる参考資料、専門的なトピック、または高度なテーマが含まれています。
講師は、教室での経験や時間の制約に応じて、
これらをカバーするかしないかを選択することができます。
前提条件
2022年9月
John B. は非常に知識が豊富で、実際のアプリケーションに関するほとんどの質問に答える彼の能力に感謝しています。 Linux カーネルに関する彼の知識は、特定のことがどのように/なぜそのように機能するのかを説明するのにも役立ちました。
2022年9月
インストラクターは素晴らしかったです!
2022年9月
インストラクターは素晴らしかったです!
2022年9月
ジョンはとてもフレンドリーで、コースに関する質問に理解しやすく、理解しやすい方法で答えることができました。
2022年9月
Linux API への露出はよく組織されていました。ラボは、Linux でのスレッドや同時実行性など、より厄介なトピックのいくつかを固めるのに本当に役立ちました。
2022年9月
カバーされた資料の範囲は素晴らしかった。
2022年9月
ラボに多くの時間を費やすことができて本当に良かったです。これは、私が受講した他の LF クラスで経験したことではなく、いくつかのトピックを固めるのに役立ち、ラボ プロンプトから期待されていたもの以外のさまざまな API とインターフェイスを試すことができたと思います。 John は親切で時間厳守で、生徒たちが抱えているライブ デバッグの問題を見せてくれる様子が気に入りました。
2022年9月
トピック、ラボのスケジュールが一貫していたのが気に入っています。コンセプトを学び、そのコンセプトを試すことができました。
2022年9月
学生向けの資料、ラボの演習、疑問点を明確にすることができたのは素晴らしいことでした。ラボの演習は素晴らしかったです。インストラクターは忍耐強く知識が豊富で、資料で必要な場合は時間をかけて視覚的に説明しました。彼はコースのペースをうまく上げ、時間通りに進んでいました。彼はラボの時間を尊重し、ラボの演習に多くの時間を割いてくれました。
2022年9月
コース中にラボを行うのに十分な時間が与えられたことが気に入りました。ラボは、教えられていたことを確実にするのに役立ちました。私は以前に他の Linux コースを受講したことがありますが、ラボに十分な時間が与えられたことはありませんでした。内容が重い他のコースではこれが難しいかもしれないことは理解していますが、それがこのコースの好きなところです。