2018-01-01から1年間の記事一覧

RISC-VのFENCE.I命令を調べる

rv32i基本命令をざっと眺めていて、この命令だけなんだろう?と思ったので調査します。 RISC-V specification v2.2の2.7 Memory Modelセクションに記載があります。 hardware thread間でのメモリ操作命令実行順序を保証するための明示的な命令がFENCE命令、…

2018年に読んだ本をまとめよう

これ、毎年やらないと忘れちゃうので備忘録がてら。 大雑把なジャンル別にまとめます。 書評を書く気力が今はないので、羅列だけです。 システムプログラミング、低レイヤ技術 今年の後半あたりから、システムプログラミングや低レイヤ技術に注力しはじめま…

2018年の振り返り

今年もそろそろ終わろうとしているので、2018年に学んだことをまとめておきます。 今年は、下半期での学びが濃かったです。 分岐点は、TCFMに出合ったことと、仕事のプロジェクトを変えたこと、ですね。 その中で、自分はやはり低レイヤの技術が好きなんだ、…

SDSoC Example catalog(1)~Array Partitioning~

年内にFPGAの記事を1本書いておきたかったので、詳しくなりたいSDSoCについて書きます。 今はノリで使っていて、基礎ができていないので、1歩ずつやります。 何からやろうか、と考えたところ、私は具体例から物事を理解することが得意なので、Xilinx SDSoC E…

LLVM Tutorialをやっている(2)~7章まで~

7. Kaleidoscope: Extending the Language: Mutable Variables — LLVM 8 documentation tomo-wait-for-it-yuki.hatenablog.com 前回に引き続き、LLVMのTutorial Kaleidoscopeをやっています。 メモを残しながらやっていないので、あまりインフォーマティブな…

LLVM Tutorialをやっている(1)~4章途中~

