10 CVE Scanner Must-Haves for Security Success

play
CHOOSE-YOUR-OWN WEBINAR

  10 CVE Scanner Must-Haves   
  for Security Success
  

Software vulnerabilities cause 30% of external breaches (Forrester, 2021). In the era of software-defined everything, companies need a modern solution to resolve CVE vulnerabilities.

Wind River® security experts Seth Cramer and Maneesh Goyal discuss how automating this process and migrating to a single source of truth will lead to a more secure solution. View the entire session above, or pick the sections you’re most interested in below.

Maneesh Goyal
Seth Cramer

   Sample Highlights   

 
 
 

Wind River Linux Tutorial Docker | Tutorial - Japan



Wind River LinuxではじめるDocker入門

本記事では、Wind River LinuxでDockerを使う方法についてご紹介します。最新のWind River LinuxはDockerを標準でサポートしていますので、バイナリイメージであるWind River Linux Distroをダウンロードするだけで、すぐにDockerを使い始めることができます。本記事ははじめに、Wind River Linux Distro を例にDockerの操作方法を解説します。次に、LATを使ってコンテナを実行できる最小構成のLinuxディストリビューションを作成する方法を紹介します。最後に、アプリケーションに最適なカスタマイズされたコンテナイメージを作成し、ローカルサーバーでイメージを公開し、コンテナを実行する方法を解説いたします。



Wind River Linuxにコンテナイメージをインストールし、
コンテナを実行する

docker hubにて配布されているDockerコンテナイメージをWind River Linux上に取得するには、docker imageコマンドを使います。今回はWind River Linux Distroのfull imageをベースOSとして利用しています。Wind River Linux Distroの実行方法は「ビルド無し!バイナリ配布で簡単にはじめるYoctoベースの組込みLinuxディストリビューション」をご参照ください。

hypervisor
図1:Wind River Linux DistroでDockerを利用する手順
1) Wind River Linux Ditstroをダウンロード
2) 起動したWind River Linux上でコンテナが利用するネットワークを設定
3) Docker hubからコンテナイメージ取得
4) コンテナを実行

ベースとなるOSの準備

まず、Dockerを実行するためのベースとなるOSを準備します。ここでは、Wind River Linux Distroのfull imageを利用します。ホストPCと同じネットワークにQEMU上のWind River Linux が接続できるよう、ipコマンドを使ってブリッジを生成し、qemu実行時に"-netdev bridge,id=hn0 -device virtio-net-pci,netdev=hn0,id=br0,mac=00:16:3e:3f:a3:9c"を指定し、ネットワークを有効化します。Wind River Linuxが起動した後に、ホストと同じネットワークのIPアドレスが付与されていることを確認してください。

ホストPC上での操作 

$ tar jxvf target-full-bcm-2xxx-rpi4.tar.bz2 
$ cd target-full-bcm-2xxx-rpi4 
$ qemu-img create -f raw ./img 8G 
$ zcat wrlinux-image-full-bcm-2xxx-rpi4.ustart.img.gz | sudo dd of=./img conv=notrunc 
 
$ ip addr 
2: enp0s31f6:  
... 
$ sudo ip address flush dev enp0s31f6 
$ sudo ip link add br0 type bridge 
$ sudo ip link set br0 up 
$ sudo ip link set enp0s31f6 master br0 
$ bridge link show 
2: enp0s31f6:  mtu 1500 master br0 state forwarding priority 32 cost 4 
$ sudo dhclient -v br0 
$ ip addr 
3: br0: ... 
    link/ether d0:50:99:85:14:58 brd ff:ff:ff:ff:ff:ff 
    inet 192.168.100.25/24 brd 192.168.100.255 scope global dynamic br0 
       valid_lft 604788sec preferred_lft 604788sec 
$ sudo mkdir -p /etc/qemu
$ sudo vi /etc/qemu/bridge.conf
allow virbr0
allow br0
$ sudo su 

# qemu-system-aarch64 -machine virt -cpu cortex-a57 -netdev bridge,id=hn0 -device virtio-net-pci,netdev=hn0,id=br0,mac=00:16:3e:3f:a3:9c -m 512 -bios qemu-u-boot-bcm-2xxx-rpi4.bin -device virtio-gpu-pci -serial stdio -device qemu-xhci -device usb-tablet -device usb-kbd -drive id=disk0,file=./img,if=none,format=raw -device virtio-blk-device,drive=disk0 


Wind River Linux上での操作 

