SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
レシピの作り方入門

岩松 信洋
メール: iwamatsu@nigauri.org
Twitter: @iwamatsu
アジェンダ
1.自己紹介
2.
Yoctoのビルド概要
3.レシピの作り方
4.まとめ
自己紹介
自己紹介
●

名前: 岩松信洋(いわまつ のぶひろ)

●

大抵のアカウントは iwamatsu

●

kuma dasu さんの紹介で発表することになりま
した。

●

普段は Linux kernel、U­Boot 、BSPの開発

●

U­Boot SH/rmobile Maintainer

●

Debian Project Official Developer 
Debian からの刺客!?
                       クルッ
.                      ハ,,ハ    ミ  _ ドスッ
     /1べ:;:;:r─‐-!         ( ゚ω゚ )彡―─┴┴─―
.    /iィ.:.:.:.:ヾ|断だ!\        /   つ  お断りし /      ハ,,ハ
   /ヘ レj_.:.:.lるが!  \    ~′ /´ └―─┬/       ( ゚ω゚ ) お断りします
.  /.:`ソ =三_`y‐i:!    \    ∪ ∪      /        /    \
 /.:::i゛:.. `ヾニノ  j!      .\           /       ((⊂  )   ノ\つ))
./;;i::rミ、    ;:'  '!       . \∧∧∧∧∧D/             (_⌒ヽ
丶iゝ``'   ,:'  ,t'!         <     お e>           ヽ ヘ }
   ` 丶 、 /rj!        < の し 断 b>      ε≡Ξ ノノ `J
────────────< 予 ま わ  i>────────────
         ハ,,ハ  お断り<. 感 す り  a>         ______
        ( ゚ω゚ )  します<. !!      n >        /   ./お だ ,!
       __〃`ヽ 〈_      /∨∨∨∨\         /   ! 断 が,!
   γ´⌒´--ヾvーヽ⌒ヽ /お断りします \       / ,ハ,,ハ ! り  ,!
  /⌒  ィ    `i´  ); /.      ハ,,ハ     \    /( ゚ω゚ )`ー‐,!
  /    ノ^ 、___¥__ /       ( ゚ω゚ )     \  `ヽ、   \_,!
  !  ,,,ノ爻\_ _人 /        .(| y |)       \    `ヽ、ノ\,!
Yocto なんてぶっ
潰してやるぜ!
というわけではありません
ので、安心してください。
Yocto なんてぶっ
潰してやるぜ!
Yoctoのビルド概要
ビルド概要
レシピ

bitbake

イメージ
ビルド概要/レシピとは?
●

ソフトウェアのビルド、インストール方法が書
かれたテキストファイル

●

シェルスクリプト + Python を混ぜて記述

●

ソース取得からパッケージ化までの動作を記述

●

料理のレシピと同じようなもの
ビルド概要
レシピ

core­image­minimal

bitbake

イメージ
ビルド概要
レシピ

bitbake

core­image­minimal
依存
busybox

eglibc

……

イメージ
ビルド概要
レシピ

bitbake

core­image­minimal
依存
busybox

eglibc
依存

gcc­cross

binutils­cross

……

……

イメージ
ビルド概要
レシピ

bitbake

core­image­minimal
依存
busybox

eglibc
依存

gcc­cross

binutils­cross

……

……

依存
gettext­native

zlib­native

……

イメージ
ビルド概要
レシピ

bitbake

イメージ

core­image­minimal
依存
busybox

eglibc
依存

gcc­cross

binutils­cross

……

……

依存
gettext­native

zlib­native

……

ビルド

gettext­native

zlib­native

……
ビルド概要
レシピ

bitbake

イメージ

core­image­minimal
依存
busybox

eglibc
依存

gcc­cross

binutils­cross

……

……

ビルド

gcc­cross

依存
gettext­native

zlib­native

binutils­cross

……

ビルド依存
……

ビルド

gettext­native

zlib­native

……
ビルド概要
レシピ

bitbake

イメージ

core­image­minimal
依存
busybox

eglibc
依存

gcc­cross

binutils­cross

……

……

ビルド

ビルド

busybox

gcc­cross

依存
gettext­native

zlib­native

eglibc

……
ビルド依存

binutils­cross

……

ビルド依存
……

ビルド

gettext­native

zlib­native

……
ビルド概要
レシピ

bitbake

インストール

core­image­minimal

イメージ

