SlideShare a Scribd company logo
1 of 35
Download to read offline
レガシーフリーOS
に必要な要素技術
「はりぼてOS」との違い
2019/11/23 OSC Tokyo/Fall
@uchan_nos
自己紹介
• 内田公太 @uchan_nos
• サイボウズ株式会社 SREチーム
• 東京工業大学 特任助教
• 自作OSもくもく会コアメンバー
• 『30日でできる! OS自作入門』
の校正を担当
• 『自作エミュレータで学ぶ
x86アーキテクチャ』の著者
305 でブース展示中
MikanOS
• 2017年から作っているレガシーフリーOS
• 教育用OS
• 大学などの講義で採用たらいいなあ
• レガシーフリー
• UEFI,64bit,USBマウス,Local APICタイマー
• https://github.com/uchan-nos/mikanos
MikanOSデモ
xHCIに苦戦
2017年夏
~
2018年夏
https://twitter.com/uchan_nos/status/1143512289741398019?s=20
https://twitter.com/uchan_nos/status/895420177776467968?s=20
レイヤー
の導入
https://twitter.com/uchan_nos/status/1153654947671494656?s=20
ウィンドウ
とタイマー
https://twitter.com/uchan_nos/status/1166562041945120768?s=20
アクティブ
ウィンドウ
https://twitter.com/uchan_nos/status/1174314614202363905?s=20
cat & ls
https://twitter.com/uchan_nos/status/1183936387277410306?s=20
Paging &
Application
https://twitter.com/uchan_nos/status/1192614799370153984
OSとは
• Operating System
Microsoft Windows 10 のスクリーンショット
有名な
自作OSたち
http://z-slash.net/os/osask/osask.png
OSASK
Mona OS
https://a.fsdn.com/con/app/proj/monaos/screenshots/90657.jpg
はりぼてOS
http://hrb.osask.jp/figures.html
自作OSはほぼすべてレガシー
• 2000年代に作られた自作OS群はほとんどレガ
シーなハードウェア前提
• MITのxv6も例外ではない
• 今「OS自作」を始める人も大体レガシーOSか
ら始める
• 有名な教科書「30日でできる!OS自作入門」が解
説するのがレガシーOSだから
はりぼてOSの構成要素
機能名 規格
BIOS レガシー
記憶装置 フロッピーディスク
CPUアーキテクチャ x86 (32 ビットモード)
割り込み PIC (Intel 8259A)
キーボード・マウス KBC (Intel 8042)
メモリ管理 セグメンテーション
タイマー PIT (Intel 8254)
システムコール INT命令
レガシーOSが動かなくなる
• 2020年、ついにIntelのx86でDOSが動作しなくなる
~UEFIからレガシーBIOS互換を削除
• https://pc.watch.impress.co.jp/docs/news/1092273.html
• 現代のパソコンのBIOS:UEFI BIOS
• UEFIのCSM (Compatibility Support Module)により,
レガシーBIOS互換環境が提供されていた
• 2020年以降,CSMが消え去る
レガシーOSが動かなくなる
• 現代における自作OSの難しさ 〜自作OSのいまと昔
• https://knowledge.sakura.ad.jp/22963/
• 自作OS環境を取り巻く変化を紹介
• BIOS: レガシー → UEFI
• CPU: シングルコア → マルチコア
• 命令セット: x86 → x86-64
• 入力: PS/2 → USB HID
• タイマー: PIT → Local APICタイマー,HPET
有名な
自作OSたち
http://z-slash.net/os/osask/osask.png
OSASK
Mona OS
https://a.fsdn.com/con/app/proj/monaos/screenshots/90657.jpg
はりぼてOS
http://hrb.osask.jp/figures.html実機で
起動しなくなる!
osdev-jp の紹介
• http://osdev.jp/
• 自作OS,低レイヤ技術のコミュ
• 強力な人々が在籍
• x86-64の仕様に詳しい人
• USB(xHCI)の仕様に詳しい人
• マルチコアを制御して遊んでる人
• RustでOS書いてる人
• x86-64,USB(xHCI)の詳しさに関
しては日本一なのではないか?
セキュリティキャンプの紹介
• 第一線で活躍する講師が
• 全国から集まった学生に
• セキュリティとプログラミングを教育する
• 宿泊費&交通費&食費 すべて支給のイベント
• 全国大会2019の公式サイト
https://www.ipa.go.jp/jinzai/camp/2019/zenkoku2019_index.html
OS開発ゼミ
• フルスクラッチOSを書こう!
• 最先端OS談義
• Linux開発者を目指そう!
• Raspberry Pi向け組み込みOSを作ろう!
x86-64やRaspberry向け
のOSを開発します
定員8人程度
レガシーフリー
• 機能の動的な検出(PnP)ができる
• レガシーデバイスは検出不能なものもある
• 0x3F8にCOMポートがある「はず」
• 省電力モードをサポートする
• 現行バス規格に準拠
• Intel 8042(PS/2接続KBC)はISA
• xHCI(USBホスト)はPCI
MikanOSの構成要素
機能名 旧規格 レガシーフリー規格
BIOS レガシ UEFI
記憶装置 FD USBメモリ
CPUアーキテクチャ x86 x86-64 (64 ビットモード)
割り込み PIC APIC, MSI
キーボード・マウス KBC USB HID
メモリ管理 segment 4階層ページング
タイマー PIT Local APICタイマー
システムコール INT命令 未定(多分syscall)
UEFI BIOS
• UEFI仕様を満たしたBIOS
• BIOSの世界に仕様がある… 幸せ!
• UEFIアプリ=PEバイナリ
• アプリにサイズ制限はない
• レガシーBIOSでは最大512バイト
• アプリをC言語で作れる
• 始めから64ビットモードで起動する
• ビット遷移処理を書かなくて済む
UEFIアプリの作り方
• EDK II で UEFI アプリケーションを作る
• https://osdev-jp.readthedocs.io/ja/latest/2017/create-uefi-app-with-edk2.html
• clang + lld でお手軽!UEFIアプリ開発
• https://docs.google.com/presentation/d/1ssu7KQEt1SMqizLlf-
iP6URZWMw1HTHtmHIhHRyW06w/edit?usp=sharing
• gnu-efiでUEFI遊びをはじめよう
• https://qiita.com/tnishinaga/items/40755f414557faf45dcb
x86-64 64ビットモード
• 64ビット化だけなら難しいことはあまり無い
• コンパイラが適切な機械語を出してくれる
• 64ビットモードでは4階層ページング必須
• セグメンテーションがほぼ廃止
• タスク切り替えに伴うレジスタ保存・復帰は自
動化されなくなった
x86-64の参考資料
• Intel® 64 and IA-32 Architectures Software
Developer’s Manual
• https://software.intel.com/en-us/articles/intel-sdm
• いわゆる”Intel SDM”
• x86-64向けのOSを書くなら必携資料
ACPI
Advanced Configuration and Power Interface
• 各種デバイスの設定,電源制御の規格
• デバイスの種類,レジスタのアドレス
• ACPI PMタイマーやHPETの存在確認,レジスタ位置
の取得など
• 電源断,スリープモードへの移行
• レガシーフリーを謳うならACPI対応は必須
ACPIの参考資料
• ACPI Specification
• https://uefi.org/specifications
• ACPI規格書とっかかり教室
• https://booth.pm/ja/items/1577122
• ACPI規格の初心者向け解説本
• Local APICタイマー入門
• https://uchan.booth.pm/items/1319521
• ACPI PMタイマーの使い方
USB: Universal Serial Bus
• パソコンがUSBホスト
• デバイスがUSBターゲット
• USBはターゲット側が楽なように作られてる
• ホスト側がめっちゃ大変
• マウスとキーボードだけのしょぼい実装で3300行
• OHCI/UHCI,EHCI,xHCI
• xHCIはUSB1.1,2.0,3.xに対応。
xHCIの参考資料
• USB 3.0 ホストドライバ自作入門
• https://uchan.booth.pm/items/1056355
• xHCIドライバの作り方を解説
• xHCI for Universal Serial Bus: Specification
• https://www.intel.co.jp/content/www/jp/ja/products/docs/io/universal-
serial-bus/extensible-host-controler-interface-usb-xhci.html
• xHCIドライバを書くなら必携の書
ホストコントローラ層
USB層
クラスドライバ層
APIC
Advanced Programmable Interrupt Controller
• PITはマザボで1つ
• APIC = IO APIC + Local APIC
• IO APICはマザボで1つ
• Local APICは各CPUコアに内蔵
• Intel SDMに説明がある
• APICなら各コアに割り込みを分配できる
http://editmax.eu/jak-se-
vyrabi-procesory-cpu/
MSI: Message Signaled Interrupt
• CPUに割り込みを通知する方法の一種
• PCIバスの標準機能
• 従来:INTxピンの信号変化で割り込み
• IO APICを経由しLocal APICに通知
• MSI:メモリ書き込みサイクルで割り込み
• Local APICに直接通知
• IO APICを知らなくて良い。楽。
MSI: Message Signaled Interrupt
ハードウェア
CPU
IO APIC
Local APIC
バス
MSI割り込み
メモリ書き込み
サイクルにより
割り込む
#INTxの信号変化
により割り込む
#INTx割り込み
PCIバス
• 現代のパソコンの中核を担うバス規格
• PCI: パラレルバス規格
• PCIe: シリアルバス規格
• 現代の主流。PCIとソフトウェア互換。
• xHCIはPCIで接続する前提の規格
PCIバスの参考資料
• PCI Memo - osdev.jp
• https://github.com/osdev-jp/osdev-
jp.github.io/wiki/PCI-Memo
• PCIコンフィグレーション空間
• PCIデバイスの列挙方法
• PCIバス&PCI-Xバスの徹底研究
• CQ出版 Interface編集部

