並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 37 件 / 37件

新着順 人気順

spinlockの検索結果1 - 37 件 / 37件

  • vmlinuxのヒミツ - VA Linux エンジニアブログ

    1. vmlinuzの怪 2. vmlinuxの入手 3. ELFファイル 4. ELFセクション 5. セクションの意味 6. Linuxのセクションとldscript 7. .cpuidle.textセクション 8. おわりに 執筆者 : 箕浦 真 1. vmlinuzの怪 Linux (カーネル) のファイル名といえば、/boot/vmlinuz-<version>だ。なんでlinux-<version>とかじゃないのだろうか。 vmの方は、これはおそらくBSD Unixのカーネルvmunixに倣ったものだろう。ベル研究所のResearch Unixを、VAXのハードウェアを生かして仮想記憶 (Virtual Memory) 機能を大幅に強化したため、vmunixとした。 zの方は、これは圧縮されていることを表す。なぜZで圧縮なのかはよくわからないが、圧縮の意味なのだ *1。 現在一

      vmlinuxのヒミツ - VA Linux エンジニアブログ
    • SAD DNSのICMP rate limitを用いたサイドチャネル攻撃について - knqyf263's blog

      脆弱性ネタは人気がないことが過去の傾向から明らかですが、自分が震えるほど感動したので忘れないためにも気合い入れて大作を書きました。 要約 背景 SAD DNSの解説 全体像 UDPのソースポートについて ICMP rate limit per-IP rate limit global rate limit Public-Facing Source Portのスキャン Private Source Portのスキャン 攻撃Windowの拡張 サイドチャネル攻撃でUDPソースポートを推測してみる 対策 攻撃実現性 まとめ 要約 ちゃんと理解するの結構難しいという話があったので、先に要約しておきます。雰囲気だけでも掴んでもらえると嬉しいです。 DNSキャッシュポイズニングの新しい手法としてSAD DNSが発表された キャッシュポイズニングのためには権威DNSサーバ正規の応答を返すより先に攻撃者が

        SAD DNSのICMP rate limitを用いたサイドチャネル攻撃について - knqyf263's blog
      • Linux 6.4がリリース、Apple M2シリコンをイニシャルサポート | gihyo.jp

        Linux Daily Topics Linux 6.4がリリース⁠、Apple M2シリコンをイニシャルサポート Linus Torvaldsは2023年6月25日(米国時間⁠)⁠、「⁠Linux 6.4」の正式リリースを発表した。開発期間は約2ヵ月、通常のスケジュール通りに7本のリリース候補(RC)版を経ての公開となる。 Linux 6.4 -Linus Torvalds Linux 6.4ではAsahi Linuxプロジェクトの貢献により、Apple M2シリコンを搭載したMacBook Air、MacBook Pro、Mac miniが新たにサポートされた。ただし、現状ではM2 Mac miniのディスプレイ出力に問題があるなどいくつかの不具合が生じており、Linux 6.5以降での改善が予定されている。 Rustのサポートも強化されており、ピン留めされたデータの安全な初期化を実現

          Linux 6.4がリリース、Apple M2シリコンをイニシャルサポート | gihyo.jp
        • An Interview With Linus Torvalds: Linux and Git - Part 1 30 Years Of Linux

          Jeremy founded Tag1 Consulting in 2007. He has been a contributing core Drupal developer since 2002, and helped establish Drupal as a successful CMS through the early popularity of his personal blog, KernelTrap.org. Over the years, he authored and maintained the core statistics module and throttle module, as well as the pager logic and the initial Drupal 5 installer. He continues to contribute to

            An Interview With Linus Torvalds: Linux and Git - Part 1 30 Years Of Linux
          • How are Unix pipes implemented?

            This article is about how pipes are implemented the Unix kernel. I was a little disappointed that a recent article titled “How do Unix pipes work?” was not about the internals, and curious enough to go digging in some old sources to try to answer the question. What are we talking about? Pipes are “perhaps the single most striking invention in Unix” — a defining characteristic of the Unix philosoph

              How are Unix pipes implemented?
            • My First Kernel Module: A Debugging Nightmare

              This is the story of the time I wrote some code, deployed it to production, and ended up bricking the server it was running on by frying the kernel. Beautiful rendition of me frying the kernel This post is about perils of concurrency and race conditions. My code was nearly correct, but ultimately, there were two major synchronization bugs that killed it. This is a really long post that gets into t

              • vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その1 - VA Linux エンジニアブログ

                1. vmlinuxのELFセクション 2. initセグメント 2.1. percpuセグメント 2.2. .init.text、.init.data、.init.rodataセクション 2.3. .exit.text、.exit.dataセクション 2.4. .x86_cpu_dev.initセクション 2.5 .iommu_tableセクション 2.6 .apicdriversセクション 3. 休憩 執筆者 : 箕浦 真 1. vmlinuxのELFセクション 前回記事は、もう1年半も前に書いて、それなりに多くの方に読んでいただけたようだ。今回記事は、コード例もなく、単にLinuxという巨象の枝葉末節をああでもないこうでもないと闇雲に撫で回すだけの記事だ。 ELFセクションは、リンク時に、同名のセクションのコードやデータを、すべてのオブジェクトファイルからかき集める、という効果がある

                  vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その1 - VA Linux エンジニアブログ
                • 国際会議 SOSP 2019 - 品川准教授のブログ

                  2019年10月28日~30日にカナダで開催されたシステムソフトウェア系の最高峰の国際会議 The 27th ACM Symposium on Operating Systems Principles (SOSP 2019) で発表された論文の中で個人的に興味のあるものをリストアップしています。 ※1 随時更新していますが、スローペースです。 ※2 興味の程度によって分量に差があります。 ※3 ざっと眺めただけですので、内容も間違っているかもしれません。 目次 概要 Session 1: Machines, Learning Session 2: It Must Be Secure Teechain: 非同期ブロックチェーンアクセスによる安全な決済ネットワーク (Teechain: A Secure Payment Network with Asynchronous Blockchain

                    国際会議 SOSP 2019 - 品川准教授のブログ
                  • 0.8.0 Release Notes ⚡ The Zig Programming Language

                    Tier 4 Support § Support for these targets is entirely experimental. If this target is provided by LLVM, LLVM may have the target as an experimental target, which means that you need to use Zig-provided binaries for the target to be available, or build LLVM from source with special configure flags. zig targets will display the target if it is available. This target may be considered deprecated by

                    • 【pwn 10.0】 gnote (kernel exploitation) - TokyoWesternsCTF2019 - newbie dive into binary

                      1: イントロ 2: 解き始めるまで 問題について デバッグ環境について 3: モジュールの挙動について 4: jmptableの脆弱性について switch分岐のアセンブラ おおよその展望 5:kmalloc()とスラブアロケータについて スラブアロケータ概略 kmalloc() kmem_cache_alloc_trace() slab_alloc()/ slab_alloc_node() つまりは 6: timerfd_ctxを利用したkernel symbol の leak __x64_sys_timerfd_createシステムコール timerfd_release()とRCU 7: RIPを取る 8: privilege acceleration prepare_kernel_cred(NULL); commit_creds() ROPを組んでroot権限を取る sysretq

                        【pwn 10.0】 gnote (kernel exploitation) - TokyoWesternsCTF2019 - newbie dive into binary
                      • Using TLA+ in the Real World to Understand a Glibc Bug

                        Using TLA+ in the Real World to Understand a Glibc Bug by Malte Skarupke TLA+ is a formal specification language that you can use to verify programs. It’s different from other formal verification systems in that it’s very pragmatic. Instead of writing proofs, it works using the simple method of running all possible executions of a program. You can write assertions and if they’re not true for any p

                          Using TLA+ in the Real World to Understand a Glibc Bug
                        • Redisとキャッシュについて理解を深めてみた。 - Qiita

                          業務でキャッシュに関わる部分を見る機会があり、せっかくなのでキャッシュについて理解を深めてみました。そのまとめです。 Redisとは Redisは「REmote DIctionary Server」の略です。githubのリポジトリ→redisのリポジトリ (最近開発者がRedisの開発から退く意向を示す投稿をしていました。そのため、Redisのリポジトリが作者の個人リポジトリからredis-ioリポジトリに移っています。) Redisはin-memory databaseであるが故に高速アクセスが可能であり、client/serverモデルを採用しているが故に複数のクライアントからアクセスすることが可能です。またreplicationがサポートされているなどscalableであるという特徴も持っています。 本投稿では以下の2点を見ていきます。 in-memory database rem

                            Redisとキャッシュについて理解を深めてみた。 - Qiita
                          • 📕 Rust Atomics and Locksを読んだ感想 | Happy developing

                            Rust Atomics and Locks 著者: Mara Bos 楽しみにしていたRust Atomics and Locksを読んだので感想を書いていきます。 Kindle版の 2022-12-14 First Releaseを読みました。 まとめ非常におもしろく是非おすすめしたい本です。 なんといっても、一冊まるごとAtomicとLockについて書かれておりstd::sync::atomic::Orderingがわからない自分のために書かれたのではと錯覚してしまうほどに刺さりました。 また、説明の後には必ず具体例をつけてくれるので理解を確かめられながら読み進められる点もうれしいです。 特に以下のような方におすすめしたいです。(全て自分のことなのですが) atomic api(AtomicI32::{compare_exchange,load,...})を使う際のOrdering(

                              📕 Rust Atomics and Locksを読んだ感想 | Happy developing
                            • LKML: Miguel Ojeda: [PATCH 00/19] Rust support

                              Rust support This is the patch series (v2) to add support for Rust as a second language to the Linux kernel. If you are interested in following this effort, please join us in the mailing list at: rust-for-linux@vger.kernel.org and take a look at the project itself at: https://github.com/Rust-for-Linux As usual, special thanks go to ISRG (Internet Security Research Group) and Google for their finan

                              • プログラミングC# 第8版

                                C#を体系的に網羅したC#プログラマのバイブルが、C# 8.0に合わせて全面改訂。言語仕様からクラウドも考慮したWebアプリ開発、デスクトップアプリ構築まで、C# 8.0の基本から高度なテクニックまでを詳しく紹介します。C# 8.0では、パターンマッチング、範囲構文、非同期メソッドの大幅拡張、null許容参照をはじめさまざまな新機能の追加と改善がされています。本書はこうした新機能もしっかりとフォロー。詳細な説明と、豊富なサンプルコードを用意し、初心者はもちろん中上級者の要望にも応える一冊です。 目次 はじめに 1章 C#の基礎 1.1 なぜC#なのか 1.2 C#の主な特徴 1.2.1 マネージコードとCLR 1.2.2 専用よりも汎用を 1.3 C#標準と実装 1.3.1 多数のMicrosoft .NET(一時的なものとして) 1.3.2 .NET Standardによる複数の.NET

                                  プログラミングC# 第8版
                                • The stack monoid revisited

                                  This is a followup to my previous post on the stack monoid, but is intended to be self-contained. Motivation: tree structured data GPUs are well known for being efficient on array-structured data, where it is possible to operate on the elements of the array in parallel. That last restriction doesn’t mean that the operations have to be completely independent; it’s also well known that GPUs are good

                                  • A GPIO driver in Rust [LWN.net]

                                    As an example of what a "real" device driver in Rust would look like, Wedson Almeida Filho has posted a translation of the PL061 GPIO driver alongside the original. For ease of reading, the resulting HTML has been reformatted a bit and placed below; viewing in a wide window is recommended. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 4

                                    • LKML: ojeda@kernel ...: [PATCH 00/13] [RFC] Rust support

                                      From: Miguel Ojeda <ojeda@kernel.org> Some of you have noticed the past few weeks and months that a serious attempt to bring a second language to the kernel was being forged. We are finally here, with an RFC that adds support for Rust to the Linux kernel. This cover letter is fairly long, since there are quite a few topics to describe, but I hope it answers as many questions as possible before the

                                      • Mutexes Are Faster Than Spinlocks

                                        Mutexes Are Faster Than Spinlocks Jan 4, 2020 (at least on commodity desktop Linux with stock settings) This is a followup to the previous post about spinlocks. The gist of the previous post was that spinlocks have some pretty bad worst-case behaviors, and, for that reason, one shouldn’t blindly use a spinlock if using a sleeping mutex or avoiding blocking altogether is cumbersome. In the comments

                                        • Rewriting m4vgalib in Rust - Cliffle

                                          2019-02-23 Executive summary Motivation Rust has a package manager On no_std On API design On binary size On memory safety Bounds checks On safety from data races If this isn’t your first time visiting my blog, you may recall that I’ve spent the past several years building an elaborate microcontroller graphics demo using C++. Over the past few months, I’ve been rewriting it — in Rust. This is an i

                                          • Real World Technologies - Forums - Thread: Nuances related to Spinlock implementation and the Linux Scheduler

                                            Linus Torvalds (torvalds.delete@this.linux-foundation.org) on January 3, 2020 7:05 pm wrote: > Beastian (no.email.delete@this.aol.com) on January 3, 2020 11:46 am wrote: > > I'm usually on the other side of these primitives when I write code as a consumer of them, > > but it's very interesting to read about the nuances related to their implementations: > > The whole post seems to be just wrong, an

                                            • A Close Look at a Spinlock – Embedded in Academia

                                              The spinlock is the most basic mutual exclusion primitive provided by a multiprocessor operating system. Spinlocks need to protect against preemption on the current CPU (typically by disabling interrupts, but we’ll ignore that aspect in this post) and also against attempts by other cores to concurrently access the critical section (by using atomic memory operations). As the name implies, attempts

                                              • Interior mutability patterns

                                                Rusts type system requires that there only ever is one mutable reference to a value or one or more shared references. What happens when you need multiple references to some value, but also need to mutate through them? We use a trick called interor mutability: to the outside world you act like a value is immutable so multiple references are allowed. But internally the type is actually mutable. All

                                                • [PATCH 00/17] Rust support - ojeda

                                                  linux-kernel.vger.kernel.org archive mirror help / color / mirror / Atom feedFrom: ojeda@kernel.org To: Linus Torvalds <torvalds@linux-foundation.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: rust-for-linux@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Miguel Ojeda <ojeda@kernel.org> Subject: [PATCH 00/17] Rust support Date: Sun

                                                  • Real World Technologies - Forums - Thread: Nuances related to Spinlock implementation and the Linux Scheduler

                                                    By: Linus Torvalds (torvalds.delete@this.linux-foundation.org), January 6, 2020 1:28 pm Gionatan Danti (g.danti.delete@this.assyoma.it) on January 6, 2020 12:13 pm wrote: > > However, I have a question about a recent kernel change that broke an important 3rd party > module: zfs. I don't want absolutely to flame, and feel free to not reply if think so. Note that "we don't break users" is literally

                                                    • Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is

                                                      Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is by Malte Skarupke This blog post is one of those things that just blew up. From a tiny observation at work about odd behaviors of spinlocks I spent months trying to find good benchmarks, (still not entirely successful) writing my own spinlocks, mutexes and condition variables and even contributing a patch to the Linux kernel. T

                                                        Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is
                                                      • xv6にネットワーク機能を実装した : DSAS開発者の部屋

                                                        在宅勤務に移行してから1ヶ月半ほど経過しました。通勤という概念が消滅したおかげで午前中から活動できるようになった @pandax381 です。 要約 フルスクラッチで自作した TCP/IP プロトコルスタックを xv6 に組み込み、一通りの機能が動作するようになりました。 I publish the implementation of TCP/IP network stack on xv6. I ported my user-mode TCP/IP stack, which was originally developed for learning, and added the e1000 driver and socket system calls. Some parts are still not enough, but they are working.https://t.co/nh

                                                          xv6にネットワーク機能を実装した : DSAS開発者の部屋
                                                        • Flipping Pages: An analysis of a new Linux vulnerability in nf_tables and hardened exploitation techniques

                                                          This blogpost is the next instalment of my series of hands-on no-boilerplate vulnerability research blogposts, intended for time-travellers in the future who want to do Linux kernel vulnerability research. Specifically, I hope beginners will learn from my VR workflow and the seasoned researchers will learn from my techniques. In this blogpost, I'm discussing a bug I found in nf_tables in the Linux

                                                          • The Linux Kernel's Scheduler Apparently Causing Issues For Google Stadia Game Developers - Phoronix

                                                            The Linux Kernel's Scheduler Apparently Causing Issues For Google Stadia Game Developers Written by Michael Larabel in Linux Kernel on 1 January 2020 at 04:31 PM EST. 89 Comments Among the issues that game developers have been facing in bringing their games to Linux for Google's Stadia cloud gaming service apparently stem from kernel scheduler issues. We've known the Linux kernel scheduler could u

                                                              The Linux Kernel's Scheduler Apparently Causing Issues For Google Stadia Game Developers - Phoronix
                                                            • The Android kernel mitigations obstacle race

                                                              SecurityThe Android kernel mitigations obstacle raceIn this post I’ll exploit CVE-2022-22057, a use-after-free in the Qualcomm gpu kernel driver, to gain root and disable SELinux from the untrusted app sandbox on a Samsung Z flip 3. I’ll look at various mitigations that are implemented on modern Android devices and how they affect the exploit. In this post, I’ll exploit a use-after-free (UAF) bug,

                                                                The Android kernel mitigations obstacle race
                                                              • xv6: a simple, Unix-like teaching operating system

                                                                xv6: a simple, Unix-like teaching operating system Russ Cox Frans Kaashoek Robert Morris September 6, 2021 2 Contents 1 Operating system interfaces 9 1.1 Processes and memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 I/O and File descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.3 Pipes . . . . . . . . . . . . . . . . . . . . . . . . . .

                                                                • How HappyLock Works

                                                                  Recently, I released version 0.3 of my HappyLock crate on crates.io. In this blog post, I wanted to explain what I changed, and why it works. Background There are four conditions necessary for a deadlock to occur. You only need to prevent one of them in order to prevent all deadlocks: Mutual exclusion Non-preemptive allocation Circular wait Partial allocation Let's go through each one, and see wha

                                                                  • Complexity in Operating Systems

                                                                    Over the last years I’ve been working on very different operating systems. Operating systems are usually incredibly complex beasts. I think there are mainly three drivers of this complexity. Surprisingly enough, neither of these is having to deal with hardware. The first one is resource discovery, i.e. figuring out what the computer the OS is running on actually looks like. On x86, this involves p

                                                                    • 「第11期サイボウズ・ラボユース成果発表会」開催 - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                                      サイボウズ・ラボの光成です。 今回は2022年3月30日に開催された第11期サイボウズ・ラボユース成果発表会の模様を紹介します。 サイボウズ・ラボユース サイボウズ・ラボユースとは日本の若手エンジニアを発掘し、育成する場を提供する制度です。 ラボユース生が作りたいものをサイボウズ・ラボの社員がメンターとしてサポートし、開発機材や開発活動に応じた補助金、旅費の援助をします。 開発物をオープンソースとして公開するという条件の元で著作権は開発者本人に帰属します。 詳細は去年のまとめ記事「若手エンジニアの育成と輩出を目的とするサイボウズ・ラボユースが創立10周年」のPDFもごらんください。 発表会レポート 今年も発表者が多いため、ごく簡単なコメントにて失礼します。 第11期サイボウズ・ラボユース成果発表会 第一部 ○富重 亮佑 「MikanOSへのLinux互換レイヤーの実装」(メンター:内田)

                                                                        「第11期サイボウズ・ラボユース成果発表会」開催 - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                                      • (C#) lock フリーで高速なスレッドセーフ操作 - ネコのために鐘は鳴る

                                                                        C# で排他制御をしたい場合いくつか方法があります。何も考えずに雑にlock構文を書くだけで同期は取れるのですが、より高度にパフォーマンスチューニングしたい場合のため、効率的な方法を紹介します。 例えば以下のようなものがあるとします。 // スレッドセーフではないもの public static class Foo { private static int[] _array = new int[10]; private static int _updateCount; public static void SetValue(int index, int value) { _array[index] = value; _updateCount++; } public static (int value, int updateCount) GetValue(int index) { retur

                                                                          (C#) lock フリーで高速なスレッドセーフ操作 - ネコのために鐘は鳴る
                                                                        • Announcing HAProxy 2.7

                                                                          Register for the webinar HAProxy 2.7 Feature Roundup to learn more about this release and participate in a live Q&A with our experts. Once again, the latest HAProxy update features improvements across the board, upgrading old features and introducing some new ones. New elements in this release include: the debut of traffic shaping to control client upload and download speeds an improvement to heal

                                                                            Announcing HAProxy 2.7
                                                                          • The design of lock_sock() in Linux kernel

                                                                            Among various kinds of locks in Linux kernel code base, lock_sock() is probably the weirdest one (if RCU is not even weirder). As we all know, basically, there are two categories of locks in Linux kernel: blocking ones like a mutex or a semaphore; non-blocking ones like a spinlock, or a read-write lock. The pick of them largely depends on within which context you plan to use them. The weird part o

                                                                              The design of lock_sock() in Linux kernel
                                                                            1