core­image­minimal.bz2

zImage

依存
busybox

eglibc
依存

gcc­cross

binutils­cross

……

……

ビルド

ビルド

busybox

gcc­cross

依存
gettext­native

zlib­native

eglibc

……
ビルド依存

binutils­cross

……

ビルド依存
……

ビルド

gettext­native

zlib­native

……
ビルド概要

*.conf

レシピ

bitbake

インストール

core­image­minimal

イメージ

core­image­minimal.bz2

zImage

依存
busybox

eglibc
依存

gcc­cross

binutils­cross

……

……

ビルド

ビルド

busybox

gcc­cross

依存
gettext­native

zlib­native

eglibc

……
ビルド依存

binutils­cross

……

ビルド依存
……

ビルド

gettext­native

zlib­native

……
ビルド概要/レイヤー
ビルド概要/レイヤー

poky/meta

busybox

linux­yocto
ビルド概要/レイヤー

poky/meta­yocto

busybox

poky/meta

busybox

linux­yocto
ビルド概要/レイヤー

linux­yocto

meta­foo

poky/meta­yocto

busybox

poky/meta

busybox

linux­yocto

myprogram
ビルド概要/レイヤー

linux­yocto

meta­foo

poky/meta­yocto

busybox

poky/meta

busybox

myprogram

linux­yocto
ビルドディレクト
リ/conf/bblayers.conf で定義
ビルド概要/レイヤー

linux­yocto

meta­foo

poky/meta­yocto

busybox

poky/meta

busybox

myprogram

linux­yocto
ビルドディレクト
リ/conf/bblayers.conf で定義
ビルド概要/レイヤー

linux­yocto

meta­foo

poky/meta­yocto

myprogram

busybox
機能上書き

poky/meta

busybox

linux­yocto
ビルドディレクト
リ/conf/bblayers.conf で定義
ビルド概要/レイヤー

linux­yocto

meta­foo

poky/meta­yocto

busybox

myprogram

機能追加

機能上書き
poky/meta

busybox

linux­yocto
ビルドディレクト
リ/conf/bblayers.conf で定義
ビルド概要/レイヤー

linux­yocto

meta­foo

poky/meta­yocto

busybox

myprogram

機能追加

機能上書き
poky/meta

busybox

linux­yocto
ビルドディレクト
リ/conf/bblayers.conf で定義

最終的な
レシピ

busybox

linux­yocto

myprogram
ビルド概要/レイヤー

linux­yocto

meta­foo

poky/meta­yocto

busybox

myprogram

機能追加

機能上書き
poky/meta

busybox

linux­yocto
ビルドディレクト
リ/conf/bblayers.conf で定義

最終的な
レシピ

busybox

linux­yocto

myprogram
ビルド概要/レシピ
poky/meta­yocto/recipes­core/busybox/
|­­ busybox­1.20.2
|   `­­ poky­tiny
|       `­­ defconfig
`­­ busybox_1.20.2.bbappend
poky/meta/recipes­core/busybox/
|­­ busybox­1.20.2
|   |­­ …
|   `­­ wget_dl_dir_fix.patch
|­­ busybox.inc
|­­ busybox_1.20.2.bb
`­­ files
    |­­ …
    `­­ umount.busybox
ビルド概要/レシピ
poky/meta­yocto/recipes­core/busybox/
|­­ busybox­1.20.2
|   `­­ poky­tiny
|       `­­ defconfig
recipes­core/busybox/busybox_1.20.2.bbappend
`­­ busybox_1.20.2.bbappend
+

poky/meta/recipes­core/busybox/
|­­ busybox­1.20.2
|   |­­ …
|   `­­ wget_dl_dir_fix.patch
|­­ busybox.inc
|­­ busybox_1.20.2.bb
`­­ files
    |­­ …
    `­­ umount.busybox

recipes­core/busybox/busybox_1.20.2.bb

bbappend で定義した
内容が上書きされた
busybox_1.20.2.bb
レシピの作り方
レシピの作り方
●

レシピのひな形を作成

●

レシピ説明、セクション名の定義

●

ライセンス定義

●

ソースファイル定義

●

タスク定義

●

その他変数
レシピの作り方
●

yocto­layer create でひな形作成

$ ./poky/scripts/yocto­layer create my­recipes
レシピの作り方
●

yocto­layer create でひな形作成

