SlideShare ist ein Scribd-Unternehmen logo
1 von 44
平成生まれのための
MINIX 講座
2018-11-22
於 #ssmjp @ ソフトバンク株式会社 汐留新館キャンパス
日本UNIXユーザ会 高野光弘 a.k.a. @takano32
今日の流れ
• 自己紹介
• MINIX とは
• Operating System: Design and Implementation
• 現在の MINIX を知る
• 今後の MINIX に向け
• まとめ
お前、誰よ?
• 高野光弘
• @takano32 - fb.com/takano32
• 日本UNIXユーザ会 幹事
• Ruby コミッター
• CONBU コアメンバー
• Pharo Smalltalk コントリビュータ
MINIX とは
–フリー百科事典『ウィキペディア(Wikipedia)』
“MINIX(ミニックス)とは、1987年にオランダ・アムステルダム自由大
学(蘭: Vrije Universiteit Amsterdam)の教授であるアンドリュー・タネ
ンバウムが、オペレーティングシステム(OS) の教育用に執筆した著書、
『Operating Systems: Design and Implementation』の中で例として開発
した、Unix系のオペレーティングシステム (OS) である。”
MINIX
• タネンバウム先生が OS の教材のために作成
• UNIX のコードがライセンス問題で非公開
• 書籍の執筆にあわせて作成
• Operating System: Design and Implementation
• UNIX 系オペレーティングシステム
• UNIX version 7 互換
よく “MINIX” を
耳にする理由
–フリー百科事典『ウィキペディア(Wikipedia)』
“MINIXの「実用を目的としない」というポリシーに対し、ニュー
スグループ comp.os.minix において、MINIXを実用に耐えるOS
にしようという試みが提示された。しかし、タネンバウムは機能
を追加することに否定的だったため、リーナス・トーバルズは新
たにOSを作ることを決断し、1991年10月にはついにLinux
version 0.02がリリースされるに至った。”
Linux の祖先とも
言える OS
1987年 = 昭和62年
1991年 = 平成3年
MINIX と Linux
• ライナスは新しい OS を作る決断をした
• タネンバウムの書籍を参考にした
• 4ヶ月くらい引きこもって読んだらしい
• 頑張って Linux ができる
• Linux 大ヒット
MINIX と Linux
• タネンバウムとライナス
• 書籍を通した擬似的な師弟関係
• 「Linux は時代遅れ」という炎上
• タネンバウムの Linux 批判からはじまる議論
• マイクロカーネル vs. モノリシックカーネル
MINIX vs. Linux
• アンドリュー・タネンバウムとリーヌス・トーヴァルズの議論
• 日本語版 Wikipedia
• オープンソースソフトウェア――彼らはいかにしてビジネススタンダー
ドになったのか 付録
• タネンバウム教授、MINIXの失敗とLinux普及の理由を語る - Publickey
• 忘れたころに再燃する
• そろそろ再燃するのでは?
ところで
Operating System:
Design
and
Implementation
どんな本か気になる?
Operating System: Design
and Implementation
• どんな本なのか
• MINIX の Wiki に紹介されている
• Pearson のサイトで販売されている
英語の洋書
Q. 日本語で読めない
?
A. 翻訳書あります
オペレーティングシステム
設計と理論およびMINIXによる実装
• オペレーティングシステム
設計と理論およびMINIXによる実装
高い!!!
宣伝(?):Kindle 化の
リクエストをしよう
自己紹介
• 高野光弘 @ Wikipedia
今泉貴史先生も
jus 幹事
今日は jus が揃ってる
MINIX のことを話そう
# と思った
余談
• 新しい第三版もあります
• 内容が充実している
閑話休題
現在の MINIX を知る
MINIX
• 過去の OS と思われがち
• 現在も開発が続いている
• 最新のリリースは v3.3.0
• たぶん 2014-09-14 にリリース
• じゅうぶんに平成
• たとえば VIM
• v7.4.141
MINIX のコード
• カーネルはマイクロカーネル
• git://git.minix3.org/minix.git
• https://github.com/Stichting-MINIX-Research-Foundation/minix
• パッケージは NetBSD と高い互換がある
• git://git.minix3.org/pkgsrc-ng.git
• https://github.com/Stichting-MINIX-Research-
Foundation/pkgsrc-ng
MINIX を使う
• 試してみるには Docker を使うのがラク
• https://github.com/madworx/docker-minix
• $ docker build -t minix:3.3.0 .
• $ docker run -d --name minix -t minix:3.3.0
• $ docker exec -it minix ssh localhost
• MINIX 3 on Virtual Machines も参考になる
MINIX を実用する
• Wiki の Getting Started を参照
• CD-ROM の ISO イメージが配布されている
• x86 や x86_64 のマシンにインストールできる
• ARM Corte A8 にも対応
• 実用は…あまり、オススメできない
MINIX の実用を
オススメしない理由
• ユーザランドの多くが NetBSD に頼っている
• NetBSD にないものは自力で動かすことになる
• GCC が動かなくなった
• sysctl(8) はまだ MINIX に移植されていない
• GNU 由来のものがどんどん使えなくなっている
• 古い GNU のものは古い GCC でコンパイルできる
MINIX の実用を
オススメしない理由
• pthread の実装がない
• `configure` でスレッドの実装が見つからない
• わりと動かないものが多い
• 現在、実用的なものを目指している
• 完成はしていない
• 別のものを使えばいい
MINIX の現在
• 開発は進んでいる
• NetBSD の派生という位置づけに近い
• カーネルに強引すぎるコードは入ってない
• v3.4 RC6 のビルド準備をしている
• たぶん v3.4 のリリースは平成には間に合わない…
MINIX に改めて触れて
• 新旧が混交した不思議な世界
• src(カーネル) や pkgsrc(パッケージ) の管理は git
• GCC はサポートされていないが LLVM は動く
• VIM v8.1.0542 とかはコンパイルできた
• CC=clang ./configure …
今後の MINIX に向け
今後の MINIX に向け
• 完全に開発が止まっているわけではない
• 実用的ではないということはチャンス
• バランスを考慮しつつ実用を目指している
• コントリビューションしていく余地がある
• コミュニティは優しい
• 貢献してみよう
まとめ
• 平成生まれのための MINIX 講座
• MINIX は Linux の祖先
• ふれあうことでライナスと同じ経験ができる(はず)
• タネンバウム先生とライナスの関係は良好
• 現在も開発が続いている
• 長期プロジェクトのメンテナンスという観点でも参考にできる
• 開発は環境の変化に対応して続いている
余裕があればデモ
ご静聴
ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
 

