タグ

linuxに関するR2Mのブックマーク (219)

  • LinuxサーバでネットワークI/Oで刺さっている接続先を発見する - ゆううきメモ

    Linuxサーバの障害対応で社内で伝統的に使われているテクニック。I/Oで完全にブロックしているポイントを特定するノウハウ。 問題対応のため、怪しいプロセスをstraceしてみる read(2)やwrite(2)でブロックしていることを発見する read(2)やwrite(2)、connect(2)の引数にはファイルディスクリプタ番号がみえる プロセスIDとファイルディスクリプタ番号を使って、/proc//fd/ の中身をみると、ソケットI/Oで刺さっている場合はソケット番号を発見できる netstat からソケット番号でgrepして接続先を発見する [y_uuki@hogehoge ~]$ sudo strace -p 10471 Process 10471 attached - interrupt to quit read(58, <unfinished ...> Process 10

    LinuxサーバでネットワークI/Oで刺さっている接続先を発見する - ゆううきメモ
    R2M
    R2M 2018/02/24
  • Linux Foundation、「LF Networking Fund」を開始。6つのオープンソースプロジェクトをまとめて運営することで開発を促進

    The Linux Foundationは、これまで別々に運営されてきた6つのネットワーク関連のオープンソースソフトウェア開発プロジェクトをまとめた新しい運営スキームとして「LF Networking Fund」を開始したとを発表しました。 このファンドを立ち上げる理由は次のように説明されています。 In the four years since OpenDaylight kicked off the open source networking revolution, innovative groups of developers from a range of backgrounds have developed open source offerings at every layer of the stack. OpenDaylingtがオープンソースのネットワーキングに革命を引き起

    Linux Foundation、「LF Networking Fund」を開始。6つのオープンソースプロジェクトをまとめて運営することで開発を促進
    R2M
    R2M 2018/01/26
  • Linuxのカレンダー | Advent Calendar 2017 - Qiita

    The Qiita Advent Calendar 2017 is supported by the following companies, organizations, and services.

    Linuxのカレンダー | Advent Calendar 2017 - Qiita
    R2M
    R2M 2017/12/30
  • 標準入力・標準出力ってなに? - Qiita

    はじめに 動機 かなり初心者AdventCalendarにかこつけてみました。Linuxのシステムを運用する人であれ、プログラム開発をする人であれ、標準入力・標準出力という言葉には日常的に触れることかと思いますが。いまいちまだ良くわけが分かってないという人の助けになれば、ということで記事にしてみました。 辞書での定義は? 世の中にはIT用語辞典というのがありますね。そういったものを読めば分かるのではないでしょうか。標準入力の方を引いてみましょう。 (Weblio辞書より) 標準入力とは、UNIX環境でのキーボードに相当する装置のことである。 ふむふむなるほど。キーボードなんですね。と納得しかけた人は、いまいちど考え直してみることをお勧めします。辞書だからといって無条件に信用してはいけません。これは悪い部類の説明です。 (e-Wordsより) 標準入力とは、コンピュータ上で実行されているプロ

    標準入力・標準出力ってなに? - Qiita
  • Community Blog ファイルロックと新OFDロック

    UNIXシステムには古くから実装され、現在ではPOSIX、SUSにより標準化されているファイルロックですが、実は予想外の動作に驚かされることがあります。この状況を打開する新しいファイルロックがLinux v3.15で導入されました。 排他制御とファイルロック プログラミングでは、排他制御の必要に迫られることが多くあります。複数の処理の流れが同じデータを使用する場面の多くが、これに該当します。スピンロック、セマフォ、mutexなど手法はさまざまですが、いずれも目的はデータの保護にあります。逆に言えば、データを保護していないロック(排他制御)があれば、シグナルやソケットなどのプロセス間通信を検討すべきと言えます。 処理の流れの代表例はプロセスです。処理対象が自プロセスのメモリ内のみに存在するデータならば、プロセスのメモリ空間は来独立しており他プロセスが使用することはできません。このため、排他

    Community Blog ファイルロックと新OFDロック
    R2M
    R2M 2017/12/22
  • netmap でわかる Linux カーネルハック入門 - かーねるさんとか

    以前のエントリー*1で、netmap API を使ったアプリケーションを作成する方法やデータ構造についてとりあげました。今回は少しレイヤーを下げて、カーネルのどのような機能を使って、netmap API が作られているのかについてまとめました。 Linux カーネルハックを始めてみたいけれど、何から手をつければよいかわからないという方にとって、netmap で使われているカーネルハックの方法について知ることは、とても良い導入の一つだと思います。 Linux カーネルハック netmap は、キャラクタデバイスのカーネルモジュールとして実装されています。今回はキャラクタデバイスのカーネルモジュールで何ができるのか、ということと、netmap がそれらをどのように使っているかについて説明します。 カーネルハックで、Linux カーネルに新しい機能を追加する場合に、カーネルのソースコードを直接変

    netmap でわかる Linux カーネルハック入門 - かーねるさんとか
    R2M
    R2M 2017/12/22
  • NTPサーバーによる時刻同期

    ここでは、ネットワーク上のサーバー及びクライアントマシンの時刻同期をとるためのプロトコルであるNTP(Network Time Protocol )について解説していきます。PCの時刻はマザーボード上のリアルタイムクロック(RTC)によって時間が表示されていますが、この時間はあまり正確ではなく、毎日少しづつ時間が狂っていきます(電池の消耗度にもよりますが、年間約10分程度)。NTPサーバーは、タイムサーバーに接続されたラジオ・クロックや原子時計から時刻を取得し、UTC (協定世界時)に同期させることができます。PCの時刻が狂っていると、メールの送受信時刻が狂ったり、こまめにとっているログの取得時間なども狂ってくることになります。Linuxでは標準でNTPサーバーが付属しているので是非、活用して時刻同期を行いましょう。

  • Fluentd 入門 〜運用に必要な基礎知識〜

    最近業務で Fluentd を触ることが出てきて入門したんですが、最初のうちはトラブルが起きた時に何が起きているのか、どう対処したら良いのかがさっぱりわからなかったので、「Fluentd ってログの収集とかに使われるやつでしょ?」程度の知識しかなかった過去の自分に向けて「とりあえずこれぐらいは知っておけ!」と言いたい内容をまとめてみました。 トラブルが起きた時にどの処理で問題が起きているのか素早くコードを追うことができて、データの消失を最小限に抑えつつ適切に対処できるようになることを目的としています。 なお、現時点で最新版の Fluentd v0.14.21 を対象にしています。 アジェンダ Getting Started Fluentd のアーキテクチャ Processes Supervisor process Worker process Threads Input thread En

    Fluentd 入門 〜運用に必要な基礎知識〜
  • SIGWINCHとtputで遊んでみる | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは河野です。新年早々小ネタです。 先日何かのログを眺めているときに、SIGWINCHというのを見かけました。何かのシグナルっぽいです。 SIGWINCHとは? 何かと思って調べてみたら、ターミナルのサイズ変更を知らせるシグナルでした。 動作確認してみる bash,zshには LINES COLUMNS という環境変数があるのですが、スクリプトにしたら上手く取得できませんでした。 なので、tputというコマンドを使います。tputではターミナルの情報が取得できます。 以下のスクリプトで動作確認してみました。 #!/bin/bash function echo_term_size() { lines=$(tput lines) columns=$(tput cols) echo "SIZE: $lines * $columns" } trap 'echo_term_size' SIGW

    R2M
    R2M 2017/08/23
  • tmpfsが/dev/shmをマウントしている件 - サーバー技術メモ

    前から気になってた。tmpfsって何? ノートLinuxでファイルシステムのディスク容量を見てみるとこうなってる。 # df -Th Filesystem Type サイズ 使用 残り 使用% マウント位置 /dev/hda2 ext3 19G 7.1G 11G 41% / tmpfs tmpfs 248M 0 248M 0% /lib/init/rw udev tmpfs 10M 64K 10M 1% /dev tmpfs tmpfs 248M 0 248M 0% /dev/shm /dev/hda1 ext3 938M 51M 840M 6% /boot /dev/hda3 ext3 17G 9.7G 6.1G 62% /homeFilesystemの中の/dev/hda達は、/etc/fstabに書いてるから納得だけど、 Typeがtmpfsなのがよくわからない。 仮想メモリベースの

    tmpfsが/dev/shmをマウントしている件 - サーバー技術メモ
  • NTP設定 - とあるSIerの憂鬱

    環境 RHEL5 ( ntp-4.2.2p1 ) RHEL6 ( ntp-4.2.4p8 ) NTPは結構微妙な修正を入れてくるのでバージョンが異なる場合は注意が必要。 manが当該バージョンの情報源としてはまず優先。 最近の変更 RHEL6ではRHEL5で /etc/init.d/ntpd のみで行っていたことを /etc/init.d/ntpdate と /etc/init.d/ntpd に分離している。 ntpd起動前のntpdate実行について分離している。ntpdを使うのであればntpdateも同時に有効にするべき(ntpdate実行を避けたい場合以外)。 設計 何もよりも先に 『参考』にあげた富士通の『Linuxユーザーズマニュアル RHEL6編』がNTPの説明として詳しい・わかりやすい。まずはこれを読む。 NTPサーバの階層設計 NTPを使う目的は『正しい時刻の維持』と『時刻

    NTP設定 - とあるSIerの憂鬱
    R2M
    R2M 2017/08/07
  • ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ

    他のプロセスを中断せずに、その出力をミラーリングして新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceやgdbといったコマンドは一体どういう仕組みで動いているのでしょうか。 ptraceシステムコールを使い、プロセスが呼ぶシステムコールを調べて出力を覗き見するコマンドを実装してみたいと思います。 ptraceシステムコール Linuxを触っていると、いかにプロセスを組み合わせるか、組み合わせる方法をどれだけ知っているかが重要になってきます。 パイプやリダイレクトを使ってプロセスの出力結果を制御したり、コードの中からコマンドを実行して、終了ステータスを取得したりします。 プロセスツリーやプロセスグループを理解し、シグナルやnohupコマンドを使ったりします。 プロセスの扱いに慣れると疑問に持つのがstraceやgdbの仕組みです。 プロセスの実行しているシステムコールを出力し

    ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ
    R2M
    R2M 2017/08/01
  • 【学習メモ】LinuxCUI初心者が早く知りたかったコマンド(操作も) - Qiita

    はじめに Linuxを学ぶ上で 先に教えて欲しかったことを書きます。 つまりは、教える機会があれば先に伝えておきたいことです。 便利なキー操作や誤りがあればぜひ教えてください。 また、この記事に対してmorimorihogeさんの分かりやすい補完がありますので、ぜひそちらと合わせてお読みください 流れ 1.キーボード操作編 知ってると便利なショートカット。 2.用語・概念編 知ってるとひらめくかも。 3.コマンド編 知っておくべき重要なコマンド、時短になるコマンド。 キーボード操作編 補完機能 Tab連打。 連打すると勝手にlsしてフォルダ内のファイル一覧を教えてくれる。 候補が絞られると勝手に名前を補完してくれる。 入力間違いでもBackspaceやDeleteできない ^H^H^Hや^[[3~、^[[Dが表示されて涙目。 Ctrl + U で入力したものがきれいに消える。 パスワードを

    【学習メモ】LinuxCUI初心者が早く知りたかったコマンド(操作も) - Qiita
    R2M
    R2M 2017/07/30
  • カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み - - るくすの日記 ~ Out_Of_Range ~

    0. はじめに カーネルエクスプロイト入門記事part2です。 前回part1では、環境構築とLinuxカーネルのメモリ管理の基礎について、実際のエクスプロイトでのユースケースを通して説明しました。 rkx1209.hatenablog.com さて、part2では実際にLinuxカーネルエクスプロイトを書いて行きます。 とはいえ既存の脆弱性を利用するエクスプロイトを記述するのはあまりよろしくないので、今回は学習用に脆弱なドライバを用意し、エクスプロイトを書いていきます。 まあ基的なロジックは実際の脆弱性のそれと同じなので、意義はあるはずです。 学習用ドライバとエクスプロイトコードは以下のレポジトリに置いてありますので、各節ごとに逐次参照 してください。 github.com 1. 特権モードでの権限昇格 脆弱性を悪用して権限昇格を行うにはいくつか常套手段があり、中でも典型的な物がスタッ

    カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み - - るくすの日記 ~ Out_Of_Range ~
    R2M
    R2M 2017/07/21
  • カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 - - るくすの日記 ~ Out_Of_Range ~

    0. はじめに 記事は、Linuxを対象としたカーネルエクスプロイトの入門記事です。 カーネルエクスプロイトというのは、Linuxや*BSD、Windowsを始めとするカーネル自身の脆弱性を突くエクスプロイトです。 基的にカーネルはシステム内で最高権限を持つ特権モードで動作しているので、ここを悪用されるとシステムの大部分(ほぼ全て)を掌握されてしまいます。 エクスプロイトと言うと、普通はユーザー空間で動作しているアプリケーションのバグをつく物が多いですが、これだと限られたレベルの権限しか奪えません。 SELinuxやjailを始めとする、OSレベルでの保護機構に阻まれるとたちまち効力を失ったりします。 しかし、カーネル自体の脆弱性をつくカーネルエクスプロイトを利用すると最高権限での任意コード実行が可能なため、大抵の保護機構はものともしません。 このカーネルエクスプロイトが特に効力を発揮

    カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 - - るくすの日記 ~ Out_Of_Range ~
    R2M
    R2M 2017/07/14
  • SIOS Tech. Lab - エンジニアのためになる技術トピックス

    こんにちは、やまなかです。 今回はサーバー上の関数を実行するためのプロトコル(通信規格)であるRPC (Remote Procedure Call) を実現するため、Googleが開発したgRPCについてまとめていきます […]

    SIOS Tech. Lab - エンジニアのためになる技術トピックス
  • ptraceとELFとLinuxレジスタ : sonots:blog

    ptraceとELFとLinuxレジスタ : sonots:blog
    R2M
    R2M 2017/05/30
  • Ryzenにまつわる2つの問題 - 覚書

    NOTE1: 2017/8/12に2つ目の問題について更新しました。ついに両方の問題が解決しました。 NOTE2: 2つ目の問題についてはすべての経緯をまとめた書籍があります。 4月にRyzenを積んだデスクトップマシンを買いました。その上で日課であるカーネルビルド&テストをした*1ことをきっかけに、2つの問題が発生しました。先代のCore i5を積んだマシンでは起きなかった現象です。 このエントリは自分用のメモがてら、新しいことがわかれば随時更新していきます。後者については9月に開催されたkernelvm北陸にて、ブログには書かれていない解析の詳細などについて発表してきました。 Ryzen segv battle from Satoru Takeuchi www.slideshare.net 環境 ハードウェア CPU: Ryzen 1800X Motherboard: ASUS PR

    Ryzenにまつわる2つの問題 - 覚書
    R2M
    R2M 2017/05/24
  • Success is a Journey, not a Destination: 「mallocがダメならnewを使えばいいじゃない」

    そこそこの大きさのソフトウェアを作った場合、メモリリークが問題になることがよくあります。(初期にメモリ管理についてしっかり設計し、エンジニアの合意を取れば、テストフェーズでメモリリークを気にすることはなくなるのかもしれませんが、残念ながらそのような素晴らしいプロジェクトを見たことがありません。) 普通の環境 (i386, amd64, ppc32, ppc64) ではValgrindを使ってメモリリークを検出するのが定石ですが、Valgrindが動かない環境ではどうしよう、という悩みがあります。 とりあえず、「glibcをdynamic linkして動作するアプリケーション」という仮定で、メモリリークの検出方法を考えました。この仮定はそんなに非現実的ではないはずです。 方針としては、愚直ですが、 malloc/freeをすべて記録し、対応するfreeが存在しないmallocを検出するとなり

  • HugeTLB と TLBミスの測定。 - 研究日誌。

    penryn マシンでは oprofile が動作しないので、少し古めのマシンになってしまうが、Xeon 2.80GHz (L2 cache 1MB) を用いて測定してみた。 HugeTLB ファイルシステムへ全米で用いる 1GB のメモリに割り当てる際には、素早く終了する場合と、そうでない場合がある。特に、メモリ割り当てによりシステムが不安定になってしまうこともあるため、注意が必要であるといえる。 結果として、HugeTLB を用いると「ダイクストラ法を走らせるルーチン dijkstra_with_bucket()」でのTLB ミスが無くなった。その分、「クイックソートルーチン quicksort_by_tail() 」で TLB ミスが増えている。ページサイズが 2MB になったために、細かい単位で操作するクイックソートでは TLB ミスが多発してしまうのであろうか。 CPU : Xe

    HugeTLB と TLBミスの測定。 - 研究日誌。
    R2M
    R2M 2017/05/23