専門学校34日目(情報工学)5月30日(木)

1時限~3時限
Linux実習 新しいLinuxの教科書 第2版

前回は教科書p.110- 第7章テキストエディタの5節「便利なカーソル移動」まで学びました。
wsl -d UbuntuでUbuntuを起動します。ユーザー名を指定するなら、そのあとに -u ユーザ名とする。
さらにcd "/mnt/c/Users/windowsのユーザ名/Documents/Linux/"でディレクトリを移動します。
私はwindowsのユーザ名を漢字にしてしまっていてディレクトリの移動ができず、/c/の下にTempディレクトリを作成して、/mnt/c/Temp/でTempディレクトリに移動するようにしています。

vim crontabで前回コピーしたcrontabファイルを開きました。
p.122- 6節「カット、コピー、ペースト」
vimではカットをデリート、コピーをヤンク、ペーストはプットといいます。bashではペーストをヤンクと呼びました。
ファイルを開いた状態でdを押して$を押すとカーソルの現在位置から行末までが消えました。
uキーを押すとアンドゥで操作を元に戻せます。
$で行末に移動して、dを押してから0を押すと行末から先頭までを削除します。
wキーで単語ずつで移動したが、dを押してwを押すと単語ずつで削除。
dggで最初の行までを削除、dGで最後の行までを削除します。
d$で行を消して、pでプット(貼り付ける)すると元に戻ります。
行末にカーソルを移動して、y0(ワイゼロ)で行頭までヤンク(コピー)し、pでプットすることができる。
Jで改行を消して下の行と連結できる。
ctrl+rでuによるアンドゥを取り消せる。
vimでファイル内の検索をするには/を押す。
ggで先頭に戻る。
/文字列で下方向に向かって文字列を検索。
?文字列で上方向に向かって文字列検索。
/rootでrootが強調表示され、Enterキーで検索した文字列の先頭にカーソルが移動する。その状態でnを押すと次の検索結果の場所へ移動します。Nで前の検索結果に移動する。
:を入力してから%s/none/one/gでnoneという文字列がoneに置換される。:を押さないと、インサートモードに切り替わり文字の入力を受け付ける状態になってしまう。

9節ヘルプとドキュメント
:q!で保存せずにファイルを閉じます。
vimtutor jaコマンドで日本語でチュートリアルが始まる。
vim crontabでファイルを開き、:helpでヘルプを見れます。

コメントアウトしたい。#記号があるとコメントにしてくれる。
vim study1,txtで配布されたテイストファイルを開き
以下の手順で実施する。
1. 1行目の左端にカーソル移動
2. i
3. #を入力
4. esc
5. カーソルを#の右に移動させる
6. y0
7. 2行目の左端にカーソル移動
8. shift + p


第4章ファイルとディレクトリ
Linuxは扱う情報はファイルとして保存され、これはWindowsなどと同じ。それに加えてシステム全体もファイルとして構成されている。入出力装置にそれぞれファイルが割り当てられており、そのファイルを介して機器を操作する。Windowsではこれはデバイスドライバが役割を担う。一番トップのディレクトリは/というものになっている。

/mnt/c/TempはWindowsのシステムをマウントしている。
cd / で一番トップに行くと、/ディレクトリに行きつく。
そこでlsコマンドを実行するとbinやdevといったディレクトリが表示される。
/というディレクトリはルートディレクトリといいます。
pwdで現在のディレクトリを表示し、cd / でルートディレクトリである/に移動します。

WindowsとLinuxの違いは2台のディスクがあればWindowsは2つのディレクトリツリーができるが、Linuxでは1つのディレクトリツリーしか持たない。複数のディスクがある場合、Linuxではルートディレクトリ配下のどこかに、ディスクをディレクトリとしてくっつける手法をとっている。この操作をマウントという。

本日書いた授業のレポートは以下の通りです。
■疑問点1
デバイスファイルとはなにか

■調査結果・解決方法1
ディスクやキーボードなどのハードウェアをファイルとして扱えるように用意された特殊なファイル。
OSの入出力機能の一つで、ファイルの読み書きと同じ手順でデータの入出力や制御をできるようにしたもの。
これは/devディレクトリに格納される。

■疑問点2
/varディレクトリは何をするのか。

■調査結果・解決方法2
ログファイルやデータベースファイルなどのシステムが生成するさまざまな情報が保存される。そのため、システムの正常な動作に欠かせない場所。一時ファイルやキャッシュファイルも/varディレクトリ内に保存されることがある。これらのファイルはシステムのパフォーマンス向上に寄与する。

■疑問点3
FHS(Filesystem Hierarchy Standard)とは何か。

