お問い合わせを送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
予約を送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
コース概要
はじめに
- GNU/Linux の歴史の簡単な紹介
- ライセンス
- カーネルバージョン管理
- リリースサイクル
- カーネルツリー
- mainline
- カーネル vs. ユーザースペース
- メカニズム vs. 方針
- カーネルドライバの代替手段
- RTOS vs. Linux
メモリ管理
- 仮想メモリと物理メモリ
- カーネルでのメモリアロケーション
- ページ
- ゾーン
- API
- slab
カーネルパッチ
- ライフサイクル
- git
- カーネルソース
- パッチの作成
- パッチの確認
- パッチの修正
- パッチの送信
- 审査済みコード
カーネルモジュール
- カーネルソースの取得
- 設定/ビルド/インストール
- デバイスドライバ(静的にリンク、ランタイムでロード)
- 初期化/終了
- ライセンス
- EXPORT_SYMBOL_GPL
- 外部の Makefile
- module-init-tools
- カーネルツリー内のモジュール
- Kconfig
- パラメータの渡し方
- sparse
文字デバイスドライバ
- アーキテクチャ
- ユーザー/カーネルインターフェース
- I/O サブシステム
- VFS
- sysfs(デバイス、バス、ドライバ、クラス)
- kobject/ktype/kset
- Linux カーネルドライバモデル
- デバイスファイル
-
文字デバイスドライバ
- 初期化
- 登録
- open, release
- cdev, cdev add, cdev del, etc.
- メジャーナンバー/マイナーナンバー
- udev, udevmonitor, udevadm
高度な文字デバイスドライバ操作
- ioctl
- unlocked ioctl
- compat ioctl
- ユーザースペース API
- カーネルスペース API
- プロセスのライフサイクル
- スリープ/ブロッキング
- スリープ/ウェイクアップ
- wait queue
- thundering herd
- poll/select
カーネルデバッグ
- デバッグ
-
カーネルのデバッグ
- git でのバイナリサーチ
- カーネルからのデバッグサポート
- printk, syslogd, klogd, ログレベル, レート制限, デバッグレベル, 選択的なサブシステムのデバッグ
- debugfs のクエリによるデバッグ
- oops デバッグ, oops のアサーション
- Magic SysRq Key
- kgdb/kdb
- JTAG
トレーシング
- gcov
- lcov
- oprofile
-
ftrace
- nop tracer
- function tracer
- sched switch tracer
- function graph tracer
- dynamic tracer
- trace-cmd/kernelshark
- perf
- LTTng
インタラプト
- インタラプト vs. ポーリング
- インタラプト
- プログラムセクション
- 再入性
- イベント
- インタラプトハンドラ
- 共有インタラプトハンドラ
- インタラプトフロー
- インタラプト制御
非同期処理
- 上下半分
- softirqs
- tasklets
- ワークキュー
- スレッディングインタラプト
並行処理
- クリティカルセクション
- 原子操作
- レースコンディション
- 同期
- ロッキング
- ロッキングの解決策
- デッドロック
- コンテンド
- 何をロックするか?
-
使用できるものは何ですか?
- 原子操作
- スピンロック
- 読者-ライタースピンロック
- セマフォ
- 二値セマフォ
- ミューテックス
- 読者-ライターセマフォ
- 完了変数
- 逐次ロック
- プリエンプションの無効化
- 順序とバリア
時間管理
- HZ
- Jiffies
- 大きな/小さな遅延
- カーネルタイマ
ハードウェア I/O
- I/O ポート
- I/O メモリ
- レジスタアクセス時の副作用の対処法
ユーザー-カーネル通信
- put(get)_user()
- copy to(from)_user()
- カーネル I/O
- メモリマッピング
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
ポータビリティ
- ウォードサイズ
- 不透明な型
- 符号あり/なしの char
- データアラインメント
- 整数昇格
- コードの再利用
- エンディアン性
- システムティック
- ページサイズ
- 命令順序
- SMP/プリエンプション/高メモリ
別途明記されていない限り、コンテンツおよびこのコース概要は クリエイティブコモンズ 表示-非営利-継承 4.0 国際 (CC BY-NC-SA 4.0) の下にライセンスされています。
要求
- GNU/Linux システムのエンドユーザーとしての基本的な使用経験
- コマンドラインシェルの基本的な使用経験
- ユーザースペース/アプリケーション開発の基本的な知識
- 中級レベルの C 言語プログラミングスキル
- 事前に 組み込み GNU/Linux システムアーキテクチャ を受講していること(強く推奨!)または、そこで概説されているトピックについて十分な理解があること
35 時間
お客様の声 (5)
非常に役立つ追加情報
Grzegorz - Comp S.A.
コース - BLoC Pattern
機械翻訳
エドワードは素晴らしいファシリテーターです
Zibusiso Ncube - Agricatural Research Council
コース - Ionic 4 and Angular for Developers
機械翻訳
ミゲルはこの主題に関する知識が豊富で、トレーニングをわかりやすく進めました。全体の流れもバランスよく、必要に応じて各セクションに新しい機能を追加しました。 彼は質問された内容をすべてカバーし、それぞれの質問に詳しく答えてくれました。非常に良い経験でした。
Paul Coaton - SEMPCheck Services
コース - Flutter Development Bootcamp with Dart
機械翻訳
トレーナーが私たちのニーズに合わせて対応すること
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
コース - The Yocto Project - An Overview - hands-on
機械翻訳
講師は熱心で、親切であり、テーマを愛していました。
Isaac Murphy - Royal New Zealand Airforce
コース - Build Native iOS and Android Apps with Flutter
機械翻訳