$ ./poky/scripts/yocto­layer create my­recipes
Please enter the layer priority you'd like to use for the layer: [default: 6] 6
Would you like to have an example recipe created? (y/n) [default: n] y
Please enter the name you'd like to use for your example recipe: [default: example] 
Would you like to have an example bbappend file created? (y/n) [default: n] n
New layer created in meta­my­recipes.
Don't forget to add it to your BBLAYERS (for details see meta­my­recipesREADME).

カレントディレクトリにmeta­my­recipes ディレクトリが作成
され、そこにひな形が作成される
実行後のディレクトリ構成
meta­my­recipes
  |­­ COPYING.MIT
  |­­ README
  |­­ conf
  |   `­­ layer.conf
  |­­ recipes­example
     `­­ example
         |­­ example­0.1
         |   |­­ example.patch
         |   `­­ helloworld.c
         `­­ example_0.1.bb
example_0.1.bb
レシピ名: example
バージョン: 0.1
として処理される。
レシピ名とバージョンは _ (アンダースコア)で
区切る。
example_0.1.bb
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://$
{COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
             ${CC} helloworld.c ­o helloworld
}
do_install() {
             install ­d ${D}${bindir}
             install ­m 0755 helloworld ${D}${bindir}
}
レシピ説明、セクション名の定義
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://$
{COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
             ${CC} helloworld.c ­o helloworld
}
do_install() {
             install ­d ${D}${bindir}
             install ­m 0755 helloworld ${D}${bindir}
}
レシピ説明、セクション名の定義
●

DESCRIPTION: レシピの説明
­ 簡単な説明は SUMMARY を使う

●

SECTION: レシピが所属するセクション
­ 一応ビルド時にチェックされる
(meta/classes/oelint.bbclass)
ライセンス定義
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://$
{COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
             ${CC} helloworld.c ­o helloworld
}
do_install() {
             install ­d ${D}${bindir}
             install ­m 0755 helloworld ${D}${bindir}
}
ライセンス定義
●

LICENSE: ライセンス名

●

LIC_FILES_CHKSUM: ファイル名とmd5
­ COPYING 、LICENSE ファイルのパス
­ ファイルのライセンスヘッダ部を参照する場合もある
file://ファイル名;beginline=5;endline=20;md5=チェックサム値 (指 
定されたファイルの5行目から20行目にあるライセンスヘッダのmd5  
チェックサムを確認する。)
­ COMMON_LICENSE_DIRはmeta/files/common­licenses/ がデ

フォルト値
ソースファイル定義
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://$
{COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
             ${CC} helloworld.c ­o helloworld
}
do_install() {
             install ­d ${D}${bindir}
             install ­m 0755 helloworld ${D}${bindir}
}
ソースファイル定義
●

SRC_URI: ソースファイルの一覧
­ ソースファイルはビルドに必要なパッチや設
定ファイルを含む
­ スペースで区切る

●

様々なプロトコルをサポート
file、git、svn、http、etc...
タスク定義
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://$
{COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
             ${CC} helloworld.c ­o helloworld
}
do_install() {
             install ­d ${D}${bindir}
             install ­m 0755 helloworld ${D}${bindir}
}
タスク定義
●

Bitbake によってビルド時に実行される処理

●

基本タスクと実行される順番が決まっている
1. do_fetch: SRC_URI で指定された場所からソースコードをダウンロード
2. do_unpack: ソースコードを展開
3. do_patch: ローカルパッチを適用
4. do_configure: configureを実行
5. do_compile: makeを実行
6. do_install: make install を実行
7. do_populate_sysroot: sysroot にインストール
8. do_package: パッケージ化用のディレクトリにインストール
9. do_package_write: パッケージの作成(ipk, deb, rpm)
10. do_build: ビルド終了用のタスク
タスク定義
●

Bitbake によってビルド時に実行される処理

●

基本タスクと実行される順番が決まっている
1. do_fetch: SRC_URI で指定された場所からソースコードをダウンロード
2. do_unpack: ソースコードを展開
3. do_patch: ローカルパッチを適用
4. do_configure: configureを実行
5. do_compile: makeを実行

実際に実行されるタスクは
bitbake ­c listtasks レシピ名 で確認できる