More Related Content

What's hot

CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編Fixstars Corporation
 
研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有Naoaki Okazaki
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
UEFIによるELFバイナリの起動
UEFIによるELFバイナリの起動UEFIによるELFバイナリの起動
UEFIによるELFバイナリの起動uchan_nos
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
30分で分かる!OSの作り方
30分で分かる!OSの作り方30分で分かる!OSの作り方
30分で分かる!OSの作り方uchan_nos
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
DLLAB Engineer Days : ONNX Export & Optimize
DLLAB Engineer Days : ONNX Export & Optimize DLLAB Engineer Days : ONNX Export & Optimize
DLLAB Engineer Days : ONNX Export & Optimize Kazuki Kyakuno
 
NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~Takuya Ono
 
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29ryuz88
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモayohe
 
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事uchan_nos
 
AWSでGPUも安く大量に使い倒せ
AWSでGPUも安く大量に使い倒せ AWSでGPUも安く大量に使い倒せ
AWSでGPUも安く大量に使い倒せ Yasuhiro Matsuo
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
 
老害について
老害について老害について
老害についてKen SASAKI
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!Hirotaka Sato
 

What's hot (20)

CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
UEFIによるELFバイナリの起動
UEFIによるELFバイナリの起動UEFIによるELFバイナリの起動
UEFIによるELFバイナリの起動
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
30分で分かる!OSの作り方
30分で分かる!OSの作り方30分で分かる!OSの作り方
30分で分かる!OSの作り方
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
DLLAB Engineer Days : ONNX Export & Optimize
DLLAB Engineer Days : ONNX Export & Optimize DLLAB Engineer Days : ONNX Export & Optimize
DLLAB Engineer Days : ONNX Export & Optimize
 
NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
 
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
AWSでGPUも安く大量に使い倒せ
AWSでGPUも安く大量に使い倒せ AWSでGPUも安く大量に使い倒せ
AWSでGPUも安く大量に使い倒せ
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
老害について
老害について老害について
老害について
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
 

Similar to レガシーフリーOSに必要な要素技術 legacy free os

Building libc++ for toy OS
Building libc++ for toy OSBuilding libc++ for toy OS
Building libc++ for toy OSuchan_nos
 
Getting a packet trace
Getting a packet traceGetting a packet trace
Getting a packet trace幸雄 村上
 
20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworldNoritada Shimizu
 
Master-Detail App を実装する
Master-Detail App を実装するMaster-Detail App を実装する
Master-Detail App を実装する幸雄 村上
 
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~Saki Homma
 
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/SpringVisual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/SpringIssei Hiraoka
 
The Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKitThe Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKit幸雄 村上
 
UEFIベアメタルプログラミング
UEFIベアメタルプログラミングUEFIベアメタルプログラミング
UEFIベアメタルプログラミングYuma Ohgami
 
ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦幸雄 村上
 
サーバーレスアーキテクチャで悩んでます
サーバーレスアーキテクチャで悩んでますサーバーレスアーキテクチャで悩んでます
サーバーレスアーキテクチャで悩んでます幸雄 村上
 
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16Masami Yabushita
 
独自Documentクラス
独自Documentクラス独自Documentクラス
独自Documentクラス幸雄 村上
 
デザインパターン
デザインパターンデザインパターン
デザインパターン幸雄 村上
 
Document based application
Document based applicationDocument based application
Document based application幸雄 村上
 
Time for Xcode Behavior
Time for Xcode BehaviorTime for Xcode Behavior
Time for Xcode Behaviortoyship
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...Hiroyuki Ohnaka
 
20180822 ガチラボ vol.8
20180822 ガチラボ vol.820180822 ガチラボ vol.8
20180822 ガチラボ vol.8Satoshi Fujimoto
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Hideki Takase
 

Similar to レガシーフリーOSに必要な要素技術 legacy free os (20)

Building libc++ for toy OS
Building libc++ for toy OSBuilding libc++ for toy OS
Building libc++ for toy OS
 
Getting a packet trace
Getting a packet traceGetting a packet trace
Getting a packet trace
 
20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld
 
Master-Detail App を実装する
Master-Detail App を実装するMaster-Detail App を実装する
Master-Detail App を実装する
 
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
 
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/SpringVisual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
 
The Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKitThe Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKit
 
UEFIベアメタルプログラミング
UEFIベアメタルプログラミングUEFIベアメタルプログラミング
UEFIベアメタルプログラミング
 
ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦
 
