Soumettre la recherche
Mettre en ligne
今よりも少し(?)昔、 Windowsを作ろうとした話
•
2 j'aime
•
2,381 vues
Masaru Oki
Suivre
2016年12月20日開催の、「年忘れだよ#ssmjp ヒカ☆ラボに全員集合」で発表したスライドになります。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 12
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Fluentd casual
Fluentd casual
oranie Narut
Slackって何ができるんだっけ
Slackって何ができるんだっけ
Quikky
Laravel 5.3 で basic task list を作ろう!
Laravel 5.3 で basic task list を作ろう!
シオリ ショウノ
Web 09
Web 09
XMLProJ2014
恋に落ちるデプロイツール
恋に落ちるデプロイツール
totty jp
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapy
Masashi Shibata
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
Taiji INOUE
CouchDBをヤラナイカ
CouchDBをヤラナイカ
Makoto Ohnami
Recommandé
Fluentd casual
Fluentd casual
oranie Narut
Slackって何ができるんだっけ
Slackって何ができるんだっけ
Quikky
Laravel 5.3 で basic task list を作ろう!
Laravel 5.3 で basic task list を作ろう!
シオリ ショウノ
Web 09
Web 09
XMLProJ2014
恋に落ちるデプロイツール
恋に落ちるデプロイツール
totty jp
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapy
Masashi Shibata
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
Taiji INOUE
CouchDBをヤラナイカ
CouchDBをヤラナイカ
Makoto Ohnami
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)
Masaru Oki
Onieで遊んでみようとした話
Onieで遊んでみようとした話
Masaru Oki
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
Masaru Oki
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編
Masaru Oki
Lagopus どれだけ速いのか
Lagopus どれだけ速いのか
Masaru Oki
GPD WINが来た!
GPD WINが来た!
Masaru Oki
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件
Masaru Oki
Lagopus 0.2.7
Lagopus 0.2.7
Masaru Oki
自宅実験環境 Aug 2014
自宅実験環境 Aug 2014
Masaru Oki
Lagopus 0.2.4
Lagopus 0.2.4
Masaru Oki
Lagopus 0.2
Lagopus 0.2
Masaru Oki
Lagopus match improvements
Lagopus match improvements
Masaru Oki
Using Xeon D 10GBase-T
Using Xeon D 10GBase-T
Masaru Oki
SDNソフトウェアスイッチlagopus for FreeBSD
SDNソフトウェアスイッチlagopus for FreeBSD
Masaru Oki
Lagopus, raw socket build
Lagopus, raw socket build
Masaru Oki
Dpdk pmd
Dpdk pmd
Masaru Oki
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
Masaru Oki
Rumpを使ってみる
Rumpを使ってみる
Masaru Oki
Lagopus.confの書式(for lagopus 0.1.x)
Lagopus.confの書式(for lagopus 0.1.x)
Masaru Oki
Lagopus 0.2.2
Lagopus 0.2.2
Masaru Oki
NetBSD移植の昔話
NetBSD移植の昔話
Masaru Oki
Rust-DPDK
Rust-DPDK
Masaru Oki
Contenu connexe
En vedette
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)
Masaru Oki
Onieで遊んでみようとした話
Onieで遊んでみようとした話
Masaru Oki
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
Masaru Oki
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編
Masaru Oki
Lagopus どれだけ速いのか
Lagopus どれだけ速いのか
Masaru Oki
GPD WINが来た!
GPD WINが来た!
Masaru Oki
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件
Masaru Oki
Lagopus 0.2.7
Lagopus 0.2.7
Masaru Oki
自宅実験環境 Aug 2014
自宅実験環境 Aug 2014
Masaru Oki
Lagopus 0.2.4
Lagopus 0.2.4
Masaru Oki
Lagopus 0.2
Lagopus 0.2
Masaru Oki
Lagopus match improvements
Lagopus match improvements
Masaru Oki
Using Xeon D 10GBase-T
Using Xeon D 10GBase-T
Masaru Oki
SDNソフトウェアスイッチlagopus for FreeBSD
SDNソフトウェアスイッチlagopus for FreeBSD
Masaru Oki
Lagopus, raw socket build
Lagopus, raw socket build
Masaru Oki
Dpdk pmd
Dpdk pmd
Masaru Oki
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
Masaru Oki
Rumpを使ってみる
Rumpを使ってみる
Masaru Oki
Lagopus.confの書式(for lagopus 0.1.x)
Lagopus.confの書式(for lagopus 0.1.x)
Masaru Oki
Lagopus 0.2.2
Lagopus 0.2.2
Masaru Oki
En vedette
(20)
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)
Onieで遊んでみようとした話
Onieで遊んでみようとした話
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編
Lagopus どれだけ速いのか
Lagopus どれだけ速いのか
GPD WINが来た!
GPD WINが来た!
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件
Lagopus 0.2.7
Lagopus 0.2.7
自宅実験環境 Aug 2014
自宅実験環境 Aug 2014
Lagopus 0.2.4
Lagopus 0.2.4
Lagopus 0.2
Lagopus 0.2
Lagopus match improvements
Lagopus match improvements
Using Xeon D 10GBase-T
Using Xeon D 10GBase-T
SDNソフトウェアスイッチlagopus for FreeBSD
SDNソフトウェアスイッチlagopus for FreeBSD
Lagopus, raw socket build
Lagopus, raw socket build
Dpdk pmd
Dpdk pmd
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
Rumpを使ってみる
Rumpを使ってみる
Lagopus.confの書式(for lagopus 0.1.x)
Lagopus.confの書式(for lagopus 0.1.x)
Lagopus 0.2.2
Lagopus 0.2.2
Plus de Masaru Oki
NetBSD移植の昔話
NetBSD移植の昔話
Masaru Oki
Rust-DPDK
Rust-DPDK
Masaru Oki
Rust-DPDK
Rust-DPDK
Masaru Oki
Lagopusとvagrant
Lagopusとvagrant
Masaru Oki
Ryu+Lagopusで OpenFlowの動きを見てみよう
Ryu+Lagopusで OpenFlowの動きを見てみよう
Masaru Oki
Lagopus as open flow hybrid switch
Lagopus as open flow hybrid switch
Masaru Oki
Net bsd advent calendar 2015 bpf
Net bsd advent calendar 2015 bpf
Masaru Oki
Using rump on NetBSD 7.0
Using rump on NetBSD 7.0
Masaru Oki
FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話
Masaru Oki
Open stack+lagopus できるかな
Open stack+lagopus できるかな
Masaru Oki
Xeon dとlagopusと、pktgen dpdk
Xeon dとlagopusと、pktgen dpdk
Masaru Oki
Running lagopus on Xeon D
Running lagopus on Xeon D
Masaru Oki
DPDK QoS
DPDK QoS
Masaru Oki
Xeon d
Xeon d
Masaru Oki
Plus de Masaru Oki
(14)
NetBSD移植の昔話
NetBSD移植の昔話
Rust-DPDK
Rust-DPDK
Rust-DPDK
Rust-DPDK
Lagopusとvagrant
Lagopusとvagrant
Ryu+Lagopusで OpenFlowの動きを見てみよう
Ryu+Lagopusで OpenFlowの動きを見てみよう
Lagopus as open flow hybrid switch
Lagopus as open flow hybrid switch
Net bsd advent calendar 2015 bpf
Net bsd advent calendar 2015 bpf
Using rump on NetBSD 7.0
Using rump on NetBSD 7.0
FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話
Open stack+lagopus できるかな
Open stack+lagopus できるかな
Xeon dとlagopusと、pktgen dpdk
Xeon dとlagopusと、pktgen dpdk
Running lagopus on Xeon D
Running lagopus on Xeon D
DPDK QoS
DPDK QoS
Xeon d
Xeon d
今よりも少し(?)昔、 Windowsを作ろうとした話
1.
今よりも少し 昔、 を作ろうとした話 年忘れだよ ヒカ☆ラボに全員集合
2.
きっかけの話 むかーしむかし ねんごろ ぼくは つかいでした のあのアプリが使いたい 動くといいのにな、なんで動かないのかな
3.
かんがえてみた アプリケーションはプログラム データである 実行ファイルのフォーマットがちょっと 違う あれ
これって似たようなものなのでは ELF header .text .data .bss PECOFF header .text .data .bss
4.
しらべてみた は「 のお化け」 ってつまりプロセス空間にマップされる共有ライブラリ のバイナリが を
で呼ぶように、 のバイナリは を関数コールする プロセス空間 EXE DLL DLL
5.
ひらめいた ( 年
月) ファイルは を呼ぶだけ じゃあ の中身を自分で作ってしまえば が でそのまま 動く がちゃんと仕様の通りか検証してみたい欲が プロセス空間 EXE 自作DLL 自作DLL syscall
6.
やったこと を動かそうと思ったら、 を読み込むところに手を加えて を読ませればいいのでは カーネルを改造して、 をマップ可能に 具体的には、 システムコールの実装をいじりました
7.
やったこと はいいけど はどうする だと、 ダイナミックリンカ
が呼ばれてそいつがマップする を改造して、 をマップできるようにしちゃえ 改造 を読み込むようカーネルにも細工を
8.
やったこと 実は、プログラムコードの呼び出し規則 が と
とで違います 自作 から直接 の関数を呼べると楽できるのに (当初)できないので を でコンパイルしてました できあがったもの うーん、 を改造して、相互に呼び出せるようにしちゃえ 解決
9.
では を作りましょう の中身を職人が一つ一つ手作りしています のようなものは の該当関数呼び出しで実装 ウィンドウを描画する
の中身は の呼び出しをする、といった感じ の一部も実装されたり、手伝ってくれる人もいたりしました
10.
開発当初のスライドより一枚だけご紹介 年 月 のスライド。 当時はワイド画面じゃなかったので スライドも
でした。
11.
そうしてできあがったものは 動き出したころのスライド ● 電卓が動く ● コマンドプロンプト
が動く にもできました ● マインスイーパーもどうにか動く ● けど は動かないー ● なぜか 当時流行っていたエロゲーもいくつか動きました(スクショ見つからず) 現在でいうところの の逆みたいな感じです
12.
そして伝説へ の 数が多すぎてつくるのとってもしんどい やがて は
の時代へ。 も出てきて、ますます が複雑に が使われなくなったり である必然性がなくなったり すでに実績のある をみんな使うのもあって開発者も増えず多忙になって 動かせることが実証できたので満足した、のでした。 おしまい。
Télécharger maintenant