$30 off During Our Annual Pro Sale. View Details »

むかしの RISC、むかしの Unix

orumin
July 10, 2021

むかしの RISC、むかしの Unix

orumin

July 10, 2021
Tweet

More Decks by orumin

Other Decks in Technology

Transcript

  1. むかしの RISC、むかしの
    むかしの RISC、むかしの
    Unix
    Unix
    orumin (@kotatsu_mi)
    1

    View Slide

  2. Self-introduction
    Self-introduction
    orumin (@kotatsu_mi)
    去年度まで学生してました
    2014 年くらいからずっと unikernel やってた
    社会に魂を売った
    2

    View Slide

  3. RISC のお話 (1/n)
    RISC のお話 (1/n)
    3 . 1

    View Slide

  4. RISC のお話 (1/n)
    RISC のお話 (1/n)
    CPU の ISA の類型
    命令セットアーキテクチャ;Instruction Set Architecture
    CISC v.s. RISC
    3 . 1

    View Slide

  5. RISC のお話 (1/n)
    RISC のお話 (1/n)
    CPU の ISA の類型
    命令セットアーキテクチャ;Instruction Set Architecture
    CISC v.s. RISC
    1981 年ごろ
    Berkley RISC-I ( Prof. David A. Patteson ら)
    MIPS ( Prof. John L. Hennesy ら)
    3 . 1

    View Slide

  6. RISC のお話 (1/n)
    RISC のお話 (1/n)
    CPU の ISA の類型
    命令セットアーキテクチャ;Instruction Set Architecture
    CISC v.s. RISC
    1981 年ごろ
    Berkley RISC-I ( Prof. David A. Patteson ら)
    MIPS ( Prof. John L. Hennesy ら)
    3 . 1

    View Slide

  7. RISC のお話 (1/n)
    RISC のお話 (1/n)
    CPU の ISA の類型
    命令セットアーキテクチャ;Instruction Set Architecture
    CISC v.s. RISC
    1981 年ごろ
    Berkley RISC-I ( Prof. David A. Patteson ら)
    MIPS ( Prof. John L. Hennesy ら)
    3 . 1

    View Slide

  8. RISC のお話 (1/n)
    RISC のお話 (1/n)
    CPU の ISA の類型
    命令セットアーキテクチャ;Instruction Set Architecture
    CISC v.s. RISC
    1981 年ごろ
    Berkley RISC-I ( Prof. David A. Patteson ら)
    MIPS ( Prof. John L. Hennesy ら)
    ACM A.M. Turing Awards, 2017
    3 . 1

    View Slide

  9. RISC のお話 (2/n)
    RISC のお話 (2/n)
    3 . 2

    View Slide

  10. RISC のお話 (2/n)
    RISC のお話 (2/n)
    複雑なアドレッシング、可変長の命令、市場の要求に答え肥大化
    していく命令の数々……
    回路が複雑化し、設計も困難に
    3 . 2

    View Slide

  11. RISC のお話 (2/n)
    RISC のお話 (2/n)
    複雑なアドレッシング、可変長の命令、市場の要求に答え肥大化
    していく命令の数々……
    回路が複雑化し、設計も困難に
    RISC は複雑な命令を用意せず命令長も固定長
    レジスタも用途を固定しないレジスタを大量に用意
    回路がシンプルにしやすい
    3 . 2

    View Slide

  12. RISC のお話 (2/n)
    RISC のお話 (2/n)
    複雑なアドレッシング、可変長の命令、市場の要求に答え肥大化
    していく命令の数々……
    回路が複雑化し、設計も困難に
    RISC は複雑な命令を用意せず命令長も固定長
    レジスタも用途を固定しないレジスタを大量に用意
    回路がシンプルにしやすい
    各企業「もしかしてウチの用途に専用のプロセッサを自前で設計
    できるのでは?」
    3 . 2

    View Slide

  13. RISC のお話 (3/n)
    RISC のお話 (3/n)
    int square(int num)

    {

    return num*num;

    }
    3 . 3

    View Slide

  14. RISC のお話 (3/n)
    RISC のお話 (3/n)
    x86_64
    RISC-V
    push rbp

    mov rbp, rsp

    mov DWORD PTR [rbp-4], edi

    mov eax, DWORD PTR [rbp-4]

    imul eax, eax

    pop rbp

    ret
    addi sp,sp,-32

    sd s0,24(sp)

    addi s0,sp,32

    mv a5,a0
    sw a5,-20(s0)

    lw a5,-20(s0)

    mulw a5,a5,a5

    sext.w a5,a5
    mv a0,a5
    ld s0,24(sp)

    addi sp,sp,32

    jr ra
    3 . 4

    View Slide

  15. マイクロプロセッサの増加
    マイクロプロセッサの増加
    MOS テクノロジー、ザイログ、インテル、モトローラ
    この他マイクロプロセッサを作って売るところが増える
    4

    View Slide

  16. マイクロプロセッサの増加
    マイクロプロセッサの増加
    MOS テクノロジー、ザイログ、インテル、モトローラ
    この他マイクロプロセッサを作って売るところが増える
    4

    View Slide

  17. 例:Acorn
    例:Acorn
    英国で教育用コンピュータを製作
    このために Acorn RISC Machine が生まれる
    紆余曲折を経て現代の Arm® に
    5

    View Slide

  18. 例:MIPS
    例:MIPS
    学術用途に留まらず、
    ベンチャーが立ち上げられ一般に販売
    SGI に買収され 64-bit 化やマルチコア化を達成
    64-bit 化、SGI 買収、マルチコア化という順でした。ご指摘感謝します
    3DCG のレンダリングファームになる UNIX® ワークステーションに
    トイストーリー、ジュラシックパーク……
    ゲームコンソールなどでも採用
    NINTENDO64、PlayStation® シリーズ
    6

    View Slide

  19. 他の著名なもの
    他の著名なもの
    Sun Microsystems, SPARC .. Sun がハードウェア参戦
    IBM, POWER .. 高性能計算機など。後に Mac で PowerPC として採用
    Intel, i860・i960 .. 複雑すぎて失敗した iAPX432 以来の新規 ISA
    無事
    失敗
    AMD, Am29000 .. そこそこ売れてたけれど方針転換を受けて AMD K5
    のマイクロアーキテクチャになったそうです
    Motorola, MC88000 .. m68k と違って売れなくて幻に
    7

    View Slide

  20. 他の著名なもの
    他の著名なもの
    Sun Microsystems, SPARC .. Sun がハードウェア参戦
    IBM, POWER .. 高性能計算機など。後に Mac で PowerPC として採用
    Intel, i860・i960 .. 複雑すぎて失敗した iAPX432 以来の新規 ISA
    無事
    失敗
    AMD, Am29000 .. そこそこ売れてたけれど方針転換を受けて AMD K5
    のマイクロアーキテクチャになったそうです
    Motorola, MC88000 .. m68k と違って売れなくて幻に
    7

    View Slide

  21. RISC
    RISC
    MPU に参戦︕
    8

    View Slide

  22. 今回の話題:ヒューレットパッカード
    今回の話題:ヒューレットパッカード
    元々は計測器などのメーカー
    電卓でも独自のファンを作り根強い人気を獲得
    Apple co-fonder の Mr. Stephen P. Wozniak は元々 HP の技術者だった
    当時とても自由な社風で IBM と対比されていたそうです
    今も?
    9

    View Slide

  23. HP と RISC
    HP と RISC
    例に漏れず独自プロセッサ開発に乗り出した
    その名も PA-RISC
    HP は 90 年代には Intel、Microsoft と協力して Itanium® の開発へ動
    き出すので PA-RISC は使われなくなった
    Itanium も無事失敗。
    10 . 1

    View Slide

  24. HP と RISC
    HP と RISC
    例に漏れず独自プロセッサ開発に乗り出した
    その名も PA-RISC
    HP は 90 年代には Intel、Microsoft と協力して Itanium® の開発へ動
    き出すので PA-RISC は使われなくなった
    Itanium も無事失敗。
    10 . 1

    View Slide

  25. PA-RISC (1/n)
    PA-RISC (1/n)
    ISA マニュアル
    さすが kernel.org (Linux)
    https://parisc.wiki.kernel.org/images-parisc/6/68/Pa11_acd.pdf
    10 . 2

    View Slide

  26. PA-RISC (2/n)
    PA-RISC (2/n)
    32-bit
    汎用レジスタ 32 本 (GR 0..31)
    シャドウレジスタ、スペースレジスタ、コントロールレジスタ、コプロセ
    ッサレジスタなども存在
    スペースレジスタは仮想アドレス空間を identify するのに利用
    BE/LE どっちも使える
    権限レベルが 0, 1, 1.5, 2 と用意されている
    10 . 3

    View Slide

  27. PA-RISC (3/n)
    PA-RISC (3/n)
    .LEVEL 1.1

    .SPACE $TEXT$,SORT=8

    .SUBSPA $CODE$,QUAD=0,ALIGN=4,ACCESS=0x2c,CODE_ONLY,SORT=24

    square

    .PROC

    .CALLINFO FRAME=0,ARGS_SAVED

    .ENTRY

    STW %r26, -36(%r30)

    LDW -36(%r30), %r26

    LDW -36(%r30), %r26

    LDIL L'$$mulI, %r31

    .CALL

    BE,L R'$$mulI(%sr4,%r31), %r31

    NOP

    10 . 4

    View Slide

  28. PA-RISC (3/n)
    PA-RISC (3/n)
    10 . 5

    View Slide

  29. あ、
    あ、
    あの
    11

    View Slide

  30. ところで……
    ところで……
    PA-RISC 触ってみたくない……?
    12

    View Slide

  31. HP
    HP
    13

    View Slide

  32. HP
    HP
    計測器メーカー
    13

    View Slide

  33. HP
    HP
    計測器メーカー
    オシロスコープやロジックアナライザや……。
    13

    View Slide

  34. HP
    HP
    計測器メーカー
    オシロスコープやロジックアナライザや……。
    ロジックアナライザに PA-RISC が載っているらしい……?
    13

    View Slide

  35. ということで
    ということで
    手に入れちゃいました
    14

    View Slide

  36. 邪魔
    幅狭めだけど高さが 2U マシンかと思った……
    実測したら 425(w)x200(h)x500(d) [mm] でした
    15

    View Slide

  37. 書斎の床がかなり埋まりました。
    16

    View Slide

  38. うるさい
    うるさい
    ラックサーバーみたいな音してる
    HP 16702A booting
    HP 16702A booting
    17

    View Slide

  39. ロジアナ
    ロジアナ
    PS/2 マウスを接続していると自動で X Window System の
    セッショ
    ンが起動
    18 . 1

    View Slide

  40. オシロ
    オシロ
    18 . 2

    View Slide

  41. つまり
    つまり
    X が起動しているのが気になりますが、普通に計測機器です
    しかしここで を押すと?
    19

    View Slide

  42. おまえ
    おまえ
    20 . 1

    View Slide

  43. おまえ…
    おまえ…
    20 . 2

    View Slide

  44. おまえ……
    おまえ……
    20 . 3

    View Slide

  45. おまえ…………!
    おまえ…………!
    20 . 4

    View Slide

  46. ブートシーケンス
    ブートシーケンス
    Processor Depend Code (PDC) がまず起動
    ESC 連打してると ISL のプロンプトに落ちることができる
    Initial System Loader (ISL) が (デバイスパス)/stand/vmunix をロ
    ード、起動
    デバイスパスはもちろん SCSI など (SATA?NVMe?ナニソレ)
    Unix が起動!!!
    21

    View Slide

  47. HP-UX
    HP-UX
    HP による SystemV Unix fork
    HP 16702A に載っているのは
    UNIX 98 規格相当っぽい
    関数プロトタイプを ANSI 方式
    で宣言したら怒られる
    cc の代わりに c89 使うと解決
    ちゃんと tar(1) だけじゃなく
    て pax(1) 載っててえらい
    22

    View Slide

  48. ファイルシステム
    ファイルシステム
    LVM + HFS
    HFS は High-performance FS
    UFS fork
    意外と現代的?
    Mac のアレは無関係
    デフォルトで NFSd が起動してる (!!?!?!?!)
    23

    View Slide

  49. これって
    これって
    計測機器じゃなくてただの Unix ワークステーションでは???
    Ethernet も 10Base-T が生えてるよ!
    なんか知らんがネスケもおる
    24

    View Slide

  50. ライブラリ
    ライブラリ
    /usr/include をみてみる
    25

    View Slide

  51. タスクリスト
    タスクリスト
    PID 0 として swapper が鎮座
    「あっこれ Lions 本で勉強した
    やつだ!」
    26

    View Slide

  52. まとめ
    まとめ
    ロジアナかとおもった?ワークステーションでした!
    PA-RISC も HP-UX も案外簡単に遊べる!
    たぶん vmunix 差し替えるだけで自作 OS も起動できる!
    27

    View Slide

  53. メモ
    メモ
    HP 16702A の root のデフォルトパスワードは「uh,uhuh」らしい。
    ethernet の I/F name は lan0
    28

    View Slide

  54. 参考資料
    参考資料
    ブートシーケンス
    PA-RISC on QEMU
    http://h10032.www1.hp.com/ctg/Manual/c00874643.pdf
    https://parisc.wiki.kernel.org/index.php/Qemu
    29

    View Slide