サーバーレスアーキテクチャで悩んでます
サーバーレスアーキテクチャで悩んでますサーバーレスアーキテクチャで悩んでます
サーバーレスアーキテクチャで悩んでます
 
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16
 
独自Documentクラス
独自Documentクラス独自Documentクラス
独自Documentクラス
 
デザインパターン
デザインパターンデザインパターン
デザインパターン
 
Document based application
Document based applicationDocument based application
Document based application
 
RUDP
RUDPRUDP
RUDP
 
Time for Xcode Behavior
Time for Xcode BehaviorTime for Xcode Behavior
Time for Xcode Behavior
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
 
20180822 ガチラボ vol.8
20180822 ガチラボ vol.820180822 ガチラボ vol.8
20180822 ガチラボ vol.8
 
Bukuro.makers
Bukuro.makersBukuro.makers
Bukuro.makers
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
 

More from uchan_nos

小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器uchan_nos
 
トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路uchan_nos
 
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクトOpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクトuchan_nos
 
自作言語でお絵描き
自作言語でお絵描き自作言語でお絵描き
自作言語でお絵描きuchan_nos
 
OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会uchan_nos
 
サイボウズ・ラボへ転籍して1年を振り返る
サイボウズ・ラボへ転籍して1年を振り返るサイボウズ・ラボへ転籍して1年を振り返る
サイボウズ・ラボへ転籍して1年を振り返るuchan_nos
 
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道USB3.0ドライバ開発の道
USB3.0ドライバ開発の道uchan_nos
 
Security Nextcamp remote mob programming
Security Nextcamp remote mob programmingSecurity Nextcamp remote mob programming
Security Nextcamp remote mob programminguchan_nos
 
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPSLangsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPSuchan_nos
 
OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作uchan_nos
 
自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装uchan_nos
 
1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPG1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPGuchan_nos
 
プランクトンサミットの歴史2019
プランクトンサミットの歴史2019プランクトンサミットの歴史2019
プランクトンサミットの歴史2019uchan_nos
 
Introduction of security camp 2019
Introduction of security camp 2019Introduction of security camp 2019
Introduction of security camp 2019uchan_nos
 
USB3 host driver program structure
USB3 host driver program structureUSB3 host driver program structure
USB3 host driver program structureuchan_nos
 
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)uchan_nos
 
1TB/dayのログを収集・蓄積する技術
1TB/dayのログを収集・蓄積する技術1TB/dayのログを収集・蓄積する技術
1TB/dayのログを収集・蓄積する技術uchan_nos
 
WalB: Real-time and Incremental Backup System for Block Devices
WalB: Real-time and Incremental Backup System for Block DevicesWalB: Real-time and Incremental Backup System for Block Devices
WalB: Real-time and Incremental Backup System for Block Devicesuchan_nos
 
5分で分かるサイボウズのSRE
5分で分かるサイボウズのSRE5分で分かるサイボウズのSRE
5分で分かるサイボウズのSREuchan_nos
 

More from uchan_nos (20)

小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器
 
トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路
 
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクトOpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
 
自作言語でお絵描き
自作言語でお絵描き自作言語でお絵描き
自作言語でお絵描き
 
OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会
 
サイボウズ・ラボへ転籍して1年を振り返る
サイボウズ・ラボへ転籍して1年を振り返るサイボウズ・ラボへ転籍して1年を振り返る
サイボウズ・ラボへ転籍して1年を振り返る
 
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
 
Security Nextcamp remote mob programming
Security Nextcamp remote mob programmingSecurity Nextcamp remote mob programming
Security Nextcamp remote mob programming
 
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPSLangsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPS
 
OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作
 
自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装
 
1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPG1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPG
 
プランクトンサミットの歴史2019
プランクトンサミットの歴史2019プランクトンサミットの歴史2019
プランクトンサミットの歴史2019
 
Introduction of security camp 2019
Introduction of security camp 2019Introduction of security camp 2019
Introduction of security camp 2019
 
Timers
TimersTimers
Timers
 
USB3 host driver program structure
USB3 host driver program structureUSB3 host driver program structure
USB3 host driver program structure
 
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
業務時間で書いたパッチは誰のもの?OSS活動にまつわる罠 (builderscon tokyo 2018)
 
1TB/dayのログを収集・蓄積する技術
1TB/dayのログを収集・蓄積する技術1TB/dayのログを収集・蓄積する技術
1TB/dayのログを収集・蓄積する技術
 
WalB: Real-time and Incremental Backup System for Block Devices
WalB: Real-time and Incremental Backup System for Block DevicesWalB: Real-time and Incremental Backup System for Block Devices
WalB: Real-time and Incremental Backup System for Block Devices
 
5分で分かるサイボウズのSRE
5分で分かるサイボウズのSRE5分で分かるサイボウズのSRE
5分で分かるサイボウズのSRE
 

レガシーフリーOSに必要な要素技術 legacy free os