Linuxとは
Linuxの概要
Linuxはスーパー コンピュータ、サーバからスマートフォンや組み込みシステムまで多くのデバイスで使われているOSです。細かく説明すると長くなってしまうので、もっと詳しく知りたい人は、ここを読んでね!
Linuxカーネルを開発しているのは誰?
1991年に初めてリリースされたLinuxカーネルは、Linus Torvaldsが1人で開発しましたが、今では1,500人以上の開発者で開発しています。細かく説明すると長くなってしまうので、もっと詳しく知りたい人は、ここを読んでね!
この一年でLinuxカーネルを書いていたのは?
この一年でLinuxカーネルへソースコードを書いた人を所属別にランク化した表を見ると、Red HatやNovellのようなエンタープライズ向けLinuxディストリビューターの他にチップベンダーが目立っています。LinuxカーネルはCPUに依存する処理やデバイスドライバー等を含むため、チップベンダーが開発に大きく関与しているのです。組織を特定できる20位以内の所属でチップベンダーとそれ以外を比較すると、約80%がチップベンダーであることがわかります。さらに、チップベンダーのうち、IntelとArm系ベンダーを比較すると、Arm系が約60%であることがわかります。Armは周辺デバイスはベンダー毎に異なるのが理由のひとつです。(今回の表とグラフは個人的に調べたものなので、細かい数値が気になる方は調べてみてね!)
順位 | 組織 | 修正パッチの数 | 全体に占める割合 |
---|---|---|---|
1 | None | 10056 | 14.3% |
2 | Intel | 8356 | 11.9% |
3 | Red Hat | 3703 | 5.3% |
4 | Linaro | 3139 | 4.5% |
5 | Samsung | 2277 | 3.2% |
6 | Novell | 1863 | 2.6% |
7 | IBM | 1681 | 2.4% |
8 | AMD | 1578 | 2.2% |
9 | Texas Instruments | 1183 | 1.7% |
10 | Arm | 1103 | 1.6% |
11 | Atmel | 1090 | 1.5% |
12 | Oracle | 1037 | 1.5% |
13 | 838 | 1.2% | |
14 | Nvidia | 830 | 1.2% |
15 | Free Electrons | 797 | 1.1% |
16 | Huawei Technologies | 748 | 1.1% |
17 | Vision Engraving & Routing Systems | 687 | 1.0% |
18 | Broadcom | 583 | 0.8% |
19 | Freescale | 549 | 0.8% |
20 | Renesas | 544 | 0.8% |
Linuxが動くCPUは?
x86、PowerPC、MIPS、Arm、Nios IIなど、ArmはMMUがあるCortex-Aシリーズ、Arm1176、Arm926などで動作。MMUがないCortex-Mシリーズでも動作する実装はあるが、外付けメモリが必要だったり、動作上の制限も多い。
Linuxはどんなところで使われている?
IAサーバ、Androidスマートフォン/タブレット、デジタルTV、デジタル カメラ、プリンター、スキャナー、カーナビなど。
Linuxを採用するメリットは?
- 新しいデバイスへの対応、プロトコルスタックの対応が早いので、標準化された機能に対応する場合、コスト・開発期間・品質のアドバンテージがある。
- 多くのCPUに対応しているので、マルチベンダー化しやすい。
- オープンソースなので、OSベンダーにロックオンされることもない。
- アプリケーションはC以外にJava, Python等でも書けるので組み込み以外のエンジニアにも馴染みやすい。
Armボードで遊んでみよう!
今回は第一回目ということで、LinuxとArmボードを使って軽く遊んでみたいと思います。ATLASを起動し、コマンドラインを使ってLチカやプッシュボタンを押してみたり、ネットワークやSSH、VNCへ接続したり、といった内容を以下の動画でご覧ください。動画内で使用するコマンドは、以下にサンプルコードを用意していますので、是非試してみてくださいね!
コマンドラインからLチカ
root@atlas_sockit:~# cd /sys/class/leds/ root@atlas_sockit:/sys/class/leds# ls fpga_led0 fpga_led2 fpga_led4 fpga_led6 hps_led0 fpga_led1 fpga_led3 fpga_led5 fpga_led7 root@atlas_sockit:/sys/class/leds# cd fpga_led0/ root@atlas_sockit:/sys/class/leds/fpga_led0# ls brightness delay_on max_brightness subsystem uevent delay_off device power trigger root@atlas_sockit:/sys/class/leds/fpga_led0# echo 255 > brightness root@atlas_sockit:/sys/class/leds/fpga_led0# echo timer > trigger root@atlas_sockit:/sys/class/leds/fpga_led0#
プッシュボタンを押してみよう!
root@atlas_sockit:~# cd /sys/class/gpio/ root@atlas_sockit:/sys/class/gpio# ls export gpiochip413 gpiochip415 gpiochip419 gpiochip427 gpiochip454 gpiochip483 unexport root@atlas_sockit:/sys/class/gpio# echo 479 > export root@atlas_sockit:/sys/class/gpio# ls export gpiochip413 gpiochip419 gpiochip454 unexport gpio479 gpiochip415 gpiochip427 gpiochip483 root@atlas_sockit:/sys/class/gpio# cd gpio479/ root@atlas_sockit:/sys/class/gpio/gpio479# ls active_low device direction edge power subsystem uevent value root@atlas_sockit:/sys/class/gpio/gpio479# cat direction in root@atlas_sockit:/sys/class/gpio/gpio479# cat value 1 root@atlas_sockit:/sys/class/gpio/gpio479# cat value root@atlas_sockit:/sys/class/gpio/gpio479# cat value 1 root@atlas_sockit:/sys/class/gpio/gpio479# echo 1 > active_low root@atlas_sockit:/sys/class/gpio/gpio479# cat value root@atlas_sockit:/sys/class/gpio/gpio479# cat value 1 root@atlas_sockit:/sys/class/gpio/gpio479# cat value
アルテラ社製 Cyclone V SoC搭載ボード
アルテラ SoCは、プロセッサ、ペリフェラル、およびメモリ・インタフェースで構成される Armベースのハード・プロセッサ・システム (HPS) と、カスタマイズ可能なFPGA ファブリックを広帯域幅インタコネクタ・バックボーンで統合した製品です。ハードIPには、PCI Express Gen2やマルチメモリポート、ECC、メモリ保護、高速シリアルトランシーバを搭載し、性能および消費電力の低減とプログラマブル・ロジックの柔軟性という特長を兼ね備えました。これまでCPUとFPGAで構成されたシステムボードサイズを大幅に削減することができます。今回の講座では、テラシック社製「DE0-Nano-SoC Kit/Atlas-SoC Kit」を使用します。
日本アルテラ株式会社
ローターバッハ社製 TRACE32
世界中で最も使われているハードウェアアシストデバッガTRACE32。ArmだけでなくNios IIはもちろん、70以上のプロセッサアーキテクチャをサポートしているのが、TRACE32。SMPシステムのマルチコア対応では、複数のコアを同時に制御し、参照コアを切り替えながらシームレスにデバッグを進めることができます。また、Linux等のSMP対応OSのデバッグをサポートする「OS認識機能」が標準装備されていることも特徴です。これにより、デバッグ対象のタスクが何れのコアに割り当てられているかを気にすることなく、ユーザ空間で動作しているプログラムのデバッグをスムーズに進めることができます。
日本ローターバッハ株式会社
組み込みLinux導入/開発支援サービス
組込みLinuxによりお客様の装置開発に新たな価値を提供します。
富士通コンピュータテクノロジーズ
こちらも是非
“もっと見る” 組み込みLinux|Cyclone編
Cyclone V SoCをLinuxでコンフィグしてみよう!
Cyclone V SoCの最大の特徴であるFPGAは、Linux動作中に動的にコンフィグレーションすることができます。カーネルのコンフィグとビルドをして、FPGAのコンフィグレーションをしてみましょう!
Linuxカーネルのコンフィグレーションを変えてみよう!
Cyclone V SoCのカーネルは、すぐにPreempt RTが利用できるようになっているので、動かしてみましょう!まずは、カーネルのコンフィグレーションとビルドを行います。Linuxカーネル ソースをPreempt RTのブランチに切り替えて、コンフィグレーションを有効にして、再ビルドします。
Linuxでプロファイルしてみよう!
Linuxはperfやftrace等、プロファイルやトレースを採取するツールが揃っています。TRACE32を使ったプロファイルやトレースはArmコアの機能を使って本番に近い環境で実施することができるので、Linuxで精度の高い情報を得ることができます。