並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 73件

新着順 人気順

LD_PRELOADの検索結果1 - 40 件 / 73件

  • 端末の文字幅問題の傾向と対策 | IIJ Engineers Blog

    電子メール、ネットワーク機器集中管理、異常検知、分散処理、クラウド基盤などのシステム開発に従事。古代Rubyist。 CLI や TUI なアプリケーションを使っていると、端末の画面が崩れてしまうことがよくあります。 たとえば、こんな TUI が、 環境によってはこんな感じで崩れます。 スクロールなどをしながらしばらく使っているとさらにどんどん崩れていきます。 こうなってしまった場合、とりあえず Ctrl-l で画面を再描画することで、大抵はなんとか読める程度にリセットできますので、ことあるごとに Ctrl-l を連打することになります。 ですが、どうしようもないケースもままあります。 例えば、私の場合は以下のようなシチュエーションで困ります。 w3m でテーブルなどを表示するとレンダリングが崩れる less でログの閲覧の際に表示されるべき文字が表示されず見落としが発生する Wander

      端末の文字幅問題の傾向と対策 | IIJ Engineers Blog
    • ptrace より 100 倍速いシステムコールフック作った - かーねるさんとか

      新しい高性能で汎用的なシステムコールフックの仕組みを作ってみました。 モチベーションとして、システムコールをフックしてユーザー空間でエミュレートしたくなったのですが、現状、性能と汎用性を両立する仕組みがなさそうだったので、新しい方法を考えました。 今回のシステムコールフックの仕組みは以下のような特徴があります。 ptrace より 100 倍以上高速 LD_PRELOAD や既存のバイナリ書き換えツールより確実 カーネルへの変更なし、かつカーネルモジュールを使わない プログラムのソースコード、プログラムの再コンパイル不要 eBPF でトレーシングをしているけれど、できれば制約が少ないユーザー空間でトレーシングツールを作りたい。もしくは、gVisor のようなサンドボックスを作りたいけれど、ptrace による性能劣化が大きいので、他の高速なシステムコールフックの仕組みが使いたい、というよう

        ptrace より 100 倍速いシステムコールフック作った - かーねるさんとか
      • Linuxのローダを自作する

        概要 Linuxのスタンダードなローダ、ld-linux-x86-64.so.2 の挙動を理解するために、ld-linux-x86-64.so.2を置き換え可能な https://github.com/akawashiro/sloader を2年ほど前から開発しており、ある程度動くようになってきました。 目次 ローダとは何か ld-linux-x86-64.so.2 の問題点 sloader sloader の現状 sloaderの実装 libc.so内のシンボルの解決 ロードされたプログラムのためのTLS領域の確保 sloaderの課題 お願い ローダとは何か Linuxで実行可能なバイナリファイルをexecve(2)を使って実行するとき、その実行パスは大きく2つに分類されます。 Linux カーネルが直接、バイナリファイルをメモリ空間にロードする。 バイナリが指定したローダ[1]がバイ

          Linuxのローダを自作する
        • Rustで実装するmalloc - NTT Communications Engineers' Blog

          この記事は、NTT Communications Advent Calendar 2021 21日目の記事です。 はじめに こんにちは、イノベーションセンターの鈴ヶ嶺(@suzu_3_14159265)です。普段は、クラウド・ハイブリッドクラウド・エッジデバイスなどを利用したAI/MLシステムに関する業務に従事しています。本日は、Rustで動的メモリ確保(dynamic memory allocation)のmallocを実装してPythonやvimを動かしてみようという内容をお届けします。 また、去年もRustネタのアドベントカレンダーを書いているのでぜひ見ていただけると嬉しいです! NTTコミュニケーションズ Advent Calendar 2020 Rustで実装するNetflow Collector 実装するmallocのアルゴリズム 今回実装するmallocのアルゴリズムは小さな

            Rustで実装するmalloc - NTT Communications Engineers' Blog
          • SQLiteを分散データベースに変えるmvSQLite | DevelopersIO

            Introduction 先日Githubに公開されたmvSQLiteですが、 「SQLite互換のスケーラブルなデータベース」とのことで話題になってます。 mvSQLiteの特徴は、SQLiteのストレージレイヤーをFoundationDBに分離しているところです。 これにより、DynamoDBのように際限のないスケーラビリティ、point-in-timeでの読み取り、 そしてRDBの厳密な一貫性を提供します。 作成者曰く、mvSQLiteの目標は 「SQLiteを分散データベースに変えること」 とのことです。 FoundationDBとは FoundationDBは大量の構造化データを処理するために設計された分散データベースです。 2015年にAppleが買収したことでもニュースになりました。 データをソート済みのKeyValueデータとして保管し、 すべての操作にACIDトランザクシ

              SQLiteを分散データベースに変えるmvSQLite | DevelopersIO
            • システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog

              ptrace、Syscall User Dispatch:カーネルが提供している ptrace や Syscall User Dispatch のような機能は、ユーザ空間でシステムコールのフックを実装するために利用できます。ですが、これらを利用すると、元のユーザ空間プログラム内部でのシステムコール呼び出しのコストが大きくなり、結果として、性能が大きく劣化してしまいます。(要件1を満たせない) eBPF :eBPF のようなカーネル内の関数へフックを適用できる仕組みもありますが、eBPF は XDP のような場合を除くと、基本的にカーネルの挙動を変更するためには利用できないため、カーネル機能をユーザ空間でエミュレートする、といった用途には適していません。(要件5を満たせない) ライブラリ関数の置き換え:標準ライブラリ(libc 等)は、沢山のシステムコールのラッパーライブラリ関数を実装してお

                システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog
              • 新たな形態のLinuxマルウェアが見つかる--検出は「ほぼ不可能」

                印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 検出が「ほぼ不可能」という新たな形態のLinuxマルウェア「Symbiote」が、BlackBerryのResearch and Intelligence Teamの研究者らと、Intezerのセキュリティ研究者であるJoakim Kennedy氏によって発見されたという。カナダのBlackBerryが現地時間6月9日に発表した。 それによると、このマルウェアは「寄生性」を有しているためSymbiote(共生者)と名付けられたという。 これらの研究者らがSymbioteを発見したのは数カ月前のことだ。Symbioteは、実行中のプロセスに対して侵害を試みるという、Linuxで今日一般的に見られる通常のマルウェアとは異なり、LD_PREL

                  新たな形態のLinuxマルウェアが見つかる--検出は「ほぼ不可能」
                • Ruby × jemallocのすすめ - メドピア開発者ブログ

                  集合知プラットフォーム事業部・エンジニアの榎本です。コロナ禍の運動不足を解消すべく筋肉体操で筋トレを続けてますが、上腕三頭筋がいい感じに成長しており継続の大切さを身に沁みて実感しております。 目次 TL;DR(三行要約) Rubyアプリケーションのメモリ肥大化問題 jemalloc を使ってみる jemalloc とは? jemalloc で改善するのか? jemalloc の設定方法 jemalloc をプロダクション導入してみた結果 まとめ おまけ:jemalloc についてMatzに聞いてみた TL;DR(三行要約) jemalloc でRubyアプリのメモリ効率改善 jemalloc でRubyアプリのパフォーマンス改善 jemalloc の導入も簡単 Rubyアプリケーションのメモリ肥大化問題 Ruby on RailsなどのRubyアプリケーションを運用する上で、メモリ使用量の

                    Ruby × jemallocのすすめ - メドピア開発者ブログ
                  • Linux Hardening Guide | Madaidan's Insecurities

                    Last edited: March 19th, 2022 Linux is not a secure operating system. However, there are steps you can take to improve it. This guide aims to explain how to harden Linux as much as possible for security and privacy. This guide attempts to be distribution-agnostic and is not tied to any specific one. DISCLAIMER: Do not attempt to apply anything in this article if you do not know exactly what you ar

                    • Dockerコンテナとして本番実行しているRailsをjemallocで高速化&省メモリ化した話 - BOOK☆WALKER inside

                      こんにちは。 メディアサービス開発部 Webアプリケーション開発課のフサギコ(髙﨑)です。 Ruby on Railsによるバックエンドの実装運用とAWSによるサービスインフラの設計構築を中心とした、いわゆるバックエンド方面のテックリードとしてニコニコ漫画を開発しています。 本記事では、私たちが開発・運用しているRails製のjson APIバックエンドにおいて、mallocの実装としてjemallocを使うように変更したことについてお話します。 背景 私たちが2020年4月から開発しているニコニコ漫画のRails製json APIバックエンド(以降「新バックエンド」と呼びます)は、2010年8月のサービス開始以来サービスを支え続けているPHP製アプリケーションのビジネスロジックに関する式年遷宮的移行先であり、当初よりAWS ECS Fargate上で実行しています。*1 今年8月にリリー

                        Dockerコンテナとして本番実行しているRailsをjemallocで高速化&省メモリ化した話 - BOOK☆WALKER inside
                      • 検出が非常に困難な Linux のマルウェア「Symbiote」 | スラド Linux

                        一度感染すると検出が非常に困難になるという Linux のマルウェア「Symbiote」について、Intezer と BlackBerry Threat Research & Intelligence Team が共同で調査結果を発表している (Intezer のブログ記事[1]、 [2]、 Ars Technica の記事、 The Register の記事)。 Symbiote はスタンドアロンの実行ファイルではなく共有ライブラリであり、LD_PRELOAD 環境変数を用いてすべてのプロセスの実行時に読み込ませる仕組みだ。すべてのプロセスに感染後は、ルートキットとしてマルウェア関連ファイルをすべて隠ぺい可能になるほか、Barkeley Packet Filter (BPF) をフックしてパケットキャプチャツールから自身のネットワークトラフィックを隠ぺいする。マルウェアとしての機能は認証

                        • Binary Hacks Rebooted

                          本書は低レイヤのプログラミングに関するHack集であり、2006年に発行された『Binary Hacks』の再構築版として書かれました。低レイヤとは抽象化の度合いが低く計算機と近いレイヤのことを指し、またHackとは巧妙な方法で問題を解決する手法を指します。現代のコンピュータシステムは重層的です。抽象化のレイヤを重ねることで発展し、無数の機能が実現されています。これらのレイヤは巧みに設計されているため、機能を利用するだけなら各レイヤの動作を詳細に知る必要はありません。それでも私たちは時折、抽象化レイヤを剥がしてシステムの中身を見る必要に駆られます。これは抽象化そのもののメカニズムや、抽象化によって隠蔽されてしまった機能を利用したいことがあるからです。また、何より抽象化レイヤそのものや、その下側を覗いてみるのはとても楽しいことです。今まで開発者たちが積み上げてきた1つ1つの部品やその組み合わ

                            Binary Hacks Rebooted
                          • ptraceより100倍以上高速なエミュレートを実現 バイナリの書き換えでシステムコールをフックする

                            Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。yasukata氏は、バイナリの書き換えで、システムコールをフックする「Zpoline」の仕組みについて紹介しました。 システムコールをフックしたくなった理由 yasukata氏(以下、yasukata):yasukataといいます。発表を始めます。 今回は、「Zpoline」という、バイナリを書き換えることでシステムコールをフックする仕組みを紹介します。ここではx84-64のCPUで動作するLinuxを想定しています。(スライドを示して)ソースコードはこちらにURLがあるので、よろしければ見てみてください。あとでスライドも公開するので、そちらも併せてご覧ください。 まず、なぜシステムコールをフックしたくなったのかですが、個人的にカーネルに実装

                              ptraceより100倍以上高速なエミュレートを実現 バイナリの書き換えでシステムコールをフックする
                            • eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - TIER IV Tech Blog

                              こんにちは、ティアフォーでパートタイムエンジニアをしている石川です。 本記事では、楽に「動的ライブラリ(及び実行バイナリ)の特定の関数をフックして何かしらの処理をする」手法について紹介していきます。 この記事は、同じくパートタイムエンジニアの西村さんによる作業の成果を元にして、石川が執筆したものです。ソースコードや図のいくつかも西村さんによる貢献です。 また、ティアフォーでは「自動運転の民主化」をともに実現していく、学生パートタイムエンジニアを常時募集しています。自動運転を実現するためには、Softwareに関してはOSからMiddlewareそしてApplicationに至るまで、Hardwareに関してはSensorからECUそして車両に至るまで異なるスキルを持つ様々な人々が不可欠です。もしご興味があれば以下のページからコンタクトいただければと思います。 https://tier4.j

                                eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - TIER IV Tech Blog
                              • Kubernetes上のアプリケーション開発を加速させるツール(2) Telepresence

                                Goアプリケーション*4など、静的リンクしているバイナリでは利用できないsuidしたバイナリはTelepresence Shell内で動作しない/etc/resolv.confをパースするようなカスタムDNSリゾルバ、自身に対するDNS lookupは動かない *2:全制約事項についてはa href="https://www.telepresence.io/reference/methods" target="blank">公式ページを参照してください。 *3:LinuxのLD_PRELOADとmacOSのDYLD_INSERT_LIBRARIESを利用した方法で、詳細はこちらのブログで詳しく解説されています。 *4:go buildではなくgccgoによるビルドやGODEBUG環境変数でnetdnsのリゾルバをcgoに変更するなどのワークアラウンドは存在しますが、非推奨です。 *5:--

                                  Kubernetes上のアプリケーション開発を加速させるツール(2) Telepresence
                                • ARM64でptraceより2000倍以上速いシステムコールフック作った - Blog posts by @retrage

                                  元ネタ: https://yasukata.hatenablog.com/entry/2021/10/14/145642 せっかちな人向け ARM64向けの高速なシステムコールフックを作った マイクロベンチマークではptraceの2000倍以上、seccompの140倍程度高速 コードはこちら: https://github.com/retrage/svc-hook zpolineとは USENIX ATC 2023において、zpolineというx86/Linux向けの高速なシステムコールフックが提案された[1]。これは、binary rewritingで2バイトの命令である syscallやsysenterを同じ2バイト命令であるcallq *%raxに置き換えた上で0x0のアドレスにトランポリンを設置する、というものである。 同じような仕組みを他のアーキテクチャでも実現だろうか?という

                                    ARM64でptraceより2000倍以上速いシステムコールフック作った - Blog posts by @retrage
                                  • The Difficulties of Tracking Running Processes on Linux

                                    Introduction Everyone knows how to track which processes run on Linux, but almost no-one tracks them accurately. In fact, all of the methods listed in this post have some deficiency or another. Lets define requirements: All processes should be logged including short-lived processes We should know the full executable path of every process that runs Within reason, we shouldn’t need to modify or reco

                                    • How the GNU coreutils are tested

                                      Detailed here are some of the tools and techniques we use to test the GNU coreutils project, which should present some useful ways to automate the use of tools like gdb, strace, valgrind, sed, grep, or the coreutils themselves etc., either for testing or for other applications. We also describe general techniques like using timeouts in a robust and performant way. Test framework automake's test fr

                                      • 性能と可搬性に配慮した TCP/IP スタック実装 | IIJ Engineers Blog

                                        本論文が既存の実装の課題の一つとして指摘するのは、上記のように、CPU コアの割り当てモデルは性能に大きな影響を与える要素でありながら、多くの既存の性能に最適化された TCP/IP スタック実装は、TCP/IP スタック実装利用者が任意の CPU コア割り当てモデルを適用することを許容するような設計になっておらず、本来達成可能な性能を発揮できない構成を強要することです。 例えば、mTCP [10] という実装では unified モデルは採用できず、TAS [12] という実装では、split モデル以外適用できません。 2.2 組み込みやすさ・可搬性を考慮した実装 (Portability-aware TCP/IP Stacks) 2.2.1 NIC オフロード機能への配慮の欠如 (Unaware of NIC hardware offloading features) 大きなデータを転

                                          性能と可搬性に配慮した TCP/IP スタック実装 | IIJ Engineers Blog
                                        • Make Ubuntu packages 90% faster by rebuilding them

                                          jq.md Make Ubuntu packages 90% faster by rebuilding them TL;DR You can take the same source code package that Ubuntu uses to build jq, compile it again, and realize 90% better performance. Setting I use jq for processing GeoJSON files and other open data offered in JSON format. Today I am working with a 500MB GeoJSON file that contains the Alameda County Assessor's parcel map. I want to run a quer

                                            Make Ubuntu packages 90% faster by rebuilding them
                                          • Why pipes sometimes get "stuck": buffering

                                            Here’s a niche terminal problem that has bothered me for years but that I never really understood until a few weeks ago. Let’s say you’re running this command to watch for some specific output in a log file: tail -f /some/log/file | grep thing1 | grep thing2 If log lines are being added to the file relatively slowly, the result I’d see is… nothing! It doesn’t matter if there were matches in the lo

                                            • The Quest for Netflix on Asahi Linux | Blog

                                              Welcome to my ::'########::'##::::::::'#######:::'######::: :: ##.... ##: ##:::::::'##.... ##:'##... ##:: :: ##:::: ##: ##::::::: ##:::: ##: ##:::..::: :: ########:: ##::::::: ##:::: ##: ##::'####: :: ##.... ##: ##::::::: ##:::: ##: ##::: ##:: :: ##:::: ##: ##::::::: ##:::: ##: ##::: ##:: :: ########:: ########:. #######::. ######::: ::........:::........:::.......::::......:::: CTF writeups, prog

                                              • Porting OpenBSD pledge() to Linux

                                                OpenBSD is an operating system that's famous for its focus on security. Unfortunately, OpenBSD leader Theo states that there are only 7000 users of OpenBSD. So it's a very small but elite group, that wields a disproportionate influence; since we hear all the time about the awesome security features these guys get to use, even though we usually can't use them ourselves. Pledge is like the forbidden

                                                  Porting OpenBSD pledge() to Linux
                                                • Time namespace を試す - ローファイ日記

                                                  Time namespace と聞くと、Guitar Freaks & Drum Mania の名曲「Timepiece Phase II」を思い出してしまうんですが、僕だけでしょうか?僕だけですね...。 今日はLinux 5.6 でマージされたらしい、 Time namespace を触ってみることにしました。 git.kernel.org この辺りでマージされた機能ですね。 Linux namespace って? Linux のコンテナは、ホストから様々なリソースを独立させて切り離された「名前空間」に所属します。リソースの種類ごとに名前空間があり、例えばネットワークのNamespace、マウントポイント情報のNamespace、ホスト名などUTSのNamespaceなどなど、5.5までで7つのドラゴンボールこと名前空間が実装されていました。詳細は コンテナの基礎 tenforward

                                                    Time namespace を試す - ローファイ日記
                                                  • Hacking with Environment Variables - elttam

                                                    Hacking with Environment Variables Interesting environment variables to supply to scripting language interpreters Introduction On a recent project we gained the ability to specify environment variables but not the process that was executed. We were also unable to control the contents of a file on disk, and bruteforcing process identifiers (PIDs) and file descriptors found no interesting results, e

                                                    • Whitepaper Title

                                                      Security Overview of AWS Fargate First published April, 2022 Notices Customers are responsible for making their own independent assessment of the information in this document. This document: (a) is for informational purposes only, (b) represents current AWS product offerings and practices, which are subject to change without notice, and (c) does not create any commitments or assurances from AWS an

                                                      • AppleのMac向け独自開発チップ「M1」のGPUをリバースエンジニアリングするプロジェクトが進行中

                                                        Appleが開発した「M1」は、x86エミュレーション環境下でさえ他のMacを上回るベンチマーク結果を残しており、その高性能さを強く印象付けています。そんなM1のGPUをリバースエンジニアリングし、オープンソースドライバーを開発する試みが、エンジニアのAlyssa Rosenzweig氏らによって進められています。 Rosenzweig – Dissecting the Apple M1 GPU, part I https://rosenzweig.io/blog/asahi-gpu-part-1.html Rosenzweig – Dissecting the Apple M1 GPU, part II https://rosenzweig.io/blog/asahi-gpu-part-2.html M1は仕様が非公開であるため、Linuxで利用するにはリバースエンジニアリングによるドラ

                                                          AppleのMac向け独自開発チップ「M1」のGPUをリバースエンジニアリングするプロジェクトが進行中
                                                        • dlmopen を使ってシステムコールのフックをいい感じにプログラミングする - かーねるさんとか

                                                          前回の記事で紹介しました Zpoline というシステムコールフックの仕組みだと、バイナリ書き換え後の関数を、システムコールフックから呼び出してしまうと、デッドロックもしくは無限ループが発生することがあるという問題がありました。 結果として、システムコールフックの実装に標準ライブラリ内の機能、例えば、printf 等が使えなくてプログラミングがしにくくなっていました。 この問題は、dlmopen という機能を使うと解決できると教えて頂いて、実際に大分簡単にフック関数を実装できるようになったので、今回の記事では、具体的な Zpoline での利用方法について説明します。 以下の GitHub 上のリポジトリに置いてあるソースコードは dlmopen を利用できるように変更してありますので、よかったら是非試してみてください。 github.com dlmopen の前に dlopen とは?

                                                            dlmopen を使ってシステムコールのフックをいい感じにプログラミングする - かーねるさんとか
                                                          • Encrypted traffic interception on Hetzner and Linode targeting the largest Russian XMPP (Jabber) messaging service —

                                                            TL;DR: we have discovered XMPP (Jabber) instant messaging protocol encrypted TLS connection wiretapping (Man-in-the-Middle attack) of jabber.ru (aka xmpp.ru) service’s servers on Hetzner and Linode hosting providers in Germany. The attacker has issued several new TLS certificates using Let’s Encrypt service which were used to hijack encrypted STARTTLS connections on port 5222 using transparent MiT

                                                            • はじめての自然言語処理 Hugging Face Transformers で T5 を使ってみる | オブジェクトの広場

                                                              前回が分量的にやたらと重かったので、今回はその反省(反動?)を踏まえて軽い感じでいってみます。第7回で紹介した T5 ですが Hugging Face の Transformers でもサポートされてますので、その使用方法をご紹介したいと思います。 1. はじめに 今回は久しぶりに T5 の話です。T5 に関しては第7回、第8回で一度紹介しているので、未読の方は記事に目を通してから戻ってきて頂けると、より理解がしやすいと思います。 さて、 T5 ですが Google のオリジナルコード(以下 “t5"と記述)1は敷居が高いと感じる方もいらっしゃるのではないでしょうか。 Estimator API ベースのコードや gin による設定など慣れていないと、とっつきにくいのではないかと思います。 そこで今回は Hugging Face の Transformers 2を使って T5 を動かす方法

                                                                はじめての自然言語処理 Hugging Face Transformers で T5 を使ってみる | オブジェクトの広場
                                                              • Rubyアプリケーションのメモリ使用量上昇問題をjemallocを使うことで解決しました - Studyplus Engineering Blog

                                                                こんにちは、スタディプラスの栗山(id:shepherdMaster)です。 今回はRubyアプリケーションのメモリ使用量上昇問題をjemallocを使うことで解決した話です。 Rubyアプリケーションのメモリ使用量上昇問題 弊社ではRuby on Railsをメインで使っていますが、Rubyアプリケーションを長時間稼働させていると、次第にメモリ使用量が増えていく問題に悩まされていました。 これは、Rubyのメモリ領域の断片化によって引き起こされるそうです(参考) puma worker killerによる定期的な再起動 この問題に対応するため、 puma_worker_killerという定期的にpumaのworkerをrestartさせるためのgemを使用し、メモリ使用量が上昇するのを抑えていました。 しかし、puma worker killerの実行のタイミングでたまにNo conne

                                                                  Rubyアプリケーションのメモリ使用量上昇問題をjemallocを使うことで解決しました - Studyplus Engineering Blog
                                                                • OpenSSH: Release Notes

                                                                  OpenSSH Release Notes OpenSSH 9.9p2 (2025-02-18) OpenSSH 9.9p2 was released on 2025-02-18. It is available from the mirrors listed at https://www.openssh.com/. OpenSSH is a 100% complete SSH protocol 2.0 implementation and includes sftp client and server support. Once again, we would like to thank the OpenSSH community for their continued support of the project, especially those who contributed co

                                                                  • Writing an open source GPU driver - without the hardware

                                                                    After six months of reverse-engineering, the new Arm “Valhall” GPUs (Mali-G57, Mali-G78) are getting free and open source Panfrost drivers. With a new compiler, driver patches, and some kernel hacking, these new GPUs are almost ready for upstream. In 2021, there were no Valhall devices running mainline Linux. While a lack of devices poses an obvious obstacle to device driver development, there is

                                                                      Writing an open source GPU driver - without the hardware
                                                                    • Nerd fontとpowerlineとambiguous width - Qiita

                                                                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに こんにちは。まとまった休日を使ってターミナルの設定をいじるのが最近の趣味です。 そんなことをしていたらフォント周りで2日くらい溶けた。失われた時間への供養として調べたことのメモを置いておく。 簡単にこの記事をまとめると、 Nerd Fontsの一部であるPowerline Extra Symbolsがかっちょいいので和文フォントでも使ってみたい なんか表示がずれるのでフォントずれの原因であるUnicodeのambiguous widthについて調べてみた 自分の環境では色々試したけど結局上手くいかないので自分でフォントを作るか

                                                                        Nerd fontとpowerlineとambiguous width - Qiita
                                                                      • llama.ttf

                                                                        llama.ttf is a font file which is also a large language model and an inference engine for that model. Ehm, what? llama.ttf is a font file which is also a large language model and an inference engine for that model. Why? How? The font shaping engine HarfBuzz, used in applications such as Firefox and Chrome, comes with a Wasm shaper allowing arbitrary code to be used to "shape" text. In particular,

                                                                          llama.ttf
                                                                        • GitHub - losfair/mvsqlite: Distributed, MVCC SQLite that runs on FoundationDB.

                                                                          Full feature-set from SQLite: mvSQLite integrates with SQLite as a custom VFS layer. It is a layer "below" SQLite, and all of SQLite's features are available. Time travel: Checkout the snapshot of your database at any point of time in the past. Lock-free, scalable reads and writes: Optimistic fine-grained concurrency with BEGIN CONCURRENT-like semantics. mvSQLite inherits FoundationDB's lock-free

                                                                            GitHub - losfair/mvsqlite: Distributed, MVCC SQLite that runs on FoundationDB.
                                                                          • jemallocator/tikv-jemallocatorのdisable_initial_exec_tlsってなに? - kubo39's blog

                                                                            GitHubでよくjemallocatorを使っているときにdisable_initial_exec_tls featureを有効にしているのをみかける。 これはなにかという話をする前に、TLSモデルについて知っておく必要がある。 TLSにはアクセスモデルというものがあり、モジュールの種類(実行バイナリであるとかdlopenでロードされるものであるとか)や 別のモジュールからアクセスされうるものかといった条件によって種類がある。 ELFなどで一般に用いられているものとして local-exec initial-exec local-dynamic global-dynamic の4種類がある。 ざっくり、 local-exec: 実行バイナリの中でのみ参照されるTLS変数 initial-exec: 実行バイナリ or 最初にロードが走る共有ライブラリ内の静的TLSブロック内に存在するTL

                                                                              jemallocator/tikv-jemallocatorのdisable_initial_exec_tlsってなに? - kubo39's blog
                                                                            • オレオレFuzzerもどきを利用してCTFのpwnableを解こう - CTFするぞ

                                                                              はじめに Fuzzingの概念 なぜ自分でFuzzerを書くのか 実際に問題を解く dual - ユーザーランドプログラムのFuzzing Step 1. Fuzzerの方針を立てる Step 2. テストケースを最適化する Step 3. 問題を解く spark - カーネルドライバのFuzzing Step 1. Fuzzerの方針を立てる Step 2. 再現性のあるテストケースを見つける Step 3. 問題を解く atoms - カーネルドライバのFuzzing(マルチスレッド) Step 1. Fuzzerの方針を立てる Step 2. 問題を解く cgi - CGIのFuzzing Step 1. Fuzzerの方針を立てる Step 2. 解きたい telescope - Fuzzingの結果から攻略法を考え直す Step 1. Fuzzerの方針を立てる Step 2.

                                                                                オレオレFuzzerもどきを利用してCTFのpwnableを解こう - CTFするぞ
                                                                              • 1日約2.7兆のリクエストを、高いパフォーマンスと信頼性で処理 LINE Messaging PlatformのSREが高トラフィックを支える

                                                                                LINEユーザーとビジネスの価値をつなぐためのSREとは、いったいどんなことをするのか。LINEの7つの領域から9名が登壇し、業務内容や体制、開発における課題、働く個々人のやりがいなどについて話します。加藤亙貴氏は、LINE Messaging PlatformのSREについて紹介しました。 LINE Messaging Platformの構成 加藤亙貴氏:LINE Platform Development Center1 Messaging Platform Development室 Z Partチーム HBase Unitの加藤亙貴です。このセッションでは、分散ストレージリライアビリティエンジニアというポジションにおける、LINEプラットフォームのSREについて紹介します。よろしくお願いします。 今日はこのようなアジェンダに沿ってお話しします。始めに、LINE Messaging Pl

                                                                                  1日約2.7兆のリクエストを、高いパフォーマンスと信頼性で処理 LINE Messaging PlatformのSREが高トラフィックを支える
                                                                                • GitHub - yasukata/zpoline: system call hook for Linux

                                                                                  zpoline is a novel system call hook mechanism that offers the following advantages. 100 times faster than ptrace. 100% coverage, namely, it can exhaustively hook system calls. No need for the source code of user-space programs. No need for the change to the OS kernel and no kernel module is necessary. Therefore, zpoline is a quite good option if you think... ptrace is too slow for your project. th

                                                                                    GitHub - yasukata/zpoline: system call hook for Linux