ラズパイを使って電子工作をしようとすると、
ラズパイのOSである、Linux(Raspbian)を使える必要があります。
ただ、普段使っている Windows や MacOS と違い、
Linuxって敷居が高いですよね。。。
その敷居の高さの原因は、
Windows や macOSが、アイコンなどの目で見てわかる操作に比べ、
Linuxは、コマンドでの操作で、アイコンなどが目に見えないからじゃないです?
でも大丈夫です。
敷居の高さは、これまでやったことないからです。
実際に触って慣れてしまえば、なんてことはありません。
でも、電子工作をするのに、わざわざLinuxを学ぶ必要はあるの?
と思う人もいると思います。
確かに、電子工作だけをしたいのであれば、Linuxは必要無いです。。。
ただ私は、電子工作を通して、
これからの仕事で使えるスキルを身に付けて欲しいと思っています。
その為、この機会に是非ともLinuxに慣れてもらいたいです。
そこでこの記事では、
- Linuxとは
- Linuxの用途
- Linuxで知ってもらいたいこと
についてお伝えしますね。
Linuxとは
Linuxとは、オープンソースのOSです。
オープンソースやOSとは何かと言うと、
オープンソースとは、無料利用・変更が出来るソフトウェアのことです。
OS(オペレーティングシステム)とは、みんなが知ってるWindowsや、MacOSのことで、
パソコンの電子部品やメモリなどのハードウェア資源管理を意識することなく、
アプリを使えるようにしてくれるソフトウェアです。
Linux OS(Linux カーネル)の主な役割としては、以下があります。
・プロセス管理
どのプロセス(プログラム)を、いつ、どれだけの間
動かすか(CPUを使用するか)を管理します。
・メモリ管理
どのプロセスにどれだけメモリを割り当てるかを管理します。
・デバイスドライバ
ハードウェアを操作します。
・ファイルシステム
メモリに保存されたデータを管理・操作します。
Linuxの種類
この章は余談ですが、、、
知っておくと、Linux をより深く知ることが出来ます。
Windows や MacOS と違い、
Linuxにはいくつかの種類(ディストリビューション)があります。
これは、先程も話をした通り、Linuxはオープンソースであり、
誰でも無料で変更が可能な為、多くの人が独自のLinuxを作り出した為です。
Linuxの種類の主流は、以下の3つです。
- Red Hat系
- Debian系
- Slackware系
Red Hat系
Red Hat社が開発している、企業向けのディストリビューションです。
企業向けということもあり、有償での配布になります。
ただ、Red Hat系ディストリビューションには、
有償だけではなく、無償のディストリビューションもあります。
有償には、RHEL(Red Hat Enterprise Linux)があり、
無償には、CentOS や Fedora があります。
CentOSはサーバーで活躍しています。
更に余談ですが、、、私も仕事で使っているサーバーのOSはCentOSを使っています。
Debian系
ボランティアが中心となって開発を進めているディストリビューションです。
Debianの社会契約に、
”1. Debian は 100% フリーソフトウェアであり続けます”
にある通り、無料のディストリビューションになります。
Debian系には、Ubuntu や Raspbian があります。
また、
Debianの社会契約の中に、
”4. 私たちはユーザとフリーソフトウェアを大切にします”
とある通り、ユーザに優しいUIになっています。
Debian系 のUIは Windows に似ているので、
Linuxって、なんだか難しそう。。。という方は特に、
Debian系から始めるのがお薦めです。
因みに、気付いた方もいるかもしれませんが、
Raspbianは、ラズパイのOSです。
今は、Raspbianではなく、Raspberry Pi OS と呼ばれるようですが。
Slackware系
Slackwareをベースにした、Linxu初期からあるディストリビューションです。
アプリをインストールする際の依存関係は、
ユーザが行う必要があり、上級者向けになります。
Linuxのプロになるなら、こちらを使ってもいいのかも・・・。
Slackware系を使うメリットは、
・安定性
・セキュリティ
・速度
が挙げられます。
Linuxの用途
Linuxを学ぶことは、ラズパイで電子工作をするだけではなく、
これからのビジネスで使えるスキルを身に付けることにもなります!
では、Linuxがどのような用途(製品)に使われているか紹介したいと思います。
このLinuxの用途を知ることで、
Linuxを身に付ける重要性が見えてきます。
サーバ
Linxuはこのサーバの用途がメインですね。
サーバとは、インターネットを介してサービスや情報を提供するコンピュータです。
例えば、google、twitter、amazonなど、
ブラウザから、サービスや情報を取得していると思いますが、
そのサービスや情報を提供しているコンピュータをサーバと言います。
サーバにLinuxが使われる理由は、
アプリ毎、ファイル毎にユーザ権限で管理され、セキュリティが高く、
多くのエンジニアのお蔭で安定性が高く、無料な為です。
組み込み
組み込み製品のOSとしても、Linuxが使われています。
Linuxが使われている組み込み製品には、
ロボット、スマホ、車、カーナビ、カラオケなどなどがあります。
スマホでAndroidという言葉を聞いたことありますよね?
この Android も、LinxuがベースになったOSです。
Linuxを使った製品って、私達の身近にたくさんあるんですね、面白いですね。
プログラミング環境
Linuxは、様々なプログラミング言語の開発環境を構築することが出来ます。
Linuxで使えるプログラム言語の一例は、
Fortran、C/C++、Java、Python、シェルスクリプトなどがあります。
自分の使いたい言語が、Linuxで使えるか調べてみてください。
パソコン
日常使うパソコンとして使えます。
前の章でお話しした通り、
Linuxは、無料で、UIもWindowsの様に使い易いものになっています。
パソコンで、文書作成、表計算を使う人は、
LibreOfficeというソフトで、Windowsの word や excelと同様のことが出来ます。
あと、印刷もすることが出来るので、
普通にパソコンとして使うことが出来ます。
まとめ
インターネットに関係する仕事には、
「サーバーエンジニア」「インフラエンジニア」「ネットワークエンジニア」
があり、Linux が使われます。
これからの時代はインターネットの時代を疑う人は居ないでしょう。
グーグル検索、SNS、ネットショッピング、Webマーケティング・・・
どれもインターネットを使っており、
これからもインターネットを使ったビジネスは発生し続けます。
つまり、Linuxはこれからの時代に切っても切れないスキルになります。
また、ロボットやスマホなどの「組み込み系エンジニア」も、
開発環境のOSはLinuxを使っています。
以上のLinuxの用途から、
Linuxの知識を習得出来れば、エンジニアとしての仕事の幅が広がりますね!
次の章で、Linuxを使えるようになる為に、
知って置いてもらいたいことをお伝えしますね。
Linuxで知ってもらいたいこと
では、Linuxを使えるようになる為に、
知ってもらいたいことをお伝えしますね。
まず、なぜLinuxが使いにくいと感じるのでしょうか?
それは、今まで使ってきた Windows と異なる点があるからではないでしょうか?
そこで、この章では Linux と Windows の異なる点、
また、その説明をおこなっていきますね。
以下説明を見て、
Linuxへの理解の第一歩になれば嬉しいです。
ディレクトリ構成
ディレクトリとは、Windowsでいうところのフォルダになります。
つまり、ファイルを入れる箱のことですね。
Linuxは、ディレクトリ毎に用途が決まっているので、
ディレクトリ構成を知ることは、Linuxを知る上で重要な要素となります。
良く使われるディレクトリについて紹介していきますね。
あのファイルってどこにあるのかな?
このファイルはどこに置こうかな?
と思った時に思い出してください。
・/
ルートディレクトリと言います。
ディレクトリの中でも最初のディレクトリになります。
ルートディレクトリと言われたら、
あ、ディレクトリの先頭なんだな、と思ってください。
・/home
このディレクトリが最も重要になります。
逆に、初学者の方は、このディレクトリだけ知っていれば十分です。
このディレクトリは、各ユーザ毎のディレクトリが格納されています。
ラズパイで初期設定を行うと、pi ユーザが作成され、
/home/pi ディレクトリが作成されます。
この /home/{ユーザ名} ディレクトリは、各ユーザ専用のディレクトリなので、
何を置いても OK です。
・/var
ログなどのファイル内容が変更されるファイルの格納場所です。
例えば、
/var/log ディレクトリには、各種ログファイルが格納されます。
・/etc
設定ファイルの格納場所です。
例えば、
/etc/passwd ファイルには、ユーザ一覧情報が記録されています。
・/bin
ユーザが利用できる基本コマンドが格納されています。
例えば、
cat, ls, cp, cd, mvなどのコマンドが格納されています。
・/usr
rpm, yum, aptなどのパッケージ管理ツールを使ってインストールすると、
このディレクトリにアプリケーションは格納されます。
また、/usr/local は、
システム管理者がインストールするアプリケーションを格納する場所です。
・/opt
パッケージ管理ツール以外で、インストールしたアプリケーションを格納する場所です。
パーミッション
パーミッションとは、ファイルやディレクトリにアクセスする為のアクセス権のことです。
Windowsは、1台を主に一人で使うコンピュータなので、意識する必要は無いですが、
Linuxは、サーバ用途など、1台を多くの人が使うコンピュータなので、
必要となる考え方になります。
ファイルやディレクトリにのパーミッションを理解するには、
アクセスする「ユーザ種類」と、各ユーザの「権限」を理解する必要があります。
ファイルやディレクトリにアクセスするユーザの種類には、
所有者(Owner)、グループ(Group)、その他(Other)の3種類のユーザがいます。
それぞれのユーザにおいて、「読み込み」「書き込み」「(ファイルの)実行」の権限を設定することが出来ます。
たとえば、/home/pi/hogehoge.txt
に、Ownerだけ、読み書きが出来るパーミッションを付けたり、
Owner、Group、Other全てのユーザに、読み書きが出来るパーミッションを付けることが出来ます。
パーミッションを具体的に表すと、
「764」などの数字で表されます。
左の数字がOwner、真ん中がGroup、右がOtherユーザを表し、
各桁は、読み込み:4、書き込み:2、実行:1の数字を足した数で表します。
では、「755」は何を意味するかというと、
・Ownerユーザは、読み込み、書き込み、実行が出来る。
・Groupユーザは、読み込み、書き込みが出来る。
・Otherユーザは、読み込みだけ出来る、ということを意味しています。
ファイルが読み書きに失敗する時は、
このパーミッションを見てみてください。
コマンド
ついに出ました!
これがLinuxを一番難しくしている原因ではないでしょうか!?
コマンドを一言で言うと、Linuxに出す命令のことです。
Windowsでは、ファイルの作成や、フォルダ移動など、
アイコンで視覚的に分かり易く操作していましたが、
Linxuではコマンドを使って実現します。
ここでは、電子工作をするうえで、これだけは使えてほしいコマンドを記載しました。
コマンドの由来(何の略か?)も記載するので、覚えやすいと思います。
是非使いながら覚えて下さい。
# 以下使用例の {} はコマンド記載時には不要です。
コマンド | 由来(何の略か?) | 説明 | 使用フォーマット |
pwd | present working directory | 現在いるディレクトリの場所(パス)を表示する。 自分が今どこのディレクトリにいるか確認する際に使ってください。 | pwd |
ls | list segments | 現在いるディレクトリ内の、ファイルやディレクトリ情報を表示する | ls -la |
cat | catenate | ファイルを結合して表示する | cat {ファイル名} |
cd | change directory | 作業中のディレクトリを移動する | cd {ディレクトリパス} |
touch | touch | ファイルを作成する | touch {ファイル名} |
mkdir | make directory | ディレクトリを作成する | mkdir {ディレクトリ名} |
cp | copy | ファイル、ディレクトリをコピーする | cp -r {コピー元} {コピー先} |
mv | move | ・ファイル名、ディレクトリ名を変更する ・ファイル、ディレクトリを移動する | mv {変更(移動)元} {変更(移動)先} |
rm | remove | ファイル、ディレクトリを削除する | rm -r {ファイル(ディレクトリ)名} |
chmod | change mode | ファイル、ディレクトリのパーミッションを変更する | chmod {アクセス権限} {ファイル(ディレクトリ)名] 例:chmod 644 hogehoge.txt |
chown | change owner | ファイル、ディレクトリの所有者・グループ名を変更する | chown {所有者名} {ファイル(ディレクトリ)名} 例:chwon owner_name hogehoge.txt |
最後に
如何だったでしょうか?
Linuxを少しでも理解出来、触ってみようかなと思って貰えたら嬉しいです。
「でも、Linuxを触る環境が無いじゃん」
という方も安心してください。
Raspberry Pi(マイコン)の OS は Linux です。
なので、Raspberry Pi をゲットすると、楽しく電子工作をしながら Linux も学べます。
電子工作をより楽しむには、作りたいものを決めることです。
以下記事では他にも色んな電子工作を作っています。
あなたが作りたいモノのヒントがあれば嬉しいです。
記事を更新するとTwitterでつぶやきます。
フォローしてもらうと、記事を書くモチベーションが上がります。
下のTwitterアイコンからフォローお願いします。
不明な点があればページTOPの「お問い合わせ」にてご連絡下さい。
もし一人で作るのが難しかったら、
一緒に作るサービスをしています。
お気軽に ページTOPの「お問い合わせ」にてご連絡下さい。