一人一党党

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

プログラミング

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日目のために書いた。 言語実装に興味のある人ならコンパイラにも興味があるはずで、コンパイラに興味のある人なら、一度はコンパイラを実装しようとし…

メルセンヌ素数でxorshift疑似乱数の軽量化

とってもお手軽な割にそこそこ高速で高品質な疑似乱数生成アルゴリズム「xorshift」。 32bit版などの実装では、乱数生成一回あたりxor演算とshift演算を3組、計6回演算命令を使わねばならない。 ところが64bit版実装では、xorとshiftの組を2組しか使わずとも…

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

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

わたしがprintf()デバッグをする理由

現在、私はprintfデバッグに頼っているのに、 わたしがprintf()デバッグをする理由 http://freak-da.hatenablog.com/entry/20090325/p1 が半分どころか3/4ネタのようなので、真面目に言い訳してみた。 Coders at Work プログラミングの技をめぐる探求 | Pete…

フフ、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…

C言語を学ぶ時に人工知能から入門することがなぜ合理的なのか

個人的な事情により、コンピュータの基礎知識を得る方法を探していたところ、 プログラミングを学ぶ時に人工知能から入門することがなぜ合理的なのか - WirelessWire News(ワイヤレスワイヤーニュース): https://wirelesswire.jp/2017/08/60921/ を見つけ…

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

あるいは、マイクロソフトに貢ぐべき、たった一つの理由。 オープンソースの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…

それで広告は動き出す - dilloの世界

最近、立て続けにadobe flash プラグインのセキュリティホールが発覚したり、ブラウザのページキャッシュ設定ではハードディスクへのアクセスを無くせない事にイライラして、いつも使っている seamonkey ウェブブラウザ - Wikipedia http://ja.wikipedia.org…

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

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

GNU CとUNIXシステムコールだけで実行時アセンブラ

自分の持っているAndroid携帯端末にC言語コンパイラを入れようとして挫折した。 アプリケーションのクロスコンパイルは難しくないが、コンパイラ自身のクロスコンパイルは難しい。 アセンブラとリンカのクロスコンパイルはもう少し簡単かもしれない。 しかし…

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

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

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

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