bcm-2xxx-rpi4 login: root 
New password:  
Retype new password:  
# ip addr 
2: eth0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000 
    link/ether 00:16:3e:3f:a3:9c brd ff:ff:ff:ff:ff:ff 
    inet 192.168.100.16/24 brd 192.168.100.255 scope global dynamic noprefixroute eth0 


コンテナが利用するネットワークを構築

次に、起動したWind River Linux上でDockerがインストールされていることをdocker imagesコマンドで確認します。確認後、コンテナが利用するネットワークを準備します。本手順では、ベースとなるOS(Wind River Linux)と同じネットワークに、コンテナが参加できるよう、設定しています。

Wind River Linux上での操作 

# docker network create -d macvlan --subnet=192.168.100.0/24 --gateway=192.168.100.1 -o parent=eth0 corplan 
a8adf511f536229263d53716d6dffd4d82bbb5567ca06c142ab1e191f0e9a5ae 
 
# docker network ls 
NETWORK ID          NAME                DRIVER              SCOPE 
89337f803b94        bridge              bridge              local 
a8adf511f536        corplan             macvlan             local 
2805632ea3d4        host                host                local 
2afd1563e98f        none                null                local 



コンテナイメージのインストールと実行

続いてdocker pullコマンドを実行してdocker hubからコンテナイメージを入手します。入手したコンテナイメージはdocker imagesコマンドで確認することができます。コンテナイメージを入手したらdocker runコマンドでコンテナを実行します。実行中のコンテナはdocker psコマンドで確認することができます。以下のコマンドを実行することにより、Wind River Linux上に、Ubuntu、CentOS、Wind River Linux、3種類のコンテナイメージを取り込み、それぞれを実行、各コンテナ内でそれぞれのソフトウェアプラットフォームが機能し、ネットワークに接続されていることを確認することができます。

Wind River Linux上での操作 

# docker pull windriver/wrlx-image 
# docker pull ubuntu  
# docker pull centos 
# docker images 
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE 
windriver/wrlx-image   latest              9a151b78ca87        4 days ago          105MB 
ubuntu                 latest              a7870fd478f4        3 weeks ago         69.2MB 
centos                 latest              e6a0117ec169        9 months ago        272MB 
# docker run -d -it --network corplan --ip 192.168.100.101 --name wrlexec windriver/wrlx-image /bin/bash 
 
# docker ps 
CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS              PORTS               NAMES 
ffe81c663f16        windriver/wrlx-image   "/bin/bash"         26 seconds ago      Up 10 seconds              
# docker attach ffe81c663f16

※Wind River Linuxが時刻同期できていない場合はdocker pullでcertificate has expired or is not yet validというエラーになります。

コンテナ上での操作 

sh-5.1# ip addr                                                             
1: lo: ... 
5: eth0@sit0: … 
    link/ether 02:42:c0:a8:64:65 brd ff:ff:ff:ff:ff:ff 
    inet 192.168.100.101/24 brd 192.168.100.255 scope global eth0 
       valid_lft forever preferred_lft forever 



コンテナの操作方法

コンテナから抜けるには「Ctrl+P」を押し、続けて「Ctrl+Q」を入力してください。 再度、実行中のコンテナに入るにはdocker psコマンドで確認したコンテナIDに対して、docker attachコマンドを使います。docker execコマンドを使うとコンテナに入ることなく、コマンドのみを実行することができます。 使用しないコンテナは、docker rmコマンドで削除します。不要になったコンテナイメージは、docker rmiコマンドで削除することができます。

コンテナ上での操作

sh-5.1# ls / 
「Ctrl+P」「Ctrl+Q」でDockerコンテナからログアウトする


Wind River Linux上での操作

# docker ps 
CONTAINER ID        IMAGE                          COMMAND             CREATED             STATUS              PORTS               NAMES 
0e1041ec91d3        windriver/wrlx-image           "/bin/sh"           20 seconds ago      Up 12 seconds                           vigilant_lehmann 
# docker attach 0e1041ec91d3


コンテナ上での操作

sh-5.1# ls / 
「Ctrl+P」「Ctrl+Q」でDockerコンテナからログアウトする


Wind River Linux上での操作

# docker stop 0e1041ec91d3 
# docker rm 0e1041ec91d3 
# docker rmi windriver/wrlx-image





LATを利用してコンテナを実行できる
最小構成のLinuxディストリビューションを作成する