■調査結果・解決方法3
ファイルの役割とそのファイルが存在すべきディレクトリの位置を対応させる規格。
主な対応付けとして、基本的なコマンドは「/bin」、一般ユーザーのホームディレクトリは「/home」、ブートローダ関連は「/boot」、ログなど動的に変化するファイル群は「/var」などとなっている。ログファイルは「/var/log」など、一部は第2階層や第3階層について規定している。各ディレクトリやファイルの存在すべき位置の標準を示すことで、どのような環境でも目的のファイルを容易に検索することができる。

■練習問題1結果
インサートモードで#を入力し、y0でそれをヤンクして、2行目の行頭にプットしました。

■練習問題2結果
1問目と同じ要領で#を入力し、9行すべての行頭に#が付きました。

■振り返りレポート
※実施した内容を以下に列挙する
・vim crontabで前回コピーしたファイルを開きました。
・d$コマンドで行末まで削除しました。
・uで操作を元に戻しました。
・dwで単語ごとに削除しました。
・dggで最初の行までを削除、dGで最後の行までを削除しました。
・Jで改行を消して下の行と連結しました。
・vimで/に続いて文字列を入力してファイル内の検索をしました。
・:を入力してから%s/none/one/gでnoneという文字列がoneに置換しました。
・vimtutor jaコマンドでチュートリアルを閲覧しました。
・「/」ディレクトリに移動しました。
・Linuxのディレクトリ構造とWindowsなどのディレクトリ構造との違いを学びました。


4時限~6時限
国家試験対策    コンピュータ概論
          キーワードで学ぶ最新情報トピックス2024

前回火曜日はバッチ処理、リアルタイム処理の途中まで学びました。
オンライントランザクション処理にはACID特性があるのでした。
原子性はトランザクションは処理が完了したか全く実行されないかのどちらか。
一貫性は実行前と実行後でデータベースの内容に矛盾がないこと。
独立性は複数のトランザクションを同時に実行した場合も1件ずつでも結果が一致すること。
耐久性は障害が発生しても結果が正しく保持されること。

リアルタイム制御処理
状況に合わせて即時に処理を行うシステム。自動車の自動制御や発電所の制御などに使われる。


並列処理
一つの処理を複数のプロセッサを用いて効率よく処理する方式。
同時に実行する命令数と扱うデータで以下のように分類される。
SISDは1つのプロセッサ
SIMDは複数のプロセッサ
MISDは複数のプロセッサ
MIMDは複数のプロセッサ
とあるが割と覚えやすい。singleかmultipleが入り、instructionは処理のこと。Dはdata。一つまたは複数のプロセッサで1命令(複数命令)/1データ(複数データ)を処理する。


3.ハイパフォーマンスコンピューティング(HPC)
スーパーコンピュータなどを用いて大量の計算を行うもの。
基本情報の試験ではあまり問われない。

4.システム構成
ここは基本情報の試験でも重要になってくる。冗長構成や並列構成で信頼性を向上しているなどの構成。

デュプレックスシステム
デュプレックスとは2重のという意味がある。主系と従系に分け従系は障害などに備えて普段は待機して、主系がオンライン処理を行う。従系はバッチ処理などほかのことをする。従系には主系と同じシステムを起動して待機するホットスタンバイ方式と、主系が障害にあったら処理内容を主系のものに切り替えるコールドスタンバイ方式がある。

デュアルシステム
2つの系列で同じ処理を行い、結果を照合して信頼性を高める。主系や従系に分かれず、照合するという部分がデュプレックスシステムと異なる。片方が障害にあってももう片方だけで処理を継続する。その場合は照合がなくなる。

マルチプロセッサシステム
複数のプロセッサで処理を並列で行う。今はコアが複数あるのが主流になってきていて、マルチプロセッサとは言わないかも。ここではマルチコアを含めて述べていると見てよい。

密結合マルチプロセッサ
複数のCPUを一つのOSで制御されるシステム。主記憶装置を共有する。

疎結合マルチプロセッサ
各プロセッサがそれぞれ主記憶装置をもつ。ハードウェア的に別なもので高速なネットワークで通信する。

クラスタ
これも疎結合マルチプロセッサの一つ。複数のコンピュータを連動させて一つのコンピュータのように利用できるシステム。

グリッドコンピューティング
ネットワークを介して多数のコンピュータを接続し、全体として高性能なシステムにする。
seti@homeというプロジェクトがあった。地球外生命を探すという内容で発見には至らなかった。ここでグリッドコンピューティングが用いられた。

5.クライアントサーバシステム
サービスを要求するクライアントとサービスを提供するサーバからなる分散型システム。
サーバにはいろんな種類があり、ファイル共有をするファイルサーバ、プリンタを共有するプリントサーバ、データベースを管理するデータベースサーバなど。

