
このコースの概要や学習すること、対象者や前提知識を確認します。
このコースを受講するときの進め方について説明します。
このコースで使用する環境と、発生する可能性のある料金について説明します。
OS とは何か、Linux とは何か、Linux ディストリビューションとは何か、概要を学びます。
Linux の操作方法について、基本的な考え方を学びます。
以後のレクチャーで使用する演習環境を構築します。
Bash やシェルの概要を学びます。
Bash で基本的なコマンドを実行してみます。
標準入力や標準出力といった概念の概要を学び、リダイレクトやパイプなどでふれてみます。
コマンドを実行するとはどういうことかを学びます。
改めてカーネルとは何か、シェルとは何か、もう少し正確に学びます。
プログラムの実行の流れの概要を学びます。
プログラムを実行するイメージをつけるため、C 言語と Python のプログラムを実行してみます。
プログラムの実行方法の基本として、コンパイラやインタプリタの概要を学習します。
プログラミング言語のライブラリと、その使われ方について学習します。
OS の重要な概念である「プロセス」について学習します。
シグナルと kill コマンドについて学習します。
Linux の起動の流れの概要を学びます。
init プロセスの概要を学びます。
init プロセスとして近年よく使われる、systemd について学習します。
Linux カーネルの概要を簡単に学びます。
Linux カーネルのプロセス管理について学習します。
Linux カーネルによるメモリ管理について学習します。
ファイルシステムの概要を学習します。
システムコールについて学習し、システムコールを使う様子を見てみます。
Linux でのディレクトリ構成の基本として、FHS について学習します。
ファイルシステムの作成とマウントについて学習します。
EC2 インスタンスにストレージを追加して、ファイルシステムの作成とマウントを試してみます。
/dev や /proc などに配置される特殊なファイルシステムについて学習します。
プロセスによるファイルの操作と、ファイルディスクリプタについて学習します。
標準入力・標準出力・標準エラー出力について、実際の意味を学びます。
このコースのまとめとして、学習したことを改めて整理します。
このコースを終えたあと、さらにステップアップする方向性を紹介します。
Linux はサーバ用の OS として非常によく使われており、システム開発の現場で関わる機会はとても多いです。
近年は Docker などのコンテナ技術もよく使われますが、その背後で使われているのも Linux です。
しかし...
書籍や資格学習などで Linux に入門してコマンドを身につけたりしても、まだまだ知識が足りないと感じることは多いです。
例えば、以下のようなケースはよくあります
環境構築がうまくいかないときに、エラーの原因が理解できず、解決することができない
Docker などの Linux 上で動作する技術を学ぶ際に、登場する概念が理解できない
資格学習などで学んだ知識が、実際のプログラムの動きとどう繋がるのかよく分からない
環境構築のトラブルシューティングや関連技術のキャッチアップが得意になるためには、Linux などの OS の知識がとても重要です。
そこでこのコースでは、Linux について、コマンドを覚えてなんとなくさわれる段階を卒業するための知識を学びます。
とくに、カーネル・シェル・ファイルといった入門では正確に解説されない概念をもう一歩正確に学びます。
このような知識をつけることで、トラブルシューティングや Docker などの Linux 上の技術のキャッチアップに非常に役立ちます。
■このコースで学ぶこと
Bash でのコマンドの実行や標準入出力の意味
カーネル・シェルの概要や、アプリケーションとの関係
プログラムの実行とプロセスの基本
ブートプロセスと systemd の概要
ファイルシステムやファイル操作の基本
■このコースで学ばないこと
カーネルの仕組みの詳細
OS の機能を使ったプログラミング(システムプログラミング)
ネットワーク(TCP/IP)の仕組みや Linux での設定
CPU の仕組み