先の例ではWind River Linux Distroのfull imageを利用しました。LATを使うことにより、Wind River Linux Distroのminimal imageをベースとしながらも、コンテナを実行できるDockerを備えた最小構成のLinuxディストリビューションを作成することも可能です。Linux Assembly Tools(LAT)の詳細な利用方法は、WIND RIVER LINUX DISTRO DEVELOPER'S GUIDE, LTS 22をご覧ください。

Linux Assembly Tools(LAT)の詳細な利用方法
「WIND RIVER LINUX DISTRO DEVELOPER'S GUIDE, LTS 22(日本語版)」

hypervisor
図2:Wind River LinuxのLATを使って、コンテナを実行できる最小構成のLinuxディストリビューションを作成する

まず、ホストPCにSDKをセットアップして、LATをインストールします。次にappsdk examplesyamlコマンドを実行し、最小構成のLinuxディストリビューションを作成するためのyaml設定ファイル「core-image-minimal-bcm-2xxx-rpi4.yaml」を入手します。その後、LinuxディストリビューションにDockerをインストールするために、yaml設定ファイルのpackagesにdockerを追記します。最後に、appsdk genimageコマンドを実行しLinuxディストリビューションを作成します。作成されたLinuxディストリビューションでコンテナを実行することができます。

ホストPC上での操作

# appsdk exampleyamls 
$ mkdir mkimg 
$ cd mkimg 
$ appsdk exampleyamls  
$ vi exampleyamls/core-image-minimal-bcm-2xxx-rpi4.yaml  
name: core-image-minimal 
machine: bcm-2xxx-rpi4 
image_type: 
- ostree-repo 
- ustart 
… 
packages: 
- alsa-utils 
- ca-certificates 
- crda 
- glib-networking 
… 
- docker 
 
$ appsdk genimage exampleyamls/core-image-minimal-bcm-2xxx-rpi4.yaml 
$ cd deploy 
$ qemu-img create -f raw ./img 8G 
$ zcat core-image-minimal-bcm-2xxx-rpi4.ustart.img.gz | sudo dd of=./img conv=notrunc 
$ sudo su 
# qemu-system-aarch64 -machine virt -cpu cortex-a57 -netdev bridge,id=hn0  -device virtio-net-pci,netdev=hn0,id=br0,mac=00:16:3e:3f:a3:9c -m 512 -bios qemu-u-boot-bcm-2xxx-rpi4.bin -device virtio-gpu-pci -serial stdio -device qemu-xhci -device usb-tablet -device usb-kbd -drive id=disk0,file=./img,if=none,format=raw -device virtio-blk-device,drive=disk0


Wind River Linux上での操作

bcm-2xxx-rpi4 login: root 
root@bcm-2xxx-rpi4:~#  
# ip addr      
1: lo: ... 
2: eth0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000 
    link/ether 00:16:3e:3f:a3:9c brd ff:ff:ff:ff:ff:ff 
    inet 192.168.100.16/24 brd 192.168.100.255 scope global dynamic noprefixroute eth0 
       valid_lft 604660sec preferred_lft 529060sec 
     
# docker images  
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE 
# docker  network create -d macvlan --subnet=192.168.100.0/24 --gateway=192.168.100.1 -o parent=eth0 corplan 
fc835b57c368c2a1c0c24ca60511230ef3ca68ed0e9a5b71a77d320ed09ecd52 
# docker network ls 
NETWORK ID          NAME                DRIVER              SCOPE 
971273bb535b        bridge              bridge              local 
fc835b57c368        corplan             macvlan             local 
24ad33065d23        host                host                local 
b72bf599a528        none                null                local 
# docker pull windriver/wrlx-image 
# docker run -d -it --network corplan --ip 192.168.100.101 --name wrlexec windriver/wrlx-image /bin/bash 
# docker ps 
CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS              PORTS               NAMES 
5d4a35aea5ab        windriver/wrlx-image   "/bin/bash"         12 seconds ago      Up 3 seconds          
# docker attach 5d4a35aea5ab


コンテナ上での操作

sh-5.1# ip addr                                                            
1: lo:  mtu 65536 qdisc noqueue qlen 1000 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
    inet 127.0.0.1/8 scope host lo 
       valid_lft forever preferred_lft forever 
2: sit0@NONE:  mtu 1480 qdisc noop qlen 1000 
    link/sit 0.0.0.0 brd 0.0.0.0 
5: eth0@sit0:  mtu 1500 qdisc noqueue  
    link/ether 02:42:c0:a8:64:65 brd ff:ff:ff:ff:ff:ff 
    inet 192.168.100.101/24 brd 192.168.100.255 scope global eth0 
       valid_lft forever preferred_lft forever 
                                                                                                    