クライアントサーバの特徴
クライアントとサーバはOSが異なっていてもよい。1台のコンピュータでサーバとクライアントの両方を稼働できる。サーバは別なサーバに対してクライアントとなることがある。

2層クライアントシステム
クライアント側でデータの入出力とデータベースへの問い合わせ用のデータ加工を行う。サーバ側ではデータベースへのアクセスのみをするシステム。

3層クライアントシステム
クライアント側でデータ入出力処理のみをし、データの加工やデータベース操作はサーバ側で行う。
プレゼンテーション層、ファンクション層、データ層の3つの層に分けられる。この処理は一つのサーバになっていることもあれば、複数のサーバが関与することもある。データベースのサーバは別ということもあるわけだ。

シンクライアントシステム
このシンはthinで薄いという意味。クライアント用PCには最低限度の機能しか持たせず、サーバ側でほとんどの処理を行うシステム。クライアント側から情報漏洩がないなどのメリットがある。セキュリティの重要になってくる場面で使われる。あまり一般家庭のユーザは使うことはない。これに対してファットクライアントシステムと呼ばれるものが普通のPCで、OSがあってアプリもたくさん入っているもの。プログラムの実行と画面表示を端末側で行うネットワークブート型、端末には画面だけ表示する画面転送型がある。シンクライアント用の端末は3~4万円くらい。ディスプレイの背面に設置したりする。実際に導入するとなると多くの端末を数千万円かけて用意し2、3台で始めようというものではないです。

6.Webシステム
Webシステムは普段から使っているので説明するまでもないと思う。クライアントがWebブラウザを利用してWebサーバにアクセスする。Webブラウザを実行できる端末なら機種やOSを選ばずに利用できる利点がある。

7.仮想化
ほとんど仮想化というのがされている。システム資源をスフとウェアなどの設定で自由に分割し、複数のサーバとして運用する技術でコスト削減につながる。仮想化しないと3つのサーバ機能を3台で運用することになりコストが高くついたりする。

VM(仮想マシン)
ソフトウェアを用いて1台のコンピュータ内に作成された複数のコンピュータのこと。構築方法によりホスト型とハイパーバイザ型がある。ホスト型はホストOSの上に仮想化ソフトウェアでゲストOSを動かし、その上でアプリを動かす。代表的な仮想化ソフトにはVMWareやOracle VM VirtualBoxなどがある。実際のサーバでホスト型を使うことはあまりない。学習用やテスト用でホスト型を使うことがある。ハイパーバイザ型はハードウェアの上に直接ハイパーバイザが動き、その上にホストOSを動かす。ホストOSは介在しない。

VDI(仮想デスクトップ基盤)
シンクライアントを利用した不折敷で、サーバの仮想化基盤、ハイパーバイザ上に作成されたクライアントごとのデスクトップ環境を利用する。クライアントはネットワーク経由で仮想サーバのデスクトップ環境を利用する。クライアントPCには画面だけが送信されるのでセキュリティの強化につながる。サーバからデスクトップ環境を送信するので、どこでも同じ環境で作業ができる。

マイグレーション/ライブマイグレーション
マイグレーションは物理サーバ上の仮想環境で作成された仮想マシンを別な物理サーバに移行する技術。仮想マシンを稼働させたまま移行する方法をライブマイグレーションという。


8.クラウドコンピューティング
ネットワークを経由して、インターネット上のストレージやソフトウェアなどの資源を利用者に提供するサービス。
従量課金制なのでコストを抑えることができ、自前でハードウェア(サーバ)を用意する必要もない。クラウド事業者がどこまで提供するかでSaaSやPaaSなどへ分類が変わる。クラウドはコンピュータ資源を借りるものだが、自前でサーバなど資源を用意するのをオンプレミスという。

SaaS
クラウド経由でアプリケーションなどのソフトウェアを提供するサービス。利用者はソフトをインストールする必要がない。

PaaS
クラウド経由でソフトウェアを実行するためのプラットフォームを提供するサービス。

IaaS
クラウド経由でサーバやストレージなどを提供するサービス。スケールアップやスケールダウンを必要に応じて行える。

FaaS
サーバレスでアプリ開発を行うサービス。サーバを使わないわけでなく、サービス提供者の提供するサーバを使って開発するもの。未使用時は課金されない。

DaaSというのもあり、desktop as a serviceでクラウドが用意するVDI。

9.エッジコンピューティング
データを近くに設置したサーバに送信して処理を行う分散型システム。リアルタイム性が求められるIoTなどに適している。


来週木曜日にテストします。


この記事が気に入ったらサポートをしてみませんか?