並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 437件

新着順 人気順

機械語の検索結果81 - 120 件 / 437件

  • COM(Component Object Model)は古い技術だが、いまだに現役 あらためて解説する (1/2)

    前回解説したプレビューハンドラなど(「エクスプローラーのプレビューウィンドウについて解説する」)、エクスプローラーの拡張機能は、COM(Component Object Model)を使って作られている。 COMは、すでにWindowsでは主流ではなく、後継として.NET Frameworkが登場している。しかし、COMは廃止されたわけではなく、いまだにWindowsのさまざまな場所で使われ続けている。というのも、Windows XPまでは、WindowsのOSの主要オブジェクト技術であり、Windows自身がCOMで構築されていたと言っていいほど利用されていたからである。 エクスプローラーや関連技術でいまだにCOMが使われているのは、その名残でもある。長らく続けてきた本連載だが、COMについては解説するタイミングを失っていた。ちょうどいい機会なので、今回はCOMを簡単に解説してみたい。

      COM(Component Object Model)は古い技術だが、いまだに現役 あらためて解説する (1/2)
    • Rubyでできる!RISC-Vシミュレータの作りかた 〜 From 4649 To HELLO WORLD 〜 - ESM アジャイル事業部 開発者ブログ

      HELLO WORLD〜 はじめに こんにちは、永和システムマネジメントの自作CPUおじさん、はたけやまたかし( @htkymtks )です。 今回はRubyを使った小さなRISC-Vシミュレータの作り方をご紹介します(以前もシミュレータの記事を書いたのですが、シミュレータに大幅に手を入れたので、それに対応したHDリマスター版です) リポジトリ (今回ご紹介するシミュレータのリポジトリはこちら) thata / rv32sim https://github.com/thata/rv32sim RISC-Vとは RISC-VはCPUの命令セットアーキテクチャ(ISA)のひとつで、使用料のかからないオープンソースライセンスで提供されていることや、命令セットの美しさから最近注目を集めています。 仕様 RISC-Vの仕様にはワード幅(32ビット、64ビット)や浮動小数点数サポートの有無など、いくつ

        Rubyでできる!RISC-Vシミュレータの作りかた 〜 From 4649 To HELLO WORLD 〜 - ESM アジャイル事業部 開発者ブログ
      • Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」

        Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。monochrome氏は、Ruby処理系「monoruby」について発表しました。 高速な実行が可能なRuby処理系「monoruby」 monochrome氏(以下、monochrome):monochromeといいます。今日は「機械語で書くRuby処理系のその後」ということで、前回の発表のその後を報告いたします。 自己紹介です。monochromeといいます。(スライドを示して)Twitterはこれです。最近、Twitterは治安が悪いので、Mastodonにアカウントを作りました。RustでRubyの処理系を作っています。プログラミング処理系、言語処理系が好きな人の集まりのSlackとか、最近はこの「Zulip」というアプリに移動して、こ

          Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」
        • 20H1とともに正式に来るWindows Subsystem for Linux 2の実力を見る (1/2)

          そろそろ「May 2020 Update」こと、Windows 10 Ver.2004(以下コード名で20H1)が最終版になる。とりあえず、完成したよ的なアナウンスがあった。 20H1における最大の変更点は、Linuxカーネルを使うWSL2(Windows Subsystem for Linux 2)だ。そこで今回は、WSL1とWSL2を比較してみることにした。WSL2ではLinuxカーネルが仮想HDD上でネイティブのファイルシステムを動作させる。このため、NTFSの上でLinuxのファイルシステムをエミュレートしていたWSL1のVolFs(あるいはlxfx)に比較してファイル処理などが高速化するという。 その一方で、WSL2では仮想マシン環境でLinuxカーネルを起動させるためオーバーヘッドがある。また、WSL2からNTFS側をアクセスするには、9Pと呼ばれるネットワークプロトコルが用い

            20H1とともに正式に来るWindows Subsystem for Linux 2の実力を見る (1/2)
          • [初心者]オブジェクト指向でなぜつくるのか - Qiita

            はじめに オブジェクト指向はなんとなく理解しているつもりだったが、人に明確に説明できるほどではなかったため、オブジェクト指向でなぜつくるのかを読んで、まとめた。非常に分かりやすい書籍なのでQiitaをご覧いただき、いいねをつけていただいた上でご一読ください。 1. オブジェクト指向はソフトウェア開発を楽にする技術 オブジェクト指向とは、業務分析から要求定義、設計、プログラミング、開発プロセスまでをカバーするソフトウェア開発の総合的な技術である。 オブジェクト指向が難しいと思われるのは、技術そのものの複雑さに起因するのではなく、状況が混乱しているためである。そして分からないがゆえ、一般人には手の届かない神秘的な魔法だと思われてしまう。 混乱①用語の洪水 対象分野が広いゆえ、特殊用語のオンパレードになってしまい混乱してしまう。 現実世界やシステムは、データと手続きをまとめた「オブジェクト」から

              [初心者]オブジェクト指向でなぜつくるのか - Qiita
            • ZOZOMATにおけるJVMの暖機運転の導入と改善効果について - ZOZO TECH BLOG

              こんにちは。ZOZOテクノロジーズSRE部の市橋です。普段は主にAWSを用いてプロダクトのシステム構築、運用に携わっています。今回は弊チームで取り組んでいるZOZOMATのシステム改善業務の一例として、JVMの暖機運転の仕組みを取り入れた話をご紹介します。 ZOZOMATとは お客様の足を3Dで計測するために開発された計測用マットです。ZOZOMATでの計測情報をもとに、靴の推奨サイズを参照するなどのサービスをご利用いただくことが可能です。ご興味のある方はこちらをご確認ください。 JVMの暖機運転とは 今回テーマとして取り上げるJVMの暖機運転とは何かについて簡単に触れていきます。JVMではJIT(Just In Time)コンパイラによるコンパイル方式が取り入れられています。これはアプリケーションの実行前にプログラムの全てを機械語にコンパイルするのではなく、プログラムの実行時にコンパイル

                ZOZOMATにおけるJVMの暖機運転の導入と改善効果について - ZOZO TECH BLOG
              • YJITで使ったRustの省メモリ化テクニック - Qiita

                これは Rust Advent Calendar 2022 のカレンダー2の22日目の記事です。 YJITとは 私は今年の7月からShopifyという会社でRubyのJITコンパイラであるYJITを開発している。このJITは今年CからRustに書き直されたため、現職では業務としてフルタイムでRustを書いている。 実用段階になったYJIT おそらく世界最大規模でRubyを使っている弊社では、お客様のお店のサイトをレンダリングするアプリには社内最大のトラフィックが来ていて、実は最近そのアプリほぼ全台で最新のYJITが有効化されたことが昨日公開情報になった。あまりにも大量のトラフィックが来るので、YJITによって行なわれているRubyコード実行量はYJITが使われてないものよりも世界全体で見て多くなったのではないかとCEOが言っていた。 この規模のトラフィックを捌くためにこのアプリは比較的よく

                  YJITで使ったRustの省メモリ化テクニック - Qiita
                • 「Rust Atomics and Locks」を読んだ

                  「Rust Atomics and Locks」を読んだ #2023-02-05 発売前からすごく楽しみにしていた本で、発売日に買って年末から一生懸命読んでいた。 今なら以下から無料で読める。 https://marabos.nl/atomics/ 内容としては求めるものが分かりやすく書かれており、すでに2023 年に読んで良かった本の1つに入りそう。 目次書籍を通して得たかった知識 #例えば以下のようなコードを書いた際に、println!でどのような数値のペアが表示されるのか。結論から書くと0 0,10 20といった値がまずは思い浮かぶと思うが、0 20というペアで表示される可能性もあるとされており、その際以下のような疑問・不明点があった。 0 20と表示になるのはどのような条件で何が起こった場合なのか強いメモリモデルとされるx86でも0 20というペアは発生するのか本ケースにおいてx8

                    「Rust Atomics and Locks」を読んだ
                  • 『Rust Design Patterns』を翻訳してみました(Idiom 編) - Qiita

                    はじめに rust-unofficialというところの出しているRust Design Patternsの日本語訳が見つからなかったため、理解のために翻訳してみました(分からないところは DeepL に頼りました)。 今回は Introduction と Idioms の部分です(デザインパターン・アンチパターン編の翻訳はこちらにあります)。 FFI の部分はよく分からなかったためスキップしています。 不慣れなため翻訳間違いなどある可能性が高いです(教えていただきたいです)。 以下から本文です。 Introduction デザインパターン プログラムを開発するとき、私たちは多くの問題を解決しなければなりません。プログラムは問題の解決方法と見ることができます。また、プログラムは多くの異なった問題の解決方法の集まりと見ることもできます。これらの解決方法の全てが一緒に大きな問題の解決へと働きかけ

                      『Rust Design Patterns』を翻訳してみました(Idiom 編) - Qiita
                    • Web開発でJavaScriptの代わりにC#でロジックを書くBlazorがめちゃ便利! - Qiita

                      はじめに UL Systems Advent Calendar 2019 の17日目です。 Blazorとは、.NET の技術を使ってクライアント側のWeb UIを構築するためのフレームワークです。このBlazorを使えば、今まで主に業務アプリケーションの開発で C#を使用してきたような開発者であっても、極力JavaScriptを使わず、追加の学習コスト少なくWebアプリケーション(SPA)を開発することができるようになります。 Blazor には、サーバ側で処理するBlazorサーバーと、クライアント側で処理するBlazor WebAssemblyがあります。Blazorの開発を今まさに進めており、2019年9月にリリースされた.Net Core 3.0にてBlazor サーバーが正式にサポートされるようになりました。Blazor WebAssemblyも2020年5月に正式リリースされ

                        Web開発でJavaScriptの代わりにC#でロジックを書くBlazorがめちゃ便利! - Qiita
                      • RISC-VとChiselで学ぶ はじめてのCPU自作 ――オープンソース命令セットによるカスタムCPU実装への第一歩

                        この本の概要 本書では,UCバークレーで開発されたオープンソースの命令セット(ISA)「RISC-V」を用いて,CPUの作り方を解説します。コンピュータアーキテクチャ,ハードウェアに関する知識があまりない方にも理解できるように基礎からわかりやすく学んでいきます。CPUとコンピュータアーキテクチャのしくみを解説したうえで,基本整数命令の実装から,CPUの高速化で活躍するパイプラインの実装,スーパーコンピューターでも活躍するベクトル拡張命令(SIMD),さらに,汎用CPUでは負荷の高い処理をより高速に実行するためにCPUへ追加可能なカスタム命令の実装までを行います。CPU設計に用いる基本言語としては,Velilogを抽象化したHDL(ハードウェア記述言語)であるChiselを利用しています。 CPUの自作範囲に関して,手順が煩雑なFPGAでの動作確認は行わず,ソフトウェア上でエミュレーションを

                          RISC-VとChiselで学ぶ はじめてのCPU自作 ――オープンソース命令セットによるカスタムCPU実装への第一歩
                        • Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた |ハイクラス転職・求人情報サイト AMBI(アンビ)

                          Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた 2021年12月25日にリリースされたばかりのRuby 3.1では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさん、ko1さんに詳しくうかがいました。 プログラミング言語Rubyでは2013年の2.1.0以降、毎年クリスマス(12月25日)にメジャーバージョンアップが行われています。2021年も無事にバージョン3.1.0がリリースされました。 ▶ Ruby 3.1.0 リリース Ruby 3.1は、言語機能の面では全体的に穏やかなリリースにも見えますが、新しい方式のJIT(just in time)コンパイラ、標準の新デバッガー、事前アナウンスでも好評だったエラーメッセージの改善な

                            Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた |ハイクラス転職・求人情報サイト AMBI(アンビ)
                          • CISSP 勉強ノート

                            目次の表示 1. 情報セキュリティ環境 1-1. 職業倫理の理解、遵守、推進 職業倫理 (ISC)2 倫理規約 組織の倫理規約 エンロン事件とSOX法の策定 SOC (System and Organization Controls) レポート 1-2. セキュリティ概念の理解と適用 機密性、完全性、可用性 真正性、否認防止、プライバシー、安全性 デューケアとデューデリジェンス 1-3. セキュリティガバナンス原則の評価と適用 セキュリティ機能のビジネス戦略、目標、使命、目的との連携 組織のガバナンスプロセス 組織の役割と責任 1-4. 法的環境 法的環境 契約上の要件、法的要素、業界標準および規制要件 プライバシー保護 プライバシーシールド 忘れられる権利 データポータビリティ データのローカリゼーション 国と地域の例 米国の法律 [追加] サイバー犯罪とデータ侵害 知的財産保護 輸入と

                              CISSP 勉強ノート
                            • プログラミング言語「Rust」とは? "Hello, World!"で基本を押さえる

                              プログラミング言語「Rust」とは? "Hello, World!"で基本を押さえる:基本からしっかり学ぶRust入門(1)(1/3 ページ) Rustはどのようなプログラミング言語なのでしょうか? 本連載のスタートとなる今回は、Rust言語の概略と、手元にRustの動作環境構築までを紹介します。導入で利用可能になるコマンドと、最初のHello, World!プログラムも取り上げます。 Rustは、Webブラウザソフトウェア「Firefox」を開発しているMozillaが支援するオープンソースのプログラミング言語です。2006年に開発がスタートした当初は、Mozilla所属のグレイドン・ホアレ氏の個人プロジェクトでしたが、2009年からはMozilla自体が支援に加わり、公式プロジェクト化されました。MozillaとRustの関係は、Mozillaが2012年に開発を開始したWebレンダリ

                                プログラミング言語「Rust」とは? "Hello, World!"で基本を押さえる
                              • ULPを活用した電池駆動ESP32雨センサシステムを作る - The Negligible Lab

                                はじめに 明けましておめでとうございます🐇 とうとう昨年(2022年)の記事がただの1件から増えることがないまま2023年を迎えてしまいました。令和も何ともう5年です。さらにはもう2月ですね。 さて,新型コロナウイルスの流行が始まってから,筆者はほぼ在宅勤務となっています。その仕事机はちょうどバルコニー*1に通じる窓の直近に位置しています。このバルコニーには洗濯物も干しているのですが,雨が降り始めてもすぐ近くに座っている筆者がそれに気付かず,洗濯物を濡らしてしまうことが多々ありました。雨滴を検知して雨の降り始めをお知らせしてくれるシステムがあれば…いや,自分で作るのだ…! そこで,雨が降り始めたらLINEに通知を送ってくれる雨センサシステムを製作します。 まずは図1,2に完成形を示します。 図1: ESP32マイコンによる雨センサシステム 図2: “素”のESP32マイコンを搭載する基板

                                  ULPを活用した電池駆動ESP32雨センサシステムを作る - The Negligible Lab
                                • コンピュータの仕組み凄すぎワロタ : 哲学ニュースnwk

                                  2020年08月10日00:00 コンピュータの仕組み凄すぎワロタ Tweet 1: 以下、5ちゃんねるからVIPがお送りします 2020/08/09(日) 21:28:18.828 ID:mIBX8/C40 1と0の2進数でなんでも表現できるって凄い 2: 以下、5ちゃんねるからVIPがお送りします 2020/08/09(日) 21:28:45.260 ID:D7UjyGC9r なんでもはできないわできる事だけ 3: 以下、5ちゃんねるからVIPがお送りします 2020/08/09(日) 21:28:54.017 ID:QitZ+H4X0 俺の愛も表現できるの? 7: 以下、5ちゃんねるからVIPがお送りします 2020/08/09(日) 21:29:51.994 ID:8ASc3sxt0 >>3 無いものは表現出来ないぞ 10: 以下、5ちゃんねるからVIPがお送りします 2020/0

                                    コンピュータの仕組み凄すぎワロタ : 哲学ニュースnwk
                                  • RustでWebAssemblyインタプリタ作った話 - Qiita

                                    はじめに RustでWebAssemblyインタプリタを作ったのでその実装の話や、wasmの仕様についての記事です。 HListを使ったジェネリックプログラミングの話や、最後の方には「自作言語 on 自作wasmインタプリタ on 自作wasmインタプリタ」みたいな話も出てきます。 分かりにくい所や間違っている所は指摘してくださると助かります。 リポジトリ 作った成果物のリポジトリです。まだpublishはしていませんがクレートになっています。 cargoのexample実行に対応しているのでそれを見ればだいたい分かると思います。 今回はadc-2019-12-22というタグがついたコミットのソースを元に解説していきます。 https://github.com/kgtkr/wasm-rs/tree/adc-2019-12-22 仕様書 この記事では仕様書を読みながら順番に実装を解説していき

                                      RustでWebAssemblyインタプリタ作った話 - Qiita
                                    • CPUは、なぜ命令を認識できるのか?

                                      [質問] 電気信号は「0」「1」の2つしか認識できないのに、どうしてCPUの命令セットや機械語、アセンブラ、C言語、HTMLなどの文字を認識させることができてのですか?どうしたらそんなことができるようになるのですか? [私のベストアンサー] CPUは「認識」なんかしていませんよ。 より原始的な自動機械であるオルゴール、あれは、音楽を認識しているわけでもなく、さらには「音」を認識しているわけでもなく、単に特定の位置に突起のある原盤(っていうのかな?)に板が引っかかって弾かれて音が出る、それだけの機械です。結果として音楽を奏でているわけですが、しかしそれは「演奏」とは言い難いのでは。 CPUも一緒。ある電気的なレベルの組み合わせが与えられたら決まった動作をすることになっている機械でしかないのです。決まった入力を与えると決まった結果が得られるとしても、機械は認識も理解もしていません。

                                        CPUは、なぜ命令を認識できるのか?
                                      • 機械学習エンジニア1年目の自分へのおすすめ書籍

                                        はじめに 本記事はBrainPadアドベントカレンダー2021に寄稿しています。 私は現在、株式会社BrainPadで新卒3年目の機械学習エンジニアとして働いています。BrainPadでは福利厚生の一環として、外部の研修や書籍の購入、各種資格の取得に利用できるスキルアップエイドという制度が用意されています。 私はこの制度を主に技術書やビジネス書の購入のために利用しており、機械学習エンジニアとしての能力向上を図っています。本記事では私がこれまでに購入した書籍の中から、機械学習エンジニアとして働く上で参考になったと感じた書籍を振り返っていきます。 機械学習エンジニアの能力とは 現在は多くの企業で、データサイエンティスト、機械学習エンジニア、MLOpsエンジニアといったポジションが作られていると感じます。これらの職種に必要とされる能力は、データの性質や業務への関わり方によって変わると考えられ、一

                                          機械学習エンジニア1年目の自分へのおすすめ書籍
                                        • 書籍「コンパイラ 作りながら学ぶ」を読みながら JavaScript でコンパイラを実装してみた - Qiita

                                          はじめに この記事では、中田育男著「コンパイラ 作りながら学ぶ」(オーム社) に出てくるプログラミング言語 PL/0' を JavaScript で実装します。 コンパイラ 作りながら学ぶ この書籍ではシンプルなプログラミング言語 PL/0' コンパイラをC言語で実装したソースコードが巻末に掲載されており、それをもとにコンパイラの理論が説明されています。書籍では完成系のコードが一度に示されていますが、この記事では最小限のサブセットを設定して、徐々に拡張していきながら処理系を完成させます。 対象読者 この記事は以下のような人をターゲットに書かれています。 「コンパイラ 作りながら学ぶ」の本文を一通り読んだ上で、巻末のコードを理解しようとしたものの途中で挫折した人 「コンパイラ 作りながら学ぶ」はもともと1995年に「コンパイラ」というタイトルで出版されていた本の改訂版です。私は改訂前の本を高

                                            書籍「コンパイラ 作りながら学ぶ」を読みながら JavaScript でコンパイラを実装してみた - Qiita
                                          • ブラウザ上で動画生成や変換ができるWebAssembly版FFmpeg「ffmpeg.wasm」レビュー

                                            WebAssemblyはブラウザ上で機械語を実行可能し、JavaScriptを補完してパフォーマンスを高める技術です。そのWebAssemblyのバイナリ形式で動画処理ソフトウェア「FFmpeg」をコンパイルし、ブラウザ上での動画生成や変換を行えるソフトウェアが「ffmpeg.wasm」です。 FFMPEG.WASM https://ffmpegwasm.github.io/ GitHub - ffmpegwasm/ffmpeg.wasm: FFmpeg for browser and node, powered by WebAssembly https://github.com/ffmpegwasm/ffmpeg.wasm 「ffmpeg.wasm」の「wasm」はWebAssemblyの略称で、JavaScriptからFFmpegを利用可能にすることでブラウザやNode.js上で動画の

                                              ブラウザ上で動画生成や変換ができるWebAssembly版FFmpeg「ffmpeg.wasm」レビュー
                                            • IPv4と互換性のあるアドレス拡張プロトコルを考えてみたら、どういう感じになるんだろうか?|Rui Ueyama

                                              前回の記事ではIPv6の普及がなぜなかなか進まないのかを説明した。一つの根本的な問題は、IPv6がIPv4と互換性がないことだった。では、IPv4と互換性のあるプロトコルは、一体どういうものがありえたのだろうか? この記事では、ASCIIをUTF-8に拡張したみたいに、IPv4と互換性を維持したままアドレスを64ビットに拡張したプロトコル(ここではIPv4+と呼ぶ)について考えてみたいと思う。そして、IPv4+ならば、IPv6のような長い移行期間を経ることなく、段階的にネットワークをアップグレードしていけることを示そうと思う。 なお、このIPv4+プロトコルは、筆者としてはそれなりに真面目に考えてみたものではあるけれど、単なる思考実験にすぎない。また、ここで提案するものがベストだと主張したいわけでもない。あくまで、現在の知識と経験を元に1995年くらいに戻って考え直せるとしたら、どういう世

                                                IPv4と互換性のあるアドレス拡張プロトコルを考えてみたら、どういう感じになるんだろうか?|Rui Ueyama
                                              • そのクラウド、信用できますか? 〜プログラムを暗号化したまま実行する〜

                                                この文章では「2019年度未踏IT人材発掘・育成事業」に採択された 「準同型暗号によるバーチャルセキュアプラットフォームの開発」について解説します。 可能な限り事前知識を仮定せずに書きましたので、ぜひご一読ください。 なお表示上の執筆者は「艮鮟鱇」となっていますが、実際の執筆はプロジェクトの採択メンバー全員に よります。 「クラウド」という言葉が市民権を獲得して久しくなりました。 一口に「クラウド」と言っても様々ですが、その多くは「他者に処理を移譲する仕組み」と 簡潔にまとめられます。例えば、GPUを使う機械学習のプログラムを書いたが手元にはGPUが無い。 そこでGPUが搭載されたクラウド上のマシンを 借りて代わりに実行してもらう、といったケースが分かりやすいでしょう。 (画像は全てクリックで拡大します) このとき、処理を実行するにあたって必要なプログラムとデータは、 もちろんクラウドに送

                                                  そのクラウド、信用できますか? 〜プログラムを暗号化したまま実行する〜
                                                • オレオレアーキテクチャの電磁石式自作CPUをネットワークにした話 - Qiita

                                                  自己紹介 こんにちは。ぱたろうです。Twitterはこちらです。 現在中学3年生のCPUアーキテクトです! 電磁石式自作CPUを複数機作って互いに接続させてネットワークにしました!! 未踏ジュニアでこういうもの↓を作ったり! それからYouTubeでもこういう映像を出したりしていました! 未踏ジュニアでの僕の発表はこちら 追記 : スーパークリエイターに認定されました!ありがとうございます! はじめに 日々の生活において、低いところからみればCPU、高い所からみればインターネット、というように、私たちは色々なテクノロジーに強く依存しています。 が、しかし、私たちの多くはCPUやインターネットの表面上の動きは理解していてもその深い中身までは理解していません。 私たちにとってCPUやインターネットといったものは ――アーサーCクラークの「高度に発達した技術は魔法と見分けがつかない」という言葉を

                                                    オレオレアーキテクチャの電磁石式自作CPUをネットワークにした話 - Qiita
                                                  • オレオレASICとオレオレCPUで作る「オレたちのSoC」 CPU脳をたたき直す“自由ASIC時代”の到来

                                                    Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。takeoka氏は、現在開発中のSoC(System-on-a-chip)について発表しました。 LSI(Large Scale Integration)の民主化が進んでいる takeoka氏(以下、takeoka):俺ASICと俺CPUを作っているのでその話をちょっとします。 最近、日本でも半導体復興と言われています。(半導体は)お金持ちの物だと思っていたけれど、近頃はGoogleが安く作れるようにしてくれていたり、OpenEDAやOpenLANEというOSSのツールを使えば作れます。 これはだいぶ前からですが、Googleががんばっています。ほかにも、FOSSi(Free and Open Source Silicon Foundation

                                                      オレオレASICとオレオレCPUで作る「オレたちのSoC」 CPU脳をたたき直す“自由ASIC時代”の到来
                                                    • WebAssemblyとは

                                                      こんにちは、HashHubエンジニアの白井です。 本日のTech Blogは「WebAssemblyについてゆーるく調べてみた」です! ブロックチェーン業界にいる方であれば、Ethereum 2.0ではWebAssembly(WASM)でコントラクトが書けるということを聞いたことがあるかと思います。 今回はブロックチェーンのことは少なめで、そもそもWebAssemblyって何ってことを説明しようと思います。 WebAssemblyとはプログラミング言語やライブラリの名前ではなく、ブラウザでプログラムを高速実行するための、「ブラウザ上で動くバイナリコードの新しいフォーマット(仕様)」です。 Google, Microsoft, Mozzila, Appleによって仕様が策定され開発が進められています。 WebAssembly (abbreviated Wasm) is a binary in

                                                        WebAssemblyとは
                                                      • 知って使えるJVMの概要とヒープダンプ取得から解析まで

                                                        本連載では、Javaプログラムの実行を担うJava仮想マシン(JVM)について、その情報を取得するさまざまなツールの利用を通じて理解を深めます。JVMやそのツールに関する知識はアプリケーションが正常に動作しているときではなく、障害など異常が起こった際に大いに活躍します。それだけでなく、Javaプログラムを動作させる仕組みを知ることはソフトウェアを開発するエンジニアの皆さんの知的な部分を刺激するとともに、シニアレベルのJavaエンジニアへと進む第一歩となります。連載第1回はJVMの概要を解説し、模擬的なトラブルシュート体験としてヒープダンプを取得して解析します。 はじめに 今後もアプリケーションをJavaで開発、運用していくことを前提にすると、そうした業務に携わる方は次のようなことを学び続けるでしょう。 Javaの半年ごとのバージョンアップに追随して新機能などを学ぶ アーキテクチャなどでの新

                                                          知って使えるJVMの概要とヒープダンプ取得から解析まで
                                                        • Small String Optimization で Rust ライブラリ ratatui を最適化した話 - はやくプログラムになりたい

                                                          最近 ratatui という crate に Small String Optimization を利用した最適化を入れたので,その話を書きます. 目次 Small String Optimization (SSO) とは(SSO を既に知っている人は読み飛ばして大丈夫です) Rust で SSO を適用した文字列型を提供する crate 比較 SSO を利用して ratatui のメモリ効率と実行効率を最適化した話 compact_str crate の実装の最適化の話 インラインストレージに24バイト全てを使える理由 隙間最適化のための工夫 説明を簡潔にするため,特に断りが無い場合 64bit アーキテクチャを前提とします. Small String Optimization (SSO) とは Rust の可変長文字列型 String は文字列バッファへのポインタ,文字列の長さ,バッフ

                                                            Small String Optimization で Rust ライブラリ ratatui を最適化した話 - はやくプログラムになりたい
                                                          • 解説&翻訳 - A Quick Guide to Go's Assembler

                                                            この記事について Goの実装というのは基本的にはGo言語そのもので行われますが、runtimeパッケージやmath/bigといった低レイヤ・マシンと密接に関わる部分に関してはGoアセンブリで実装されています。 そしてGoアセンブリについては、公式ドキュメントであるA Quick Guide to Go's Assemblerにある程度の説明が記載されています。 この記事では、前半ではドキュメント"A Quick Guide to Go's Assembler"を読むために必要になる前提知識をまとめ、後半ではドキュメントの翻訳を行います。 使用する環境・バージョン go version go1.16.2 darwin/amd64 想定読者 この記事では、以下のような方を想定しています。 runtimeパッケージやmath/bigパッケージ内に存在するアセンブリを読んで、何やってるのかある程度

                                                              解説&翻訳 - A Quick Guide to Go's Assembler
                                                            • ARMへの移行で変わるMacの「仮想化」 - 新・OS X ハッキング!(269)

                                                              macOS Big Surのパブリック・ベータ版リリースされたが、肝心の「アレ」は手に入らない。アレとはもちろん「A12Z」を搭載したMacであり、その上で動くmacOSのこと。もちろん、現行のIntel MacでもBig Surは動くが、肝心のARM環境が実際どうなのかは想像の域を出ない。ああ、開発者向けに提供されるA12Z搭載Mac miniさえあれば(NDAがあるからどのみち原稿には書けないけれど)……。 さて、今回のテーマはズバリ「MacがARMアーキテクチャになるということ」。前回、前々回とIntelからARMへのアーキテクチャ移行がスムーズに行えるか、どのような支援ツールが用意されているかを紹介してきたが、今回はARMアーキテクチャへの移行で一変するはずの「仮想化」について考えてみたい。 そもそも「仮想化」とは Intel Macの登場以降に普及したソフトウェアの新ジャンルのひ

                                                                ARMへの移行で変わるMacの「仮想化」 - 新・OS X ハッキング!(269)
                                                              • コンパイラとは?構造や自作方法、おすすめのコンバイラの選び方を解説!インタプリタやアセンブラとの違いとは? | A-STAR(エースター)

                                                                コンパイラとは?構造や自作方法、おすすめのコンバイラの選び方を解説!インタプリタやアセンブラとの違いとは? スキル言語 Twitter facebook LINE はじめに プログラミングに携わるとコンパイルするという言葉をよく見かけます。 コンパイルという言葉に馴染みがなければ壁にぶつかるかもしれません。 今回は、コンパイラはどういうものなのか、コンパイラは何ができるのかなどについての紹介です。 コンパイラとは プログラミング言語に携わるとコンパイルやインタプリタ、アセンブラは、外せない用語です。 どの単語もざっくりいえばソースコードの実行方法になります。 コンパイラとは、人間と機械の間に立ってお互いの言葉を通訳する役割です。 コンパイラは、ソースコードを読み込んでコンピューターが理解できるように機械語へ翻訳します。 機械語をソースコードに変換する場合は、コンパイラではなく、逆コンパイラ

                                                                • C#でSPAが実現できる、Blazor WebAssemblyのはじめかた

                                                                  ASP.NET Coreは、ASP.NET 4.xをベースにしていますが、Webフォームには対応していません。また、開発言語にVisual Basicが利用できなくなりました。 一方、ASP.NET Coreになって、新たなライブラリ、フレームワークが提供されています。Razor Pagesは、ASP.NET Core 2.0から利用できる機能で、MVVMパターンのWebアプリケーションを実現できるフレームワークです。 MVVMパターン Razor Pagesでは、Viewにあたる部分はRazor構文によるcshtmlファイル(HTMLを拡張して、C#コードなどを含めることができる)に、ViewModelはそのcshtmlから生成されるC#のクラスになっています。このあたりの構造は、その後にリリースされた、Blazorフレームワークでも同様となっています。 Blazorは、通常JavaSc

                                                                    C#でSPAが実現できる、Blazor WebAssemblyのはじめかた
                                                                  • 浮動小数点を利用する際に知っておきたいこと

                                                                    (※ 2014 年 10 月 28 日に Microsoft Japan Visual Studio Support Team Blog に公開した情報のアーカイブです。) (※ 参照先ドキュメントの変更や廃止に伴い、リンク先を差し替えています。) こんにちは。Visual Studio サポート チームです。 今回は、Visual Studio でアプリケーションを開発する時にデータ型として使用できる浮動小数点数についてのお話です。 本記事の内容は Visual C++、Visual C#、Visual Basic を対象としております。 浮動小数点数を使用する際の注意点浮動小数点数はプログラムで小数を扱うために広く利用されていますが、少し癖のあるデータ型でもあるため、その特性をよく理解して利用しないと、思わぬ落とし穴に遭遇してしまうこともあります。 浮動小数点の特性として、注意した方が

                                                                    • そのSMS、安全ですか?自分で調べてみる方法について | IIJ Engineers Blog

                                                                      セキュリティ本部セキュリティビジネス推進部セキュリティオペレーションセンターに所属。2019年新卒入社。大学生時代より情報セキュリティにまつわる研究・開発をしている。インターネットが好き。 【IIJ 2020 TECHアドベントカレンダー 12/23(水)の記事です】 TL;DR 身に覚えのないSMSには気を付けよう あやしいファイルを手に入れたときは取り扱いに注意しよう 不審なファイルの表層解析をしてみよう プロローグ こんにちは。IIJ入社2年目、セキュリティ本部で開発とセキュリティアナリストの兼業をしています。naotです。 突然ですが、みなさんの元にこんなSMSが届いたことはありませんか? あっ、これ…見たことある…! となった方も多いのではないでしょうか。 このメッセージに含まれている、 「お荷物のお届けにあがりましたが不在の為持ち帰りました。ご確認ください。」 でGoogle検

                                                                        そのSMS、安全ですか?自分で調べてみる方法について | IIJ Engineers Blog
                                                                      • Rust で DOS

                                                                        終了 最初にrコマンドで、リアルモードx86のレジスタ群を確認して見ましょう。 下記の図のようになります。 2行にわたってAX,BXをはじめとする各レジスタの値が16進数で表示されています。 注:debug コマンドでは基本的に16進数を扱います。 COM 形式と EXE 形式 いよいよ DOS で本物のアセンブリを入力していきますが、その前に DOS プログラムの約束事を押さえておきましょう。 DOSプログラムの実行形式には COM 形式とEXE形式があります。 ここでは、より単純な COM 形式を扱います。 COM 形式のプログラムは、アドレス 0x100 から始まる決まりになっています。 先頭の 256 バイトが空いていることに違和感を覚えるかもしれませんが、これは ELF 実行形式の ELF ヘッダーのようのものと思うと理解しやすいでしょう。 先頭のアドレス空間は PSP(Prog

                                                                          Rust で DOS
                                                                        • 個人的におすすめしたいプログラムの技術サイト - Qiita

                                                                          変更ログ 21/09/04: 「ドメイン駆動設計について DroidKaigi 2017 で登壇しました。」のリンクを追加 -21/08/11: 書籍「the Jargon File」についてのリンクを追加 -21/08/06: C, アセンブリ言語についてのリンクを追加 前書き プログラムを学ぶとき、良質役立ちそうなサイトを探すのにかなりの時間を浪費した。 他の人にはそうなってほしくないので、今まで役立ったサイトを公開する。 なお、強くオススメしたいサイト順に並ばせる。 随時更新予定。 21/08/06: 追記 (この記事はもともと大量のブックマークを処分し依存を絶つのが目的で作成しました。 しかし、ブックマークが便利すぎるので結局依存は断てず、この記事を自分で使うこともほぼなかったため、更新は未定に変更します。) この記事を効率よく使う方法の例: ・リンクを実際に踏んでみて、ざっと吟味

                                                                            個人的におすすめしたいプログラムの技術サイト - Qiita
                                                                          • Windows上でAndroidアプリが動く、Windows Subsystem for Androidの日本語版を試す (1/2)

                                                                            Windows上でAndroidアプリが動く、Windows Subsystem for Androidの日本語版を試す Windows Subsystem for Androidのプレビュー版が ようやく国内でも利用可能に Windows Subsystem for Android(以下、WSA)のプレビューが日本でも公開された。今のところプレビュー版だが、動作条件がWindows 11 Ver.22H2以降となっているので、秋にも公開される次のWindows 11で利用可能になるのではないかと思われる。今回は、このWSA日本語版についてレポートする。 WSAは、Windows上でAndroidアプリケーションを起動する仕組みだ。そこであらためて簡単にAndroidの構造を解説しておく。AndroidではLinuxカーネルを使いつつも、Linux/Unixの標準的なライブラリは用いず、さ

                                                                              Windows上でAndroidアプリが動く、Windows Subsystem for Androidの日本語版を試す (1/2)
                                                                            • Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp

                                                                              Ruby 3.3リリース! 新機能解説 Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす 2023年12月25日、Ruby 3.3.0がリリースされ、様々な新機能が加えられました。本連載では実際に携わった皆さんにその新しいRubyをご紹介いただきます。 RubyはJust-In-Time(JIT)コンパイラという機能を備えており、これを有効化すると実行時に機械語を生成して様々な最適化が行なわれ、実行が高速になります。Ruby 3.3にはYJITとRJITという2つのJITコンパイラがあり、デフォルトでは無効になっていますが、それぞれ--yjitと--rjitで有効化できます。 この回では、Ruby 3.3でYJITの性能特性が変化した点や、YJITに新たに追加された便利な機能、またRJITはどのように使うものであるかについて解説します。 YJ

                                                                                Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp
                                                                              • 「インフラで私が一番面白いと考えている世界」GMOペパボ株式会社 近藤 宇智朗(うづら) | Forkwell Press | フォークウェルプレス

                                                                                Forkwell が主催する技術イベント「Infra Study」。今回のテーマは「インフラの面白い技術とこれから」です。(開催日:2020年 7月29日)。本記事は登壇者の近藤さんの基調講演から mruby や C言語を使い、コンテナを自作している様子をお伝えします。最後には、登壇者の近藤さんとまつもとりーさんが視聴者からの質問に回答しているので、ぜひご覧ください。 この回ではインフラで一番面白い世界について考えていきます。 皆さん、子どもの頃、中身が気になって時計を分解するようなことがありましたか? 私はありませんでした。 にも関わらず今私が一番面白いと考えている世界はインフラの「中身」です。インフラエンジニアは、ともすれば与えられたOS、ミドルウェア、 マネージドサービスを上手に組み合わせることを求められますし、実際それらの要素を適材適所位配置できることは良いインフラエンジニア、アー

                                                                                  「インフラで私が一番面白いと考えている世界」GMOペパボ株式会社 近藤 宇智朗(うづら) | Forkwell Press | フォークウェルプレス
                                                                                • C言語のないプログラミング

                                                                                  大昔のプログラミングとかさ、どうやってたの まじで全部機械語なの? 機械語の値をメモリに打ち込んで動かしてたの? UI表示とか1ドットずつ表示させないといけないんじゃないの? 人の力じゃどうしようもなくない? ぜんぜん想像つかないんだけど anond:20210420103403

                                                                                    C言語のないプログラミング