タグ

関連タグで絞り込む (326)

タグの絞り込みを解除

linuxに関するsabroのブックマーク (440)

  • 実践的低レベルプログラミング

    はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

  • Linuxカーネルのソースコードを機能とレイヤーで分類して表示してくれる「Linux kernel map」

    Linuxのカーネルは膨大な数のソースコードから成り立っており、どこに何の処理が書いてあるのかぱっと見当をつけるのにはかなりコードを読み込む必要があります。「Interactive map of Linux kernel」はそのソースコードを機能とレイヤーで分類して表示してくれるサイトということで、使い勝手を試してみました。 Interactive map of Linux kernel http://www.makelinux.net/kernel_map/ サイトにアクセスし、ロードが終わると下の画像のように6列6行の表が表示されます。列が機能の分類を表しており、「インターフェース」「システム」「処理」「メモリー」「ストレージ」「ネットワーク」という分類になっています。行はレイヤーを表しており、上からシステムコールなどの「ユーザースペースインターフェース」、「バーチャル」、「ブリッジ」

    Linuxカーネルのソースコードを機能とレイヤーで分類して表示してくれる「Linux kernel map」
  • 割りと便利だけど微妙に忘れがちなbashのコマンド・チートシート - Qiita

    自分用にメモしておく コマンド実行 CMD1; CMD2, CMD1 && CMD2 ;はCMD1の結果に関わらずCMD2も実行される &&はCMD1の結果が正常な場合のみCMD2が実行される CMD1 || CMD2 - 失敗時に後続コマンドを実行する CMD || printf "%b" "MSG"でエラーメッセージを表示する エラーメッセージ表示後exit 1したい場合 = CMD || { printf "%b" "FAILED.\n" ; exit 1 } CMD || printf "%b" "FAILED.\n" ; exit 1と波括弧無しで書くと期待通り動作しない(CMDが成功時もexit 1してしまう) CMD & - バックグラウンド実行 CMD &で[1] 4592のようにジョブ番号とプロセスIDが表示される killしたければkill %ジョブ番号 か kill

    割りと便利だけど微妙に忘れがちなbashのコマンド・チートシート - Qiita
  • 低レイヤーの歩き方 - るくすの日記 ~ Out_Of_Range ~

    この記事は Kobe University Advent Calendar25日目の記事です。 低レイヤー技術(後述)をこれから学びたい人向けの入門記事です。 自身の経験を踏まえ、より多くの人達にこのレイヤーに興味を持ってほしくて書きました。 決して卒論がやばくてAdvent calendarのネタが作れなかったわけでは(ry なぜこんな記事を書いたか いわゆるシステムプログラミングのような低レイヤー(と言って差し支えない)ジャンルって一体何から始めれば良いのかいまいちピンと来ないし、何が面白いのかも分からないと思われている事が多いと思います。 にもかかわらず低レイヤーの魅力や学び方の指針みたいな物を示した、いわゆる入門記事ってかなり少ないんですよね。 記事はこれからシステムプログラミングを始めたい方や、既にかじってみたが中々先が見えてこない、将来何の役に立つのか不安という方達に読んでい

    低レイヤーの歩き方 - るくすの日記 ~ Out_Of_Range ~
  • Linuxネットワークドライバの開発 - Handwriting

    この記事はLinux Advent Calendar 2016 9日目の記事です。 遅刻してしまい申し訳ございません。。。 とある事情があって1ヶ月半ほど独自NICのLinux向けのネットワークドライバを開発していた。 今回はARM用のデバイスドライバを開発した。NICはXilinx社のFPGAであるZYBOを用いて開発した。 まだ十分に実用段階というわけではないが、ひとまず独自NIC経由でのpingやiperfが通ったので、後学のために知見を残しておきたい(誰得だ、という感じだが)。 ソースコードはまだ公開されていないが、そう遠くないうちに公開する予定(たぶん)。 はじめに Linuxのデバイスには キャラクタデバイス - バイト単位のデータ通信 (e.g. シリアルポート) ブロックデバイス - ブロック単位のデータ通信 (e.g. ディスク) ネットワークデバイス の3種類がある。ネ

    Linuxネットワークドライバの開発 - Handwriting
  • Linuxシステムコール徹底ガイド | POSTD

    要約 この記事では、LinuxカーネルにてLinuxプログラムがどのように関数を呼び出すのかについて紹介していきます。 システムコールを行う様々な方法、システムコールを行うための独自のアセンブリの作成方法(例あり)、システムコールへのカーネルエントリポイント、システムコールからのカーネルイグジットポイント、glibcのラッパ関数、バグなど多くの点について説明します。 要約 システムコールとは? 必要条件に関する情報 ハードウェアとソフトウェア ユーザプログラム、カーネル、CPUの特権レベル 割り込み モデル固有レジスタ(MSR) アセンブリコードでシステムコールを呼び出すことの問題点 レガシーシステムコール 独自のアセンブリを用いたレガシーシステムコールの使用 カーネル側での int $0x80 エントリポイント iret を使用したレガシーシステムコールからの復帰 高速システムコール 3

    Linuxシステムコール徹底ガイド | POSTD
  • DMM inside

    なぜDMMがweb3に参入したのか。Seamoon Protocolが目指す新たなエンタメ体験の未来とは

    DMM inside
  • Linuxサーバの反応が遅い(重い)場合の原因の調査手順

    概要 Linuxサーバの反応が遅い場合の調査手順のメモ。 実行する場合は自己責任でお願いします。 原因として考慮すべき事項 サーバが遅い場合には様々な原因がありますが、以下を考慮します。 CPU負荷 メモリ不足 ディスクI/O負荷 ネットワークI/O負荷 まず、どれが原因か調査する必要があります。 top コマンド 最初は「top」コマンドを利用します。 top - xx:xx:xx up 0 min, 1 user, load average: 1.44, 0.51, 0.18 Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie Cpu(s): 0.7%us, 0.3%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2057692k total, 291

  • Linuxでソースからコンパイルしてインストールしたパッケージを管理する『porg』 | 俺的備忘録 〜なんかいろいろ〜

    yumやapt-getからインストールしたり、rpmやdebパッケージを利用してインストールした場合、アンインストールやアップグレードを行うのは簡単だ。 しかし、ソースファイルからコンパイルしたパッケージの場合、makeファイルにuninstallが用意されているならまだしも、もし用意されてないと、パッケージをアンインストールしたりするのは非常に大変だ。 そんなソースからコンパイルしmake installしたパッケージを管理してくれるのが、『porg』だ。pacoという、同じくソースからインストールしたパッケージの管理ツールが前身。 今回は、この『porg』をCentOS 7に実際にインストールし、ソースからインストールしたパッケージを管理してみることにする。 1.『porg』のインストール まずは『porg』のインストールから。 以下のコマンドを実行し、パッケージのソースコードをダウン

  • Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ

    記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を

    Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

    ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、**何もせずに終了ステータス0(つまり正常終了)**を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
  • そこそこセキュアなlinuxサーバーを作る - Qiita

    先日「サーバーのセキュリティ設定がなにすればいいかわからない」と相談をうけまして。 自分も初心者の時どこまでやればいいかわからず手当たりしだいにやって沼に入っていたのを思い出しながら自鯖構築したときのメモを元にまとめてみました。 注意 セキュリティ対策は用途や場合などによって違います。 自分で理解したうえで自己責任でおねがいします。 対象読者 Linuxのサーバーを建て慣れていない人 Linuxはある程度さわれる人(自分でパッケージを入れたり、サービスを止めたりできる) ラインナップ ☆は導入の重要度と導入の容易さから個人的偏見からつけた値です。 4つ以上が"最低限やること"だと思ってください。 sshd

    そこそこセキュアなlinuxサーバーを作る - Qiita
  • よくわかるLinux帯域制限 | GREE Engineering

    矢口です。 みなさんはLinuxのtcという機能をご存知でしょうか。送信するパケットの帯域制御を行うことができる大変強力な機能で、グリーでもいくつかの用途で使用されています。 具体的な事例の一つはRedisです。Redisではreplicationを新規に開始する際やfailoverが発生しmasterが切り替わった際(特に2.6系)にストアされている全データが転送されます。しかし帯域制限をかける機能がないため、ネットワーク帯域を圧迫してしまう危険性があります。また通常のクライアントとの通信でも大量のクエリにより予想以上の帯域を使用してしまう可能性があります。このような場合にtcを用いることでRedisの使用する帯域をコントロールできます。 このように有用なtcですが残念なことに日語/英語ともにわかりやすい解説や詳細な情報は多くありません。 私も社内において使われていたtcの設定に問題が

    よくわかるLinux帯域制限 | GREE Engineering
  • ウェブリブログ:サービスは終了しました。

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    ウェブリブログ:サービスは終了しました。
  • Linuxのハードウェアに関する詳細情報を取得する『Inxi』コマンド | 俺的備忘録 〜なんかいろいろ〜

    今回は、Linuxが搭載されているハードウェアのパーツごと、例えばサウンドボードやマザーボード、ハードディスク等のベンダーや型番といった詳細情報を取得出来るコマンド『Inxi』を紹介する。 1.インストール まずはインストールから。 以下のコマンドを実行しインストールを行う。 Debian/Ubuntu sudo apt-get install inxi RHEL系 sudo yum install inxi --enablerepo=epel 2.コマンドの実行 さて、それでは実際にコマンドを実行してみよう。まずはオプションを付けず、デフォルトの内容を表示してみる。 以下の内容は、実際に自宅で用いてるマシンのデータを表示している。 $ inxi CPU~Quad core Intel Core2 Quad Q9550 (-MCP-) clocked at 2833 Mhz Kernel~

    sabro
    sabro 2014/08/26
  • 標準コマンドから乗り換えよう!より良いLinuxコマンドラインユーティリティー11選 | 俺的備忘録 〜なんかいろいろ〜

    Linuxの標準コマンドは強力なものではあるが、実際に人間が使う際にわかりやすいか、というと十分ではない。 そこで、今回はLinuxの標準コマンドから乗り換える事が可能なコマンドラインユーティリティーを調査、整理してまとめてみることにした。 1.df → dfc まずはこれ。以前にこちらでも記述している。 dfコマンドをより分かりやすくしたコマンドで、バーで利用率を認識することが出来る。 インストールは以下のコマンドで行える。 sudo apt-get install dfc (Debian or Ubuntu) 2.vmstat → dstat パフォーマンスのモニタリングでよく用いられるvmstatを、更に拡張したコマンドであるdstatにする。 dstatには、vmstatにはないネットワークに関するパフォーマンスが追加されており、見た目も見やすくなっている。 インストールは以下のコ

    sabro
    sabro 2014/08/15
  • 無料で読めるlinuxのテキスト

    ウェブ上で無料で読めるお気に入りのlinux関連書籍をリストアップしてみました。 今後もいいものに出会えたら更新する予定です。 日語で書かれたlinux Linux標準教科書(Ver2.0.0) LPI-JAPANによる初心者向けテキスト。簡潔にまとまっていて文章も読みやすい。 フォーマット : PDF EPUB iPADアプリ Androidアプリ http://www.lpi.or.jp/linuxtext/text.shtml Linux道場 同じくLPI-JAPANによるlinux入門。 フォーマット : html http://www.lpi.or.jp/lpic_all/linux/ Linuxマスター.JP(リナックスマスター.JP) 各内容が細かくページ分けされていてる。充実した内容の解説集。 Linux Tipsを眺めるだけでも役に立つ。 フォーマット : html

    無料で読めるlinuxのテキスト
    sabro
    sabro 2014/07/26
  • Systemdコマンド早見表(CentOS 7対応)

    CentOS 7ではsystemdが導入されているので、サービスの管理が従来と大きく変わっています。詳しい解説はsystemd徹底入門のスライドを参照するとして、ここでは「前のコマンドはsystemdでどう入力するの?」というのだけ、簡単にまとめてみました。 サービス名にはsshdを指定していますが、もちろん任意のサービスが指定できます。 サービスの起動、終了など 操作SysV InitSystemd 起動/etc/init.d/sshd startsystemctl start sshd 終了/etc/init.d/sshd stopsystemctl stop sshd 強制終了PID探してkill -9systemctl kill -s 9 sshd 再起動/etc/init.d/sshd restartsystemctl restart sshd 設定反映/etc/init.d/s

  • 小さいLinux環境の作り方

    小さいLinux環境の作り方 Presentation Transcript 小さい Linux環境の 作り方 Naomasa Matsubayashi 保存するアイコン フロッピーディスク 2000年代初頭 フロッピーディスクに必要な物が全部入った Linuxディストリビューションが流行った floppix http://floppix.com/ HAL91 http://chris.silmor.de/hal91/ tomsrtbt http://www.toms.net/rb/ 3.5インチフロッピーディスクの容量 1D 2D 1DD(Mac) 1DD 2DD(Mac) 2DD(PC-98) 2DD 2HD(PC-98) 2HD(PC/AT,Mac) 2ED 2TD 160KiB 360KiB 400KiB 360KiB 800KiB 640KiB 720KiB 1232KiB 1440

    小さいLinux環境の作り方
  • Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)

    数年前になんとなく面白がって書いてた「Linuxインフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)」というのが、昔の資料をあさってると出てきて、意外と面白かったので少しだけ手を加えて(古い情報とかあったので)公開しようと思います。 意外とリアルなものがあって懐かしい気分になりました。過去に書いた以下の記事もどうぞ参考にして下さい。 「Linuxエンジニアを目指して入社一年目にやって役にたったと思う事」 「Linuxエンジニアを辞めて大学院に入学しました」 追記: 設問1があまりによくないので、@tagomorisさんのアドバイスを頂きつつ変更しました。1を消して3を追加しています。ありがとうございます! 2000台以上のサーバー運用経験はありますか? サーバやネットワーク機器のキッティング経験はありますか? サーバやネットワーク機器の交換を現地のデータセンター職員に

    Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)
    sabro
    sabro 2013/11/12