第1章 Dockerをどっかーらどうやって使えばいいんでしょう。
<この項は書きかけです。順次追記します。>
1.1 Raspberry Pi
ここでは、Raspberry Pi3を使っています。RaspbianのSDカードがあれば、そこにフォルダを作り、Raspbianを退避させてTOPPERS/HRPをコピーして使います。
第一段階:クロスコンパイル
第二段階:シリアルでモニタ
USB-シリアルピンのケーブルがあればモニタで確認できます。
https://www.amazon.co.jp/dp/B01KZWJRRE/
海外だったので2箇所に10本づつ発注。到着日時が同時だったのには驚き。
第三段階:デバッガでデバッグ(追記予定)
Raspberry Pi2, Raspberry Piを使ったTOPPERS/SSPの動かし方は、
https://github.com/alvstakahashi
1.2 TOPPERS/FMP
https://www.toppers.jp/fmp-e-download.html
のRaspberry PI版を Macintoshで生成するための方法です。
TOPPERSはオープンソースのリアルタイムカーネルを提供しています。
FMPはFlexible Multiprocessor Profileの略で、マルチコアに対応したカーネルです。
1.3 「名古屋のIoTは名古屋のOSで」
この資料は2017年TOPPERS開発者会議において名古屋大学の本田晋也さんが行った演習を基に作成しています。
Raspberry PIをraspbian以外でも使う実験を行います。
名古屋大学で設計されたTOPPERS/FMP, 杉本明加さんと名古屋市工業研究所で実装したTOPPERS/SSPなど名古屋のOSを試します。
2017年12月開催の「名古屋のIoTは名古屋のOSで」セミナで、名古屋市工業研究所の斉藤直希が用意したものに基づいています。
ここではMacintoshで説明します。Windowsでも、同じようにDockerを利用することができます。下記を参考に実行してみてください。
1.4 Docker
Dockerは、コマンドラインの仮想環境を作るソフトです。
Linuxではサーバ機能を使い、Windows, MacintoshではDesktop機能を使います。サーバ、仮想環境ともUbuntuが代表的です。ServerはUbuntuだけでなくDebian系のLinux始め、多くのLinuxで動作するLinux(ubuntu)のコマンド環境を提供してくれます。
MacintoshではDockerのDesktop機能であるdockerアプリを導入します。Dockerアプリの導入・起動は、下の「5つの関門」参照。
第一章はdockerを導入ずみを前提にしています。実行してみて、うまくいかなかったら、第二章の「5つの関門」をお読みください。
1.5 注意点
Macintoshでdockerを使う場合にわかりにくいところは、dockerを起動したコマンドプロンプトの状態とdockerの状態が似ていることです。
そのままさっきとあまり違いがなく、すでにdockerの中にいる状態になる。
Macintoshのコマンドと、dockerの内部とでは"$"の前に付いている文字列が代わっているはずです。
ここでは、固有名詞を避けるためにコマンドプロンプトを省略しています。
以下、dockerの中の入力促進記号(prompt)は"$$"と表記します。お使いの画面には$しか現れていません。
1.6 コマンド実行(Macintosh)
Macintoshのコマンド(プロンプト)で
$ docker pull kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
$は入力促進記号(prompt)です。この文字を入れる必要はありません。
セミナで実行したdockerで一部修正したものを保存(push)したものを取り出す(pull)する作業です。
dockerコマンドのログ(例)
実行のログ(例)のはじめの部分はこちら。
kaizenjapan: Pulling from kaizenjapan/dockertoppersfmprpi64_fmp
8f7c85c2269a: Pull complete
9e72e494a6dd: Pull complete
3009ec50c887: Pull complete
9d5ffccbec91: Pull complete
e872a2642ce1: Pull complete
30b8a79ef712: Pull complete
dd62d57c37c5: Pull complete
続きは
https://researchmap.jp/joxehp3dn-2000107/#_2000107
こんな感じなら大丈夫。
あるいは、一度pullしたことがあると
$ docker pull kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
kaizenjapan: Pulling from kaizenjapan/dockertoppersfmprpi64_fmp
Digest: sha256:52e9f56dd33306e177ec8ed5cba8995a7ff3204a713855cec32601f723f23f5c
Status: Image is up to date for kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
dockerのfmpコンパイル用イメージがうまくできているかの確認。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kaizenjapan/dockertoppersfmprpi64_fmp kaizenjapan b329efb0b44b 23 hours ago 1.24GB
逆に言えば、前docker pullしたことがあれば、docker imagesを実行してみれば、docker pullする必要はない。
1.7docker起動(2つ目のdockerコマンド)
$ docker run -it kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan /bin/bash
コマンドの結果、コマンドのプロンプトが「administrator@e40a06773578:~$」と変わっていれば大丈夫。
下記の警告は、すでにdockerで走っている状態。
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
aptなどは sudo を先につけて実行するとよいことが分かります。
プロンプトが少し変わってることに注目してください。"Machine"という機器名のMacに"user"という名前でMacログインしていたとしたら
# Macintosh
Machine:~ user$
# docker:ubuntu
user@846978ad203c:~$
プロンプトで見分けにくければ、Docker内部にいるかどうかを確かめるには、例えば、
$ ps -ax
PID TTY STAT TIME COMMAND
1 pts/0 Ss+ 0:00 /bin/bash
17 pts/1 Ss 0:00 bash --login
5004 pts/1 R+ 0:00 ps -ax
こんな感じです。Macintoshでは、いっぱいプロセスが走っているはず、、、。
1.8 docker内でコマンド実行
起動したdockerの中で
$$ cd workdir
$$ sudo ../scripts/build_fmp.sh
# http://bit.ly/2nRx6nN by Satito naoki
$$は入力促進記号(prompt)です。この文字を入れる必要はありません。'#'の行は註釈(comment)です。コマンド列の入力手順の説明が書かれています。
logの例です。
--2018-02-07 16:38:21-- https://releases.linaro.org/components/toolchain/binaries/7.1-2017.08/aarch64-elf/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-elf.tar.xz
releases.linaro.org (releases.linaro.org) をDNSに問いあわせています... 52.77.230.32
releases.linaro.org (releases.linaro.org)|52.77.230.32|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 FOUND
場所: https://publishing-ap-linaro-org.s3.amazonaws.com/releases/components/toolchain/binaries/7.1-2017.08/aarch64-elf/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-elf.tar.xz?
* snip *
../arch/arm64_gcc/common/core_def.csv sample1.cfg
check complete
aarch64-elf-objcopy -O binary -S fmp fmp.bin
fmp.binができていればOK.
docker内のコマンドのログ(docker軌道からの一連のlog)
エラーが出たりして、実行結果が違うかもしれないと比較するためのlogファイルはこちら
https://researchmap.jp/mulbu8wxa-45645/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=152852&metadata_id=25961
1.9 ファイルのコピー
置くモノ :
fmp.bin ,
config.txt(RPi64Toppers直下) ,
start.elf , bootcode.bin(https://github.com/raspberrypi/firmware/tree/master/boot からダウンロード)
Raspbianのmicro SDカードを利用する場合
backupフォルダを作り、ルートディレクトリにあるファイルを全てbackupフォルダに移動して
上記4ファイルだけにすればTOPPERS/FMPが起動します。
FMPフォルダを作り、4ファイルをFMPフォルダに移動し、backupフォルダの中身をルートに戻せば、Raspbianが起動します。
1.10 USB serial 接続
Raspberry PiでTOPPERS(TRON系OS)
http://domisan.sakura.ne.jp/article/rp_toppers/rp_toppers.html
当方の場合は、黒(gnd:6), 白(8)、緑(10)
1.11 minicomの導入・起動
Mac OS X Mountain Lion で RaspberryPi とシリアル接続する
http://cat-s-tail.blogspot.jp/2013/10/Mac-OS-X-Mountain-Lion-RaspberryPi-serial.html
brew install minicom
1.12 起動
micro SDカードを刺して、電源を入れる
TOPPERS/FMP Kernel Release 1.4.0 for RPI-ARM64(BCM283X(Cortex-A53)) (Feb 7 2018, 09:25:47)
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2004-2015 by Embedded and Real-Time Systems Laboratory
Graduate School of Information Science, Nagoya Univ., JAPAN
Processor 4 start.
Processor 3 start.
local_inirtn exinf = 4, counter = 1
Processor 1 start.
local_inirtn exinf = 3, counter = 2
local_inirtn exinf = 1, counter = 3
Processor 2 start.
local_inirtn exinf = 2, counter = 4
Server task 3 starts.
Server task 4 starts.
Server task 2 starts.
CPU exception handler1 (p_excinf = 0002e560).
sns_loc = 0 sns_dsp = 1 sns_tex = 1
xsns_dpn = 1 xsns_xpn = 1
Sample program ends with exception.
local_terrtn exinf = 1, counter = 5
local_terrtn exinf = 4, counter = 7
local_terrtn exinf = 3, counter = 7
local_terrtn exinf = 2, counter = 6
global_terrtn exinf = 0, counter = 8
やったー、動いた。
第二章 TOPPERS/FMP on Raspberry Pi with Macintosh編 5つの関門
TOPPERS/FMPをMacintoshでコンパイルするのにいくつかの関門がある。
2.1 関門1 クロスコンパイラのコンパイル
最大の関門はクロスコンパイラのコンパイル。この関門を潜るために、dockerを使う。
Macintoshでは、大文字小文字の識別、ファイル名の長さがの制約がLinuxと異なる。そのためLinuxでうまく行くことがMac OSXではうまくいかないことがある。
設定をいじるより、docker/ubuntuで操作する方が簡単。
docker for TOPPERS/FMP
ビルドするためのDockerプロジェクト.by Saito Naoki
https://github.com/nmiri-nagoya-nsaito/docker-toppers-fmp-rpi64
準備1 Xcodeとコマンドラインツールの導入
XcodeはApple Storeから無償で導入できます。
「Xcode」検索
コマンドラインツールは、Xcode導入後、
$ xcode-select --install
準備2 brewの導入
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
準備3 git, wget, nkf導入
$ brew install git
$ brew install wget
$ brew install nkf
準備4 dockerアプリ導入
Macintoshにdockerアプリを導入
$ brew cask install docker
準備5 dockerアプリ起動
アプリケーションフォルダのDockerアプリをダブルクリック。
アプリが起動していないと、コマンドラインで次のエラーが出る。
$ docker ps -a
bash: docker: command not found
dockerの中でも上記のエラーが出る。
dockerのわかりにくいところは、dockerを起動したコマンドプロンプトで、
そのままさっきとあまり違いがなく、すでにdockerの中にいる状態になること(大事なことなので2度書きました)。
dockerの起動状態の確認(プロセス編)
dockerが起動しているかどうかは、dockerアイコンが起動アプリ一覧の中にあるか、または次のコマンドを叩くとわかる。
$ ps -ax | grep docker
実行
gitコマンドを投入
$ git clone https://github.com/nmiri-nagoya-nsaito/docker-toppers-fmp-rpi64.git
# http://bit.ly/2nRx6nN by Satito naoki
続いて次のコマンドを
$ cd docker-toppers-fmp-rpi64
$ ./start_shell.sh
# http://bit.ly/2nRx6nN by Satito naoki
目的のdockerがすでに起動していれば、buildしない設定になっているらしい。
...
if [ "x$(docker-compose ps -q ${SERVICE})" = "x" ]; then
docker-compose build ${SERVICE}
fi
...
# http://bit.ly/2nRx6nN by Satito naoki
## うまくいったらdockerの内部で次のコマンドを実行。
$$ cd workdir
$$ ../scripts/build_fmp.sh
# http://bit.ly/2nRx6nN by Satito naoki
うまくいけば、configuratorのコンパイル、設定をし、カーネルをコンパイルする。
2.2 関門2 configuratorの導入
TOPPERSのカーネルのコンパイルで、configuratorの導入で迷うこと、困ることがしばしば。
configuratorのコンパイル
configuratorは、ホストOS(今回はubuntu)のコンパイラでコンパイルする。クロスコンパイラではない。
configuratorの置き場所
configuratorは、任意の場所においておいて、ln -sでシンボリックリンクを作るのが良さげ。
先ほどのスクリプトで、
../scripts/build_fmp.sh: 22 行: cd: RPi64Toppers/fmp/cfg/cfg: そのようなファイルやディレクトリはありません
というエラーが出る。cfgというフォルダが二重に必要。今回は、そのどちらも作成されていない。
...
cd RPi64Toppers/fmp/cfg/cfg
ln -s ../../../../cfg-1.9.6/cfg/cfg cfg
cd ../../
...
# http://bit.ly/2nRx6nN by Satito naoki
となっている。これは一括実行するスクリプトファイルであるため入力促進記号は表示していない。
...
cd RPi64Toppers/fmp/
mkdir cfg
cd cfg
mkdir cfg
cd cfg
ln -s ../../../../cfg-1.9.6/cfg/cfg cfg
cd ../../
...
に変更した。これでうまく通った。手でコマンドを一つづつ打っても(コピペしても)良い。
configuratorの呼び出し方
シンボリックリンクが貼ってあることと、Pathが通っていることが大事。
dockerの処理の途中でエラーになって、Pathがうまく通っていない状態になったことがある。
...
echo 'export PATH=$HOME/workdir/aarch64-elf-gcc/bin:$PATH' > ~/.bash_profile
source ~/.bash_profile
...
# http://bit.ly/2nRx6nN by Satito naoki
の各行を順にコピペして実行したらうまく行った。原因は不明。
なお、dockerとmacとのファイル共有の仕方をスクリプトで実現している。
2.3 関門3 カーネルのコンパイル
intelのCPU上で、Raspberry PiのARMのCPU用のコンパイルをするには、クロスコンパイラでコンパイルします。関門1がうまく行っていれば大丈夫。
最初からソースコードを書き換えずに、最初は、あるものがそのままで動くかどうかを確かめてから、少しづつ動かすとよい。あちこち一遍に作ると、何がうまく行かない原因かを特定しづらい。
2.4 関門4 どっかーでエラーが起きた時の対処方法
dockerが起動しているかどうか(docker ps編)
docker以外のコマンドプロンプトから実行。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a02eaf04fef dockertoppersfmprpi64_fmp "/bin/bash" 37 minutes ago Up 37 minutes dockertoppersfmprpi64_fmp_1
コマンドがない
'command'がない場合と、PATHがきれてない場合がある。
$ find / -name 'command' name -print
でコマンドを探そう。
Macintosh側に必要な'command'の場合は次のいずれか。
$ brew install 'command'
$ brew cask install 'command'
Docker内のUbuntuで"command"名のコマンドがない場合は、
$$ apt-get install command
$$ sudo apt-get install command
PATHがきれてない
$$ echo 'export PATH=$HOME/workdir/aarch64-elf-gcc/bin:$PATH' > ~/.bash_profile
$$ source ~/.bash_profile
といった感じで、~/.bash_profileに設定を追加しよう。
一度失敗すると
一度失敗すると、フォルダはすでに存在している。そのため、
mkdir: cannot create directory 'aarch64-elf-gcc': File exists
というエラーが出て進まないことがある。
mkdirをif文で囲むか、mkdirのないrebuildのようなスクリプトを作るか。
ただ、どこまでmkdirがうまく行ったかで、条件が違うのなら、mkdir をif文で囲むのが良さそう。
文字の間違い
焦っていると、打ち間違いが増えて、余計にややこしくなる。
Pathの設定、ファイル名、フォルダ名など、間違えて作ってしまうと、
ややこしや。
Dockerのよいところは、それまでのものを捨て去って、一からまた始めるのが容易にだということ。
#2.5 関門5 通信がうまくいっていない場合
通信エラー
$$ ../scripts/build_fmp.sh
--2018-02-07 08:45:58-- https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-elf/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-elf.tar.xz
releases.linaro.org (releases.linaro.org) をDNSに問いあわせています... 52.77.230.32
releases.linaro.org (releases.linaro.org)|52.77.230.32|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 NOT FOUND
2018-02-07 08:45:59 エラー 404: NOT FOUND。
dockerで最初の導入、実行はうまく行った。wgetコマンドで急に通信エラー。
原因は調査中。他の機材でやったら出なかったのでひとまず放置。
wiresharkでの確認
Wiresharkでパケットを取得すると良い。
Macintosh
$ brew cask install wireshark
参照
MacintoshにWiresharkを導入する5つの壁
https://qiita.com/kaizen_nagoya/items/69eb2d357a125f5368e1
docker/ubuntu
$$ sudo apt-get install wireshark
コマンドラインでのTsharkとしてご利用ください。
参照 tsharkコマンドの使い方
第三章 対処したものをdockerにあげる
せっかくうまく行ったら、dockerに変更したものをあげるとよい。
元がgitにあるのであれば、gitを更新するのがよい。
ただし、いろいろな確認をするために、自分用のdocker hubにあげて、いろんな人に試してもらうのもよい。
3.1 dockerの状況
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d16cdf58b5e5 dockertoppersfmprpi64_fmp "/bin/bash" About an hour ago Exited (0) About a minute ago dockertoppersfmprpi64_fmp_1
8d864084ea72 ubuntu:xenial "/bin/bash" 2 weeks ago Exited (255) 2 weeks ago epic_lichterman
##3.2 Docker HUBのID設定
https://cloud.docker.com/
メールアドレス、パスワードを設定する。
メールが来る。
メールの中にURLをダブルクリックする。
(This link will expire in 2 days.)
2日は有効らしい。
3.3 Docker Image の保存
$ docker commit dockertoppersfmprpi64_fmp_1 dockertoppersfmprpi64_fmp:kaizenjapan
Docker HUBへの登録
$ docker push kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
The push refers to repository [docker.io/kaizenjapan/dockertoppersfmprpi64_fmp]
0824ca26fac8: Pushed
a293d97b521d: Pushed
b7bc844f348e: Pushed
3da3c8eae2d4: Pushed
4fe000695a8c: Pushed
7b2fcb653ca7: Pushed
60104d5eb99b: Pushed
85e35c87a208: Pushed
9f8d765fe04e: Pushed
8600ee70176b: Pushed
2bbb3cec611d: Pushed
d2bb1fc88136: Pushed
a6a01ad8b53f: Pushed
833649a3e04c: Pushed
kaizenjapan: digest: sha256:52e9f56dd33306e177ec8ed5cba8995a7ff3204a713855cec32601f723f23f5c size: 3241
3.4 Docker HUBからの利用
$ docker pull kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
$ docker run -it kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan /bin/bash
dockerの中で
$$ cd workdir
$$ sudo ../scripts/build_fmp.sh
この節は、最初に出てきたものと同じです。
4 振り返り
4.1 わかったこと
Macintoshのintelセルフコンパイラ(X-code:brewでの導入に使う場合がある)、gccのintelセルフコンパイラ、gccのarmクロスコンパイラの3種類のコンパイラを使う可能性がある。
dockerを使うことで、クロスコンパイラの環境をMacの環境と分離できる
失敗したら丸ごと容易に捨てられる
dockerのわかりにくいところは、dockerを起動したコマンドプロンプトとdockerのコマンドプロンプトとあまり違いがなく、dockerの中にいるのかどうかが分かりにくいこと。(大事なことなので3度書きました)。
4.2 わからなかったこと
クロスコンパイラのコンパイルの課題
configuratorの内容
デバッグの仕方
4.3 よかったこと
やったー。動いた。
4.4 あらためたいこと
gitへの改訂版の登録。元のファイルはgitに登録されている。
デバッグの資料の作成
5 資料
5.1 名古屋のIoTは名古屋のOSで
saito naokiのgit等は「名古屋のIoTは名古屋のOSで」セミナで提供したものです。
https://researchmap.jp/jo39c0wgq-2000107/
https://researchmap.jp/josk89af0-1778110/?block_id=1778110&active_action=journal_view_main_detail&post_id=65395&comment_flag=1
次回は2018年2月22日(土)午後1時から@名古屋市工業研究所(地下鉄六番町下車1分)
Dockerどっかー使い方おかしかったんでしょうか。TOPPERS/SSP on RaspberryPi with Macintosh編:5つの関門
https://qiita.com/kaizen_nagoya/items/cbf40186ae4da48ec4c7
5.2 Windows
docker for windowsのInstallerをダウンロード
https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe
ダブルクリックして実行。
http://blog.saboh.net/windows10proaddgroup/
5.3 関連情報(related information)
JTAGの接続方法 https://www.evernote.com/shard/s32/sh/2d01955e-b8b6-45e5-a779-3681b6ddeec9/52c678c97c6a78ff
JTAGの使い方 https://qiita.com/toshinaga/items/146bcb00db235258162f
FMPの実行方法 https://qiita.com/toshinaga/items/672c41a1f390922d5bae
ベアメタル情報 https://qiita.com/toshinaga/items/8999d3fcda8e2c3e2667
RPi3用 TOPPERS/FMP
https://github.com/YujiToshinaga/RPi64Toppers
5.4 参照資料(reference)
Raspberry PIのSDカードをRaspbian, TOPPERS/FMP, TOPPERS/SSP起動用に利用する
https://qiita.com/kaizen_nagoya/items/814cccdaa59dc09196e3
Dockerコンテナをイメージに保存する
https://qiita.com/momoham/items/df4c5e97fe630cccc1e5
Dockerの作業済みコンテナからイメージを作って移植を楽にする
https://qiita.com/tubone/items/a3bad04abf4c700cae3d
Dockerでcommitしてみる
https://qiita.com/mats116/items/712575dc50513dfdf0a2
DockerImageをDockerHubに登録の仕方
https://qiita.com/kon_yu/items/7c40f4dfbd1cce006ce7
GitHub 入門
https://qiita.com/ay3/items/8d758ebde41d256a32dc
Docker 虎の巻 at GitHub
https://gist.github.com/tcnksm/7700047
機械学習名古屋 勉強会用の Dockerイメージ 解説
https://qiita.com/antimon2/items/07890addf534f2e0b779#_reference-9d9783bf9ca2df932b9c
ゼロから作るDeep Learningの学習環境をDockerで作った at Hatena blog
http://yuki10.hatenablog.com/entry/2017/01/11/020924
だいたい10分でざっくり押さえるDockerの基本 at web professional
https://www.webprofessional.jp/how-to-build-an-image-with-the-dockerfile/
Dockerhubへの初プッシュ
https://qiita.com/moru3/items/32931813db81d891effb
Dockerコンテナのリポジトリ管理 DockerHubへログイン、イメージの取得〜更新、コミットまで。
https://qiita.com/kooohei/items/1e007fe650c6aa7eaac4
Docker Hubのイメージを利用する時の注意点と判断材料
https://qiita.com/satotka/items/5ece24499bcddd9f13b0
Docker Registry Hub にイメージをpushしたい
https://qiita.com/suin/items/20d735823e158196983e
DockerのImageからDockerfileを取り出せるか?
https://qiita.com/PharaohKJ/items/7fa708a19391c80629fe
AArch64
OSのタスク切り替え処理とAArch64(ARM64)の関数呼び出し規約
https://qiita.com/tkato/items/82f095a8f8c55be07cb5
自己資料(self reference)
用語集
Docker https://ja.wikipedia.org/wiki/Docker
OSを導入(install)作業をせずに利用できる仮想化(virtual)OS.代表的にはubuntuを利用する。
ubuntu
Debian系のLinux配布(distribution)
Macintosh
Mac OSXが動作するPC
TOPPERS
http://toppers.jp
FMP:Flexible Multiprocessor Profile
SSP:Smallest Set Profile kernel
qiita
http://qiita.com
Github
http://github.com
Raspberry Pi
https://www.raspberrypi.org
Wireshark
https://www.wireshark.org
入力促進(command prompt)
記録(log)
コンパイル
コマンド一覧
システムコマンド
docker
https://www.docker.com
wget
https://www.gnu.org/software/wget/
git
https://github.com
ruby
https://www.ruby-lang.org/ja/
brew: mac
https://brew.sh/index_ja.html
apt-get: debian/ubuntu/raspbian
https://wiki.debian.org/apt-get
シェルコマンド
ps
process status。プロセスの状態を表示するコマンド。
ln
リンク。別名で連携するコマンド。
cd
change directory。ディレクトリを移動するコマンド
mkdir
ディレクトリを作成するコマンド
echo
文字を出力するコマンド。
source
シェルスクリプトを実行するコマンド
find
https://ja.wikipedia.org/wiki/Find
grep
https://ja.wikipedia.org/wiki/Grep
sudo
https://ja.wikipedia.org/wiki/Sudo
<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words and/or centences in order.
Este artículo no está completo. Agregaré algunas palabras en orden.
Qiita Calendar 2024
祝休日・謹賀新年 2025年の目標
https://qiita.com/kaizen_nagoya/items/dfa34827932f99c59bbc
Qiita 1年間をまとめた「振り返りページ」@2024
https://qiita.com/kaizen_nagoya/items/ed6be239119c99b15828
2024 参加・主催Calendarと投稿記事一覧 Qiita(248)
https://qiita.com/kaizen_nagoya/items/d80b8fbac2496df7827f
主催Calendar2024分析 Qiita(254)
https://qiita.com/kaizen_nagoya/items/15807336d583076f70bc
Calendar 統計
https://qiita.com/kaizen_nagoya/items/e315558dcea8ee3fe43e
LLM 関連 Calendar 2024
https://qiita.com/kaizen_nagoya/items/c36033cf66862d5496fa
Large Language Model Related Calendar
https://qiita.com/kaizen_nagoya/items/3beb0bc3fb71e3ae6d66
博士論文 Calendar 2024 を開催します。
https://qiita.com/kaizen_nagoya/items/51601357efbcaf1057d0
博士論文(0)関連記事一覧
https://qiita.com/kaizen_nagoya/items/8f223a760e607b705e78
関連資料
' @kazuo_reve 私が効果を確認した「小川メソッド」
https://qiita.com/kazuo_reve/items/a3ea1d9171deeccc04da
' @kazuo_reve 新人の方によく展開している有益な情報
https://qiita.com/kazuo_reve/items/d1a3f0ee48e24bba38f1
' @kazuo_reve Vモデルについて勘違いしていたと思ったこと
https://qiita.com/kazuo_reve/items/46fddb094563bd9b2e1e
自己記事一覧
Qiitaで逆リンクを表示しなくなったような気がする。時々、スマフォで表示するとあらわっることがあり、完全に削除したのではなさそう。
4月以降、せっせとリンクリストを作り、統計を取って確率を説明しようとしている。
2025年2月末を目標にしている。
一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39
仮説(0)一覧(目標100現在40)
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df
Qiita(0)Qiita関連記事一覧(自分)
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6
Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8
C++ Support(0)
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514
Coding(0) Rules, C, Secure, MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0
Ethernet 記事一覧 Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794
Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0
線網(Wi-Fi)空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001
なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2
プログラムちょい替え(0)一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394
言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4
Python(0)記事をまとめたい。
https://qiita.com/kaizen_nagoya/items/088c57d70ab6904ebb53
安全(0)安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409
プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909
転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe
技術士(0)一覧
https://qiita.com/kaizen_nagoya/items/ce4ccf4eb9c5600b89ea
Reserchmap(0) 一覧
https://qiita.com/kaizen_nagoya/items/506c79e562f406c4257e
物理記事 上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff
量子(0) 計算機, 量子力学
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4
数学関連記事100
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d
coq(0) 一覧
https://qiita.com/kaizen_nagoya/items/d22f9995cf2173bc3b13
統計(0)一覧
https://qiita.com/kaizen_nagoya/items/80d3b221807e53e88aba
図(0) state, sequence and timing. UML and お絵描き
https://qiita.com/kaizen_nagoya/items/60440a882146aeee9e8f
色(0) 記事100書く切り口
https://qiita.com/kaizen_nagoya/items/22331c0335ed34326b9b
品質一覧
https://qiita.com/kaizen_nagoya/items/2b99b8e9db6d94b2e971
言語・文学記事 100
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6
医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82
水の資料集(0) 方針と成果
https://qiita.com/kaizen_nagoya/items/f5dbb30087ea732b52aa
自動車 記事 100
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5
通信記事100
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7
日本語(0)一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68
英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d
音楽 一覧(0)
https://qiita.com/kaizen_nagoya/items/b6e5f42bbfe3bbe40f5d
「@kazuo_reve 新人の方によく展開している有益な情報」確認一覧
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b
鉄道(0)鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/faa4ea03d91d901a618a
OSEK OS設計の基礎 OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3
coding (101) 一覧を作成し始めた。omake:最近のQiitaで表示しない5つの事象
https://qiita.com/kaizen_nagoya/items/20667f09f19598aedb68
官公庁・学校・公的団体(NPOを含む)システムの課題、官(0)
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3
「はじめての」シリーズ ベクタージャパン
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb
AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869
プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945
LaTeX(0) 一覧
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792
自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b
Rust(0) 一覧
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927
programの本質は計画だ。programは設計だ。
https://qiita.com/kaizen_nagoya/items/c8545a769c246a458c27
登壇直後版 色使い(JIS安全色) Qiita Engineer Festa 2023〜私しか得しないニッチな技術でLT〜 スライド編 0.15
https://qiita.com/kaizen_nagoya/items/f0d3070d839f4f735b2b
プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945
逆も真:社会人が最初に確かめるとよいこと。OSEK(69)、Ethernet(59)
https://qiita.com/kaizen_nagoya/items/39afe4a728a31b903ddc
統計の嘘。仮説(127)
https://qiita.com/kaizen_nagoya/items/63b48ecf258a3471c51b
自分の言葉だけで論理展開できるのが天才なら、文章の引用だけで論理展開できるのが秀才だ。仮説(136)
https://qiita.com/kaizen_nagoya/items/97cf07b9e24f860624dd
参考文献駆動執筆(references driven writing)・デンソークリエイト編
https://qiita.com/kaizen_nagoya/items/b27b3f58b8bf265a5cd1
「何を」よりも「誰を」。10年後のために今見習いたい人たち
https://qiita.com/kaizen_nagoya/items/8045978b16eb49d572b2
Qiitaの記事に3段階または5段階で到達するための方法
https://qiita.com/kaizen_nagoya/items/6e9298296852325adc5e
出力(output)と呼ばないで。これは状態(state)です。
https://qiita.com/kaizen_nagoya/items/80b8b5913b2748867840
coding (101) 一覧を作成し始めた。omake:最近のQiitaで表示しない5つの事象
https://qiita.com/kaizen_nagoya/items/20667f09f19598aedb68
あなたは「勘違いまとめ」から、勘違いだと言っていることが勘違いだといくつ見つけられますか。人間の間違い(human error(125))の種類と対策
https://qiita.com/kaizen_nagoya/items/ae391b77fffb098b8fb4
プログラマの「プログラムが書ける」思い込みは強みだ。3つの理由。仮説(168)統計と確率(17) , OSEK(79)
https://qiita.com/kaizen_nagoya/items/bc5dd86e414de402ec29
出力(output)と呼ばないで。これは状態(state)です。
https://qiita.com/kaizen_nagoya/items/80b8b5913b2748867840
これからの情報伝達手段の在り方について考えてみよう。炎上と便乗。
https://qiita.com/kaizen_nagoya/items/71a09077ac195214f0db
ISO/IEC JTC1 SC7 Software and System Engineering
https://qiita.com/kaizen_nagoya/items/48b43f0f6976a078d907
アクセシビリティの知見を発信しよう!(再び)
https://qiita.com/kaizen_nagoya/items/03457eb9ee74105ee618
統計論及確率論輪講(再び)
https://qiita.com/kaizen_nagoya/items/590874ccfca988e85ea3
読者の心をグッと惹き寄せる7つの魔法
https://qiita.com/kaizen_nagoya/items/b1b5e89bd5c0a211d862
「@kazuo_reve 新人の方によく展開している有益な情報」確認一覧
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b
ソースコードで議論しよう。日本語で議論するの止めましょう(あるプログラミング技術の議論報告)
https://qiita.com/kaizen_nagoya/items/8b9811c80f3338c6c0b0
脳内コンパイラの3つの危険
https://qiita.com/kaizen_nagoya/items/7025cf2d7bd9f276e382
心理学の本を読むよりはコンパイラ書いた方がよくね。仮説(34)
https://qiita.com/kaizen_nagoya/items/fa715732cc148e48880e
NASAを超えるつもりがあれば読んでください。
https://qiita.com/kaizen_nagoya/items/e81669f9cb53109157f6
データサイエンティストの気づき!「勉強して仕事に役立てない人。大嫌い!!」『それ自分かも?』ってなった!!!
https://qiita.com/kaizen_nagoya/items/d85830d58d8dd7f71d07
「ぼくの好きな先生」「人がやらないことをやれ」プログラマになるまで。仮説(37)
https://qiita.com/kaizen_nagoya/items/53e4bded9fe5f724b3c4
なぜ経済学徒を辞め、計算機屋になったか(経済学部入学前・入学後・卒業後対応) 転職(1)
https://qiita.com/kaizen_nagoya/items/06335a1d24c099733f64
プログラミング言語教育のXYZ。 仮説(52)
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4
【24卒向け】9ヶ月後に年収1000万円を目指す。二つの関門と三つの道。
https://qiita.com/kaizen_nagoya/items/fb5bff147193f726ad25
「【25卒向け】Qiita Career Meetup for STUDENT」予習の勧め
https://qiita.com/kaizen_nagoya/items/00eadb8a6e738cb6336f
大学入試不合格でも筆記試験のない大学に入って卒業できる。卒業しなくても博士になれる。
https://qiita.com/kaizen_nagoya/items/74adec99f396d64b5fd5
全世界の不登校の子供たち「博士論文」を書こう。世界子供博士論文遠隔実践中心 安全(99)
https://qiita.com/kaizen_nagoya/items/912d69032c012bcc84f2
小川メソッド 覚え(書きかけ)
https://qiita.com/kaizen_nagoya/items/3593d72eca551742df68
DoCAP(ドゥーキャップ)って何ですか?
https://qiita.com/kaizen_nagoya/items/47e0e6509ab792c43327
views 20,000越え自己記事一覧
https://qiita.com/kaizen_nagoya/items/58e8bd6450957cdecd81
Views1万越え、もうすぐ1万記事一覧 最近いいねをいただいた213記事
https://qiita.com/kaizen_nagoya/items/d2b805717a92459ce853
amazon 殿堂入りNo1レビュアになるまで。仮説(102)
https://qiita.com/kaizen_nagoya/items/83259d18921ce75a91f4
100以上いいねをいただいた記事16選
https://qiita.com/kaizen_nagoya/items/f8d958d9084ffbd15d2a
小川清最終講義、最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on my individual experience. It has nothing to do with the organization or business to which I currently belong.
Este artículo es una impresión personal basada en mi experiencia personal. No tiene nada que ver con la organización o empresa a la que pertenezco actualmente.
文書履歴(document history)
ver. 0.10 初稿 20180101
ver. 0.11 講習会実施に伴い記述を訂正 20180313
ver. 0.12 SWEST投稿のため操作確認しながら記述を訂正。 20180717
ver. 0.13 誤植訂正、ファイル共有 追記 20181011
ver. 0.14 参考文献追記 20181102
ver. 0.15 自己資料追記 20190222
ver. 0.16 標題追記 20190813
ver. 0.17 docker update 20210626
ver. 0.18 ありがとう追記 20230417
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.
Muchas gracias por leer hasta la última oración.
Por favor, haz clic en el ícono Me gusta 💚 y sígueme para tener una vida feliz.