Was ist angesagt? (20)

今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf
 
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudyJenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
 
インフラチームのリモートワーク
インフラチームのリモートワークインフラチームのリモートワーク
インフラチームのリモートワーク
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
YoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはYoctoでLTSディストリを作るには
YoctoでLTSディストリを作るには
 
バグハンターの哀しみ
バグハンターの哀しみバグハンターの哀しみ
バグハンターの哀しみ
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
Nmapの真実(続)
Nmapの真実(続)Nmapの真実(続)
Nmapの真実(続)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Use After Free 脆弱性攻撃を試す
Use After Free 脆弱性攻撃を試すUse After Free 脆弱性攻撃を試す
Use After Free 脆弱性攻撃を試す
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 

Ähnlich wie 平成生まれのための MINIX 講座

Ähnlich wie 平成生まれのための MINIX 講座 (20)

オープンソースの来し方行く末@OSC 2016 Nagaoka
オープンソースの来し方行く末@OSC 2016 Nagaokaオープンソースの来し方行く末@OSC 2016 Nagaoka
オープンソースの来し方行く末@OSC 2016 Nagaoka
 
オープンソースの来し方行く末@OSC 2016 Okinawa
オープンソースの来し方行く末@OSC 2016 Okinawaオープンソースの来し方行く末@OSC 2016 Okinawa
オープンソースの来し方行く末@OSC 2016 Okinawa
 
USENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory DisaggregationUSENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory Disaggregation
 
オープンソースの来し方行く末@OSC 2016 Hokkaido
オープンソースの来し方行く末@OSC 2016 Hokkaidoオープンソースの来し方行く末@OSC 2016 Hokkaido
オープンソースの来し方行く末@OSC 2016 Hokkaido
 
Docker 再入門 2016 update
Docker 再入門 2016 updateDocker 再入門 2016 update
Docker 再入門 2016 update
 
Open Build Serviceで楽をする
Open Build Serviceで楽をするOpen Build Serviceで楽をする
Open Build Serviceで楽をする
 
GitLabを骨までしゃぶりつくす@ゆるUniStudy#7
GitLabを骨までしゃぶりつくす@ゆるUniStudy#7GitLabを骨までしゃぶりつくす@ゆるUniStudy#7
GitLabを骨までしゃぶりつくす@ゆるUniStudy#7
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
 
Tizen & Crosswalk
Tizen & CrosswalkTizen & Crosswalk
Tizen & Crosswalk
 
xv6 + mist32 + mruby
xv6 + mist32 + mrubyxv6 + mist32 + mruby
xv6 + mist32 + mruby
 
今さら聞けない人のためのK8s超入門 Big Sur対応版
今さら聞けない人のためのK8s超入門 Big Sur対応版今さら聞けない人のためのK8s超入門 Big Sur対応版
今さら聞けない人のためのK8s超入門 Big Sur対応版
 
今さら聞けない人のためのGit超入門 OSC2018名古屋版
今さら聞けない人のためのGit超入門 OSC2018名古屋版今さら聞けない人のためのGit超入門 OSC2018名古屋版
今さら聞けない人のためのGit超入門 OSC2018名古屋版
 
UniTask入門
UniTask入門UniTask入門
UniTask入門
 
Windows Subsystem for Linux 2
Windows Subsystem for Linux 2Windows Subsystem for Linux 2
Windows Subsystem for Linux 2
 
Keep a diary
Keep a diaryKeep a diary
Keep a diary
 
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
JUS関西 Sphinxワークショップ@関西 Sphinx紹介JUS関西 Sphinxワークショップ@関西 Sphinx紹介
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
 
Introduction of OpenBSD/luna88k at OSC 2014 Nagoya
Introduction of OpenBSD/luna88k at OSC 2014 NagoyaIntroduction of OpenBSD/luna88k at OSC 2014 Nagoya
Introduction of OpenBSD/luna88k at OSC 2014 Nagoya
 
ブラウザの歴史
ブラウザの歴史ブラウザの歴史
ブラウザの歴史
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
 

Mehr von TAKANO Mitsuhiro

Mehr von TAKANO Mitsuhiro (8)

Learn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jp
Learn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jpLearn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jp
Learn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jp
 
Pharo 6 最新情報 | 第101回Smalltalk勉強会
Pharo 6 最新情報 | 第101回Smalltalk勉強会Pharo 6 最新情報 | 第101回Smalltalk勉強会
Pharo 6 最新情報 | 第101回Smalltalk勉強会
 
型、ついてますか? - 型の本質を振り返る -
型、ついてますか? - 型の本質を振り返る -型、ついてますか? - 型の本質を振り返る -
型、ついてますか? - 型の本質を振り返る -
 
Smalltalk との比較で深まる Citrine の理解
Smalltalk との比較で深まる Citrine の理解Smalltalk との比較で深まる Citrine の理解
Smalltalk との比較で深まる Citrine の理解
 
CONBU API の開発
CONBU API の開発CONBU API の開発
CONBU API の開発
 
インターネットにおける悪評 - 高野光弘編
インターネットにおける悪評 - 高野光弘編インターネットにおける悪評 - 高野光弘編
インターネットにおける悪評 - 高野光弘編
 
魁!!インターネット塾
魁!!インターネット塾魁!!インターネット塾
魁!!インターネット塾
 
Brainfush
BrainfushBrainfush
Brainfush
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

平成生まれのための MINIX 講座