「Ctrl+P」「Ctrl+Q」でDockerコンテナからログアウトする


Wind River Linux上での操作

# docker ps 
CONTAINER ID        IMAGE                  COMMAND             CREATED              STATUS              PORTS               NAMES 
5d4a35aea5ab        windriver/wrlx-image   "/bin/bash"         About a minute ago   Up About a minute        
# docker stop 5d4a35aea5ab  
# docker ps -a 
CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS                       PORTS               NAMES 
5d4a35aea5ab        windriver/wrlx-image   "/bin/bash"         2 minutes ago       Exited (137) 6 seconds ago                       wrlexec 
# docker rm wrlexec 
# docker rmi  windriver/wrlx-image




LATを利用してコンテナイメージを作成後、
ローカルサーバーでイメージを公開し、コンテナを実行する

LATを使うことにより、カスタマイズしたWind River Linuxのコンテナイメージを作成し、作成したコンテナイメージをローカルサーバーにて公開、カスタマイズされたコンテナをダウンロードして実行することができます。

Linux Assembly Tools(LAT)の詳細な利用方法
「WIND RIVER LINUX DISTRO DEVELOPER'S GUIDE, LTS 22(日本語版)」

hypervisor
図3:LATを利用してコンテナイメージを作成後、ローカルサーバーで公開し、コンテナを実行するまでの流れ
1) Yaml設定ファイルを基にコンテナイメージを作成する
2) コンテナイメージをローカルサーバーに公開する
3) 組込みシステムはコンテナイメージをダウンロードする
4) ダウンロードしたコンテナイメージを実行する

yaml設定ファイルを利用してコンテナイメージを作成する

まず、ホストPCにSDKをセットアップして、LATをインストールします。次にappsdk examplesyamlコマンドを実行し、コンテナイメージを作成するためのyaml設定ファイル"container-base-bcm-2xxx-rpi4.yaml"を入手します。続いて、"container-base-bcm-2xxx-rpi4.yaml"にコンテナへインストールしたいパッケージ名を追記します。ここではHTTPサーバ機能を提供するnginxを追記しました。その後、appsdk gencontainerコマンドを実行し、コンテナイメージを作成します。作成されたコンテナイメージはdeployディレクトリにtar.gz形式で格納されます。pythonを利用してローカルサーバー上でコンテナイメージを公開し、ベースOSとなるWind River Linux上でwgetによりコンテナイメージを取得し、docker loadコマンドでコンテナイメージを取り込みます。

ホストPC上での操作

$ mkdir mkcon 
$ cd mkcon 
$ appsdk exampleyamls  
$ vi exampleyamls/container-base-bcm-2xxx-rpi4.yaml  
name: container-base 
machine: bcm-2xxx-rpi4 
image_type: 
- container 
package_feeds: 
… 
packages: 
... 
- nginx 
$ appsdk gencontainer exampleyamls/container-base-bcm-2xxx-rpi4.yaml 
$ cd deploy 
$ pwd 
/home/shino/mkcon/deploy 
$ python3 -m http.server 8888 --directory /home/shino/mkcon/deploy & 


hypervisor
図4:ローカルサーバー上に公開されたコンテナイメージ

Wind River Linux上での操作

# wget http://192.168.100.25:8888/container-base-bcm-2xxx-rpi4-20220703105510.docker-image.tar.bz2 
# ls 
container-base-bcm-2xxx-rpi4-20220703105510.docker-image.tar.bz2 
# docker load -i container-base-bcm-2xxx-rpi4-20220703105510.docker-image.tar.bz2 
# docker images 
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE 
container-base-bcm-2xxx-rpi4   latest              0460b561428f        6 minutes ago       151MB 
# docker run -d -it --network corplan --ip 192.168.100.151 --name wrlnginx container-base-bcm-2xxx-rpi4 /bin/bash 
# docker ps 
CONTAINER ID        IMAGE                          COMMAND             CREATED             STATUS              PORTS               NAMES 
83077d1c76cd        container-base-bcm-2xxx-rpi4   "/bin/bash"         19 seconds ago      Up 11 seconds                           wrlnginx 
# docker attach 83077d1c76cd


コンテナ上でアプリケーションを実行する

最後に、作成したコンテナイメージにインストールされているnginxを実行してみましょう。

コンテナ上での操作

