はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    参議院選挙2025

『qiita.com』

  • 人気
  • 新着
  • すべて
  • gdbを使ったdynamic debugの小技集 - Qiita

    5 users

    qiita.com/rarul

    はじめに こ、えだ臭?(デブ活 ソフトウェア開発をするとどうしてもデバッグに割かれる時間は長くなります。効率的にデバッグをするためにはデバッグをしやすい環境を整えておくことが不可欠です。特にLinuxだと標準的なデバッガとしてgdbが使えることが多いので、gdbを中心にデバッグ環境を整えることも多いと思います。 この記事では、gdbを使ったdynamicな方法でのデバッグの小技をいくつか紹介します。逆に、一般的なgdbの使い方の、break入れてcontinueしたり変数の中身を見たりといったとこは他の記事に任せることとします。 とはいえまずはgdbの一般的な話から dynamicにといっても、素性のgdbのままでは辛いことも多い。個人的には下記を常用している。 set print pretty on set print object on set print static-members

    • テクノロジー
    • 2022/05/10 04:20
    • tool
    • シグナルハンドラにprintf()を書いてはいけない - Qiita

      193 users

      qiita.com/rarul

      三行でまとめると シグナルハンドラ内でprintf()してはいけない というより、余計な処理を書いてはいけない もう一度言う、シグナルハンドラで余計なことをするな、非常に大事なことだ はじめに シグナルハンドラでやってよい処理は非常に限られるのに、全くルールを守らないサンプルコードが世の中に大量に出回っている。printf()するなんてもってのほかなのだが、カジュアルにそこらじゅうで見かけて非常に悲しい。 この記事では、そんな状況を少しでも改善したいと思い初心者向きに書いたものだ。そのため、下記では、回避するにはどう実装すればよいのか、ルールを破るとどうなるのか、といった点を先に簡潔に記述する。 なぜしてはいけないのか、POSIXだとかリエントラントだとか、は下の方に追いやっている。玄人は読んでてウズウズするだろうが、細かい話はできるだけ目につかないような構成としたため了解いただきたい。

      • テクノロジー
      • 2022/05/09 11:30
      • linux
      • unix
      • C
      • プログラミング
      • シグナル
      • あとで読む
      • signal
      • programming
      • 技術
      • qiita
      • Linuxのファイルのreadaheadを読む - Qiita

        6 users

        qiita.com/rarul

        はじめに Linuxでファイルのreadaheadがどのように動いているのかを読み解くという趣旨の雑記です。kernelへの理解の助けにはなると思いますが、何かしらの結論めいた記事というには程遠いです。 なお、Linux-4.16くらいを見ています。 readaheadの役割 例えば、とあるファイルを先頭から4KB分readしようとしたとする。要求に応じ、Linux kernelは該当ファイルのinodeの中身の位置を特定し、少なくとも中身の先頭から4KB分をreadして返さないといけない。 ただ、先頭から4KBをreadするようなユースケースの場合、続けて次の4KBもreadするような処理へ続く可能性が一般的に高い。このため、先に4KBをreadするときに、kernelが勝手に4KBではなくて8KBやら16KBやらreadしてページキャッシュに載せておくと、続きの要求を出すときにすでにr

        • テクノロジー
        • 2018/05/24 13:53
        • あとで読む
        • Linuxのドライバの初期化が呼ばれる流れ - Qiita

          7 users

          qiita.com/rarul

          2017年も残るところ1ヶ月を切りました。いよいよですね、待ち遠しくなってきました、 $\textlarge{鏡音リン・レン誕生祭!}$ 10周年を迎えて記念のコンピアルバムCDもたくさん発表されたりと、ボーカロイド界隈の勢いは衰えません。そこ、ミクさんの存在が大きくてほかは影が薄いとか言わない。ぼくだってこんなにハマるとは思わなかったんです。10年前はマジメに技術的な話だけを追っていたはずなのに、どうしてこうなった。こんな地味なプログラム系記事を書くようなおっさんじゃなくて、リンちゃんの曲を作る超売れっ子ボカロPに生まれたかったです。 ・・・失礼しました・・・ 本当のはじめに Linuxのkernelにはじめて触ってみるきっかけになったのはドライバの組み込みや修正だ、という人が多いんじゃないかと思う。現代的なOSではやらなくてはいけないことは非常に多岐にわたるけど、そんな全体像のことはわ

          • テクノロジー
          • 2017/12/12 09:50
          • kernel
          • Linux
          • japanese
          • Linuxのfsfreezeを調査する - Qiita

            7 users

            qiita.com/rarul

            はじめに Linuxにはfsfreeze(8)というFilesystemへのアクセスを一時凍結させる機能がある。Filesystemのスナップショットを取るなどの目的で使われるようだ。このfsfreezeがどのように動いているのかについて調査してみた。 なお、動作確認はUbuntu16.04(Linux-4.4.0-83-generic)くらいで行いつつ、ソースコードはLinux-4.12くらいとutil-linux-2.30.1くらいを見ています。 試してみる fsfreezeの実行 システムに影響を与えるところで実験するのは怖いので、テスト用のFilesystemを用意してテストする。 [rarul@tina ~]$ mkdir ~/test [rarul@tina test]$ cd ~/test [rarul@tina test]$ dd if=/dev/zero of=hoge.

            • テクノロジー
            • 2017/08/26 08:21
            • kernel
            • Linux
            • Linuxのdrop_cachesにwriteした時の動きを追う - Qiita

              50 users

              qiita.com/rarul

              はじめに drop_cachesにwriteしてみて、その前後での/proc/meminfoやfree(1)コマンド結果を観察するような記事はたくさんあるけど、drop_cachesにwriteしたときに何をやっているのかを詳しく解説したような記事が全然見つからなかったので、自分で調べてみることにした。 ・・・という間違いを犯して泥沼にハマり貴重な休みを潰してしまったとあるエンジニアの活動を記録した記事である(たぶん) なお、Linux-4.12くらい、procps-ng-3.3.12くらいを見ています。 ページキャッシュの概要 概要 そもそも通常は、あえてdrop_cachesに値を書いて操作する必要が出るような場面はないと思われる。敷いていえば、ページキャッシュに乗ってる場合と乗っていない場合とでのベンチマークをしたいときくらい? まれに/proc/meminfoのMemFreeが少な

              • テクノロジー
              • 2017/08/18 23:48
              • kernel
              • linux
              • cache
              • memory
              • drop
              • キャッシュ
              • あとで読む
              • Linuxのswappinessは本当にスワップしにくさを設定できるのか - Qiita

                56 users

                qiita.com/rarul

                いきなり結論 Q. swappinessって本当に「スワップしにくさ」を設定できるの? A. はい、本当です。 ただそれが本当にあなたの望む動作なのかについては注意が必要です。 swappinessは、0から100までの値を設定することができ、それはメモリを回収(scan)するときにどこから回収するかに効いて、200分率で下記のように使われる (swappiness)の割合でANONYMOUSEをscanする (200-swappiness)の割合でfile_backedをscanする Red Hatのマニュアルにある通り、小さくするにしても10あたりが無難。1だとかなり攻めている。下記で見ていくが、よほどわかっている場合を除いて、0にするのはやめておいたほうが良い。 はじめに Linuxには「スワップのしにくさ」を設定できるswappinessというパラメータがある。

                • テクノロジー
                • 2017/08/16 11:38
                • linux
                • swap
                • kernel
                • あとで読む
                • swappiness
                • libprocps programming - Qiita

                  6 users

                  qiita.com/rarul

                  # include <stdio.h> # include <proc/readproc.h> static void show_proc(proc_t *proc_info) { printf ("tid=%d, ppid=%d, pgrp=%d, session=%d, tty=%d, tpgid=%d [%s]\n", proc_info->tid, proc_info->ppid,proc_info->pgrp, proc_info->session, proc_info->tty, proc_info->tpgid, proc_info->cmd); return; } int main(int argc, char* argv[]){ PROCTAB* proc; proc_t *proc_info; proc = openproc(PROC_FILLARG | PROC_FI

                  • テクノロジー
                  • 2017/05/01 10:15
                  • linux
                  • あとで読む
                  • Linuxのschedのpriorityとリアルタイムシステムについて - Qiita

                    92 users

                    qiita.com/rarul

                    はじめに Linuxでいわゆるリアルタイムシステムを指向するときはsched(7)のpriority値を意識することになるが、個人的にいつもpriorityの値を相対的にしか見られず、絶対的にかつどっちが上・下かについてわからなくなってしまうので、そんな自分のためにメモ書きしておくことにした・・・つもりが、なにか途中から趣旨を間違えた記事になってしまった。本当は「priority一覧表」がほしかっただけだったのに... なお、Linux-4.10くらい、procps-ng-3.3.12くらい、util-linux-2.29.2くらいを見ています。 schedのpolicyとpriority値 Linuxでは、ユーザプログラム・kernelスレッド問わず、タスクにsched policyを設定できる。下記の上3つがいわゆるリアルタイムスケジューリング、下3つがいわゆるタイムシェアスケジューリ

                    • テクノロジー
                    • 2017/04/22 23:40
                    • linux
                    • kernel
                    • スケジューリング
                    • あとで読む
                    • programming
                    • OS
                    • Qiita
                    • I/OスケジューラのCFQとクラスを理解する - Qiita

                      11 users

                      qiita.com/rarul

                      IOPRIO_CLASS_NONEを指定しようとした時は、優先度を入れようとしていないことを確認して0にしているくらいで、特にIOPRIO_CLASS_BEに倒したりエラーにしたりはしていない。後にもいろいろ関連すること記述するが、少なくともionice(1)を見る限り、IOPRIO_CLASS_NONEという種類のクラスがあると考えた方がよい。 I/Oスケジューラの種類 LinuxではブロックデバイスごとにI/Oスケジューラを設定できる。動的に変更することもできる。どれになるかは下記の順で決まる。 /sys/block/sda1/queue/schedulerに値を書く (詳細はググればたくさん見つかるのでそちらに任せる) cmdlineに elevator=cfqなどを足す コンパイルオプション**CONFIG_DEFAULT_IOSCHED="cfq"**などを足す 一般的な環境だと

                      • テクノロジー
                      • 2017/04/06 11:25
                      • kernel
                      • linux
                      • performance
                      • Saved For Later
                      • あとで読む
                      • アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita

                        41 users

                        qiita.com/rarul

                        # include <stdio.h> # include <string.h> int main(){ FILE *fp; fp = fopen("/proc/self/maps", "re"); if (fp != NULL) { char buf[256]; while (fgets(buf, sizeof(buf), fp) != NULL) { if (strstr(buf, "[stack]") != NULL) { puts(buf); } } fclose(fp); } return 0; } 実行可属性とNXビット 今時のCPU+LinuxではMMUを介してページごとにメモリにアクセスするが、この時のページの属性の1つに実行可属性がある。xとかPROT_EXECとか。kernelに入るとこれはVM_EXECとして管理されるが、最終的には、CPUごとのARCHに依存したいわ

                        • テクノロジー
                        • 2017/03/30 19:46
                        • asm
                        • gcc
                        • アセンブラ
                        • Linux
                        • C
                        • あとで読む
                        • security
                        • CPU
                        • プログラマのためのフラッシュメモリ入門 - Qiita

                          84 users

                          qiita.com/rarul

                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 最近はSSDが広まってきたため語られることが増えてきたものの、以前はそうでもなかったような、そんなフラッシュメモリにまつわる話をこのへんでプログラマ視点でまとめておこうと思う。 技術的な話というよりポエム感がでているかもしれない。内容がLinuxにかたよっているかもしれない。 FTLとMTD HDDと比較するとフラッシュメモリは以下のような点が異なる。 read, writeはページ単位で行う 通常はwriteは上書きできない writeしなおすためには一度eraseをする必要がある eraseはブロック単位で行う 今時のML

                          • テクノロジー
                          • 2017/03/12 11:25
                          • フラッシュメモリ
                          • ssd
                          • hardware
                          • メモリ
                          • storage
                          • linux
                          • あとで読む
                          • ext4のnobarrierとjournal_async_commitの詳細 - Qiita

                            5 users

                            qiita.com/rarul

                            185 barrier=<0|1(*)> This enables/disables the use of write barriers in 186 barrier(*) the jbd code. barrier=0 disables, barrier=1 enables. 187 nobarrier This also requires an IO stack which can support 188 barriers, and if jbd gets an error on a barrier 189 write, it will disable again with a warning. 190 Write barriers enforce proper on-disk ordering 191 of journal commits, making volatile disk

                            • テクノロジー
                            • 2017/02/24 08:51
                            • kernel
                            • linux
                            • システム
                            • Linuxのバージョンを確認する方法 - Qiita

                              4 users

                              qiita.com/rarul

                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                              • テクノロジー
                              • 2017/02/15 01:38
                              • Linuxのrelatimeマウントオプションの詳細 - Qiita

                                5 users

                                qiita.com/rarul

                                結論から Linux-3.18くらいをベースに、一部だけLinux-4.6くらいを見ています。 よくわからない場合 オプションは何も足すな。何も削るな。 mtimeを見るアプリを動かしたくて... strictatimeを足す (atimeでは手元ではダメだった) 時刻とか互換性とかいいから最速を目指すぜ noatime lazytime くらい? (lazytimeはLinux-4.0から) はじめに Linux-2.6.30から登場してデフォルトになったrelatimeは、RedHatのマニュアルにもあるくらい日本語のサイトでも結構情報が出回っているので、今更概要とかは書かなくてもよいかと思う。 noatime vs relatime このへん(atime関連マウントオプション使用時のディスク性能比較)にテスト結果などあるとおり、パフォーマンス観点ではデフォルトのrelatimeをno

                                • テクノロジー
                                • 2017/01/23 10:52
                                • システム
                                • Linux

                                このページはまだ
                                ブックマークされていません

                                このページを最初にブックマークしてみませんか?

                                『qiita.com』の新着エントリーを見る

                                キーボードショートカット一覧

                                j次のブックマーク

                                k前のブックマーク

                                lあとで読む

                                eコメント一覧を開く

                                oページを開く

                                はてなブックマーク

                                • 総合
                                • 一般
                                • 世の中
                                • 政治と経済
                                • 暮らし
                                • 学び
                                • テクノロジー
                                • エンタメ
                                • アニメとゲーム
                                • おもしろ
                                • アプリ・拡張機能
                                • 開発ブログ
                                • ヘルプ
                                • お問い合わせ
                                • ガイドライン
                                • 利用規約
                                • プライバシーポリシー
                                • 利用者情報の外部送信について
                                • ガイドライン
                                • 利用規約
                                • プライバシーポリシー
                                • 利用者情報の外部送信について

                                公式Twitter

                                • 公式アカウント
                                • ホットエントリー

                                はてなのサービス

                                • はてなブログ
                                • はてなブログPro
                                • 人力検索はてな
                                • はてなブログ タグ
                                • はてなニュース
                                • ソレドコ
                                • App Storeからダウンロード
                                • Google Playで手に入れよう
                                Copyright © 2005-2025 Hatena. All Rights Reserved.
                                設定を変更しましたx