タグ

linuxに関するmasami256のブックマーク (181)

  • Linuxのカレンダー | Advent Calendar 2022 - Qiita

    便利なTips、Linux Kernel、ディストリビューション、デスクトップ等々、Linuxに関することなら何でも大丈夫です😊 これまでのアドベントカレンダー 2021年のアドベントカレンダー 2020年のアドベントカレンダー(その2) 2020年のアドベントカレンダー 2019年のアドベントカレンダー 2018年のアドベントカレンダー 2017年のアドベントカレンダー 2016年のアドベントカレンダー 2015年のアドベントカレンダー 2014年のアドベントカレンダー 2013年のアドベントカレンダー edit_calendarHow to join the calendarYou can join the calendar by selecting an available date and registering the URL of the article you wish t

    Linuxのカレンダー | Advent Calendar 2022 - Qiita
    masami256
    masami256 2022/11/01
    Linuxアドベントカレンダー2022作りました🐧
  • Linuxのカレンダー | Advent Calendar 2021 - Qiita

    便利なTips、Linux Kernel、ディストリビューション、デスクトップ等々、Linuxに関することなら何でも大丈夫です😊 これまでのアドベントカレンダー 2020年のアドベントカレンダー(その2) 2020年のアドベントカレンダー 2019年のアドベントカレンダー 2018年のアドベントカレンダー 2017年のアドベントカレンダー 2016年のアドベントカレンダー 2015年のアドベントカレンダー 2014年のアドベントカレンダー 2013年のアドベントカレンダー edit_calendarHow to join the calendarYou can join the calendar by selecting an available date and registering the URL of the article you wish to link to. If a s

    Linuxのカレンダー | Advent Calendar 2021 - Qiita
    masami256
    masami256 2021/11/01
    2021年のLinuxアドベントカレンダー作りました🐧 参加よろしくお願いします😊
  • New Year, new Red Hat Enterprise Linux programs: Easier ways to access RHEL

    This post highlights new, simplified and low-/no-cost options for deploying RHEL. These are the first of many new programs. To immediately go to the program that interests you: No-cost RHEL for small production workloads No-cost RHEL for customer development teams On December 8, 2020, Red Hat announced a major change to the enterprise Linux ecosystem: Red Hat will begin shifting our work from Cent

    New Year, new Red Hat Enterprise Linux programs: Easier ways to access RHEL
  • 1999年発行(日本語翻訳版)のLinuxカーネル解説本を見返してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    この記事はLinux Advent Calendar 2020の24日目の記事です。 自分がLinuxを使いだした頃、OSはどうやってブートしてんるんだろう🤔とか色々知りたくて買ったのが↓のです。 Linuxカーネルインターナル 買った当時は知識がなくて読むのが大変だったけど今はそれなりに読めるようになり、さすがに成長したなとも思ってみたり😃 初版が1999年6月25日と書いてあるので2000年台の始めの頃に買ったんでしょう。それにしても翻訳版の初版が発行された時点からでも21年前のということか。 このが対象としているのはLinux 2.0です。目次は次のようになってます。メモリ管理、ファイルシステム、モジュール、ネットワーク等々ありますね。基的な機能は変わってないので現在のカーネルでこの目次の内容に沿ってコードを読んでみるというのは面白いかもしれません。この記事を書いている時

    1999年発行(日本語翻訳版)のLinuxカーネル解説本を見返してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
    masami256
    masami256 2020/12/25
    Linux Advent Calendar 2020 24日目の記事を書きました🐧
  • システムコールトレーシング: 吸い込まれる標準入力を観察する - にゃみかんてっくろぐ

    Linuxその2 Advent Calendar 2020 18 日目の記事です。 「スクリプト書いてたんですが、なぜか途中で止まるんです」と言われた。 止まっている様子(シンタックスハイライトが綺麗でないので画像で) 確かに yarn gen で止まっている。 yarn start も date も実行されていない。終了コードは 0 で、正常だ。 「ファイルとして実行してみて」と伝えた。 最後まで実行される様子 最後まで実行された。 雰囲気で「たぶん 標準入力が吸い込まれている」と雑返答をしてしまったが、ここでその正体を明らかにしておきたい。 1. strace でシステムコールを記録する 2. システムコールから挙動を観察する 2-1. ヒアドキュメントの書き出し 2-2. 標準入力をヒアドキュメントに差し替え 2-3. bash を実行 2-4. 標準入力を読み込み 2-5. dat

    システムコールトレーシング: 吸い込まれる標準入力を観察する - にゃみかんてっくろぐ
  • TLPI WebサイトのSeccomp user space notification サンプルを触ってみた - ローファイ日記

    Linuxアドベントカレンダー2020 その2 16日目の記事です。昨日はn01e0さんのreadfile(2) のいい話 でした。 qiita.com ところでその1では、先日、tenforwardさんによりSeccomp user space notificationの分かりやすい解説記事が上がっていました。 gihyo.jp 今日もSeccomp user space notificationのお話の流れに乗っかろうと思います。ではやっていきましょう。 Seccomp の仕組み(コード編) Seccomp はLinuxにおける、システムコールのフィルタリングの仕組みです。詳細な説明は上述のtenforwardさんの記事に譲りますが...。 拙作 mruby-seccomp を用いたフィルターの例を示します。mruby-seccompを組み込んだmrubyで以下のスクリプトを起動すると

    TLPI WebサイトのSeccomp user space notification サンプルを触ってみた - ローファイ日記
  • 第47回 非特権コンテナの可能性を広げるseccomp notify機能 | gihyo.jp

    前回の連載が掲載されたあと、久々にコンテナの勉強会をオンラインで開催しました。2回に渡って、cgroupをテーマにカーネルの実装に踏み込んだ内容のお話が聞けました。私もcgroup v1の内部構造についてお話しました。動画は公開されていますのでぜひご覧ください。 さて、今年も気がつけばもう12月で、Advent Calendarの季節になりました。今年はいろいろなことがありましたが、今振り返るとあっという間だった気がします。今年もこの連載で毎年参加しているLinux Advent Calendarに参加します。この記事はLinux Advent Calendar 2020の15日目の記事となります。 この連載は、名前に「LXCで学ぶ」と付いているわりには、最近まったくLXCが出てきませんでしたが(^_^;)、今回は久々にLXCコンテナを使って機能の説明をしたいと思います。とは言ってもLXC

    第47回 非特権コンテナの可能性を広げるseccomp notify機能 | gihyo.jp
  • bpftrace 2020 - 睡分不足

    (この記事はLinux Advent Calendar 2020 - Qiitaの2日目の記事です.前日はmasami256さんのTiny Core LinuxLinuxのinitプロセスが実行されるあたりを調べるでした.) みなさんこんにちはこんばんは.bpftraceを使っていますか? (e)BPFといえば最近は専らCiliumなどネットワークが話題ですが,bpftraceはBPF*1を利用したトレーシングツールです.私は昨年からぼちぼち使い始めて,機能追加やバグ修正のパッチをいろいろと投げていた(130+)ら気づいたらコミッタになっていました.ということでbpftraceについては比較的よく知っていると思うので,今年にbpftraceに追加された主要な機能や変更点を紹介したいと思います. bpftrace知らないなぁという方はこちら(拙文です)を,bpftrace使ってないなぁとい

    bpftrace 2020 - 睡分不足
    masami256
    masami256 2020/12/02
    BPF Type Formatについての素晴らしい解説だ👍
  • Tiny Core LinuxでLinuxのinitプロセスが実行されるあたりを調べる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    この記事はLinux Advent Calendar 2020 - Qiitaの1日目の記事です。 Tiny Core Linux(以下tcl)を使ってLinuxのブートプロセスを見てましょう。Tiny Core Linuxは軽量ディストリビューションで最小のisoイメージだと11MBほどです😃 ブートプロセスを見ると言っても電源onからの流れではなくてinitプロセスの実行に関する部分です。 この記事ではバージョン11.1のCore-current.iso を利用しています。 www.tinycorelinux.net isoファイルの構成 まずはtclのisoがどんな感じで構成されていて、Linuxを起動させるのか確認しましょう。 isoファイルの構成はこのようになっています。 $ sudo mount -o loop Core-current.iso ./mnt $ tree ./

    Tiny Core LinuxでLinuxのinitプロセスが実行されるあたりを調べる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
    masami256
    masami256 2020/12/01
    Linux Advent Calendar 2020 1日めの記事書きました
  • 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

    masami256
    masami256 2020/11/25
    デバッグの過程で何を調べてどんなことをしたかを詳細に書いていて素晴らしい👍
  • 雑文:Linuxとか低レイヤが好きで趣味で色々やってたら趣味が仕事になったのと、知識が足りないとこを勉強しようと思って学生にもなった件 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    このブロクで使ってるカテゴリは↓のようになっていて、こいつLinuxとかカーネル好きだなって感じなんですが、前まではLinux自体は使うけどそれくらいでガッツリとLinuxに絡んだりとかはしてませんでした。 前職はこんな感じのところでnodejsなんかのコード書いてわけですね。 web系っぽい記事もたまに書いてましたよw qiita.com とまあ、前職はweb系だったわけですが今はLinuxがっつりな仕事になってます。転職したのは去年の12月ですけどね。Linuxが好きでいろいろやってきて、そこでやったことをblogに書いたりしたわけですが、それも今の仕事で役立つことがあったりとまあ何が役立つかわからないものですね。メモリ管理に興味を持ったり自作OSに興味を持ったり、CTFだったりと低レイヤ周辺をウロウロしてたけど基的な部分はブレなかったのが良かった気がします。 継続は力なりなんて格言

    雑文:Linuxとか低レイヤが好きで趣味で色々やってたら趣味が仕事になったのと、知識が足りないとこを勉強しようと思って学生にもなった件 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • UEFIのSecure boot + kdump・kexec - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    UEFIのSecure boot + kdump・kexecの動作確認 uefiのSecure bootが有効な環境でkdump・kexecは動作するのか?ってところの確認です。 Secure bootとは?というところはこちらのドキュメントを参照してください。 access.redhat.com テスト環境 テスト環境にはlibvirtを使います。ホストはFedora 30 x86_64、ゲストもFedora 30 x86_64です。 テスト環境セットアップ まずはSecure bootを有効にした環境を作ります。まずは普通にlibvirtを使ってOSをインストールします。 このときに、UEFIを使うように設定します。そのため、edk2-ovmfパッケージをインストールしておく必要があります。 インストール段階だとセキュアブート用のファームウェアは指定できないのでとりあえずはセキュアブー

    UEFIのSecure boot + kdump・kexec - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • raspberry pi 3 b+ and u-boot and mainline kernel, and meta-fedora - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    Raspberry Pi(以下rpi)のカーネルではなくて、mainline等のカーネルを使いたい場合のメモです。 TL;DR 基的に次のwebサイトを見れば事足ります。 elinux.org 概要 rpi向けのカーネルは以下なのですが、mainlineのカーネルを使いたい等の理由がある場合の環境構築方法のメモです。 github.com uart、wifi、hdmiを使えるところまでが対象です。archはaarch64を対象とします。使っているのはRaspberry Pi 3 B+です。 必要なもの これらが必要です。 カーネルのソースコード u-bootのソースコード rpiで使用するブートに必要なバイナリ linux用のfirmwareのバイナリ 最初の2つはそりゃそうだなって感じですね。次のrpiで〜というところはstart.elfやfixup.datといったブートに必要なバイナ

    raspberry pi 3 b+ and u-boot and mainline kernel, and meta-fedora - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • 自分用にLinuxカーネルのBuildbot + LAVAでCI環境を作るめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    ちょっとCI環境でも作るか〜ということで。 CI だいたいこんな構成です。 構成 いまのところすべてローカル環境で閉じてます。うちはマンションタイプのBフレッツでそんなに速いわけでもないからローカルで閉じてるほうがテスト時間が短くて済むというとこです。AWSとかVPSを使っても良いんですけどね。 とりあえず動くようにはなったので、ブラッシュアップするところはたくさんあります😨 CIのシステムで使用するソフトウェア 次の2つを使います。 Buildbot LAVA Web server Buildbotは有名ですよね。LAVAはkernelci.orgで使われています。実ボードとかqemuなどの環境でLinuxをテストするのに向いているツールです。 インストール buildbot pythonのvirtualenvを使って専用のpython環境作ってインストールして使ってます。 LAVA

    自分用にLinuxカーネルのBuildbot + LAVAでCI環境を作るめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • Linuxカーネル4.1の名前空間(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    はじめに 名前空間 名前空間の利点 名前空間の種類 Mount名前空間 IPC名前空間 UTS名前空間 Net名前空間 PID名前空間 User名前空間 名前空間の管理 プロセスと名前空間 名前空間のエクスポート nsfs 名前空間共通データ NSProxy構造体 NSProxyと名前空間 参照カウンタ NSProxyと名前空間の関連 名前空間へのアクセス デフォルトの名前空間 名前空間の共有・分離・移動 名前空間の共有と複製 fork(2) clone(2) fork(2)・clone(2)時の処理 unshare(2) 名前空間の分離処理 名前空間の移動 setns(2) 名前空間の移動処理 Mount名前空間 Mount名前空間の実装 Mount名前空間の初期化 Mount名前空間の分離 IPC名前空間 IPC名前空間の実装 IPC名前空間の初期化 UTS名前空間 UTS名前空間の実

    Linuxカーネル4.1の名前空間(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
    masami256
    masami256 2019/05/10
    Linux4.1の名前空間
  • Linuxカーネル4.1のvmalloc()(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    はじめに スラブアロケータ以外の動的メモリ確保 vmalloc関数 vmalloc関数で使用するデータ構造 vmallocの初期化 vmallocでのメモリ確保 vfree関数でのメモリ解放 その他の非連続メモリ領域からメモリを確保する関数 vmap関数 ioremap関数 /proc/vmallocinfoによるメモリ確保状況の確認 はじめに 前回のLinuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモと同じくドラフト版公開です。こちらはLinuxカーネル4.1のメモリレイアウト(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモで説明しなかったvmalloc()の説明です。 カーネルのバージョンは4.1系です。 文書自体も完成版ではないし、markdownから手作業ではてなblogにコピペして修正してるので章立

    Linuxカーネル4.1のvmalloc()(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • Linuxカーネル4.1のメモリレイアウト(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    はじめに ユーザプロセス空間とカーネル空間 x86_64のメモリレイアウト ダイレクトマップ(ストレートマップ)領域 vmalloc/ioremap領域 仮想メモリマップ %esp fixup stack カーネルテキスト領域 モジュールマッピング領域 vsyscall 固定マップ領域 はじめに 前回のLinuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモと同じくドラフト版公開です。 カーネルのバージョンは4.1系です。 文書自体も完成版ではないし、markdownから手作業ではてなblogにコピペして修正してるので章立てとか変になってるところとかあるかもしれませんが気にしないでください。 一部は文書修正してます。 ユーザプロセス空間とカーネル空間 Linux x86_64では48bit(256TiB)のアドレス空間を使用できます

    Linuxカーネル4.1のメモリレイアウト(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
    masami256
    masami256 2019/05/10
    こちらはカーネル4.1でのx86_64のメモリレイアウト
  • Linuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    はじめに スラブアローケータ Linuxのスラブアローケータ slabアローケータ slobアローケータ slubアローケータ スラブオブジェクトの管理 使用中リスト スラブのマージ機能 Chache Coloring スラブの不活性化 frozen状態 スラブキャッシュの情報 slubアローケータのデータ構造 データの関連 slubアローケータで使用するデータの関連 スラブのライフサイクル スラブアローケータの機能 スラブキャッシュの作成 スラブキャッシュ生成時に設定するフラグ 空きオブジェクトの管理 空きスラブオブジェクトの設定 スラブオブジェクトの確保 スラブオブジェクトの解放 kmem_cache_cpu構造体のデータクリア スラブの不活性化 スラブの削除 スラブキャッシュの削除 スラブキャッシュのセットアップ slubアローケータで使用するヘルパー関数 __cmpxchg_dou

    Linuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
    masami256
    masami256 2019/05/10
    自分で書いておいてなんだけど、よくこんなに書いたもんだ(゜o゜;
  • XArrayの基礎とkprobesに適用してみた話 - Qiita

    はじめに 最近(といっても今年の始め)、LinuxにXArray (extensible array) というAPIが、MicrosoftのMatthew Wilcoxによって実装されました。これは彼の説明によれば、radix treeの代わりに使える、ULONG_MAXの範囲がNULLで埋められた巨大な配列として扱えるデータ構造ということです。 今回はこのXArrayの簡単な使い方を調べ、実際にkprobesのハッシュテーブルと入れ替えてみて、どの程度の性能の違いが出るのかを調べたいと思います。 XArrayのAPI Kernel DocにXArrayのドキュメントがあるので、リファレンスには不自由しないと思いますが、まだあまりカーネル内部で使われていないのでサンプルコードが欲しくなるかもしれません。 XArrayには大別して2種類のAPIがあります。Normal APIとAdvance

    XArrayの基礎とkprobesに適用してみた話 - Qiita
  • あなたのネットワークスタック正しく設定されていますか? - Qiita

    はじめに Linux Advent Calendar 10 日目の記事です。 運用や研究開発の現場では、ソフトウェアの実験、または機器のテストや選定などのために、ベンチマークツールや自前のアプリケーションでコンピュータ間の通信速度を計測する機会が多々あると思います。一方で10Gbpsや40Gbpsといった昨今の高速ネットワークにおいては、これらの計測結果はアプリケーションの通信API部分の実装、カーネルパラメータまたはコンパイルオプションによって大きく変わってしまうため、正確な計測を行うためにはこれらを正しく設定/理解する必要があります。この記事では、ネットワーク周りのカーネルとアプリケーションの動作の概要と、その中の重要なポイントを理解することを目的にします。 ネットワークプログラミングのおさらい まず最初に、TCPを使う今時のサーバプログラムがどのようにできているか簡単におさらいします

    あなたのネットワークスタック正しく設定されていますか? - Qiita