SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
1
単一言語マシンの
言語
[Multi Thread Tiny BASIC]
はOS
2017/APR/13
たけおか@AXE/たけおかラボ
@takeoka

データベースをカーネル空間内で
動作させる

なんと特許を取れました

「リレーショナルデータベースを
内在するカーネルプログラム、
方法及び装置」
●
かなり広範囲に適用される…

上記と別に、データ+アクセス手続きに
関するOSの特許も出願中

上記のOSは、C言語で書いてます

推論系AIの特許も出願手続き中
●
Lisp+Prologで開発中
最近の俺達のOS
←カラーザウルス(1997年ごろ)
古い独自OS(XTAL) マシン
Micro Kernelで仮想記憶
POSIX I/Fあり
Haskellで書いたモニタもあり
型安全なので、アホなミスによる
セキュリティ・ホールは無い
3
高級言語マシン=単一言語マシン
•
OSスケジューラも、なんでも高級言語からいじるぜ
•
マルチスレッド・プログラミング言語が動けば幸せ
•
ファイル操作
•
ls, rm, mv など、すべてBASIC言語から操作した
•
対話的な言語で、CPU(計算機)と直接対話
•
デバッグ環境も一体化
•
LL, スクリプト系言語はインタープリタ
それなのに、対話的に使わないとは、けしからん
Symbolics(Lispマシン) Alto(Smalltalkマシン)PC-8001Apple ][
オレのダンボット
ESP8266 に Multi Thread BASIC
整数 Tiny BASICだが、マルチ・スレッド
fork(行番号)で、スレッド生成
スレッド間のメッセージ通信もある
telnet で、ESP8266の BASIC に接続 & 対話
WiFi経由
BASIC を拡張
●
servo 番号,角度
●
サーボ番号==9で、一歩、歩く
●
一歩、歩くルーチンは、ATMegaに埋め込み
●
超音波センサで測距
●
&@ 特殊変数で、距離を読みだす
文字列操作はC言語並み
http post 用の文字列は容易に作れる
ESP8266 Arduino環境でBASICをコンパイル
setjmp & longjmp を作るのに苦労した
ATMega328 ESP8266
5
マルチ・スレッド BASIC 命令語

fork(行番号)

式を開始行番号として、threadを生
成する

スレッドのプロセス番号を返す

end

メインスレッド(プロセス番号1)なら
ば、全スレッド停止

子供スレッドならば、そのスレッドのみ
が終了する

sleep 式

式の値で示された単位時間だけ、ス
レッドの実行を停止する

ps
– スレッドのステータスを表示

messnew(式) 関数
●
メッセージ・オブジェクトを作る (式はダミー)

messwait 式1,式2
●
式1の値で示される番号のオブジェクトのメッセージを待つ
●
すでに、そのメッセージを待っているプロセスがあった場合
は、待たずに抜ける
●
式2でタイムアウト時間を指定
●
0番のオブジェクトは、キーボード入力

messread(式1) 関数
●
式1の値で指定されるメッセージ・オブジェクトから読み出し

messsend(式1,式2) 関数
●
式1の値で指定されるメッセージ・オブジェクトへ、式2の値
をメッセージとして送る
●
そのメッセージ・オブジェクトを待っているプロセスがあれ
ば、プロセスは走行可能になる

lastwait(式) 関数
●
式の値で指定されるメッセージ・オブジェクトの待ちから抜
けた要因を返す
●
1: O_RES_RECV メッセージを受信した
●
-2: O_RES_TO タイムアウト
●
-3: O_RES_WAITING 現在も待ちプロセスがある(待ち
は外れていない)
●
-1: Error オブジェクトは未使用
6
マルチ・スレッド BASIC 実現について

オブジェクトを待ちつつ、タイムアウトも待つ

時刻は内部でのカウントが一定を越えたら1tick(単位時間)

タイムアウトは、内部時刻(時計)を1tick増加させるときに、チェック

timeoutQは、タイムアウト時刻順に並んでいるので、現在時刻より以
前の時刻で待っているスレッドは、すべてactiveQへつなぎ直す
obj[n].proc
オブジェクトへのメッセージ待ち
timeoutQ
timeoutQへ
つなぐときは、
タイムアウト時刻順で
ソートする。時刻は内部時刻
100 500100 210 タイムアウト
時刻
内部時刻が300になった時、これより前のスレッ
ドは、すべて待ちから、readyQにつなぎ直す
7
俺のダンボットBASIC(動画)
https://www.youtube.com/watch?v=jKaVaSY80hY
8
おしまい
9
プログラム例
5'ESP8266 Walk and Usense
10 servo 9,0:sleep 350 :' walk 1 step
20 servo10,0 :'Usensor
30 ? &@ :' print Usensor value
512 goto 10
run
100 100 72 72 36 36
44 44 48 48 68 68
84 84 124 124 152 152
168 168 196 196 72 72
88 88 20 20 52 52
168 168^C
10
プログラム例
5 '3threads
10 print fork(256): print fork(512)
20 do:print ”c”:sleep 300:while 1
256 print "b":sleep 100:goto 256
512 print "a":sleep 200:goto 512
M>>r.
2b
3acbbabcbabbacbbabcbabbacbbabcbabbacbba
bcbabbacbbabcbabbacbbabcbabbacbbabcbabb
acbbabcb…
11
インタープリタ

仮想機械

ソフトウェアで実現された機械

Tiny BASICの機械語は、文字列なのでダサい
 可変長の命令セットを持つ、美しくない x86 は、みんな使っている

機械語命令が可変長の文字列であるハードウェアは実在した
 IBM 1401
 http://en.wikipedia.org/wiki/IBM_1401
12
インタープリタ

仮想機械の実行
命令デコード
通常命令
命令フェッチ
通常命令 通常命令 通常命令
ブレーク・チェック
RUN.実行開始
13
マルチスレッドとは
14
マルチ・スレッド

スレッドとは

計算に必要なコンテキストを持ち、CPUが割当たると計算を実
行
 コンテキストとは

PC, StackPointerなどのレジスタ

スタック

マルチ・スレッド

スレッドが並行に走行
 並行とは
同時(並列)であるかも知れないし、時分割かも知れない
概念的な言葉

メモリ空間は、スレッド間で共有
15
マルチ・スレッド BASIC

スレッド・コンテキスト
 PC, StackPointer レジスタ (レジスタは2個のみ)
 スタック: 独立した場所に確保

メモリ空間は、スレッド間で共有
 全変数をスレッド間で共有
16
マルチ・スレッド・インタープリタ
マルチスレッド仮想機械
スケジューリング
命令デコード
命令 fork
スレッド生成
命令 messsend命令 messwait
メッセージを
オブジェクトへ
送信
走行中スレッドを
待ち状態にし、
別なスレッドを
アクティブにする 当該オブジェクトで
待っているスレッドが
あったら
走行可能にする
通常命令
readyQの先頭に
新スレッドを追加
命令フェッチ
RUN.実行開始
17
マルチ・スレッド
Tiny BASIC
18
マルチ・スレッド BASIC 命令語

fork(行番号)

式を開始行番号として、threadを生成する

スレッドのプロセス番号を返す

end

メインスレッド(プロセス番号1)ならば、全スレッド停止

子供スレッドならば、そのスレッドのみが終了する

join ※未実装

スレッドの待ち合わせ

sleep 式

式の値で示された単位時間だけ、スレッドの実行を停止する
19
マルチ・スレッド BASIC 命令語

messnew(式) 関数

メッセージ・オブジェクトを作る (式はダミー)

messwait 式1,式2

式1の値で示される番号のオブジェクトのメッセージを待つ

すでに、そのメッセージを待っているプロセスがあった場合は、待たずに抜
ける

式2でタイムアウト時間を指定

0番のオブジェクトは、キーボード入力

messread(式1) 関数

式1の値で指定されるメッセージ・オブジェクトから読み出し

messsend(式1,式2) 関数

式1の値で指定されるメッセージ・オブジェクトへ、式2の値をメッセージとし
て送る

そのメッセージ・オブジェクトを待っているプロセスがあれば、プロセスは走
行可能になる
20
マルチ・スレッド BASIC 命令語

lastwait(式) 関数

式の値で指定されるメッセージ・オブジェクトの待ちから抜けた
要因を返す
 1: O_RES_RECV メッセージを受信した
 -2: O_RES_TO タイムアウト
 -3: O_RES_WAITING 現在も待ちプロセスがある(待ちは外れて
いない)
 -1: Error オブジェクトは未使用
21
マルチ・スレッド BASIC 命令語

ps

スレッドのステータスを表示

kill 式 ※未実装

式の値で示されるスレッドを、終了させる
22
マルチ・スレッド BASIC 実現について

割り込みを一切使用しない

キーボード割り込みを使用しない

タイマ割り込みを使用しない
 内部時計

ハードウェアが無い場合: ソフトウェアのループ回数で、作る
 当然、ゆらぎがある

RTC ハードウェアがある場合: スケジューリング前に、RTCを読み出す
 正確

時間による、スレッド実行の打ち切りは無い
 しかし、一命令ごとに、スケジューリングされる
23
マルチ・スレッド BASIC 実現について

どうして、割り込みを使用しないか

おもしろい
 割り込みで仕事をやることなんか飽きた

究極の移植性を追求
 どんなハードウェアでも、ただのアプリケーション・ソフトウェアと同様な
移植性

完全に決定的
 外乱(割り込み)による非決定性によるデバッグの困難さを排除(簡
単ということか?)

本当の実時間システムは割り込みを使わないことも多い

最悪時間を決定的に設計

割込みは、予測できない(それが本質)
 割込み処理時間を、盛り込む? 割込み禁止(それでいいのか?)
24
マルチ・スレッド BASIC 実現について

スレッドのスケジューリング

各命令の実行の直前でスケジュール

ready (走行可能)なスレッドがあれば、切り替える

ポリシーは、適当ラウンドロビン
 現状は、少しぶれがある

messwaitで待ちに入ると ready queueから外れる

messsendが発行され、messwaitから出ると

走行可能になって、ready queueへつながる
25
マルチ・スレッド BASIC 実現について

重要な構造体

プロセス構造体
struct process {
int pid;
int stat;
struct process *pre; /* activeQueue, waitQueue */
struct process *next; /* activeQueue, waitQueue */
struct process *toPre; /* time out queue */
struct process *toNext; /* time out queue */
int to; /* time of timeout */
u_char *pc;
int *stack;
int sp;
int lno;
};
#define PROC struct process
26
マルチ・スレッド BASIC 実現について

重要な構造体

オブジェクト構造体
struct object{
int id;
int stat;
PROC *proc; /* waiting process */
int value;
};
#define OBJ struct object
27
マルチ・スレッド BASIC 実現について
内部の重要な 待ち行列(キュー)
readyQ
obj[n].proc
オブジェクトへのメッセージ待ち
timeOutQ
timeOutQへ
つなぐときは、
タイムアウト時刻順で
ソートする。時刻は内部時刻
100 500100 210 タイムアウト
時刻
proc[n]
28
マルチ・スレッド BASIC 実現について

時刻

時刻は内部でのカウントが一定を越えたら1tick(単位時間)
内部時計を進める

タイムアウト

sleepと、messwaitは、timeoutQにつなぐ

内部時計を進めるときに、タイムアウトのチェックを行う
29
マルチ・スレッド BASIC 実現について

オブジェクトを待ちつつ、タイムアウトも待つ

時刻は内部でのカウントが一定を越えたら1tick(単位時間)

タイムアウトは、内部時刻(時計)を1tick増加させるときに、チェック

timeoutQは、タイムアウト時刻順に並んでいるので、現在時刻より以
前の時刻で待っているスレッドは、すべてactiveQへつなぎ直す
obj[n].proc
オブジェクトへのメッセージ待ち
timeoutQ
timeoutQへ
つなぐときは、
タイムアウト時刻順で
ソートする。時刻は内部時刻
100 500100 210 タイムアウト
時刻
内部時刻が300になった時、これより前のスレッ
ドは、すべて待ちから、readyQにつなぎ直す
30
マルチ・スレッド BASIC

サイズ: 21KB弱 (IOルーチン、簡単なデモ含む)

通常Tiny BASICは16KB強程度(IOルーチンなど含む)
 8080(8bit)用にアセンブラで記述すると2KBだったが…

32bit命令はやっぱり大きくなるなぁ…

マルチスレッド部分は適当なコーディング

めちゃくちゃとか、冗長ではないはずだが…

現在は、内部32bitポインタですべて管理

一応、x86(32bit,64bit)で高速に動作する様に書いた

本来は、8bit程度のオフセットで十分なはず
 プロセス、オブジェクトは各々256個まででいいだろ(実メモリ無いし)
31
プログラム例100 ?"start" :crlf
105 j=0
107 m=messnew(0): ? "messnew=":?m:crlf
110 ?fork(300):?fork(400):?fork(500):?fork(600)
120 ?"a":crlf
130 fori=1to500000:n.
150 ? messsend(m,j) : j=j+1
170 goto 120
180 end
300 ?" messwait ":crlf
310 messwait m,100
311 ?" Wakeup=":? lastwait(m):?" "
320 if lastwait(m)<0 ?"timeout ":crlf:goto 390
330 x=messread(m): ?$ x
390 goto 300
400 ?"kkk":crlf
420 messwait 0,-1
430 ?"K "
450 y=messread(0)
460 ?$ y
480 goto 400
500 sleep 100:?"asd"
510 ps
520 goto500
600 sleep 200:?"qwe"
610 ps
620 goto600
32
実行結果M>>r.
start
messnew=1
2 messwait 3kkk
45
a
asd Wakeup=-2pid, stat, PC, LNo, SP pre, next, toPre, toNext,to
0 2 0804C0DE 0 -1 080521CC 080521F8 00000000 00000000 0
1 2 0804F4FF 130 3 00000000 080521A0 00000000 00000000 0
2 2 0804F57C 311 -1 080521A0 00000000 00000000 0805227C 100
3 3 0804F5FB 420 -1 08051D40 080521A0 00000000 00000000 -1
4 1 0804F64B 510 -1 00000000 080521CC 00000000 080521F8 100
5 4 0804F666 600 -1 00000000 08052224 00000000 00000000 200
readyQ=1 0 2 current_time=100 idol_count=499996
toQ= 5:200
obj=0 proc=00000003 stat=2 obj=1 proc=FFFFFFFF stat=1
timeout
messwait
0 Wakeup=1 a
00 messwait
asdqwe Wakeup=-2pid, stat, PC, LNo, SP pre, next, toPre, toNext,to
0 2 0804C0DE 0 -1 0805227C 080521CC 00000000 00000000 0
1 2 0804F4FF 130 3 080521A0 080521F8 00000000 00000000 0
2 2 0804F57C 311 -1 080521CC 00000000 00000000 00000000 200
3 3 0804F5FB 420 -1 08051D40 080521A0 00000000 00000000 -1
4 1 0804F64B 510 -1 00000000 0805227C 00000000 080521F8 200
5 2 0804F673 610 -1 00000000 080521A0 00000000 08052250 200
readyQ=5 0 1 2 current_time=200 idol_count=999978
toQ=
obj=0 proc=00000003 stat=2 obj=1 proc=FFFFFFFF stat=1
pid, stat, PC, LNo, SP pre, next, toPre, toNext,to
0 2 0804C0DE 0 -1 00000000 080521CC 00000000 00000000 0
1 2 0804F4FF 130 3 080521A0 080521F8 00000000 00000000 0
2 2 0804F57C 311 -1 080521CC 08052250 00000000 00000000 200
3 3 0804F5FB 420 -1 08051D40 080521A0 00000000 00000000 -1
4 2 0804F64D 510 -1 080521F8 00000000 00000000 080521F8 200
5 1 0804F673 610 -1 00000000 080521A0 00000000 08052250 200
readyQ=0 1 2 4 current_time=200 idol_count=999978
toQ=
obj=0 proc=00000003 stat=2 obj=1 proc=FFFFFFFF stat=1
timeout
messwait
0 Wakeup=1 a
01 messwait
M>>
33
おしまい

Weitere ähnliche Inhalte

Was ist angesagt?

Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29ryuz88
 
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回ロボットシステム学2015年第5回
ロボットシステム学2015年第5回Ryuichi Ueda
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考えるryuz88
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表Hirotaka Kawata
 
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶYuta Kitagami
 
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回ロボットシステム学2015年第12回
ロボットシステム学2015年第12回Ryuichi Ueda
 
ロボットシステム学2015年第8回
ロボットシステム学2015年第8回ロボットシステム学2015年第8回
ロボットシステム学2015年第8回Ryuichi Ueda
 
Unix32 v 20100508
Unix32 v 20100508Unix32 v 20100508
Unix32 v 20100508xylnao
 
止まらないようにしたいのにそのせいで止まる悲しさ
止まらないようにしたいのにそのせいで止まる悲しさ止まらないようにしたいのにそのせいで止まる悲しさ
止まらないようにしたいのにそのせいで止まる悲しさTomotake Koike
 
N88-BASIC Language
N88-BASIC LanguageN88-BASIC Language
N88-BASIC Languagesunflat
 
UNIX/32V
UNIX/32V UNIX/32V
UNIX/32V xylnao
 
ハリボテなx86エミュレータの作り方 - how to make x86 emulator
ハリボテなx86エミュレータの作り方 - how to make x86 emulatorハリボテなx86エミュレータの作り方 - how to make x86 emulator
ハリボテなx86エミュレータの作り方 - how to make x86 emulatorgunya gunya
 
NetBSDとは
NetBSDとはNetBSDとは
NetBSDとはmiwarin
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットKenta IDA
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るmonochrojazz
 

Was ist angesagt? (20)

ロボット用Open Source Software
ロボット用Open Source Softwareロボット用Open Source Software
ロボット用Open Source Software
 
xv6 + mist32 + mruby
xv6 + mist32 + mrubyxv6 + mist32 + mruby
xv6 + mist32 + mruby
 
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
 
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考える
 
What's Operating System?
What's Operating System?What's Operating System?
What's Operating System?
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表
 
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
 
Os真髄
Os真髄Os真髄
Os真髄
 
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回ロボットシステム学2015年第12回
ロボットシステム学2015年第12回
 
20210705 sd#26 kitazaki
20210705 sd#26 kitazaki20210705 sd#26 kitazaki
20210705 sd#26 kitazaki
 
ロボットシステム学2015年第8回
ロボットシステム学2015年第8回ロボットシステム学2015年第8回
ロボットシステム学2015年第8回
 
Unix32 v 20100508
Unix32 v 20100508Unix32 v 20100508
Unix32 v 20100508
 
止まらないようにしたいのにそのせいで止まる悲しさ
止まらないようにしたいのにそのせいで止まる悲しさ止まらないようにしたいのにそのせいで止まる悲しさ
止まらないようにしたいのにそのせいで止まる悲しさ
 
N88-BASIC Language
N88-BASIC LanguageN88-BASIC Language
N88-BASIC Language
 
UNIX/32V
UNIX/32V UNIX/32V
UNIX/32V
 
ハリボテなx86エミュレータの作り方 - how to make x86 emulator
ハリボテなx86エミュレータの作り方 - how to make x86 emulatorハリボテなx86エミュレータの作り方 - how to make x86 emulator
ハリボテなx86エミュレータの作り方 - how to make x86 emulator
 
NetBSDとは
NetBSDとはNetBSDとは
NetBSDとは
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニット
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
 

Ähnlich wie Mt basic as-os_on_danbot

Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewallM Hagiwara
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!Wataru NOGUCHI
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれDNA Data Bank of Japan center
 
2016年2月4日 空間OSの設計コンセプトと先端IT
2016年2月4日 空間OSの設計コンセプトと先端IT2016年2月4日 空間OSの設計コンセプトと先端IT
2016年2月4日 空間OSの設計コンセプトと先端ITaitc_jp
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch UsecasesSakiko Kawai
 
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編Daiyu Hatakeyama
 
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishDbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishYohei Azekatsu
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewYuji Kubota
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介Hiromu Yakura
 
MUGT02 - vamp demo
MUGT02 - vamp demoMUGT02 - vamp demo
MUGT02 - vamp demoTetsuya Sodo
 
オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用Ruo Ando
 
運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回Shigeharu Yamaoka
 
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...SYUE-SIANG SU
 
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラインフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラsusumu tanaka
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet ServicesNaoto Gohko
 
Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Hitoshi Yoshida
 
Lucas apa pacsec_slides_jp-final
Lucas apa pacsec_slides_jp-finalLucas apa pacsec_slides_jp-final
Lucas apa pacsec_slides_jp-finalPacSecJP
 

Ähnlich wie Mt basic as-os_on_danbot (20)

Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
 
2016年2月4日 空間OSの設計コンセプトと先端IT
2016年2月4日 空間OSの設計コンセプトと先端IT2016年2月4日 空間OSの設計コンセプトと先端IT
2016年2月4日 空間OSの設計コンセプトと先端IT
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編
 
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
 
Dbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publishDbts2012 unconference wttrw_yazekatsu_publish
Dbts2012 unconference wttrw_yazekatsu_publish
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介
 
Gamedevenvstudy1
Gamedevenvstudy1Gamedevenvstudy1
Gamedevenvstudy1
 
MUGT02 - vamp demo
MUGT02 - vamp demoMUGT02 - vamp demo
MUGT02 - vamp demo
 
Xen Nic
Xen NicXen Nic
Xen Nic
 
オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用
 
運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回運用構築技術者の為のPSプログラミング第1回
運用構築技術者の為のPSプログラミング第1回
 
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
 
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラインフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
 
Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2
 
Lucas apa pacsec_slides_jp-final
Lucas apa pacsec_slides_jp-finalLucas apa pacsec_slides_jp-final
Lucas apa pacsec_slides_jp-final
 

Mehr von たけおか しょうぞう

いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加したいにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加したたけおか しょうぞう
 
俺ASICと俺CPU“松竹V(しょうちくぶい)”
俺ASICと俺CPU“松竹V(しょうちくぶい)”俺ASICと俺CPU“松竹V(しょうちくぶい)”
俺ASICと俺CPU“松竹V(しょうちくぶい)”たけおか しょうぞう
 
あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)たけおか しょうぞう
 
どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?たけおか しょうぞう
 
無脳スマートスピーカを 越えレレレのレ
無脳スマートスピーカを 越えレレレのレ無脳スマートスピーカを 越えレレレのレ
無脳スマートスピーカを 越えレレレのレたけおか しょうぞう
 
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-たけおか しょうぞう
 

Mehr von たけおか しょうぞう (20)

いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加したいにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
 
SOAR:Smalltalk on RISC
SOAR:Smalltalk on RISCSOAR:Smalltalk on RISC
SOAR:Smalltalk on RISC
 
俺ASICと俺CPU“松竹V(しょうちくぶい)”
俺ASICと俺CPU“松竹V(しょうちくぶい)”俺ASICと俺CPU“松竹V(しょうちくぶい)”
俺ASICと俺CPU“松竹V(しょうちくぶい)”
 
あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)
 
RISC-Vの可能性
RISC-Vの可能性RISC-Vの可能性
RISC-Vの可能性
 
どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
Takep lpc1114-190614
Takep lpc1114-190614Takep lpc1114-190614
Takep lpc1114-190614
 
Takep lpc1114-190613
Takep lpc1114-190613Takep lpc1114-190613
Takep lpc1114-190613
 
初歩的な部品の知識
初歩的な部品の知識初歩的な部品の知識
初歩的な部品の知識
 