LLVM Tutorial: Table of Contents — LLVM 8 documentation コンパイラを勉強する機運が高まっているので、ずっとやりたかったLLVMに手を出しています。 対象とする言語仕様としては、Go言語でつくるインタプリタより、かなり簡素なものです。 コード(LLVM I…

Rustで書かれたVMM firecrackerを読もう!(5)~API Server初期化再訪~

github.com tomo-wait-for-it-yuki.hatenablog.com 前回は、HTTP API Serverの初期化処理を読んでいました。 少しhyperを勉強して、勘違いしていた部分も発覚したので、分かったことを改めて書きます。分からんところは分からんですが。 bind_and_run src/ma…

子育てという不確実性に対処するために、自分という不確実性を減らしておこう!

子育てエンジニア Advent Calendar 2018 17日目の記事です。 adventar.org 私は、1歳8か月の息子がいます。 はじめに 皆様ご存知かと思いますが、今年、素晴らしい本が発売されました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリフ…

Rustで書かれたVMM firecrackerを読もう!(4)~API Server初期化~

github.com tomo-wait-for-it-yuki.hatenablog.com 前回は、Vmm::new()を読み、VMMの初期化が大体わかった気になりました。今回はAPI Serverの初期化を見ていきます。 tokioが絡む部分は、非同期処理初心者なので間違っている可能性があります。 ApiServer::…

Rustで書かれたVMM firecrackerを読もう!(3)~mainのテストとVmm::new()~

github.com tomo-wait-for-it-yuki.hatenablog.com 前回は、src/main.rsのmain関数を読みました。そういえば、main関数のテストを紹介しようと思って忘れていたので、今回書きます。 mainのテスト src/main.rsに含まれるユニットテストです。まずは、ヘルパ…

Rustで書かれたVMM firecrackerを読もう!(2)~API ServerとVMMの初期化~

github.com tomo-wait-for-it-yuki.hatenablog.com 前回は、main関数でLOGGERのオブジェクトを作るところまで見ました。 設計を知る 少し公式ドキュメントを読んで、知識を仕入れました。 firecrackerは、KVMを使ってVMを作成します。VMMにつき1つのゲストOS…

Rustで書かれたVMM firecrackerを読もう!(1)

最高の餌が与えられたので、少しずつ時間を取ってコード解析していこうと思います。 github.com firecracker build 何はともあれ、ビルドしてみましょう。 リリースビルドするときは、--releaseをつければ良いみたいです。 とりあえず、debugビルドします。 …

Ethernetのしくみとハードウェア設計技法―プロトコルの詳細からネットワーク対応機器の作成まで (TECHI―Bus Interface)を読んだ

Ethernetのしくみとハードウェア設計技法―プロトコルの詳細からネットワーク対応機器の作成まで (TECHI―Bus Interface)作者: インターフェース編集部出版社/メーカー: CQ出版発売日: 2006/07/01メディア: 単行本購入: 17人 クリック: 372回この商品を含むブ…

エンジニアのためのマネジメントキャリアパス

最近、色々キャリアパスを考える機会がありました。 今後のキャリアにどのような選択肢があるのか、を知りたくて手に取ってみました。 エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド作者: Camille Four…

Rust The Embedonomiconをやる④

tomo-wait-for-it-yuki.hatenablog.com 続きです。 最後の7. Global singletonsをやっていきます。 Global singletons ログ機能をグローバルなオブジェクト経由で実現するように修正します。 log!(logger, "String")で使用していたログmacroを、log!("String…

Rust The Embedonomiconをやる③

Rust The Embedonomiconの続きです。 tomo-wait-for-it-yuki.hatenablog.com 4. Assembly on stableからやっていきます。 Assembly on stable - The Embedonomicon Assembly on stable Rustのインラインアセンブリも自由形式アセンブリもnightlyの機能です。…

Rust The Embedonomiconをやる②

tomo-wait-for-it-yuki.hatenablog.com Rust The Embedonomiconの続きです。 前回記事では、下記2つの項目を実施しました。 The smallest #![no_std] program Memory layout A main interfaceから続きをやっていきます。 A main interface まず、binary crat…

Rust The Embedonomiconをやる①

良いものを発見したので、やってみましょう。 Preface - The Embedonomicon ターゲットはCortex-Mなので、一通り終わったら、RISC-Vをターゲットにやってみます。 Preface 次の3つのことを習得できるようです。 #[no_std]アプリケーションのビルド memory la…

cargoでリンカを指定して独自リンカスクリプトを使う方法

Rust × RISC-Vでプログラミングをしているのですが、cargoだけで思い通りのリンクができるようになりました。 地味にやり方が見つからなかったのですが、絶対どこかには書かれていると思うんですよね。ご存知の方がいらっしゃいましたらご連絡下さい。 Rust…

RustのtargetにRISC-Vを指定するとspin crateが使えない!?

RustでRISC-Vをターゲットに試行錯誤しています。 試行錯誤の途中経過ですので、情報や解釈が誤っている可能性があります。 先日、Mutexを使うためにspin crateを使おうとしました。 mvdnes.github.io ところが、次のようなコンパイルエラーが発生しています…

RustでRISC-Vバイナリ生成 2018/10版

近いうちにstableで使えるようになるはずです(8月にnightlyに入ったので、12週間後、来週あたり?にstableになるはずです)。 ですが、今必要なので、今確認できた方法を書きます。 下の環境で確認しています。 Ubuntu16.04@VirtualBox rustc 1.31.0-nightly …

読了「UEFI読本 基礎編 Linux編」「Ryzen SEGV Battle」

booth.pm EFI stubでLinuxを起動するシーケンスを、ソースコードレベルで解説してくれている本です。 何も知らない人がこの本を手に取ることはないでしょうが、何らかのOSのブートシーケンスをある程度理解している必要があるかと思います。 最近、UEFIブー…

読了「超苦労したFPGAの薄い本」

超苦労したFPGAの薄い本(Yocto Projectと立ち上げ編) 超苦労したFPGAの薄い本(高位合成とリコンフィグ編) 技術書典5では、上記2冊を1冊にまとめた本が出店されていました。 まず、初めに、物理的に薄くないです。160ページあります。 内容も薄くない…

Go言語でつくるインタプリタの写経完

ここ2~3ヶ月、twitterのTL上で言語処理系が話題が多かったので、言語処理系入門として写経しました。 言語処理系の流れを、テスト駆動で実装しながら理解できる良書です。 言語処理系書く場合、理論を学ぶことが必要だと感じました。 また、テストを足掛か…

OSSライセンスの教科書

OSSライセンスの教科書作者: 上田理,岩井久美子出版社/メーカー: 技術評論社発売日: 2018/08/23メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 巷での評判が良かったので読んでみました。 結論から言うと、第1部の基本編は、網羅率が高…