トップ «前の日記(2014-05-23) 最新 次の日記(2014-06-01)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2014-05-27

_ カーネルVM

まずカタカナ混じってるので kernelvm とかでぐぐっても出にくいと覚えておくと良い

まあありきたりだけど刺激になる感じでよかった。

個人的に ARM64 の話が聞けたのがまず良かった。最近仕事でぐぐっててよく参照する個人ブログトップ3の人ってのがまた。

http://d.hatena.ne.jp/embedded/

ちなみに残り二人は隣に座ってた人と自分自身なんだが。

ARM64 は x64 同様昔のしがらみが減っていて…みたいなのを twitter で見たけど、 x86 => x64 より diff がでかいんじゃないかなぁとか。あと、今 CPU イチから作るとどうなるのかなぁとか気になる。 IA64 はそういう試みだったと思うんだけど、商業的に失敗しちゃったからなあ。そういうのでいうと Mill ってのが色々おかしくて面白い気がする。

http://millcomputing.com/topic/introduction-to-the-mill-cpu-programming-model-2/

レジスタが無い (SSA ぽい感じ) とか stack が別れてるとか。

あとは、 Rust の発表と qemu の発表が若いのに色々知っててすごいなぁとか思った。特に qemu の話は普通に symbolic execution とか知らなかったのでなるほどなぁとか思った。

あと、 qemu の TCG ぶんまわす部分は、 valgrind がわりと似てると思う。どっちが読みやすいかはよく知らない。 qemu は一度 TCG まわりいじって遊んだことあるんだけど、あまり読みにくいとは感じなかったのは、運がいい部分だけ触ってたか、単に相性のいいコードなのか、それか僕が見た時から大幅に変わってるか、かな。相性いい説は普通にありえるな、 TCC あんま抵抗ないし。

ネットワークの話がなんか一番おかしい気がしたけど、ただなんかあまりわからない話なのが残念。どうもネットワークは勉強する意欲がわかない

話的には Unicode の話も面白かったな。ていうか m17n とかの話はただでさえ、だいたい悲惨で面白いのに、話し方も面白いとかなりのコンテンツ力。

あとは PDP11 はみんな感心してたけど、どのくらい大変なのかいまいちピンと来なかった。というのは ICFPC とかで作るオモチャ CPU とどのくらい大変度に差があるのかな…ということでちょっと眺めてみた

https://github.com/kanorimon/pdp11

いやまあこれいきなり書くのはまぁ大変かな… getMnemonic がすごい。

日頃見てるドメイン的に syscall のとことか見たくなるんだけど、 fork で FD 閉じてるのはこれいいのかな。あと brk がなんもしてないけど色々動くもんだな。

あとだらだらしてる時に学生の人に学生ですかと話しかけられてみたり。社会人に見えない風体をしてるのは自覚してるので、似たような年代だと推測されたんでないかと思うんだけど、現実には15歳年上だった。

(00:58)

_ そういえば

http://www.ioccc.org/1984/mullender.c

これを実行してみたいな。コンパイラ無いけど、たぶん a.out 作ればいい感じだよな。

つーことで適当にいじったら実行できた!

       ORG 0
       dw  0x108               ; NMAGIC
       dw  0xa2                ; text size
       dw  0                   ; data size
       dw  0x100               ; bss size
       dw  0
       dw  0
       dw  0
       dw  0
       dw  277, 2525, -4129, 25, 0, 477, 1019, 0xbef, 0, 12800
       dw   -113, 21119, 0x52d7, -1006, -7151, 0, 0x4bc, 8196
       dw  14880, 10541, 2056, 2056, 4548, 3044, -6716, 0x9
       dw  4407, 6, 5568, 1, -30460, 0, 0x9, 5570, 512, -30419
       dw  0x7e82, 496, 6, 0, 4, 1280, 15, 0, 4, 1280, 4, 0
       dw  4, 0, 0, 0, 0x8, 0, 4, 0, ',', 0, 12, 0, 4, 0, '#'
       dw  0, 16, 0, 4, 0, 30, 0, 22, 0, 0x6176, 120, 25712
       dw  'p', 29811, 'r', 29303, 29801, 'e'

nasm で作れる。 8進数を nasm は知らないみたいだったんで、適当に10進数に変換してある。

" :-)...." をひたすら出力するプログラムだったみたいだ。長年の謎が解けたので PDP-11 インタプリタには感謝しないと…ついでに出力できたアセンブリコード:

  0:   0115            br       0x2c
  2:   09dd            jsr      pc, *(r5)+
  4:   efdf 0019 0000  sub      *$0x21, *$0
  a:   01dd            br       0xffffffc6
  c:   03fb            beq      0x4
  e:   0bef            tst      *-(pc)
 10:   0000            .word    0
 12:   3200            bit      (r0), r0
 14:   ff8f            setd     
 16:   527f 52d7       bis      (r1), *$0x52f1
 1a:   fc12            setd     
 1c:   e411            sub      (r0)+, (r1)+
 1e:   0000            .word    0
 20:   04bc            bge      0xffffff9a
 22:   2004            cmp      r0, r4
 24:   3a20            bit      *-(r0), -(r0)
 26:   292d            cmp      -(r4), *-(r5)
 28:   0808            jsr      r0, (r0)
 2a:   0808            jsr      r0, (r0)
 2c:   11c4            mov      pc, r4
 2e:   0be4            tst      -(r4)
 30:   e5c4 0009       sub      $11, r4
 34:   1137 0006       mov      r4, 0x3e
 38:   15c0 0001       mov      $1, r0
 3c:   8904            sys      4
 3e:   0000            .word    0
 40:   0009            .word    11
 42:   15c2 0200       mov      $1000, r2
 46:   892d            sys      5
 48:   7e82            sob      r2, 0x46
 4a:   01f0            br       0x2c
 4c:   0006            rtt      
 4e:   0000            .word    0
 50:   0004            .word    4
 52:   0500            blt      0x54
 54:   000f            .word    17
 56:   0000            .word    0
 58:   0004            .word    4
 5a:   0500            blt      0x5c
 5c:   0004            .word    4
 5e:   0000            .word    0
 60:   0004            .word    4
 62:   0000            .word    0
 64:   0000            .word    0
 66:   0000            .word    0
 68:   0008            .word    10
 6a:   0000            .word    0
 6c:   0004            .word    4
 6e:   0000            .word    0
 70:   002c            .word    54
 72:   0000            .word    0
 74:   000c            .word    14
 76:   0000            .word    0
 78:   0004            .word    4
 7a:   0000            .word    0
 7c:   0023            .word    43
 7e:   0000            .word    0
 80:   0010            .word    20
 82:   0000            .word    0
 84:   0004            .word    4
 86:   0000            .word    0
 88:   001e            .word    36
 8a:   0000            .word    0
 8c:   0016            .word    26
 8e:   0000            .word    0
 90:   6176 0078       add      r5, 170(sp)
 94:   6470 0070       add      (r1)+, 160(r0)
 98:   7473 0072       ash      162(r3), r1
 9c:   7277 7469       div      0x7509, r1
 a0:   0065            jmp      -(r5)

(01:59)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2014年
5月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h