Submit Search
Upload
ロボットシステム学2015年第5回
•
Download as PPTX, PDF
•
9 likes
•
7,648 views
Ryuichi Ueda
Follow
UNIX/Linuxについて暑苦しく解説しました。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 39
Download now
Recommended
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Ryuichi Ueda
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回
Ryuichi Ueda
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
Ryuichi Ueda
ロボットシステム学2015年第8回
ロボットシステム学2015年第8回
Ryuichi Ueda
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Ryuichi Ueda
ロボットシステム学2015年第6回
ロボットシステム学2015年第6回
Ryuichi Ueda
ロボットシステム学2015年第13回
ロボットシステム学2015年第13回
Ryuichi Ueda
ロボットシステム学2015第2回
ロボットシステム学2015第2回
Ryuichi Ueda
Recommended
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Ryuichi Ueda
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回
Ryuichi Ueda
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
Ryuichi Ueda
ロボットシステム学2015年第8回
ロボットシステム学2015年第8回
Ryuichi Ueda
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Ryuichi Ueda
ロボットシステム学2015年第6回
ロボットシステム学2015年第6回
Ryuichi Ueda
ロボットシステム学2015年第13回
ロボットシステム学2015年第13回
Ryuichi Ueda
ロボットシステム学2015第2回
ロボットシステム学2015第2回
Ryuichi Ueda
ロボットシステム学2015年第14回
ロボットシステム学2015年第14回
Ryuichi Ueda
ロボットシステム学2015第3回
ロボットシステム学2015第3回
Ryuichi Ueda
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
Fuminobu Takeyama
FOLIOのコードを動かしてみた
FOLIOのコードを動かしてみた
Futoshi Tanuma
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
Fuminobu Takeyama
78tch
78tch
78tch
Mt basic as-os_on_danbot
Mt basic as-os_on_danbot
たけおか しょうぞう
20161106 osc-tokyo-command-line
20161106 osc-tokyo-command-line
Fuminobu Takeyama
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
たけおか しょうぞう
昔の外付けキャッシュ & コヒーレント・キャッシュ
昔の外付けキャッシュ & コヒーレント・キャッシュ
たけおか しょうぞう
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
Fuminobu Takeyama
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
Fuminobu Takeyama
xv6 + mist32 + mruby
xv6 + mist32 + mruby
Hirotaka Kawata
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
monochrojazz
RTミドルウェア応用実習
RTミドルウェア応用実習
openrtm
ロボットシステム学2015第4回
ロボットシステム学2015第4回
Ryuichi Ueda
Windows で動かす TensorFlow
Windows で動かす TensorFlow
Takeshi Osoekawa
Openhard150114
Openhard150114
たけおか しょうぞう
Ext4 filesystem(1)
Ext4 filesystem(1)
Yoshihiro Yunomae
What's Operating System?
What's Operating System?
Naruhiko Ogasawara
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Yu Nobara
More Related Content
What's hot
ロボットシステム学2015年第14回
ロボットシステム学2015年第14回
Ryuichi Ueda
ロボットシステム学2015第3回
ロボットシステム学2015第3回
Ryuichi Ueda
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
Fuminobu Takeyama
FOLIOのコードを動かしてみた
FOLIOのコードを動かしてみた
Futoshi Tanuma
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
Fuminobu Takeyama
78tch
78tch
78tch
Mt basic as-os_on_danbot
Mt basic as-os_on_danbot
たけおか しょうぞう
20161106 osc-tokyo-command-line
20161106 osc-tokyo-command-line
Fuminobu Takeyama
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
たけおか しょうぞう
昔の外付けキャッシュ & コヒーレント・キャッシュ
昔の外付けキャッシュ & コヒーレント・キャッシュ
たけおか しょうぞう
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
Fuminobu Takeyama
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
Fuminobu Takeyama
xv6 + mist32 + mruby
xv6 + mist32 + mruby
Hirotaka Kawata
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
monochrojazz
RTミドルウェア応用実習
RTミドルウェア応用実習
openrtm
ロボットシステム学2015第4回
ロボットシステム学2015第4回
Ryuichi Ueda
Windows で動かす TensorFlow
Windows で動かす TensorFlow
Takeshi Osoekawa
Openhard150114
Openhard150114
たけおか しょうぞう
Ext4 filesystem(1)
Ext4 filesystem(1)
Yoshihiro Yunomae
What's hot
(20)
ロボットシステム学2015年第14回
ロボットシステム学2015年第14回
ロボットシステム学2015第3回
ロボットシステム学2015第3回
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
FOLIOのコードを動かしてみた
FOLIOのコードを動かしてみた
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
78tch
78tch
Mt basic as-os_on_danbot
Mt basic as-os_on_danbot
20161106 osc-tokyo-command-line
20161106 osc-tokyo-command-line
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
昔の外付けキャッシュ & コヒーレント・キャッシュ
昔の外付けキャッシュ & コヒーレント・キャッシュ
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
xv6 + mist32 + mruby
xv6 + mist32 + mruby
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
RTミドルウェア応用実習
RTミドルウェア応用実習
ロボットシステム学2015第4回
ロボットシステム学2015第4回
Windows で動かす TensorFlow
Windows で動かす TensorFlow
Openhard150114
Openhard150114
Ext4 filesystem(1)
Ext4 filesystem(1)
Similar to ロボットシステム学2015年第5回
What's Operating System?
What's Operating System?
Naruhiko Ogasawara
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Yu Nobara
講座Linux入門・デスクトップOSとしてのLinux
講座Linux入門・デスクトップOSとしてのLinux
Tokai University
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
Fuminobu Takeyama
最小セット
最小セット
Kiyoshi Ogawa
OpenRTM-aistおよび RTコンポーネントプログラミングの概要
OpenRTM-aistおよび RTコンポーネントプログラミングの概要
openrtm
Open design computer project(boost)
Open design computer project(boost)
Ito Takahiro
私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
Osc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 j
Akira Yoshiyama
Unixの歴史
Unixの歴史
Nekokichi
20170124 linux basic_1
20170124 linux basic_1
YUSUKE MORIZUMI
OpenSolaris Printing Environment
OpenSolaris Printing Environment
Naruhiko Ogasawara
200923 01jp
200923 01jp
openrtm
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
Hideki Takase
使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して
Toshiharu Harada, Ph.D
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
Fuminobu Takeyama
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)
Naoki Okino
UEFI向け自作OSの紹介
UEFI向け自作OSの紹介
Yuma Ohgami
Getting Started .NET Core
Getting Started .NET Core
Yuta Matsumura
Similar to ロボットシステム学2015年第5回
(20)
What's Operating System?
What's Operating System?
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
講座Linux入門・デスクトップOSとしてのLinux
講座Linux入門・デスクトップOSとしてのLinux
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
最小セット
最小セット
OpenRTM-aistおよび RTコンポーネントプログラミングの概要
OpenRTM-aistおよび RTコンポーネントプログラミングの概要
Open design computer project(boost)
Open design computer project(boost)
私とOSSの25年
私とOSSの25年
Osc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 j
Unixの歴史
Unixの歴史
20170124 linux basic_1
20170124 linux basic_1
OpenSolaris Printing Environment
OpenSolaris Printing Environment
200923 01jp
200923 01jp
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)
UEFI向け自作OSの紹介
UEFI向け自作OSの紹介
Getting Started .NET Core
Getting Started .NET Core
More from Ryuichi Ueda
第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
Ryuichi Ueda
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
Ryuichi Ueda
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
Ryuichi Ueda
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
Ryuichi Ueda
移動ロボットのナビゲーション
移動ロボットのナビゲーション
Ryuichi Ueda
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
Ryuichi Ueda
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
Ryuichi Ueda
bash(の変な使い方)update
bash(の変な使い方)update
Ryuichi Ueda
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
Ryuichi Ueda
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Ryuichi Ueda
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
Ryuichi Ueda
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
Ryuichi Ueda
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
Ryuichi Ueda
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
Ryuichi Ueda
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
Ryuichi Ueda
Robot frontier lesson3 2018
Robot frontier lesson3 2018
Ryuichi Ueda
Robot frontier lesson2 2018
Robot frontier lesson2 2018
Ryuichi Ueda
Robot frontier lesson1 2018
Robot frontier lesson1 2018
Ryuichi Ueda
第34回シェル芸勉強会
第34回シェル芸勉強会
Ryuichi Ueda
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
Ryuichi Ueda
More from Ryuichi Ueda
(20)
第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
移動ロボットのナビゲーション
移動ロボットのナビゲーション
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
bash(の変な使い方)update
bash(の変な使い方)update
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
Robot frontier lesson3 2018
Robot frontier lesson3 2018
Robot frontier lesson2 2018
Robot frontier lesson2 2018
Robot frontier lesson1 2018
Robot frontier lesson1 2018
第34回シェル芸勉強会
第34回シェル芸勉強会
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
Recently uploaded
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
Recently uploaded
(8)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
ロボットシステム学2015年第5回
1.
ロボットシステム学 第5回 上田隆一
2.
本日の内容 • UNIX, Linux –
なぜロボットに重要なのか – 歴史的な背景(なんでこんな仕組みなの?) Oct. 7, 2015 ロボットシステム学 2
3.
オペレーティングシステム • 前回まではなかったもの – ハードウェアの複雑さを隠すためのソフトウェア階層 (ハードウェアをいじる人間には邪魔かもしれない) •
仕事 – 抽象化 • 機械の世界から情報処理の世界へ – 資源(リソース)管理 • 次々(同時)に来る「計算機(とその周辺機器)を 使いたいという要求」をいかに捌くか Oct. 7, 2015 ロボットシステム学 3
4.
マイコン/OSの抽象化レベル • アドレスによる抽象化(マイコン) – 様々な機器のデータ読み書き口を同じアドレス空間に 配置(メモリマップドI/O) –
ある番地の01を操作すると、ピンから電圧が出たり、 入出力が逆転したり • ファイルによる抽象化(OS) – マイコンだとメモリの番地を一つずつ書き換える 操作になるが、ファイルだと一連のデータを 流し込んだり取り出したりできる(ストリーム) Oct. 7, 2015 ロボットシステム学 4
5.
なんでもファイル • 機器の操作(例: ラズパイマウスを例に) –
ジャイロ: /dev/ttyACM0 – モータ: /dev/rtmotor0 – 乱数発生器: /dev/random, /dev/urandom – よくよく考えてみると、機器の操作というのは データを書いてデータ読むだけで済む • その他話題 – ネットワークだけはファイル扱いされない (不可能ではなく、歴史的経緯で) – Plan 9: ネットワーク関係もファイルに Oct. 7, 2015 ロボットシステム学 5
6.
本講義で扱うOS • Linux(Ubuntu, Raspbian) •
LinuxをはじめUNIX系OSの用途は増えている – ネットワーク(サーバ, ルータ) – デスクトップ機, ノートPC のOS(Linux, OS X) – ゲーム機(FreeBSD) – タブレット機, スマートフォン(Linux, iOS) – 要は仕事がたくさんある Oct. 7, 2015 ロボットシステム学 6
7.
OSの歴史 • 昔の話から考えてみましょう – なぜOSというものがあるのか –
なぜこんな仕組みなのか? – ロボットとの親和性は? – 話の流れ • UNIX 以前 • UNIX • UNIX の派生物 • Linux Oct. 7, 2015 ロボットシステム学 7
8.
UNIX以前 • 初期の計算機の使われ方(-1965 年) –
主に科学計算や集計 – 使用者が計算機の使用時間を割り当てられて、 その時間にプログラムを計算機室に持ち込み、 プラグボードやパンチカードを持ち込む • 参考 – プラグボード – プラグボードの使用風景 – パンチカード Oct. 7, 2015 ロボットシステム学 8
9.
このころのデータの読み書き • メディア: パンチカード,
紙テープ, 磁気テープ • 初期の頃のオペレーション(バッチシステム) – 1. 計算機 A でパンチカードの情報を磁気テープ上の情報に変換 – 2. 磁気テープを計算機 Bにセット – 3. 計算結果が結果が出力用磁気テープへ – 4. 磁気テープを取り外し別の計算機 Cでプリントアウト • 1 台の計算機で1つの計算しかしない – 割り込みのない(できない)マイコンのようなもの Oct. 7, 2015 ロボットシステム学 9
10.
この頃のOS • 現在のOS の要素がちらほらと –
パンチカードのデータをコピーした磁気テープをロードし、 実行結果を別のテープに書き出すソフトウェア • 似たもの: Arduinoのブートローダ • この頃の課題 – 一度に一つのプログラム(ジョブ)しか走らせられない • マイコンみたいなもの – 計算機は高いので多人数で、遊び時間を少なく使いたい Oct. 7, 2015 ロボットシステム学 10
11.
マルチプログラミング • 1964年ごろ実用 • メモリをパーティション分けして複数のジョブを置き、実行 •
メモリをジョブがお互いに覗かないようにする(ハードで) • この頃の計算機(IBM System/360) Oct. 7, 2015 ロボットシステム学 11
12.
タイムシェアリングへの試み • 1960年代 • マルチプログラミングをさらに発展 –
プログラムを持ち込むバッチ処理から 端末による対話式へ • 主なプロジェクト – CTSS(compatible time sharing system) – MULTICS(multipexed information and computing service) • この頃の計算機(PDP-1) Oct. 7, 2015 ロボットシステム学 12
13.
UNIX(Unix) • MULTICS プロジェクトに参加していたAT&Tベル研の Ken
Thompson らがPDP-7上で開発(1960 年代末) – 特許ドキュメント管理・作成用 – (単にゲームを動かしたかっただけという説も) • MULTI(多方向)→UNI(単方向) – MULTICSの失敗: たくさんの研究組織、研究員で右往左往 – UNIX(注意: 私の独自解釈です) • ドキュメント管理したい(+ゲームやりたい)という明確な目標 • 3人+αで早く作りたい→シンプルに作りたい Oct. 7, 2015 ロボットシステム学 13
14.
UNIXが具現化・整理した機能 • 階層型ファイルシステム – ファイル:
一連の文字列 – ディレクトリ: ファイルを整理するファイル • プロセス・タイムシェアリング – 複数の処理を同時に走らせる – 仮想記憶, プロセススケジューラ • デバイスファイル – 機器もファイル • シェル – ファイルとプロセスの連携 Oct. 7, 2015 ロボットシステム学 14
15.
オープンソースの走りとしてのUNIX • 当時AT&T はコンピュータで商売できない(独禁法) –
コードを配布 – 企業、研究機関、教育機関に広まる • 1984年商売解禁 – ライセンス業を始め、クローズ化 – 「UNIX 戦争」が始まる • 配布されたUNIX から様々な亜種(UNIX系OS)が誕生 – ソースコードの流用 – 機能の再現 Oct. 7, 2015 ロボットシステム学 15
16.
UNIX系OSの系譜 • UNIX直系: 大雑把に言ってSystem
V系とBSD系 – ものによって使用感が異なる – 我々がよく使うもの(ロボットの世界だとBSD系が多い) • FreeBSD, NetBSD, OpenBSD, OS X, iOS… • MINIX, Linux – UNIXのコードを含まないが動作はUNIX – MINIX(1987年〜) • UNIX がクローズ化したためタネンバウムによって教育用に開発 Oct. 7, 2015 ロボットシステム学 16
17.
Linux • 当時ヘルシンキ大学の大学生だった リーナス・トーバルズがMINIX 上で開発(1991年) –
冬季に部屋に引きこもって開発 – メーリングリストで助言、協力を得ながらゼロから開発 • バザール方式 • 広まった理由 – ゼロから開発したことで制約が少ない – 協力者が多い – タイミング(PCの普及, Microsoftの影響, ライセンスの問題) Oct. 7, 2015 ロボットシステム学 17
18.
Linuxとディストリビューション • Linuxの構成 – Linuxカーネル(OS本体) –
付属のソフトウェア(コマンド、パッケージシステム、GUI等) • 付属のソフトウェアをどういう構成にするかで多数の 「ディストリビューション」が派生 – 系統図 Oct. 7, 2015 ロボットシステム学 18
19.
主なディストリビューション • 三大系統 – Red
Hat 系 • RedHat linux から派生しているもの。ビジネス用途でシェア – slackware 系 • 最古のディストリビューションslackware から派生 – debian 系 • Debian GNU/Linux から派生しているもの • UbuntuもRaspbianもこの系統 Oct. 7, 2015 ロボットシステム学 19
20.
Linuxでプログラムが走る仕組み • 「プロセス」を理解しましょう – マイコンとの違いは? Oct.
7, 2015 ロボットシステム学 20
21.
プロセス • プログラム実行の一単位 • 実行中のプログラム+OSが準備した付帯情報 –
プロセスID、ユーザ、親プロセス • 普段はps(1)やtop(1)で調査 – CPUやメモリ使用量、ゴミプロセスがないか調査、等 – 一つのプロセスについて調査したければ /proc/<プロセス番号>を見る – プロセス情報もファイルで提供される。なんでもファイル Oct. 7, 2015 ロボットシステム学 21
22.
カーネルから見たプロセス • リソースを割り当てる一単位 – メモリの割り当て •
プログラムが自身のプロセス外のメモリを参照しないよう保護 • 仮想アドレス空間 – CPU の利用時間(タイムシェアリング) • 優先度の高低を考慮 • 端末とのやり取りが多いものほど高頻度 ↑ロボットを動かす時に問題となる Oct. 7, 2015 ロボットシステム学 22
23.
プロセスツリー • プロセスはプロセスから生まれる – fork-execと呼ばれる仕組み •
家系図(プロセスツリー)ができる – pstree(1) – initというプロセスからぶら下がる • プロセスツリーの役割 – 親子間で環境や開いているファイルを引き継ぐ Oct. 7, 2015 ロボットシステム学 23
24.
プロセスの一生 1. あるプロセスからforkして生まれる 2. 新しいプロセスIDをもらう 3.
親の情報をすべて自分のメモリ空間にコピー (コピーしない場合もある) 4. (execされた場合)プログラムの部分が入れ替わる – 例(execを行うシェルスクリプト) 5. プログラム実行 6. 終了。終了ステータスを返す – 0が正常終了、1が何らかの異常 Oct. 7, 2015 ロボットシステム学 24
25.
プロセスとメモリ • プロセスは、基本的に他のプロセスが 使っているメモリの中身を見ることができない – 見ることができたら事故 •
仕組み: 仮想記憶 – 問題: 右のような1列のメモリを どう複数のプロセスに割り当てる? Oct. 7, 2015 ロボットシステム学 25
26.
仮想記憶(ページング方式) • アドレス空間を二種類用意 – 物理アドレス空間(DRAMやその他を直接指す) –
仮想アドレス空間(プロセスごとに準備) • アドレス空間を「ページ」に分割 • 仮想のページと物理ページを対応付け Oct. 7, 2015 ロボットシステム学 26
27.
仮想記憶の導入で可能となること • lazyな物理メモリ割り当て – プログラムが割り当てのないページの番地に アクセスした時に、物理メモリのページを割り当て –
割り当てのないページの番地にアクセスすることを 「ページフォルト」と言い、これが起こると割り当てが起こ る • スワップ – メモリが不足時にページ上のデータを ストレージ上のページに追い出せる(スワップアウト) – 仮想アドレスの先が物理メモリである必要がなくなる Oct. 7, 2015 ロボットシステム学 27
28.
• キャッシュの管理が簡単に – プロセスが使用していない物理メモリのページに 読み書きしたファイルのデータを記憶 •
キャッシュが有効だとHDDの読み書き 回数を減らすことができる Oct. 7, 2015 ロボットシステム学 28
29.
プロセス間の通信 • 仮想記憶の仕組みから分かるように、 プロセス内の情報は直接、他から見えない • データを出し入れする口が必要 –
共有メモリ • ロボットのように高速・ランダムなやりとりが必要な時に利用 – ファイルシステム (これが基本。しかしなんでファイルが通信なの?) – ソケット(前期にやりましたね?) • ただしこれはPCの外とのやりとり – シグナル • データの出し入れというより合図のやりとり Oct. 7, 2015 ロボットシステム学 29
30.
ファイルの読み書き • プロセスは開いたファイルを 「ファイル記述子」という数字で管理 Oct. 7,
2015 ロボットシステム学 30 pi@raspberrypi ~ $ cat main.c #include <stdio.h> int main(int argc, char const* argv[]) { FILE *f = fopen("hoge","w"); sleep(100); return 0; } pi@raspberrypi ~ $ gcc main.c pi@raspberrypi ~ $ ./a.out pi@raspberrypi ~ $ ps u | grep -F a.out pi 8405 0.0 0.0 1688 300 pts/0 S+ 05:23 0:00 ./a.out (略) pi@raspberrypi ~ $ ls -l /proc/8405/fd total 0 lrwx------ 1 pi pi 64 Oct 27 05:23 0 -> /dev/pts/0 lrwx------ 1 pi pi 64 Oct 27 05:23 1 -> /dev/pts/0 lrwx------ 1 pi pi 64 Oct 27 05:23 2 -> /dev/pts/0 l-wx------ 1 pi pi 64 Oct 27 05:23 3 -> /home/pi/hoge ファイルを開いて放置するプログラムを 書いて実行 プロセス番号を調べて/proc/<番号>/fdを見ると 開いたファイルはファイル記述子3で管理されている
31.
ファイル記述子0,1,2 • なにこれ? – ファイル/dev/pts/0につながっているようだ •
/dev/pts/0 – a.outを実行した画面でttyと打つと表示される Oct. 7, 2015 ロボットシステム学 31 pi@raspberrypi ~ $ ls -l /proc/8405/fd total 0 lrwx------ 1 pi pi 64 Oct 27 05:23 0 -> /dev/pts/0 lrwx------ 1 pi pi 64 Oct 27 05:23 1 -> /dev/pts/0 lrwx------ 1 pi pi 64 Oct 27 05:23 2 -> /dev/pts/0 l-wx------ 1 pi pi 64 Oct 27 05:23 3 -> /home/pi/hoge pi@raspberrypi ~ $ tty /dev/pts/0
32.
ttyって何? • これ(テレタイプ社ASR-33) – teletype(遠隔タイプライター) •
端末 – タイプライターを通信の線(電話線等)で 計算機に繋いだもの • キーボードに字を打って字を計算機に送信 • 計算機から字を受けて紙に印字 • 少し時代が進むと紙がディスプレイに(DEC VT100) – 基本機能は変わってないので引き続きTTYと表記 Oct. 7, 2015 ロボットシステム学 32
33.
現在の端末(端末エミュレータ) • パソコンの中のソフトウェア – パソコンのモニタとキーボードを使ってタイプライターや VT100の役割を果たす –
通信: TCP/IP、シリアル通信等(通信できればなんでもいい) Oct. 7, 2015 ロボットシステム学 33
34.
結局どういうことか Oct. 7, 2015
ロボットシステム学 34 • プログラムと端末エミュレータが /dev/pts/0というファイルを通じて通信 • この仕組みで複数の端末を相手 端末エミュレータ OS プログラム (シェル) /dev/pts/0 記述子 0,1,2
35.
プロセスとプロセスの通信 • ファイル記述子とファイル記述子を結びつける Oct. 7,
2015 ロボットシステム学 35 pi@raspberrypi ~ $ seq 100000000 | grep 12345 12345 112345 123450 123451 123452 ... seqというプログラム(コマンド)と grepというプログラム(コマンド)を パイプでつなぐ pi@raspberrypi ~ $ ps u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND pi 8538 101 0.0 3224 328 pts/0 R+ 06:44 0:14 seq 100000000 pi 8539 1.4 0.1 3568 1796 pts/0 S+ 06:44 0:00 grep --color=auto 12345 (略) プロセス番号を調べて /procの下を見るとどうなるか?
36.
• seq側の1番とgrep側の0番が「pipe」で接続されている • ファイル記述子0,1,2:
標準で用意されるデータ受け渡し口 – 0番: 標準入力 – 1番: 標準出力 – 2番: 標準エラー出力 • シェル: ファイル記述子を操るのが大きな仕事の一つ Oct. 7, 2015 ロボットシステム学 36
37.
(先取り)ROSのUNIX的解釈 • ROSは後からやるので知っている人だけに • ノード(プロセス)をTCP/IPやUDPで通信させる –
同じ計算機、違う計算機のノードをシームレスに接続 • ネットワーク周りはファイルに抽象化されていないので マスタでファイルに見せかけている – ROSトピック • 単にUNIXというのはソフトウェアではなく、データの 蓄積、通信方法の「標準的な考え方」になっている – 分かってない人は筋の悪いものを作ることになります。 Oct. 7, 2015 ロボットシステム学 37
38.
本日のまとめ • OSの乗った計算機 – マイコンには無い概念 •
プロセス • 仮想記憶 • ファイルシステムとファイルを通じた通信 • UNIXやLinuxはデータを流すように使う – 使いこなすのは大変だが、これで機械の制御から ウェブサービスまでの広範囲がカバーされている – 考え方に親しむことで大きなシステムを作ることができる Oct. 7, 2015 ロボットシステム学 38
39.
次回 • UNIXが産んだもうひとつの重要なもの: オープンソースを扱います • 背景 •
ライセンス・著作権 • クラウド • 組み込み、ロボットとの関係 Oct. 7, 2015 ロボットシステム学 39
Download now