1. 細々とした予備知識 1.1 Qemuのデバイスエミュレーション 1.2 QemuのCPUエミュレーション 1.3 Qemuのスレッド 2. 追加のI/OスレッドとAioContext 2.1 追加のI/Oスレッド 2.2 AioContext 2.3 Big Qemu Lock 3. AioContextの各種イベント処理 3.1 AioHandler 3.2 event_notifier 3.3 タイマー、Bottom half 3.5 スレッドプール 執筆者 : 箕浦 真 こういう 仕事をしていると、ときどきQemuの仕組みや内部動作をお客様に説明する必要があることがあるが、そういう時に「Qemuの〜についてはここを見てね」と言えるような文書があるといいなぁと思って自分で作ってみることにした。 1. 細々とした予備知識 1.1 Qemuのデバイスエミュレーション Qemuはコンピ
第641回では「LXDとmicrok8sでシングルサーバーをKubernetesクラスターにする」と題して、より高機能になったmicrok8sについて紹介しました。microk8sで構築したKubernetesがあれば、気軽にたくさんのCPUコアを使ってさまざまなワークロードを動かし、部屋を暖められます。でも、待ってください。そのサーバーにはもっと便利な熱源がありませんか? そうGPUですね。本格的に寒くなる前に、Kubernetes環境からもGPUを使えるようにしましょう。 ホスト側でGPUパススルーの準備 第641回ではLXDの仮想マシンインスタンスの上にmicrok8sをインストールしました。つまりホストマシンのGPUを使うには、LXDの仮想マシンの中からGPUにアクセスできなくてはなりません[1]。コンテナの場合、第532回の「LXDのコンテナからGPUを利用する」などで手順を紹
Screenshot of Pong implemented in CHIP-8 Telmac 1800 running CHIP-8 game Space Intercept (Joseph Weisbecker, 1978) CHIP-8 is an interpreted programming language, developed by Joseph Weisbecker on his 1802 microprocessor. It was initially used on the COSMAC VIP and Telmac 1800, which were 8-bit microcomputers made in the mid-1970s. CHIP-8 was designed to be easy to program for, as well as using les
WebAssemblyをあらゆるプラットフォームでセキュアに実行できるようにする「Bytecode Alliance」発足。インテル、Mozilla、Red Hatなど WebAssemblyは、Webブラウザ上でネイティブコードのように高速に実行できるバイナリフォーマットして策定された標準仕様で、すでにChromeやFirefox、Edge、Safariなどの主要ブラウザでサポートが実現されています。 このWebAssemblyをWebブラウザだけでなく、デスクトップPCやサーバ、IoTデバイスなどあらゆる環境で、セキュアに実行することを目指した団体「Bytecode Alliance」が発足しました。 Bytecode Allianceの創立メンバーは、インテル、Mozilla、Red Hat、Fastlyの4社。 前述したように、WebAssemblyはもともと、Webブラウザで実行
Hermes is a JavaScript engine optimized for fast start-up of React Native apps. It features ahead-of-time static optimization and compact bytecode. If you're only interested in using pre-built Hermes in a new or existing React Native app, you do not need to follow this guide or have direct access to the Hermes source. Instead, just follow these instructions to enable Hermes. Noted that each Hermes
κeenです。遅刻してしまいましたがこのエントリーは 言語実装 Advent Calendar 2018 1日目の記事です。 最近私の観測範囲内でJITが流行っているのですが一口にJITと言っても色々あるよなーと思ったので私がJITについて知っていることをグダクダ話します。 このブログでも何度がJITや周辺技術について取り上げてますが話の流れがスムーズになるので最初から説明していきます。 2018-12-03: 加筆修正しました。差分はこちら JITって? Just in Time(コンパイル)のことで、日本語にすると「間に合ってコンパイル」になりますかね。 インタプリタの高速化テクニックの1つです。 最初はインタプリタのようにコードをコンパイルせずプロセスが起動しますが、メソッドを実行するまでにはメソッドをコンパイルして、ネイティブコードで実行する方式です。 本来ならJITはこのような意
AN ABSTRACT PROLOG INSTRUCTION SET (D.Warrenの抽象Prolog命令セット, WAM) Technical Note 309 Oct 1983 By: David H.D.Warren, Computer Scientist Artificial lntelligence Center Computer Science and Technology Division SRI Project 4776 Client: Digital Equipment Corporation Open Publication. Release of lnformation. 日本語訳: JAN/07/2010 last update: OCT/21/2010 竹岡尚三、安達彰典、林奉行、湯浅信吾、小宮山敦史、森下耕平 和訳について この文書は、Prologコンパイラ
Jikes RVM Home Jikes RVM (Research Virtual Machine) provides a flexible open testbed to prototype virtual machine technologies and experiment with a large variety of design alternatives. The system is licensed under an OSI approved license. Jikes RVM runs on many platforms and advances the state-of-the-art of virtual machine technologies for dynamic compilation, adaptive optimization, garbage coll
VirtualBox が 3.x の頃は、標準の VDI 形式の仮想ディスクを拡張しようと思っても VirtualBox 単体では不可能で、VMDK 形式に変換してから他のツールでサイズを変更する等手間がかかったが、最新の 4.0.x 系 (4.0.12 で確認) では VBoxManage コマンドが強化され、modifyhd サブ・コマンドに追加されたオプション "--resize" で拡張できるようになっている。 ところが先日、VirtualBox 上の仮想マシン (以下 VM) の仮想ディスクを拡張する機会が訪れたので同コマンドを使ってみたところ、 > VBoxManage modifyhd <ORIGINAL_VDI> --resize <NEW_SIZE> 0%... Progress state: VBOX_E_NOT_SUPPORTED VBoxManage: error:
■ [ruby][rails] Hamlを越えるシンプルさを実現したテンプレートエンジン、Slim 今日から始まるRuby Advent Calendar jp: 2010参加記事です。 http://slim-lang.com/ Rails界隈ではHTML(ERB)よりシンプルなテンプレートエンジンとしてHamlが人気ですが、SlimはHamlからさらに記号を減らしたようなテンプレートエンジンです。 ! doctype html html head title Hello Slim body h1 Hello, Slim! div id="main" | これはSlimのサンプルです。 | シンプルでしょう? p.note | Hamlのように「#」や「.」を使うこともできます。 Rails 3で使う場合、 gem 'slim', :require => 'slim/rails' と書く
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く