sh-5.1# mkdir /var/log/nginx 
sh-5.1# mkdir /run/nginx 
sh-5.1# nginx 
sh-5.1# wget http://127.0.0.1/ 
--2022-07-03 11:04:58--  http://127.0.0.1/ 
Connecting to 127.0.0.1:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 612 [text/html] 
Saving to: 'index.html' 
 
index.html          100%[===================>]     612  --.-KB/s    in 0s       
 
2022-07-03 11:04:58 (2.13 MB/s) - 'index.html' saved [612/612] 
 
sh-5.1# ip addr
1: lo: 
... 
5: eth0@if2:  mtu 1500 qdisc noqueue state UP group default  
    link/ether 02:42:c0:a8:64:97 brd ff:ff:ff:ff:ff:ff link-netnsid 0 
    inet 192.168.100.151/24 brd 192.168.100.255 scope global eth0 
       valid_lft forever preferred_lft forever


hypervisor
図5:Dockerコンテナ内部のnginxにより、WEBコンテンツの配信に成功!




前記事「はじめてのDocker-コンテナのメリットと活用方法をマスターする」にて、組込みシステムにDockerを活用することの魅力とDockerの特徴を、本記事にてその使い方について解説しました。特にLAT利用することにより、簡単にカスタマイズしたコンテナイメージを作成後、イメージの公開まで行えることは Wind River Linuxならではの魅力です。LATはホストPCにダウンロードするだけですぐに利用いただけます。是非お手元でお試しください!


リソース

Previous Next

Wind River Linux Tutorial Docker | Basic - Japan



皆様は自社の組込みシステムにDocker、コンテナを活用されていますか。エンタープライズ由来のDockerですが、組込み製品の開発に採用することにより、別々のシステムで動作していた複数のサービスをアプリケーション実行環境ごとひとつの組込みシステム上に統合し、高付加価値の組込みシステムを構築することができます。

本チュートリアルでは Wind River Linuxが標準でサポートしているDockerの特徴と魅力について触れ、組込みシステムにおける活用例をご紹介します。



3分でわかるDockerの特徴!

Dockerはコンテナを活用したミドルウェアで、ひとつのシステム上に、仮想的な複数のアプリケーション実行環境を構築することができます。

コンテナとは

コンテナは、アプリケーションやサービスの実行に必要となるライブラリ、ミドルウェア、ユーティリティ、ネットワークインタフェースやストレージの設定といったOSの各種設定を封入したソフトウェアプラットフォームを構築し、仮想的なアプリケーション実行環境を提供する技術です。コンテナはアプリケーションやサービスの実行に必要となるライブラリなど、仮想的なアプリケーション実行環境を提供します。例えばUbuntuコンテナは、アプリケーションから見るとLinuxディストリビューションのUbuntuそのもののように見えます。Dokcerコンテナを実行しているベースOSや、異なるコンテナが同じシステム動作していることの影響を受けません。実行前のオブジェクトをコンテナイメージと呼び、コンテナイメージはコンテナエンジン(DockerではDockerエンジン)によりインスタンス化され、実行されます。


hypervisor
図1:ネイティブ環境で動作するアプリケーションと、コンテナにより統合されたアプリケーション - DockerはLinuxディストリビューションを模倣するインタフェースを定義し、仮想的なアプリケーション実行環境を提供する

コンテナのメリット

Dockerコンテナのベースイメージには、UbuntuやCentOSなどのイメージがあり、これらを利用することにより、仮想的なUbuntuやCentOSの環境をダウンロードするだけで構築することができます。一例を挙げると、ひとつのUbuntuシステム上で動作している画像解析の機械学習のサービスと、別のCentOSシステム上で動作している情報提供サービスに対して、UbuntuベースコンテナイメージとCentOSベースコンテナイメージを準備することにより、ひとつの組込みシステム上にこれらのサービスを同居させ、解析機能と表示機能を兼ね備えた医療機器を実現することができます。このとき、コンテナごとにネットワークインタフェース設定などの環境設定が保持されており、互いに干渉することはありません。そのため、サービスを実行する環境の整合性の不一致などに悩まされることはありません。


hypervisor
図2:Dockerコンテナで、Ubuntu、CentOS、Wind River Linuxのサービスをひとつの組込みシステムに統合する

