一人一党党

一人一人の、一人一人による、一人一人のための政治制度を!

#工学

Inferno - MMU無しでメモリ保護

この記事はPlan 9 Advent Calendar 2019 - Qiitahttps://qiita.com/advent-calendar/2019/plan9の21日目のために書いた。 Plan 9由来なら何でもどうぞとの事なので、このOSから派生した特異なOSについて触れてみた。Inferno (オペレーティングシステム)https…

開発ツール開発と、独自命令セット

この記事はアセンブラ Advent Calendar 2019 - Qiitahttps://qiita.com/advent-calendar/2019/asmの9日目のために書いた。 しかし、カテゴリが「OS」になっていて、他のカレンダーはWindows Subsystem for Linuxとか何とかBSDとかPlan 9とかを題材にしている…

累積レジスタ割付による仮想マシンの高速化

この記事は言語実装 Advent Calendar 2019 - Qiitahttps://qiita.com/advent-calendar/2019/lang_devの5日目のために書いた。 言語実装に興味のある人ならコンパイラにも興味があるはずで、コンパイラに興味のある人なら、一度はコンパイラを実装しようとし…

Windows10のライセンス認証をせずに20年間放置した結果

20年くらい後の予言ではない。 2年くらい前の記憶。 私はLinux使いであり、主に使っているパソコンもLinuxを入れているが、テストプログラム用などのためにWindowsを入れた仮想マシンも用意している。 現在はWindows10だ。 当然、Windowsの本格使用は考えて…

フフ、OSの性能の差が、人気の差と逆であることを教えてやる

備忘録。 本の虫: C++標準化委員会の10月の興味深い文書 https://cpplover.blogspot.com/2018/10/c10.html 「 不自由で低能なWindowsはプロセスの作成もスレッドの作成も遅いし、ましてやファイルの作成に至っては、i7でNVMeのSSDを積む高性能なコンピュータ…

Register-machine can shift graph-coloring from JIT to AOT

There are repeated holy wars at byte-code virtual machine interpreters - stack-machine vs register-machine. One of the benefits of stack-machines is ease of allocating host machine's register at JIT compilation. There is a decent assumptio…

師を継ぐ者 - オープンソースを避けるべき、たった一つの理由

あるいは、マイクロソフトに貢ぐべき、たった一つの理由。 オープンソースのOSであるLinuxを自分のパソコンのメインOSにして10年以上、「タコ」を「初心者」の意味だと、私は勘違いしていた。 前書き - 賢い質問のしかた http://www.ranvis.com/articles/sma…

マルチソケット用OSがAMD ryzen7には求められる

ryzen7は8つのCPUコアを持ちL3キャッシュ容量は16Mバイトと唱われている。 ダイ写真をみるとCPU4コアとL3キャッシュ8Mバイトをまとめたグループが二つ載っている。 ならば、この二つのグループ間での通信は遅い恐れがある。 例えば、片方のグループのCPUコア…

Variable length instruction ISA has almost no benefit

When you build a micro-processor which achives good code density, you tend to choose a ISA(instruction set architecture) which instruction length is short. Likewise, you want to make each instruction have same length which demands less amo…

Try Implementing threaded code interpreters by C language without tail-merging

When we want to write a fast interpreter, Threaded code http://en.wikipedia.org/wiki/Threaded_code is a important technic. As Mike Pall(auther of Luajit http://luajit.org ) said, implementing threaded code is difficult when we use a C lang…

RISC-Vは高速な命令セットとして設計し損ねている

RISC-V http://riscv.org/ は高速なCPU向けの命令セットを謳っていてる。 例えば、即値のデコード。 RISCなので各命令の位置はアラインメントされていて、ジャンプ先アドレスの最下位ビット(least significant bit, 以下lsb)は0であることが分かりきっている…

メディアのセクタと一致したクラスタを持つFATフォーマット

海外では知られているようだが、 Fixing sluggish write performance of USB flash (thumb) drives | Old Computer Junk http://blog.oldcomputerjunk.net/2012/fixing-sluggish-write-performance-of-usb-flash-thumb-drives/ 国内では AFTドライブをXpやDO…

間接スレッディングは速い

Speed of various interpreter dispatch techniques V2 http://www.complang.tuwien.ac.at/forth/threading/ で配布されている簡易ベンチマークをgcc-4.8.4でコンパイルすると、最適化が効き過ぎてsubroutine-threadingのコードが殆ど削除されていた。 そこ…

関数型言語の純粋性は、自動車のシートベルトである

関数型言語のウソとホント - Qiita http://qiita.com/hiruberuto/items/26a813ab2b188ca39019 が派手に荒れているけど、そのサイトのアカウントとるのが面倒くさいから、こっちに書く。 そのサイトの参考文献に挙げられている なぜ関数プログラミングは重要…

androidよ、お前もか! 使用許諾書読破地獄

最近なんとか、コンピュータシステムで食う会社に潜り込んだ。 しかし、Windowsアプリの悉くが、XX社のライセンスへの同意を一々尋ねてくる。 ウイルスバスターを入れたらノートンのライセンス。 富士通のプリンタドライバをいれたら、富士通のドライバライ…