6. do_install: make install を実行
7. do_populate_sysroot: sysroot にインストール
8. do_package: パッケージ化用のディレクトリにインストール
9. do_package_write: パッケージの作成(ipk, deb, rpm)
10. do_build: ビルド終了用のタスク
タスク定義
$ bitbake ­c listtasks busybox
do_fetchall
do_devshell
do_package_write_ipk
do_cleansstate
do_build
do_configure
do_cleanall
do_populate_lic
do_package_write
do_populate_sysroot
do_package_setscene
do_menuconfig
do_populate_lic_setscene
do_packagedata_setscene
do_patch
do_packagedata
do_listtasks
do_checkuriall
do_compile

do_fetch
do_checkuri
do_clean
do_package_write_ipk_setscene
do_package
do_unpack
do_install
do_populate_sysroot_setscene
タスク定義
1. do_fetch: SRC_URI で指定された場所からソースコードをダウンロード
2. do_unpack: ソースコードを展開
3. do_patch: ローカルパッチを適用
4. do_configure: configureを実行
5. do_compile: makeを実行
6. do_install: make install を実行
7. do_populate_sysroot: sysroot にインストール
8. do_package: パッケージ化用のディレクトリにインストール
9. do_package_write: パッケージの作成(ipk, deb, rpm)
10. do_build: ビルド終了用のタスク
タスク定義
1. do_fetch: SRC_URI で指定された場所からソースコードをダウンロード
2. do_unpack: ソースコードを展開
3. do_patch: ローカルパッチを適用
4. do_configure: configureを実行

●

5. do_compile: makeを実行

●
●

6. do_install: make install を実行

タスクは上書き、追加ができる
タスク間には依存関係がある
自作のタスクを定義可能できる

7. do_populate_sysroot: sysroot にインストール
8. do_package: パッケージ化用のディレクトリにインストール
9. do_package_write: パッケージの作成(ipk, deb, rpm)
10. do_build: ビルド終了用のタスク
タスク定義の上書き、追加
●

タスクの上書き
do_configure() {
    echo ''Override do_configure'' 
}

●

タスクの追加
do_compile_append() {
             touch ${S}/test
}

_append はタスクの処理後に追加する。タスク処理前
は_prependをつける
タスク定義の依存関係と作成
●

タスク間には依存関係がある
addtask package before do_build after do_install

package タスクをbuildの前、installの後に実行する
●

自作のタスクを定義できる
addtask mytask before do_patch after do_unpack
do_mytask() {
    ......
}

mytask タスクをpatchの前、unpackの後に実行する用
設定
その他変数
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://$
{COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
             ${CC} helloworld.c ­o helloworld
}
do_install() {
             install ­d ${D}${bindir}
             install ­m 0755 helloworld ${D}${bindir}
}
その他変数
PR: レシピのリビジョン。レシピを更新した時に
インクリメントする。初めて作った時は必要な
い。
●
S: ソースディレクトリ。展開済みのソースディ
レクトリ
●
WORKDIR: レシピの作業が行われるディレクト
リ。
●
D: インストール先ディレクトリ
●
bindir: /usr/bin
●
その他変数
PN: レシピ(パッケージ)名
●
PV: レシピ(パッケージ)のバージョン
●
DEPENDS: ビルドに必要なレシピ
●

DEPENDS = ''zlib openssl''

RDEPENDS: 実行に必要なパッケージ(or レシピ)
●
EXTRA_OECONF: configure実行時に渡すオプショ
ン
●
EXTRA_OEMAKE: make実行時に渡すオプション
●
その他たくさん...
●
その他
●

autotools や pkg-config を使った手順は?
基本機能をまとめたクラスが提供されている。
inherit 命令を使って機能を継承する。
inherit autotools pkg-config

●

レシピ共通の項目をまとめたい
include命令が使える。項目をまとめたファイルを指定。
include boost.inc
その他変数
PN: レシピ(パッケージ)名
●
PV: レシピのバージョン
●
DEPENDS: ビルドに必要なレシピ
●

DEPENDS = ''zlib openssl''

RDEPENDS: 実行に必要なパッケージ(or レシピ)
●
EXTRA_OECON: configure 実行時に渡すオプション
●
レシピのビルド
●

meta­my­recipesのパスを conf/bblayers.conf の
BBLAYERS に追加する

 

BBLAYERS ?= "                                                                  
  /home/iwamatsu/yocto/test/poky/meta  
  /home/iwamatsu/yocto/test/poky/meta­yocto 
  /home/iwamatsu/yocto/test/poky/meta­yocto­bsp  
  /home/iwamatsu/yocto/test/meta­my­recipes  
  "  
