並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 75件

新着順 人気順

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

  • スワップの弁護:よくある誤解を解く

    (This post is also available in English.) この記事は In defence of swap: common misconceptions を 著者の Chris Down さんの許可 を得て Hiroaki Nakamura が日本語に翻訳したものです。 原文のライセンス は CC BY-SA 4.0 であり、翻訳のライセンスも同じく CC BY 4.0 とします。 長文を読みたくない方への要約: スワップを持つことは正しく機能するシステムのかなり重要なポイントです。 スワップが無ければ、まともなメモリ管理を実現することは難しくなります。 スワップは一般的に緊急事態用のメモリを取得するためのものではなく、メモリの回収を平等に効率的に行うためのものです。 実のところ「緊急事態用のメモリ」は一般的に盛大に悪影響を及ぼします。 スワップを無効にすることは

      スワップの弁護:よくある誤解を解く
    • 【2019年】CTF Web問題の攻撃手法まとめ (Web問題のwriteupぜんぶ読む) - こんとろーるしーこんとろーるぶい

      CTF Advent Calendar 2019 - Adventarの25日目の記事です。 1つ前は@ptr-yudai氏の2019年のpwn問を全部解くチャレンジ【後半戦】 - CTFするぞでした。 はじめに 対象イベント 問題数 読み方、使い方 Cross-Site Scripting(XSS) SVGファイルを利用したCSPバイパス GoogleドメインのJSONPを利用したCSPバイパス サブリソース完全性(SRI)機能を利用した入力チェックバイパス Chrome拡張機能のパスワードマネージャーKeePassの悪用 HTML likeコメントを使用したコメントアウト jQuery.getJSONのJSONP機能を使用したスクリプト実行 DOM Clobberingによるコードハイジャック Service Workerを利用したスクリプト実行 XSS Auditor機能のバイパス

        【2019年】CTF Web問題の攻撃手法まとめ (Web問題のwriteupぜんぶ読む) - こんとろーるしーこんとろーるぶい
      • 端末の文字幅問題の傾向と対策 | 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

                              河田 旺、小池 悠生、渡邉 慶一、佐伯 学哉、荒田 実樹 著、鈴木 創、中村 孝史、竹腰 開、光成 滋生、hikalium、浜地 慎一郎 寄稿 TOPICS Programming 発行年月日 2024年08月 PRINT LENGTH 660 ISBN 978-4-8144-0085-0 FORMAT Print PDF EPUB 本書は低レイヤのプログラミングに関するHack集であり、2006年に発行された『Binary Hacks』の再構築版として書かれました。低レイヤとは抽象化の度合いが低く計算機と近いレイヤのことを指し、またHackとは巧妙な方法で問題を解決する手法を指します。現代のコンピュータシステムは重層的です。抽象化のレイヤを重ねることで発展し、無数の機能が実現されています。これらのレイヤは巧みに設計されているため、機能を利用するだけなら各レイヤの動作を詳細に知る必要はあり

                                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

                                          • Sandboxing in Linux with zero lines of code

                                            Modern Linux operating systems provide many tools to run code more securely. There are namespaces (the basic building blocks for containers), Linux Security Modules, Integrity Measurement Architecture etc. In this post we will review Linux seccomp and learn how to sandbox any (even a proprietary) application without writing a single line of code. Tux by Iwan Gabovitch, GPL Sandbox, Simplified Pixa

                                            • 性能と可搬性に配慮した 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
                                              • 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
                                                • The Quest for Netflix on Asahi Linux | Blog

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

                                                  • 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

                                                        • クラウド側からのコマンドで動画が取得できる監視カメラを作ってみました | DevelopersIO

                                                          1 はじめに CX事業本部の平内(SIN)です。 Raspberry Piで監視カメラを作成し、クラウド側からコマンドを送ることで、指定した時間の動画が取得できる仕組みを試してみました。 この仕組みの利点としては、以下のようなものが上げられます。 リクエストされたデータだけをmp4形式で送信するので、通信帯域に負荷が少ない 通信帯域に負荷が少ない為、比較的解像度の高い動画が保存可能 動画を取得する時以外は、通信環境が不要 デバイスにディスクを追加することで、長期間の動画保存も可能 最初に、この監視カメラをドライブレコーダーのように使用してみた例です。 「動画を取得する時以外は、通信環境が不要」という特徴を生かして、雑ですが、車のフロントガラスの手前にシガラーターから電源を取って監視カメラとして動作させています。動画は、Wi-Fi環境が利用可能な所で、コマンドを送って取得しています。 2 構

                                                            クラウド側からのコマンドで動画が取得できる監視カメラを作ってみました | DevelopersIO
                                                          • 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.8/9.8p1 (2024-07-01) OpenSSH 9.8 was released on 2024-07-01. 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

                                                                      • 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

                                                                          はじめに こんにちは。まとまった休日を使ってターミナルの設定をいじるのが最近の趣味です。 そんなことをしていたらフォント周りで2日くらい溶けた。失われた時間への供養として調べたことのメモを置いておく。 簡単にこの記事をまとめると、 Nerd Fontsの一部であるPowerline Extra Symbolsがかっちょいいので和文フォントでも使ってみたい なんか表示がずれるのでフォントずれの原因であるUnicodeのambiguous widthについて調べてみた 自分の環境では色々試したけど結局上手くいかないので自分でフォントを作るか? 2019/12/27 追記 以下で区切り文字がピッタリ合わないとひたすら文句を言っている部分があるが、powerline用フォントの表示が「微妙に」ずれるのは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するぞ