LoginSignup
1
1

Linuxを学ばずに使う, OSK(66)

Last updated at Posted at 2022-03-07

「Linuxを学ぶにはどうしたらいいですか。」

という質問をいただくことがある。

「Linuxを覚えるにはどうしたらいいでしょうか。」ではない。

Linuxを使っていれば、いつか学んだことになる。

習うより、慣れろ。

Windowsは、Linux/Unixの祖先にあたるDEC VMXを開発していた人たちが開発したOS.
Linux/Unixの祖先にあたるOSで、POSIXができるよりも前の設計思想で、無理にPOSIXには準拠していない。CygwinというLinuxに揃える道具を入れると、グループ以外はPosixに対応していることがわかる。

Windowsでプログラム開発ができていれば、Linuxでプログラム位開発するのはすごく楽なはず。
オープンソースが多く、ソースコードを読んだり、ソースコードをビルドすればわかることがある。

目的

目的による。

  1. Linux の Server機能を利用したい。dockerのServer機能を利用したい。

  2. Linuxのコマンドを利用したい。dockerのコマンドを利用したい。

  3. LinuxのGuiを利用したい。

  4. Linuxのカーネルをコンパイルしたい。

  5. 複数のLinuxのシステムを管理しないといけない。

  6. Linuxのシステム(上の5つすべて)を把握しネットワーク設計をしないといけない。

  7. C/C++コンパイラ・クロスコンパイラをコンパイルしたい。

前提

CコンパイラとPOSIXの関係がわかっていると、道に迷うことが少ないかも。
POSIXにそれなりに対応できるOSと、POSIXライブラリは知らんぜというfreestandingで行く人と。

POSIXで行くのなら、UNIX(BSD含む)でも、MacOSでも、Linuxでもよく、WindowsならWLSを入れていればいいかも。

「本物のC」は「Cの精神」と 「freestanding と hosted」と「未定義、未規定、処理系定義」

1. Linux の Server機能を利用したい。

Linuxを利用できるクラウドを利用するとよい。
最初の教育期間は無償だったり、安価だったりすることがあるかも。

2. Linuxのコマンドを利用したい。

今、利用しているシステムが何かによる。WindowsならWLS、Mac OSならdocker。

今、利用しているシステムとは関係なく始めるのであるなら、

2.1 Mac OS + docker
2.2 Windows + WLS
https://docs.microsoft.com/ja-jp/windows/wsl/install
2.3 Raspberry PI
2.4 Ubuntu

「LinuxをやるならmacOS」派です。「Linuxを学ぶにはMacが近道」派です。MacOS 上のdockerのubuntu上で。

あなたもdocker, 私もdocker。docker(130)

Qiitaで優秀賞をいただきました。ありがとうございます。MacOS上のdockerだけで作業しました。

4. LinuxのGUIを利用したい。

GUIはRaspberry PIからでどうでしょう。

3.1 Raspberry PI
3.2 Windows + WLS
3.3 Ubuntu

4. Linuxのカーネルをコンパイルしたい。

上記で Raspberry PIは除外したい。
メモリは32GB欲しい。

4.1 Debianでソースコード導入
4.2 dockerのDebian系でソースコード導入

5. 複数のLinuxのシステムを管理しないといけない。

今、何を利用しているかによる。
異なるLinuxシステムに触れているとよいのが経験則。

5.1 Windows + WLS と Raspberry PI
5.2 Mac OS と Raspberry PI
5.3 Raspberry PI 複数台

6. Linuxのシステム(上の5つすべて)を把握しネットワーク設計をしないといけない。

ネットワーク設計する場合に、すべてがLinuxとは限らない可能性を考慮し、
Android端末、iOS端末を含むネットワーク設計ができるように構えるとよいのが経験則。

6.1 Windows + WLS と Mac OS と Raspberry PI
6.2 Raspberry PI 複数台

ネットワーク設計対象数が20台を超える場合は、Raspberry PIをその台数分用意して、
いろいろ試験すると面白い。

特に、サイバーセキュリティ対策などをぜひぜひ。

LinuxPCはなくてもいいので、BSD PCを立てて試験してもらえるといいかも。

ネットワーク ReferenceとしてのBSD

7. C/C++コンパイラ・クロスコンパイラをコンパイルしたい。

C/C++コンパイラ・クロスコンパイラをコンパイルするにはdockerがお勧め。
メモリはできれば32GB欲しい。

7.1 Mac OS + docker
7.2 Windows + WLS + docker
7.4 Ubuntu + docker

Dockerをどっかーらどうやって使えばいいんでしょう。TOPPERS/FMP on RaspberryPi with Macintosh編 5つの関門。「名古屋のIoTは名古屋のOSで」。docker (37)
https://qiita.com/kaizen_nagoya/items/9c46c6da8ceb64d2d7af

8. Linux と Freestanding環境のOSを同じソースに統合してみる。

自動車用OSを網羅する OSEK(9)
https://qiita.com/kaizen_nagoya/items/a61144daf500a3f2b4f4

まとめじゃないもの

Linuxを学ぶのに、Linuxを使えばいいという意見に遭遇することがある。

カーネルのコンパイルが目的だったら、一番の早道だと思う。

コンパイルしたカーネルをすぐに試験できるから。

そうじゃなければ、わざわざLinuxを覚えるのにLinuxを使う必要はないかも。

自分は、Mobile IPという通信規約の実験をするため、カーネルのコンパイルが必要で、
PCにDebianを導入した。通信規約なので、対向試験はBSDを利用した。都合PC2台。

あ、Linuxを学びたい訳ではないので、本題からははずれる。

Linuxを学びたいと思ったことはないかも。POSIX OSが嫌いだから。OSEK(AUTOSAR) OSは好き。っていうか、人の仕事を邪魔しないOSが本当のOSかなって思うんです。。

OSよりも苦手なのはDBとX-Window。

得意なのは、C言語、Ethernet(TCP/IP), html。C/C++コンパイラ・クロスコンパイラ、EthernetもhtmlもPOSIX OS上で動いてた。ありがとうございます。

世界ソフトウェア品質会議で、Linux, Mac OS, cygwinのPOSIX Testについて、品質指標にもとづいた発表している。

Testing and Verification for Embedded Linux
https://www.juse.or.jp/upload/files/3wcsq.pdf

Posix Test Suite docker downloads, tar, install。docker(110)
https://qiita.com/kaizen_nagoya/items/f1e24be04a2405ede00f

参考資料

Linux教育15日(3週間)を企画、運営、評価する。
https://qiita.com/kaizen_nagoya/items/6601ec31d5c7f3186b7d

10歳児がサイバセキュリティの専門家になるには
https://qiita.com/kaizen_nagoya/items/0aa201b09187bbe39ff3

最初に覚えるプログラミング言語は何がいいですか?
https://qiita.com/kaizen_nagoya/items/590704e76e287707637b

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.

文書履歴(document history)

ver. 0.01 初稿  20220307
ver. 0.02 追記 20240107

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

1
1
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
1
1