Dockerコンテナイメージはdocker hubにて配布されており、ダウンロードするだけですぐに使うことができます。ウインドリバーはdocker hubにてWind River LinuxのDockerコンテナイメージを提供しています(https://hub.docker.com/r/windriver/wrlx-image)。Wind River LinuxのDockerコンテナイメージを活用することにより、別々の組込みシステムのWind River Linux上で動作していたサービスを、簡単にひとつのシステム上に統合することができます。


hypervisor


Wind River Linux × Dockerの魅力

Dockerを利用した最適構成のコンテナイメージ

Wind River Linuxでは標準でサポートしているDockerを活用することによりコンテナ上で実行するサービスに必要最低限の機能のみを備え、不要なリソース消費のないコンテナイメージを準備し、製品に最適なソフトウェアプラットフォームの構築が可能です。


hypervisor
図3:Docker Hubで最適構成のコンテナイメージを作成・実行するフロー

Wind River LinuxによるDockerエンジンのサポート

最新のWind River Linuxは標準でDockerエンジンをサポートしています。そのため、Dockerコンテナを実行するためのベースOSとしてWind River Linuxを利用することができます。Wind River Linuxは組込み用途に適した、必要最低限の機能のみを集約できる柔軟性から、ベースOSとなった際も無駄なリソースを消費することなくDockerコンテナの実行に必要な必要最低限のリソースのみを使用して、小フットプリントでシステムを動作させることができます。


コンテナとハードウェア仮想化の違いと、使い分け

ひとつのシステム上に複数のサービスを統合する方法に、ハードウェア仮想化があります。この手法を使うと、システム上に仮想的なハードウェアプラットフォームを定義し、その上にOSをインストールすることで、複数のソフトウェアプラットフォームを同居させることができます。

ハードウェア仮想化が仮想的なハードウェアプラットフォームを提供するのに対して、コンテナは仮想的なLinuxディストリビューションのプラットフォームを提供します。そのため、コンテナはOSのAPIやファイルシステムレベルの仮想化の処理しか必要とせず、ハードウェア仮想化に比べて少ないオーバーヘッドでサービスを同居させることができます。

一方、ハードウェア仮想化では仮想的なハードウェアプラットフォームを提供することから、LinuxとRTOS(Wind River LinuxとVxWorks)といった異なる種類のOSをひとつのシステム上に統合することや、重要度の異なるサービス、車載システムで例えるとADAS機能とカーナビゲーション機能を分離し、互いが障害の影響を及ぼすことなく管理することができます。ウインドリバーはハードウェア仮想化を活用した製品として、Helix Virtualization Platformを提供しています。最適なソリューションをご選択ください。 


hypervisor
図4:コンテナとハードウェア仮想化の違い – コンテナは仮想的なLinuxディストリビューションのプラットフォームを提供するのに対し、ハードウェア仮想化はハードウェアプラットフォームを仮想化する(赤枠部分)



こんなに便利!Dockerの活用例

組込みシステムにDockerを活用することにより、別々の環境で動作していたアプリケーション、ユーティリティ、ミドルウェアを統合し、高機能な組込みシステムを実現することができます。

Dockerを利用することにより、それぞれのアプリケーション毎の実行環境を定義できるため、Pythonのバージョンを合わせなければならないといった制約や、各アプリケーションが依存するライブラリのバージョンが異なるといった制約にも対応可能で、互いのアプリケーションの差異を意識することなく統合することができます。例えば、Python2.x系で動作するレガシーなハードウェア制御アプリケーション、Python3.x系で動作する最新の機械学習のアプリケーション、データを管理するMongoDBを使ったデータベースシステム、ユーザーにUIを提供できるnginxベースのWEBアプリケーションをひとつの環境に統合して、高機能なエッジコンピューティング・デバイスを短期間で開発することが可能です。

また、コンテナイメージを取得するだけで様々なアプリケーションを実行できるため、機械学習の知識はあるがデーターベースの環境構築の経験が無い開発メンバーも、手順を誤ることなく手早くデーターベースを活用したアプリケーションを開発することができます。


hypervisor
図5:Dockerの活用例

Wind River LinuxによるDockerの活用には、簡素なアプリケーションの統合だけでなく、AI アプリケーションに人気の高い NVIDIA container runtime を Wind River Linux 上で動作させた例をブログで紹介しています(ブログ掲載時のバージョンとなるため、ご興味のある方は最新バージョンの情報等はお問い合わせください)。


以上が、コンテナの特徴とメリットです。コンテナを組込みシステムに採用したいと感じた方も多かったかと思います。Wind River Linuxは標準でDockerをサポートしているため、ダウンロードするだけですぐに使いはじめることができます。


リソース

Previous Next

Wind River Technology Helps NASA James Webb Space Telescope with Historic Milestonee-Japan

 



ウインドリバーのテクノロジーが、NASA の ジェームズ・ウェッブ宇宙望遠鏡の歴史的なマイルストーンに貢献~初めて撮影された画像が公開~

July 12, 2022 航空宇宙・防衛

著者:Alex Wilson/アレックス・ウィルソン

NASAがジェームス・ウェッブ宇宙望遠鏡(JWST)から科学観測で初めて撮影されたフルカラー画像を公開しました。これは、宇宙に打ち上げられた最も強力な望遠鏡からの最初の画像であり、宇宙の夜明けに対する私たちの理解を変えるものになるでしょう。ウインドリバーは、この歴史的な宇宙でのマイルストーンに参加し、素晴らしいインテリジェントシステムの開発に貢献できることを誇りに思います。

NASAのJWSTチームから最初の画像が公開されるまで、私は身の引き締まる思いで見守ってきました。この複雑なミッションが開始されるまで長い時間がかかりましたが、待った甲斐がありました。NASA TVは、ウインドリバーのソフトウェア、特にVxWorksリアルタイムオペレーティングシステム(RTOS)で動くISIMの組付け等、様々な段階を経てJWSTが構築される様子をタイムラプス動画で紹介しています。JWSTのクリティカルなミッションソフトウェアの開発・検証にはウインドリバーのフルシステムシミュレーションテクノロジー(Simics)が使用されています。

ウインドリバーの本プログラムへの関わりや詳細については、ポール・パーキンソンのブログ「ジェームズ・ウェッブ宇宙望遠鏡がL2軌道に無事到着-ウインドリバーのテクノロジーが、宇宙での新たなマイルストーン達成に貢献-」をご覧ください。

私たちは今、公開された最初の1枚の画像というJWSTの科学を目にしています。7月11日に公開された画像は、これから起きることを予感させるような素晴らしいものでした。それは、手のひらに乗る砂粒ほどの大きさの空に何千もの銀河が映し出された、これまで見たことのない新しい鮮やかな宇宙の姿でした。JWST によって宇宙の小さな一片である「SMACS0723」として知られる銀河団がとらえられ、宇宙で最も古い銀河の1つである、約46億光年離れた銀河団のきらめく複数の光を鮮明に映し出しています。

JWSTの活動が始まり、これからも素晴らしい画像や発見があることを期待しています。NASAとJWSTチームの皆さん、おめでとうございます。ウインドリバーは、この記念すべき宇宙のマイルストーンを一緒にお祝いしたいと思います。

Customer Success Story - Toshiba

Wind River Helps Toshiba Power the Future of Retail

Wind River Linux supports the revolutionary TCx Sky Platform

Customer Success Story

The Objective

Toshiba needed to build the next generation of its TCx™ Sky retail optimized operating system, one that would provide rock-solid stability, security, and performance for today’s widely distributed POS systems and a firm basis for up-and-coming IoT innovations such as biometrics and anonymous facial recognition. Now powering more than a million checkout lines, TCx Sky runs a streamlined embedded Linux kernel well suited to retail applications. Toshiba needed a technology partner to help it stay abreast of the constant evolution and security monitoring that comes with embedded Linux deployments.

“The Wind River partnership is really important to Toshiba and where we’re going in the retail industry and what investments we’re making. They have over 30 years of providing safe and secure intelligent systems, and that allows us to work together to provide solutions that will allow us to create the digital transformation that our clients expect.”

—Fredrik Carlegren, Director of Global Marketing, Toshiba

How Wind River Helped

Toshiba selected Wind River® for its deep expertise with carrier grade and embedded Linux. Wind River Linux addresses the development and deployment needs of a secure, supported, and constantly evolving Linux platform for global retailers. Toshiba uses a customized Wind River Linux–based platform and depends on customer content management services to control lifecycle and maintenance. Given Toshiba’s diverse customer base, the company relies heavily on the Wind River ability to release new products constantly to keep up with the latest silicon and security features. Toshiba ultimately needed a kernel that was yet to be released from the open source community, which left Wind River with little room for error. Wind River partnered with Toshiba to create TCx™ Sky, helping select the packages, the tools, and the customizations needed for a hardened carrier grade platform. The company assisted Toshiba in the constant security monitoring that protects the platform and its users. Two months after the new kernel was finalized, Wind River had integrated the new kernel into the Wind Linux Continuous Delivery (CD) release.

The Results

Wind River gave Toshiba the ability to accelerate the release of its TCx Sky product. Partnering with Wind River now and in the future, Toshiba is well positioned to offer its customers a safe, secure, and robust retail platform ready to meet current needs and to support the evolution of the retail experience with ever-new features. Working with Wind River, Toshiba is able to offer its portfolio of global retailers prompt, professional, and state-of-the-art support for TCx Sky deployments.

Resources

Toshiba Customer Success Video

Toshiba partners with Wind River to launch TCx Sky

Watch Video

Wind River Technology Accredited in Iron Bank DoD Centralized Artifacts Repository-Japan

 



ウインドリバーのテクノロジーが、アメリカ国防総省のIron Bank DCAR (DoD Centralized Artifacts Repository)に認定

June 28, 2022 航空宇宙・防衛

Alex Wilson/アレックス・ウィルソン

https://blogs.windriver.com/content/images/2022/06/Alex-Wilson.jpg

この20年間、初期のアジャイルの概念からDevSecOpsの実践に至るまで、ソフトウェア開発と運用のトレンドが高まっています。アメリカ国防総省ソフトウェアモダナイゼーション戦略(DoD Software Modernization Strategy)の一環として、米国空軍のPlatform Oneといったプログラムは、現場へのソフトウェア機能のデプロイを加速させるためにDevSecOpsを使用するパイオニアとなっています。Platform Oneのウェブサイトによると、Iron Bankの堅牢化されたコンテナとPlatform One(P1) pipelineセキュリティツールを使用することで、アプリケーションの本番稼動をこれまで以上に迅速に実現しています。その結果、開発者はCertificate to Field (CtF)とContinuous Authority to Operate(cATO)により検証済みのコードを継続的に本番環境に投入することができるため、開発サイクルが短縮され、デバッグ回数が減少し、より迅速な機能開発が可能になります。

ウインドリバーは、すでに下記の分野でPlatform Oneチームと協業しています。

 1)Wind River Studioを使用した、アプリケーションのクラウドネイティブ開発

 2)エッジコンピューティングアプリケーションに対する、OCI準拠のコンテナのデプロイメント

