タグ

UNIXに関するt-wadaのブックマーク (46)

  • Unix考古学 Truth of the Legend - asciidwango

    Unix考古学 Truth of the Legend 今日のITを語るうえで欠かせないUnixがどのように生まれ、どのように発展してきたのか。数々の伝説に彩られたUnixの真実を探ります。 藤田昭人 著 定価: 2,808円 (体2,600円) 発売日:2016年4月28日 形態:B5変形(272ページ) ISBN:978-4-04-893050-5 Amazonで購入する サポート/追加情報 ◆そこにはいつもUnixがあった C言語、インターネット、オープンソースなど、今日の情報社会を支える基盤技術の成立には、Unixの存在が欠かせません。Unixの開発はどのように行われたのでしょうか。 書は、社会情勢や技術動向も確認しながら、Unix開発の歴史を追いかけていきます。仮想記憶に代表されるOS研究の成果がどのように反映されていったのか、プログラミング言語Cがどのような経緯で開発された

    Unix考古学 Truth of the Legend - asciidwango
    t-wada
    t-wada 2016/04/05
    これは読むしかない
  • 革命の日々! Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味? の件について

    なんかスラドにあげられてしまったので、備忘録てきにちょっとまとめますかね。 きっかけは先月帰国したときに sonots がDeNAをはじめとして、Web企業では広く TCP_TIMEWAIT_LEN を変更してカーネルをリコンパイルして使っているという話を聞いたというもの。以下の様な議論を twitterで行い Togetter: Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味?: http://togetter.com/li/871768 以下のように、スラドに転載されてしまったわけだ。 スラド: Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味?: http://linux.srad.jp/story/15/09/09/0648258/ いつものように、スラド民は元のスレッドなんかまるで読んでいないので、結論だけ書く。 tcp_tw_inter

    革命の日々! Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味? の件について
    t-wada
    t-wada 2015/09/10
    TCP_TIMEWAIT_LEN の件について "tcp_tw_interval という TIME-WAIT を変更するsysctlが3年ほど前にupstreamで提案されたが却下されている" 際の議論の抜粋
  • ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog

    大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog を書きましたが、awk file > file より cat file|awk > file が速い環境は稀なようなので、私の環境でなぜ cat file|awk > file のほうが速いのか調べてみました。プロセススケジューラが関係しているようです。 ↑はPerf + Flame Graphs で、awk file > file 実行時のコールスタックと所要時間を可視化したものです。 結論(たぶん) SSDの暗号化・復号をカーネルスレッドで行なっているのと、プロセススケジューラが awk とカーネルスレッドを同じ CPU にスケジューリングしていた(他に空いている CPU があるのに)。 awk file > file では暗号化データを復号するカーネルスレッドと awk のプロセスをプロセススケ

    ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
    t-wada
    t-wada 2015/08/04
    さらなる追加検証。なるほどなぁ
  • 大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog

    以下、長々と書いてますが、結論は ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablogに書いてます はじめに awk file より cat file|awk のほうが速いという以下のブログエントリが興味深いので調べてみました。 ちなみに cat file|awk が速くなる環境は稀で、巷では awk file のほうが速い環境のほうが多いようで、どちらが速いかは環境依存です。 [root@localhost sample]# cat command1 awk '$5 ~ /((26|27|28|29|30)\/Jun|(01|02|03)\/Jul)/{ print }' sample.txt > result1.txt (中略) [root@localhost sample]# time sh command1 real 0m53.92

    大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
    t-wada
    t-wada 2015/07/29
    仮説を立てた上で「Don’t guess, measure!(推測するな、計測せよ!)」の原則に倣って計測/検証していくプロセスが素晴らしい
  • 5704! — cheatsheet for crontab

    I sometimes edit the crontab when I forget always crontab format. So I created cheatsheet, In Japanese(Searched for crontab cheatsheet, most seemed those of English).for Print(PDF): Cheatsheet for crontab

    t-wada
    t-wada 2015/05/11
    crontab のチートシート。わかりやすい。
  • シェルスクリプトで外部コマンドを利用する場合の注意点 · さよならインターネット

    November 10, 2014 TL;DR シェルスクリプトでbackquoteを見つけたら オールドスタイルおじさんを探し、矯正させよう GNU Bash-2.05 manual When the old-style backquote form of substitution is used, backslash retains its lit- eral meaning except when followed by $, `, or \. The first backquote not preceded by a backslash terminates the command substitution. When using the $(command) form, all characters between the parentheses make up the comm

    t-wada
    t-wada 2014/11/11
    少し前にモダンスタイルおじさんになりました
  • コマンドラインツールについて語るときに僕の語ること #yapcasia

    http://yapcasia.org/2014/talk/show/b49cc53a-027b-11e4-9357-07b16aeab6a4

    コマンドラインツールについて語るときに僕の語ること #yapcasia
    t-wada
    t-wada 2014/08/29
    コマンドラインツールの設計に関する素晴らしい資料。講演やデモを見たかった…
  • セキュリティ、環境変数、そして

    5/20 頃に 公開した envchain というツールの紹介記事を、会社の技術ブログに書いた。 OS X キーチェーンから環境変数をセットするツールを作りました - クックパッド開発者ブログ 投下時間の関係もあると思うけど、思いの他結構拡散してびっくりした。まあ、それは置いておいて、題。 おもしろい。が、ps -Eで他プロセスで環境変数が見えることを考えると、そもそも環境変数に認証情報を入れてる時点で… / “OS X キーチェーンから環境変数をセットするツールを作りました - クックパッド開発者ブログ” http://t.co/n1quG3C4Tx — Kazuho Oku (@kazuho) June 4, 2014 ごもっともだと思います。 実際のところ、わたしはなんか「環境変数やめろ bot かよ」と言われるレベルであまり環境変数に機密情報を入れる事を好んでないです。 なのにこ

    t-wada
    t-wada 2014/06/05
    envchain のリリースに伴い発生した環境変数とセキュリティ周りの議論について
  • ハイパーバイザの作り方

    「ハイパーバイザの作り方」公開ページ こちらのページはSoftware Design誌の連載記事「ハイパーバイザの作り方」の公開ページです。 「Linuxのしくみを学ぶ - プロセス管理とスケジューリング」も公開中ですので、こちらも是非ご覧ください。 公開中の記事 第1回 x86アーキテクチャにおける仮想化の歴史とIntel VT-x [HTML] [PDF] [ePub] [mobi] [Kindle] 第2回 Intel VT-xの概要とメモリ仮想化 [HTML] [PDF] [ePub] [mobi] [Kindle] 第3回 I/O仮想化「デバイスI/O編」 [HTML] [PDF] [ePub] [mobi] [Kindle] 第4回 I/O仮想化「割り込み編・その1」 [HTML] [PDF] [ePub] [mobi] [Kindle] 付属資料 最近のPCアーキテクチャにお

    t-wada
    t-wada 2014/05/12
    “こちらのページはSoftware Design誌の連載記事「ハイパーバイザの作り方」の公開ページです” 凄い時代になったなぁ…
  • Linuxのしくみを学ぶ - プロセス管理とスケジューリング

    Linuxのしくみを学ぶ - プロセス管理とスケジューリング」公開ページ こちらのページはSoftware Design誌 2009年12月号の記事「Linuxのしくみを学ぶ - プロセス管理とスケジューリング」の公開ページです。 「ハイパーバイザの作り方」も公開中ですので、こちらも是非ご覧ください。 公開中の記事 HTML PDF ePub mobi Kindle 原稿データ 全ての原稿データはgithub上で公開されています。 Pull RequestやIssuesを通じて文章の誤り訂正や解説の追記、各フォーマットの表示の改善などのコントリビューションを受け付けています。 改善された記事は随時このページにアップロードしていきます。 記事に関するご質問 記事を読んで何かわからなかった点があったり、疑問に思ったことがあれば以下の連絡先に問い合わせてください。 Twitter: @syuu

    t-wada
    t-wada 2014/05/12
    "こちらのページはSoftware Design誌 2009年12月号の記事「Linuxのしくみを学ぶ - プロセス管理とスケジューリング」の公開ページです" すばらしい!
  • Unix Philosophy と Node.jsのモジュールの作り方 - from scratch

    The Art of UNIX Programming 作者: Eric S.Raymond,長尾高弘出版社/メーカー: アスキー発売日: 2007/06/19メディア: 大型購入: 4人 クリック: 91回この商品を含むブログ (62件) を見る TL;DR Unix Philosophyにおいては、「一つのことをうまくやり、協調する仕組みを持つ」という事が大事 Node.jsのモジュールにおいても同じで、「一つのことをうまくやる、Stream APIで協調する」と良い 「一つのことをうまくやる」にはどうするのが良いのか、ということで substack のモジュール実装例 Simple と Easyの違い ちょっと今回長くて文字が多いので、最初と最後にまとめを用意しました。時間がない方はこれを読むだけでもいいかと。 Unix Philosophy さてさて、Unix Philosoph

    Unix Philosophy と Node.jsのモジュールの作り方 - from scratch
    t-wada
    t-wada 2014/04/22
    Unix 文化と Node.js について。 Node.js に限らず読める。素晴らしいエントリだ。
  • power-assertができるまで

    power-assert を作るきっかけ アサーション失敗時の情報量を大幅に増やすことができるPower Assertの系譜 - Togetterまとめ chai/should/expect.js 覚えること多くて煩わしい 自分で作ろうと思い立った(2013/01/08) AST 変換 power-assert は最初から AST 変換で実現しようと考えていた Groovy の Power Assert が AST 変換を行っているらしいことは何となく知っていた Groovy 1.7 Power Assert パワーアサート(Power Assert)の真の意味 Groovy 1.7のキモはAST変換である 実装を見てはいないので、 Groovy の Power Assert が最近 AST 変換を行っていないらしいことは知らなかった…!

    t-wada
    t-wada 2014/04/15
    #葉桜JS の LT 資料を公開しました
  • The way of the substack · GitHub

    the-way-of-the-substack.md The way of the substack With over 200 modules in npm, and many such as browserify, dnode, optimist, etc. relied upon day-to-day by developers all around the world, substack is a pretty damn productive guy. Plus, he's got an awesome philosophy on programming to boot (yes, there is a programming philosophy! ... no comprende? Let me explain later). BTW, how do I know this?

    The way of the substack · GitHub
    t-wada
    t-wada 2014/04/15
    substack が開発するときの考え方、行い方。見事の一言。
  • 「UNIXという考え方」を読んだ - その手の平は尻もつかめるさ

    「UNIXという考え方」をAmazonのwish listに入れていたらid:kenjiskywalkerさんが贈ってくださったので読みました.お陰でUNIXという考え方を学べました.ありがとうございます! 書では一貫して「プログラムを小さく作る」という事と「1つのプログラムには単一のことだけを上手くやらせる」という事について言及されています. プログラムを小さく作るということによって,そのプログラムはコンピュータのリソースに対して優しくなり,なおかつ巨大なプログラムと比較して人間が理解するのが簡単になるので保守がしやすくなり,かつ他の部品と組み合わせやすくなるという論旨です. プログラムを小さく作ると,必然的にそのプログラムは多くの責務を負えなくなる為,自然とプログラムは単一の機能のみを持つようになります.従ってこれら2つの考え方は対になっていると言えるでしょう. 書で言われている「

    「UNIXという考え方」を読んだ - その手の平は尻もつかめるさ
    t-wada
    t-wada 2014/04/01
    この本は私のバイブルです。設計やプログラミングスタイルに強い影響を受けました。
  • 読み取り権限がなく実行権限だけのファイルが実行できるのはなぜ? - カーネルのソースを読む - - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    きっかけはこのツイート。 基礎的なことなんだろうけど理解できてないこと。 読み取り権限のない実行権限だけのファイルってどういう扱いになるんだろう。— ゑぬぽい改@電探が出(ん)たん? (@NPoi) March 27, 2014 実際にやってみるとわかるけど、実行権限だけついてるファイルは実行可能です。でも、「読み込めないのに実行できる」というのは直感に反するような気もしますね。だって、実行するためにはプログラムをメモリに読み込む必要がありますから!ではなぜ実行権限だけのファイルが実行できるのか、その仕組みを解説します。 実行とはなにか、どういう仕組みなのか Linux において実行とは「forkしてexecする」です(そのへんの詳しい話は プロセスさん を読もう!)。 fork も exec もシステムコール(正確には execve がシステムコールで exec はそのフロントエンドだけ

    読み取り権限がなく実行権限だけのファイルが実行できるのはなぜ? - カーネルのソースを読む - - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    t-wada
    t-wada 2014/03/28
    疑問を持ったら man とソースを読んでみるという姿勢、すばらしい
  • Shell Script Testing Framework shunit2

    社内勉強会用 shunit2の紹介 https://github.com/YudaiSuzuki/shunit2_demo ※注意 「ファイルをincludeしてください」とありますが、正しくはsourceです。ご指摘ありがとうございました。 https://twitter.com/sora_h/status/380858331746689024 テストの結果に色をつける https://github.com/YudaiSuzuki/shunit2_demo/commit/62fdb8bc13073267a1cb8c72a7df7eb8ce7bcddb 参考: shiratori(@shitai246_)さんのブログ シェルスクリプトでユニットテストを書いてみよう #TddAdventJp http://a4p.me/archives/1157 作った人 https://github.co

    Shell Script Testing Framework shunit2
    t-wada
    t-wada 2013/09/20
    シェルスクリプトもテスティングフレームワークでテストできる。そしてテスト結果に色も付けられるようにハックしたという話。(そして突然の @sue445 )
  • #naruhounix について

    どうなんですかねえ。まあぶっちゃけ、このにツッコミを入れることが容易な種族はいる。たとえば「プロセスがfork(2)するときにPOSIX semaphoreをsem_wait(3)してたらそのセマフォはどうなってまうの?」とかそういうの(実際書いてない)ね。けど、それって、そういうの目ざとく気がついてしまう人、はっきりいって対象読者じゃないというべきだろうなあ。LinuxとBSDのカーネルコミッターの皆さん、セプキャン講師陣の皆さん、未踏スーパークリエーターの皆さん、お疲れさまです。おまえらはお呼びじゃない。 でね。俺もどっちかというとお呼びでない側っぽいので、色々考えた。昔はCで書くしかなかったサンプルコードがRubyで書いてあるというのはよいですね。なにがよいかってCほど煩瑣じゃないから、質的な記述(だけとは言わないまでも)の割合が大きくて、いわゆる密度が高い気がする。なのでページ

    #naruhounix について
    t-wada
    t-wada 2013/04/30
    "本質的な記述(だけとは言わないまでも)の割合が大きくて、いわゆる密度が高い気がする。なのでページ数のわりに内容薄い印象は受けない。高速道路理論ってやつだな"
  • jqコマンドが実は高性能すぎてビビッた話

    GWが始まりましたが、鎌倉のGWは観光客多すぎて逆に住民はげんなりして外に出なくなる感じです。とはいえ路地まで観光客が攻め込んでくることは少ないので、路地を散歩する分には天気がよくていい感じですね。ちなみに人力車のおにーさんはそういう味のある路地を知り尽くしているので人力車で移動するのはそこそこオススメです(ぼくは乗ったことないけど「こんなところも通るんだ!」ってところで見かけたりします)。 さて、jqというコマンドをご存じでしょうか。 jq jq is a lightweight and flexible command-line JSON processor. と書いてあるとおり、コマンドラインでJSONを扱うことができるコマンドです。で、今まさに仕事で巨大JSONと戦うことが多く、このコマンドが大活躍です。 とはいえ、ぼくの使い方としては「巨大JSONをキレイに整形して表示する」とい

    jqコマンドが実は高性能すぎてビビッた話
    t-wada
    t-wada 2013/04/30
    jq コマンドのフィルタ機能が強力で捗るという話
  • Unix Philosophy and Node.js

    At TxJS the other day, I gave a talk where I mentioned that the Unix Philosophy is a crucial part of the patterns, opinions, and culture of Node.js. As usual, I made my slides available online well in advance of the talk video being available. For some reason, this brief mention of “Unix Philosophy” set off a few peoples’ ire. Since I had only 25 minutes, and every slide could probably be its own

    t-wada
    t-wada 2013/04/19
    Node.js 二代目メンテナ Isaac が Node の世界において Unix 哲学が非常に重要であることを記している
  • なるほどUnixプロセス ― Rubyで学ぶUnixの基礎

    なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 達人出版会 3,520円 (3,200円+税) 『Working with Unix Processes』待望の完訳。並列処理やデーモン、プロセス生成、そしてシグナルといったUnixの基礎であるプロセスについてRubyで解説する、「今どきの」開発者に向けた新しいUnixプログラミングの手引きです。 ※書の公式ハッシュタグは#naruhounix になります。 関連サイト原著者による公式ページと訳者らによるサポートページがあります。 Working With Unix Processes - Learn the Fundamentals of Unix Programming in RubyなるほどUnixプロセスサポートページ 日語版刊行によせてRuby

    なるほどUnixプロセス ― Rubyで学ぶUnixの基礎
    t-wada
    t-wada 2013/04/08
    原著読み途中で翻訳が出るパターンorz 原著が名著で翻訳者も信頼できるので必ず買う #naruhounix