LoginSignup
0
0

More than 1 year has passed since last update.

Linuxのしくみ コンピュータシステムの概要

Posted at

久しぶりの投稿になります

最近Linuxの仕組みという本を読んで、その要約をしようと思います

コンピュータシステムが動くとき、4つの手順を繰り返しています

①キーボードなどを介して、コンピュータにある処理を依頼する

②メモリにある命令を読み込み、それをCPUで実行。その結果をデータを保持する領域に書き込む

③ハードディスクやストレージデバイスをに書き込む
OR
別のコンピュータに転送する
OR
人間にモニターなどを使って、人間に見せる

④ ①に戻る

この手順を繰り返して、ユーザーが使える一連の処理をプログラムといいます

プログラムには3種類あります
①アプリケーション
→ユーザーに直接役立つもの。LINEとかGoogleなどといったものです

②ミドルウェア
→アプリケーションの実行を助けるためのもの
webサーバーやDBなどがそれです

③OS
→ハードウェアを操作して、アプリケーションやミドルウェアの処理に必要な機能を提供するもの
いわば仲介役です
Linux windows MacOSがそれにあたります

イメージは以下の通りで、互いに連携しながら動いています
86F6838C-DCBC-4465-894A-4DF3190A9B05.png

この図に出ているOSは各種プログラムはプロセスという単位で実行され、複数のプロセスを同時に実行できるようになっています。

Linuxとハードウェアの関係

Linuxはアプリケーション、ミドルウェアとの関係もありますが、ここではハードウェアとの関係について話していこうと思います

Linuxの大事な役割の1つにデバイス操作があります。
Linuxには、デバイスドライバというものあって、そのおかげでPCからプリンターを使って印刷ができて、今話題のUSBにデータを送ることもできるわけです

もし、LinuxのようなOSがなかったら、プロセスごとにデバイス操作処理が必要になります。

具体的にいうと、エクセルで作った資料をUSBに保存したいときに、「エクセルで作った資料をUSBに保存する用のプログラム」を書かないといけないんです。Wordを保存したいときはまた別のプログラムを自分で書かなきゃいけなくなるんですね。
マジだるいですね

Linuxではデバイスドライバというのを使って、プロセスを管理し、それによって外部デバイスを操作していきます
でも、コンピュータというのはいつも思い通りに動かないのです。
デバイスドライバを経由せず、デバイスを操作しちゃおうとすることがあるんです

そこでLinux では、ユーザーモードカーネルモードというのがあって、後者のカーネルモードで動いているときのみ、デバイスにアクセスできるようになるんです

デバイスドライバはカーネルモード、プロセスはユーザーモードで処理するという流れになっているんです。

【参考資料】

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0