VxWorksのモダナイゼーションについては、ミッシェル・シャブロウのブログ記事「インテリジェントエッジを実現するRTOSのコンテナ技術」で詳しくご紹介しています。戦闘機のソフトウェア更新について説明した動画もご視聴ください。

ウインドリバーは、米国空軍のチーム8と共同で、ミッションクリティカルなインテリジェントシステムの開発、デプロイ、運用、サービスを行うためのクラウドネイティブソリューションである「Wind River Studio」の評価も行っています。

更にウインドリバーは、Iron Bank DCAR (DoD Centralized Artifacts Repository)にVxWorksビルドコンテナをリリースしました。Iron Bankは、FOSS(Free and Open-Source Software)とCOTS(Commercial off-the-shelf)の両方を含む、デジタル署名されたバイナリコンテナイメージのDCAR (DoD Centralized Artifacts Repository)です。Iron Bankで認定されたコンテナは、国防総省全体で相互認証しています。


VxWorksは、デプロイ済みアプリケーションにコンテナ技術を使用できるようにしただけでなく、Iron Bankリポジトリを通じて認証された安全なビルド環境も提供できる初の商用RTOSとなりました。これにより、Iron Bankが承認したツールを使用して、VxWorks 22.03の開発およびデプロイを安全なパイプラインワークフローに組み込むことが可能になります。

これを実現するため、ウインドリバーはPlatform Oneチームと協働し、Iron BankのコンテナハードニングガイドにもとづいてVxWorksビルドコンテナを堅牢化しました。上記のようにIron Bankチームは、セキュリティの検証とベースラインのコンプライアンスのテストを実施し、Iron Bankリポジトリで公開するWind Riverコンテナを承認しています。

VxWorksは、Iron Bankの認定ソリューションとなったため、お客様はIron Bankから直接VxWorksのビルド環境を簡単に取得することができます。有効なVxWorksライセンスと組み合わせれば、DoDに承認されたソフトウェア開発プロセスを使用してVxWorksをビルドおよびデプロイすることができます。

これは、Wind River Studioによるクラウドネイティブ開発、C++17、Boost、Python、Rust、アプリケーション向けOCI準拠のコンテナのサポートなど、ここ数年で当社がVxWorksに追加した多くの新機能に続く、ウインドリバーのエンジニアリングチームの大きな功績です。