SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
UNIX の設計思想
井上直人
2015/01/21
目次
• 目的
• 対象者
• 効果・効能
• 歴史
• カーネル
• システムコール
• リソース
• プロセス
• ファイルディスクリプタ
• 終了コード
• パイプ
• fork
• まとめ
• ここから先は
• 参考文献
• その他
目的
UNIX の仕組みと哲学を学び
コンピュータープログラミングを
楽しくハックする
対象者
• 低レイヤーで動くプログラムをよく知らない
• UNIX に興味はあるけど C言語 を覚えるのは大変
• コマンドは使えるけど、なぜそう使うのか分からない
効果・効能
• 明日から使える特効薬ではありません
• いつか役に立ちます・・・
• 過剰摂取は身を滅ぼします
歴史
• 1969年に AT&T のベル研究所で UNIX が誕生
• ゲームがしたかったから研究所の端に転がっていた
PDP-7 にゲームプログラムを移植
• アセンブリで書かれていたものを C言語 で書きなお
した
• UNIX と C言語 はともに成長していった
歴史
• デニス・リッチー
2011年逝去
FreeBSD 9.0 や RedHat16 のリリースノートにメッセージが添えられている
「プログラミング言語C」の著者
!
• ケン・トンプソン
正規表現の普及に貢献 ラインエディター ed は正規表現の機能があった
UTF-8 の開発 次世代 UNIX と謳われた幻の OS Plan9 での成果
Google で Go 言語の開発
!
• ブライアン・カーニハン
Hello World を B言語 のチュートリアルで最初に用いた
「プログラミング言語C」の著者
カーネル
• CPU
• メモリ
• ハードディスク
• BDドライブ
• グラフィックボード
• ネットワークカード
• サウンドカード
OS の機能の 中心 となる部分 = カーネル
カーネル
低レイヤーの機能を抽象化し API として提供する
!
システムコール を呼び出して仕事を依頼する
システムコール
コマンドをトレースしてどんなシステムコールが
呼ばれているのか調べてみよう
Mac	
$ sudo dtruss -a command
Linux	
$ sudo strace command
システムコール
$ man open # Mac のオープンコマンド	
$ man 2 open # システムコールの open()
システムコールを man で参照するには
セクション 2 をみる
システムコール
セクション情報は以下の4つ
1. ユーザーコマンド
2. システムコール (カーネル関数)
3. サブルーチン (Cライブラリ関数)
4. デバイス (/dev のスペシャルファイル)
リソース
あらゆるものをファイルとしてみなし
木構造のファイルシステムとして構築
!
デバイスもソケットもパイプもすべて
ファイルで扱えるインターフェースを備える
!
IO の基本は open, read, write, close である
リソース
デバイスってただのリソース?
Mac	
$ ls /dev	
$ file /dev/* # ファイルの種類を表示
リソース
• キャラクターデバイス
プリンタ、モデム、キーボードなど
!
• ブロックデバイス
ハードディスクなど
ランダムアクセスできないのが特徴
リソース
デバイスのファイルシステムへの
マウント情報をみよう
$ mount
リソース
$ lpq	
$ echo “Hello Printer!” | lpr -Pfoo
プリンターはデバイスとしてマウントされる
!
プリンターもまたリソースなので共通の
IO インターフェースで扱える
リソース
$ echo C-v C-g
サウンドカードもまたリソースなので共通の
IO インターフェースで扱える
Linux では /dev/dsp や /dev/audio にサ
ウンドカードがマウントされる
信号を送って音が鳴ることを確かめてみよう
$ echo “aaaaaa” > /dev/dsp
リソース
ネットワークもまたリソースなので共通の
IO インターフェースで扱える?
ネットワークにおいてはソケットを作ることで
共通のインターフェースを持つことになる
プロセス
あらゆるプログラムは実行時にプロセスとして
立ち上がる
Ruby	
Process.pid	
Process.ppid
getpid というシステムコールが呼ばれる
ファイルディスクリプタ
プロセスでリソースを開くとファイルディスクリプ
タが割り当てられる
!
ファイルディスクリプタはプロセスとともに生き
プロセスとともに死ぬ
Ruby	
IO#fileno
ファイルディスクリプタ
Ruby	
f1 = File.open('/dev/null')	
puts f1.fileno	
!
f2 = File.open('/etc/hosts')	
puts f2.fileno	
!
f1.close	
!
f3 = File.open('/etc/ntp.conf')	
puts f3.fileno
ファイルディスクリプタ
Ruby	
STDIN.fileno	
STDOUT.fileno	
STDERR.fileno
0, 1, 2 のファイルディスクリプタは
どこに割り当てられている?
/dev 配下にヒントがあったよ
ファイルディスクリプタ
Ruby	
Process.getrlimit(:NOFILE)	
Process.getrlimit(:FSIZE)
ファイルディスクリプタの限界
ファイルサイズの限界
ファイルディスクリプタ
$ httperf --server www.test.com 	
—port 80 --uri /index.html 	
—num-conn 30000
必要になる場面はあるの?
!
ある httperf などのパフォーマンスツー
ルで socket をたくさん開くときなど
ファイルディスクリプタ
httperf はどんなシステムコールを呼んでる?
終了コード
終了コードは 0-255 の整数値で返る
正常終了は 0
なぜ複数の終了コードがあるのだろう?
Ruby	
exit	
exit 22
終了コード
Ruby	
$ echo "Hi" && ruby -e 'exit' && echo "OK?"	
$ echo "Hi" && ruby -e 'exit!' && echo "OK?"	
$ echo "Hi" && ruby -e 'abort' && echo "OK?"	
$ echo "Hi" && ruby -e 'raise' && echo "OK?"
raise は例外メッセージとバックトレースが
STDERR に出力される
パイプ
• IPC とは プロセス間通信 のことである
• パイプは IPC を可能にする
• ネットワークにおいて IPC を高速に実現するには
UNIX ドメインソケットを使う
パイプ
• コマンドを独立したプロセスとして 同時 に実行する
• そのプロセス間をパイプでつなぐ
• パイプは 非常に効率よく プロセスを処理する
パイプ
Shell	
$ /usr/bin/time -l cat /usr/share/dict/words	
!
$ /usr/bin/time -l cat /usr/share/dict/words
| grep purple | awk '{print length($1), $1}'
| sort -n | tail -n 1 | cut -d " " -f 2
パイプ
パイプはなぜこんなに速く処理できるのか?
!
プロセスを同時に実行し read と write がメモリバッ
ファを通して逐次実行されるため
パイプ
パイプを使えるプログラムを フィルタ と呼ぶ
UNIX ではすべてのプログラムは フィルタ として振る
舞うことを期待する
fork
• fork はプロセスを生成するためのシステムコール
• 子プロセスは親プロセスの すべてのメモリーのコピー
を引き継ぐ
• 子プロセスには新しくメモリのアドレス空間が割り当
てられるが CoW* 機構によって実際の物理メモリの
確保は 遅延 される
* Ruby1.9 まではこの機能が使えなかったが 2.0 から Bitmap Marking によって GC が改善したため
問題なく使える
fork
fork は親プロセスが開いている
ファイルディスクリプタも同様に引き継ぐ
fork
Ruby	
if fork	
p "true が返る"	
else	
p "false が返る"	
end
if の挙動がおかしい?
fork
Ruby	
p Process.fork
fork の返り値って何?
fork
Ruby	
fork do	
5.times do	
sleep 1	
puts "僕は孤児です・・・"	
end	
end	
!
abort "子どもを待たずに親が死ぬ"
孤児プロセスとは?
fork
Ruby	
fork do	
5.times do	
sleep 1	
puts "僕は孤児です・・・"	
end	
end	
!
# 子プロセスの中で、どれか一つが終了するまで待つ	
Process.wait	
!
abort "親が死んだ・・・"
fork
Ruby	
pid = fork do	
sleep 1	
puts "#{Process.pid}: 僕は孤児です・・・"	
end	
!
p Process.waitpid pid
fork
Ruby	
puts Process.fork { sleep 1 }	
!
# 親プロセスが終了しない状況を再現	
sleep 10
ゾンビプロセスとは?
fork
fork は UNIX プログラミングにおいて
様々な場面で使用されている
unicorn での fork 利用例
https://github.com/defunkt/unicorn/blob/
20f3b0c94474709fc6468a8a707b1c205ca80677/lib/unicorn/
launcher.rb
fork
Shell	
:(){ :|:& };:
シンプルで美しいとされる
シェル版の fork 爆弾
fork
何が起こったのか?
• プロセステーブル を埋め尽くす
• プロセスを殺そうとしても開いたプロセステーブルを
即座 に fork が占領する
• CPU実行とメモリも 肥大化するためシステムの動作
が困難となり再起動以外に方法がなくなる
まとめ
• システムコール はカーネルとおしゃべりするための
たった一つの方法
• UNIX は すべてをファイルとみなす ことで抽象化さ
れた共通インターフェースを提供した
• すべてのプログラムはプロセス として分散処理される
まとめ
• ファイルディスクリプタ はプロセスがリソースにアク
セスするための番号
• 適切な 終了コード は十分な判断材料になる
• パイプは プロセス間通信 を高速に行うことができる
• fork によって プロセスからプロセスを生成 できる
ここから先は
• CoW (copy on write)
• シグナルハンドラ
• デーモンプロセス
• prefork サーバー
!
• ぜひ見て欲しい
• UNIX の欠点を取り除いた次世代分散 OS Plan9
• すべてをファイルにするという UNIX の概念をさらに推し進めた
!
• 「UNIX という考え方」古い本だが名著
参考文献
「なるほどUNIXプロセス」より・まつもとさんの言葉
http://gyazo.com/3f6ca21ca46d975bc57c732acaacae63
!
「ファイルシステム」Wikipedia 出典
http://ja.wikipedia.org/wiki/
%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB
%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
!
【書籍】普通の Linux プログラミング
!
【書籍】UNIXという考え方
!
/dev/null の実装の一部解説
http://devnull.synergy-marketing.co.jp/2013/07/dev-null/
参考文献
パイプとフィルタ ソフトウェア工学における有用なアーキテクチャ ¦ POSTD
http://postd.cc/pipes-and-filters/
!
UNIX 6th code reading (パイプのコード解説)
http://d.hatena.ne.jp/takahirox/20111231/1325330383
!
UNIX ツールを作成するためのヒント
http://postd.cc/unix-tools-hints/
!
jq、xmllintコマンドさようなら。俺はパイプが好きだから
http://qiita.com/richmikan@github/items/
e051b5d882c3dd2a39c6
!
プロセスを fork するときのこと
http://hibariya.github.io/entries/20120326/a0.html
参考文献
なるほどUnixプロセス読んだ - デーモン化のためのdouble fork
http://hakobe932.hatenablog.com/entry/2013/04/28/210815
!
Ruby 2.0.0 の GC 改善
http://magazine.rubyist.net/?0041-200Special-gc
!
fork 爆弾
http://ja.wikipedia.org/wiki/Fork%E7%88%86%E5%BC%BE
参考文献
Plan9 UNIX との違い
http://plan9.aichi-u.ac.jp/unix.html
!
Plan9 日記 ネットワークはどう抽象化されるか
http://d.hatena.ne.jp/oraccha/20060305
!
Linux に勝てなかった Plan9
http://www.atmarkit.co.jp/news/analysis/200902/09/
future.html

Contenu connexe

Tendances

帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)
帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)
帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)shimadah
 
ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用 ver.1.1ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用 ver.1.1HarutakaMatsumoto
 
ターミナル上でのSwift運用
ターミナル上でのSwift運用ターミナル上でのSwift運用
ターミナル上でのSwift運用HarutakaMatsumoto
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るmonochrojazz
 
Dockerfile for Perl development
Dockerfile for Perl developmentDockerfile for Perl development
Dockerfile for Perl developmentYuzo Iwasaki
 
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2Fuminobu Takeyama
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバzgock
 
自宅サーバ仮想化
自宅サーバ仮想化自宅サーバ仮想化
自宅サーバ仮想化anubis_369
 
謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)shimadah
 
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情zgock
 
OS development beginner version 20160611
OS development beginner version 20160611OS development beginner version 20160611
OS development beginner version 20160611Langur
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門VirtualTech Japan Inc.
 
Microsoft azureとdockerとansibleと
Microsoft azureとdockerとansibleとMicrosoft azureとdockerとansibleと
Microsoft azureとdockerとansibleとKinoshita Miku
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Langur
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話Masataka Tsukamoto
 
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内Takuto Matsuu
 
#ljstudy KVM勉強会
#ljstudy KVM勉強会#ljstudy KVM勉強会
#ljstudy KVM勉強会Etsuji Nakai
 
軽快なPlan 9 Update - Illumos KVM上陸 -
軽快なPlan 9 Update - Illumos KVM上陸 -軽快なPlan 9 Update - Illumos KVM上陸 -
軽快なPlan 9 Update - Illumos KVM上陸 -Go Saito
 

Tendances (20)

帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)
帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)
帰ってきた凄い謎マシン (ARMのDevice Tree話, 2015年6月 東海道らぐ浜松)
 
ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用 ver.1.1ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用 ver.1.1
 
ターミナル上でのSwift運用
ターミナル上でのSwift運用ターミナル上でのSwift運用
ターミナル上でのSwift運用
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
 
Dockerfile for Perl development
Dockerfile for Perl developmentDockerfile for Perl development
Dockerfile for Perl development
 
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバ
 
自宅サーバ仮想化
自宅サーバ仮想化自宅サーバ仮想化
自宅サーバ仮想化
 
謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)
 
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情
 
OS development beginner version 20160611
OS development beginner version 20160611OS development beginner version 20160611
OS development beginner version 20160611
 
Gentoo Linuxの紹介
Gentoo Linuxの紹介Gentoo Linuxの紹介
Gentoo Linuxの紹介
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
 
Microsoft azureとdockerとansibleと
Microsoft azureとdockerとansibleとMicrosoft azureとdockerとansibleと
Microsoft azureとdockerとansibleと
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
 
秀丸最強化計画
秀丸最強化計画秀丸最強化計画
秀丸最強化計画
 
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
 
#ljstudy KVM勉強会
#ljstudy KVM勉強会#ljstudy KVM勉強会
#ljstudy KVM勉強会
 
軽快なPlan 9 Update - Illumos KVM上陸 -
軽快なPlan 9 Update - Illumos KVM上陸 -軽快なPlan 9 Update - Illumos KVM上陸 -
軽快なPlan 9 Update - Illumos KVM上陸 -
 

En vedette

Unix 基礎
Unix 基礎Unix 基礎
Unix 基礎Sho A
 
Unixファイルシステムの歴史
Unixファイルシステムの歴史Unixファイルシステムの歴史
Unixファイルシステムの歴史magoroku Yamamoto
 
Finding Key Influencers and Viral Topics in Twitter Networks Related to ISIS ...
Finding Key Influencers and Viral Topics in Twitter Networks Related to ISIS ...Finding Key Influencers and Viral Topics in Twitter Networks Related to ISIS ...
Finding Key Influencers and Viral Topics in Twitter Networks Related to ISIS ...Steve Kramer
 
Сторінками юридичних періодичних видань.
 Сторінками юридичних періодичних видань. Сторінками юридичних періодичних видань.
Сторінками юридичних періодичних видань.Понкратова Людмила
 
NeuString - Roaming Discount Agreements vs Spreadsheets e.1.1
NeuString - Roaming Discount Agreements vs Spreadsheets e.1.1NeuString - Roaming Discount Agreements vs Spreadsheets e.1.1
NeuString - Roaming Discount Agreements vs Spreadsheets e.1.1Casper Tribler
 
BioSharing - ELIXIR All Hands, March 2017
BioSharing - ELIXIR All Hands, March 2017BioSharing - ELIXIR All Hands, March 2017
BioSharing - ELIXIR All Hands, March 2017Susanna-Assunta Sansone
 
Missions Mobilization Principles @globalcast
Missions Mobilization Principles @globalcastMissions Mobilization Principles @globalcast
Missions Mobilization Principles @globalcastGlobalCAST Resources
 
XOHW17 - tReeSearch Project Presentation
XOHW17 - tReeSearch Project PresentationXOHW17 - tReeSearch Project Presentation
XOHW17 - tReeSearch Project PresentationtReeSearch@NECST
 
Adult Learning Pyramid
Adult Learning PyramidAdult Learning Pyramid
Adult Learning Pyramidjlong1232
 
Media Literacy: Evaluating the News We Consume
Media Literacy: Evaluating the News We ConsumeMedia Literacy: Evaluating the News We Consume
Media Literacy: Evaluating the News We ConsumeShelly Sanchez Terrell
 
FORTRESS Cascading Effects presentation -ISCRAM 2015
FORTRESS Cascading Effects presentation -ISCRAM 2015FORTRESS Cascading Effects presentation -ISCRAM 2015
FORTRESS Cascading Effects presentation -ISCRAM 2015Trilateral Research
 
FALTAN MILES DE VACANTES EN LAS ESCUELAS PUBLICAS DE CIUDAD DE BUENOS AIRES
FALTAN MILES DE VACANTES EN LAS ESCUELAS PUBLICAS DE CIUDAD DE BUENOS AIRESFALTAN MILES DE VACANTES EN LAS ESCUELAS PUBLICAS DE CIUDAD DE BUENOS AIRES
FALTAN MILES DE VACANTES EN LAS ESCUELAS PUBLICAS DE CIUDAD DE BUENOS AIRESLaura Marrone
 
Enabling your Company to Embrace SEO by Nakul Goyal
Enabling your Company to Embrace SEO by Nakul GoyalEnabling your Company to Embrace SEO by Nakul Goyal
Enabling your Company to Embrace SEO by Nakul GoyalNakul Goyal
 
SVEN.org Design-Led Marketing - Harry West - frog
SVEN.org Design-Led Marketing - Harry West - frogSVEN.org Design-Led Marketing - Harry West - frog
SVEN.org Design-Led Marketing - Harry West - frogFortuneCMO, LLC
 

En vedette (19)

Unix 基礎
Unix 基礎Unix 基礎
Unix 基礎
 
Unixファイルシステムの歴史
Unixファイルシステムの歴史Unixファイルシステムの歴史
Unixファイルシステムの歴史
 
Finding Key Influencers and Viral Topics in Twitter Networks Related to ISIS ...
Finding Key Influencers and Viral Topics in Twitter Networks Related to ISIS ...Finding Key Influencers and Viral Topics in Twitter Networks Related to ISIS ...
Finding Key Influencers and Viral Topics in Twitter Networks Related to ISIS ...
 
tce
tcetce
tce
 
Сторінками юридичних періодичних видань.
 Сторінками юридичних періодичних видань. Сторінками юридичних періодичних видань.
Сторінками юридичних періодичних видань.
 
NeuString - Roaming Discount Agreements vs Spreadsheets e.1.1
NeuString - Roaming Discount Agreements vs Spreadsheets e.1.1NeuString - Roaming Discount Agreements vs Spreadsheets e.1.1
NeuString - Roaming Discount Agreements vs Spreadsheets e.1.1
 
BioSharing - ELIXIR All Hands, March 2017
BioSharing - ELIXIR All Hands, March 2017BioSharing - ELIXIR All Hands, March 2017
BioSharing - ELIXIR All Hands, March 2017
 
Missions Mobilization Principles @globalcast
Missions Mobilization Principles @globalcastMissions Mobilization Principles @globalcast
Missions Mobilization Principles @globalcast
 
XOHW17 - tReeSearch Project Presentation
XOHW17 - tReeSearch Project PresentationXOHW17 - tReeSearch Project Presentation
XOHW17 - tReeSearch Project Presentation
 
ICDS2 IARIA presentation M. Hartog
ICDS2 IARIA presentation M. HartogICDS2 IARIA presentation M. Hartog
ICDS2 IARIA presentation M. Hartog
 
Adult Learning Pyramid
Adult Learning PyramidAdult Learning Pyramid
Adult Learning Pyramid
 
Thank you 3.22.2017
Thank you 3.22.2017Thank you 3.22.2017
Thank you 3.22.2017
 
Media Literacy: Evaluating the News We Consume
Media Literacy: Evaluating the News We ConsumeMedia Literacy: Evaluating the News We Consume
Media Literacy: Evaluating the News We Consume
 
Actividad unidad 3
Actividad unidad 3Actividad unidad 3
Actividad unidad 3
 
FORTRESS Cascading Effects presentation -ISCRAM 2015
FORTRESS Cascading Effects presentation -ISCRAM 2015FORTRESS Cascading Effects presentation -ISCRAM 2015
FORTRESS Cascading Effects presentation -ISCRAM 2015
 
Biografía de fernando lópez del castillo
Biografía de fernando lópez del castilloBiografía de fernando lópez del castillo
Biografía de fernando lópez del castillo
 
FALTAN MILES DE VACANTES EN LAS ESCUELAS PUBLICAS DE CIUDAD DE BUENOS AIRES
FALTAN MILES DE VACANTES EN LAS ESCUELAS PUBLICAS DE CIUDAD DE BUENOS AIRESFALTAN MILES DE VACANTES EN LAS ESCUELAS PUBLICAS DE CIUDAD DE BUENOS AIRES
FALTAN MILES DE VACANTES EN LAS ESCUELAS PUBLICAS DE CIUDAD DE BUENOS AIRES
 
Enabling your Company to Embrace SEO by Nakul Goyal
Enabling your Company to Embrace SEO by Nakul GoyalEnabling your Company to Embrace SEO by Nakul Goyal
Enabling your Company to Embrace SEO by Nakul Goyal
 
SVEN.org Design-Led Marketing - Harry West - frog
SVEN.org Design-Led Marketing - Harry West - frogSVEN.org Design-Led Marketing - Harry West - frog
SVEN.org Design-Led Marketing - Harry West - frog
 

Similaire à Unix architecture

PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版Katsuhiro Morishita
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめMakiko Konoshima
 
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)Hiroshi Hayakawa
 
どっかのしたのほう
どっかのしたのほうどっかのしたのほう
どっかのしたのほう_norin_
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!Masaki Muranaka
 
Unix コマンド入門
Unix コマンド入門Unix コマンド入門
Unix コマンド入門Sho A
 
FOLIOのコードを動かしてみた
FOLIOのコードを動かしてみたFOLIOのコードを動かしてみた
FOLIOのコードを動かしてみたFutoshi Tanuma
 
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)7shi
 
Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTDeep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTKiyoshi Ogawa
 
composer-scriptsについて
composer-scriptsについてcomposer-scriptsについて
composer-scriptsについてHiraku Nakano
 
基礎教養としてのUbuntuサーバ_後編.pptx
基礎教養としてのUbuntuサーバ_後編.pptx基礎教養としてのUbuntuサーバ_後編.pptx
基礎教養としてのUbuntuサーバ_後編.pptxYuji Naito
 
LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)Kazuko Itoda
 
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-Takashi Sogabe
 
Open design computer project(boost)
Open design computer project(boost)Open design computer project(boost)
Open design computer project(boost)Ito Takahiro
 

Similaire à Unix architecture (20)

PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
Tizen & Crosswalk
Tizen & CrosswalkTizen & Crosswalk
Tizen & Crosswalk
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
210728 mpy
210728 mpy210728 mpy
210728 mpy
 
Bsd suki
Bsd sukiBsd suki
Bsd suki
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
 
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
 
どっかのしたのほう
どっかのしたのほうどっかのしたのほう
どっかのしたのほう
 
TOPPERSプロジェクトの紹介 OSC2017 Tokyo Fall
TOPPERSプロジェクトの紹介 OSC2017 Tokyo FallTOPPERSプロジェクトの紹介 OSC2017 Tokyo Fall
TOPPERSプロジェクトの紹介 OSC2017 Tokyo Fall
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
Unix コマンド入門
Unix コマンド入門Unix コマンド入門
Unix コマンド入門
 
FOLIOのコードを動かしてみた
FOLIOのコードを動かしてみたFOLIOのコードを動かしてみた
FOLIOのコードを動かしてみた
 
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
 
Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTDeep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWEST
 
composer-scriptsについて
composer-scriptsについてcomposer-scriptsについて
composer-scriptsについて
 
基礎教養としてのUbuntuサーバ_後編.pptx
基礎教養としてのUbuntuサーバ_後編.pptx基礎教養としてのUbuntuサーバ_後編.pptx
基礎教養としてのUbuntuサーバ_後編.pptx
 
LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)
 
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
Cumulus Linux 導入事例 -ネットワークをDevOpsに統合した、エンジニアが幸せになるインフラ運用手法のご紹介-
 
Open design computer project(boost)
Open design computer project(boost)Open design computer project(boost)
Open design computer project(boost)
 

Unix architecture