レシピのビルド
●

bitbake­layers show­layers でビルド環境のレイヤーのを
チェックする
$ bitbake­layers show­layers
layer                 path                                      priority
==========================================
……
meta­yocto­bsp         /home/iwamatsu/yocto/test/poky/meta­yocto­bsp  5
meta­my­recipes       /home/iwamatsu/yocto/test/meta­my­recipes  6
  
レシピのビルド
●

bitbake­layers show­recipes でビルド環境のレイヤーの
をチェックする
$ bitbake­layers show­recipes | grep ­A 1 ^example
Parsing recipes..done.
example:
  meta­my­recipes      0.1

 
レシピのビルド
●

bitbake example を実行する
$ bitbake example
Build Configuration:
BB_VERSION        = "1.18.0"
BUILD_SYS         = "x86_64­linux"
NATIVELSBSTRING   = "Unknown"
TARGET_SYS        = "i586­poky­linux­uclibc"
MACHINE           = "hoge"
DISTRO            = "hogefoo"
DISTRO_VERSION    = "1.4.2"
TUNE_FEATURES     = "m32 i586"
TARGET_FPU        = ""
meta              
meta­yocto        
meta­yocto­bsp    = "dylan:d734ab491a30078d43dee5440c03acce"
meta­my­recipes   = "<unknown>:<unknown>"
……
既存のレシピの変更方法
.bbを直接変更しない
●
.bbappendファイルを作成して上書き(オーバー
ライド)する
●
.bbappendファイルで上書きするときは、レシピ
名(PN)とレシピのバージョン(PV)が同じである必
要がある。
●
既存のレシピの変更方法
●

meta­my­recipes/recipes­example/example 以下
にexample_0.1.bbappend を作成する
install タスクに ${S}/test ファイルを作成する処
理を追加
do_install_append() {
        touch ${S}/test
} 
既存のレシピの変更方法
●

bitbake­layers show­appends でレシピの変更状
態を確認する
$ bitbake­layers show­appends | grep ^example ­A 1
Parsing recipes..done.
example_0.1.bb:
   /home/iwamatsu/yocto/test/meta­my­recipes/recipes­
example/example/example_0.1.bbappend
既存のレシピの変更方法
●

bitbake example を再度実行
既存のレシピの変更方法
●

bitbake example を再度実行
do_install_append() {
        touch ${S}/test
} 

example_0.1.bbappendの install タスク

example_0.1.bbの install タスク

do_install() {
             install ­d ${D}${bindir}
             install ­m 0755 helloworld ${D}${bindir}
}
既存のレシピの変更方法
●

bitbake example を再度実行
do_install_append() {
        touch ${S}/test
} 

example_0.1.bbappendの install タスク

example_0.1.bbの install タスク

do_install() {
             install ­d ${D}${bindir}
             install ­m 0755 helloworld ${D}${bindir}
}
do_install() {
             install ­d ${D}${bindir}
             install ­m 0755 helloworld ${D}${bindir}
             touch ${S}/test
}
まとめ
まとめ
●

レシピはソフトウェアのビルド、インストール方法が書かれたテキストファ
イル

●

シェルスクリプト + Python を混ぜて記述

●

ソース取得からパッケージ化までの動作を記述

●

各レシピは依存関係を持つ

●

変数とタスクが定義されている

●

変数とタスクは変更可能

●

yocto­layer create でひな形が作成できる

●

bitbake­layers でビルド環境の確認ができる

●

レシピを変更するときは .bbappend を使って上書きする
質問ありますか?

Más contenido relacionado

La actualidad más candente

Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみたwata2ki
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールMITSUNARI Shigeo
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門Fixstars Corporation
 
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)Mr. Vengineer
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌LINE Corporation
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
5分で分かるgitのrefspec
5分で分かるgitのrefspec5分で分かるgitのrefspec
5分で分かるgitのrefspecikdysfm
 
Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1cohama
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)Takeshi HASEGAWA
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414Kentaro Ebisawa
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月VirtualTech Japan Inc.
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門Yuichi Ito
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解MITSUNARI Shigeo
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
 

La actualidad más candente (20)

Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみた
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
5分で分かるgitのrefspec
5分で分かるgitのrefspec5分で分かるgitのrefspec
5分で分かるgitのrefspec
 
Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 

Último

プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 

Último (7)

プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 

レシピの作り方入門