Takepino LPC1114
Takepino LPC1114Takepino LPC1114
Takepino LPC1114
 
無脳スマートスピーカを 越えレレレのレ
無脳スマートスピーカを 越えレレレのレ無脳スマートスピーカを 越えレレレのレ
無脳スマートスピーカを 越えレレレのレ
 
Common Lisp ユーザへのScheme紹介
Common Lisp ユーザへのScheme紹介Common Lisp ユーザへのScheme紹介
Common Lisp ユーザへのScheme紹介
 
RISC-V User level ISA
RISC-V User level ISARISC-V User level ISA
RISC-V User level ISA
 
大昔のMMU
大昔のMMU大昔のMMU
大昔のMMU
 
Axeai 170421
Axeai 170421Axeai 170421
Axeai 170421
 
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
 
Robot Language and a Tail Recursive Interpreter
Robot Language and a Tail Recursive Interpreter Robot Language and a Tail Recursive Interpreter
Robot Language and a Tail Recursive Interpreter
 
Dataflow140711-a@Kernel/VM北陸1
Dataflow140711-a@Kernel/VM北陸1Dataflow140711-a@Kernel/VM北陸1
Dataflow140711-a@Kernel/VM北陸1
 
Dataflow140711@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1Dataflow140711@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1
 

Mt basic as-os_on_danbot