タグ

unixに関するhibomaのブックマーク (39)

  • 「バニラ」の起源について

    IBMのBookMasterでは、デフォルトを"vanilla"、特別な設定を"mocha"と呼んでいたらしい。 http://web.archive.org/web/20211224091337/ftp://public.dhe.ibm.com/printers/products/dcf/samples/B2H.HTM 「Chapter 6. Caveats and restrictions (what's supported and what's not!)」に以下の記述がある。 Conditional sections (.cs) and BookMaster's "vanilla" DVCF macros (.CONFIG and .WHEN) are supported, but not BookMaster's "mocha" DVCF macros (e.g. .USING,

    「バニラ」の起源について
    hiboma
    hiboma 2023/05/12
  • UNIX 7th code reading - 6thとの差分 - やる気のないブログ(A boring diary)

    はじめに Unix 6th Edition readingが一息ついたので、7th Editionのreadingに移ります。 6thのときと同じように、ここでメモを書いていこうと思っています。 今回は、6thと7thの差分をざっと明らかにして、どういう方針でメモを書いていくかを決めます。 ソースコード このサイトを使ってソースを読んでいます。 http://www.tamacom.com/tour/kernel/unix/ 検索機能が便利です。 6thと7thの差分 最初に、6thと7thの差分を明らかにすることを試みました。 UNIX PROGRAMMER'S MANUAL Vol.1の"CONVERTING FROM THE 6TH EDITION"という項を読んでみましたが、カーネル内部の大きな変更は無さそうだということがわかりました。 UNIX PROGRAMMER'S MANU

    UNIX 7th code reading - 6thとの差分 - やる気のないブログ(A boring diary)
    hiboma
    hiboma 2015/02/03
    lseek の l is 何? でたどり着いた
  • Unix Domain Socket において keep-alive が性能に与える影響 (Gazelle vs Meinheld) - methaneのブログ

    id:kazeburo さんが Gazelle という高速な Perl 用の Web アプリケーションサーバーを公開されました。 Gazelle - Plack Handler for performance freaks #yokohamapm from Masahiro Nagano Gazelle の特徴のうち幾つかは、 id:mopemope 作の Meinheld と同じです。 IO周りは全てCで書かれている accept4 や writev などの Linux 独自のシステムコールを利用している 一方で異なる点もあります。 Meinheld は HTTP/1.1 に対応していて、 keep-alive が利用できる。 Meinheld は greenlet というコルーチンを利用して、 long polling や SSE に対応している。 Meinheld が http-pa

    Unix Domain Socket において keep-alive が性能に与える影響 (Gazelle vs Meinheld) - methaneのブログ
    hiboma
    hiboma 2014/12/22
  • Exit Status (The GNU C Library)

    25.7.2 Exit Status When a program exits, it can return to the parent process a small amount of information about the cause of termination, using the exit status. This is a value between 0 and 255 that the exiting process passes as an argument to exit. Normally you should use the exit status to report very broad information about success or failure. You can’t provide a lot of detail about the reaso

    hiboma
    hiboma 2014/12/16
    "In particular, the value 128 is used to indicate failure to execute another program in a subprocess" なるほむ
  • c - Why is zero padding needed in sockaddr_in? - Stack Overflow

    hiboma
    hiboma 2014/06/16
    確かに謎だった
  • Feature #9647: File::Stat#birthtimeの追加 - Ruby master - Ruby Issue Tracking System

    Linuxの場合、媒体にはbirthtimeが記録されていて、syscallの追加が自転車置き場の議論で進まないという感じなのでctimeが帰ってくるのはうれしくないなあ。将来的に混乱が予想されるので。 いまでもrootならdebugfs使って作成日とれます。 この辺参照してください(一番下) http://stackoverflow.com/questions/5929419/how-to-get-file-creation-date-in-linux こっから先は雑談なんだけど、なにが自転車置き場の議論かというと、birthtime追加 → やったSambaの実装が楽になるよ! → だがちょっと待って欲しい、Windowsはctimeユーザが変更できる、それが出来ないならSambaで使えない → それもう birthtimeじゃねーだろアホか → えーい、usecaseで揉めるような機

    hiboma
    hiboma 2014/05/21
    BSD系に stat(2) の拡張仕様があることを知った。
  • Programming UNIX Sockets in C - Frequently Asked Questions: UDP/SOCK_DGRAM アプリケーションの作成

    Previous Next Table of Contents 5. UDP/SOCK_DGRAM アプリケーションの作成 5.1 どんな時に TCP ではなく UDP を使うべきなのでしょうか? UDP は、あるシステムから別のシステムにメッセージを送るのに、順序 は重要ではなく、全てのメッセージが他方のマシンに届く必要がないと いう時には有効です。ですから、私は UDP を、この FAQ のコード例を 書く時にしか使ったことがないのです。普通は TCP がより良い解決法 です。メッセージが望みの目的地に届くことの保証や、メッセージ順序 を保証させるためのコードを書かなくても済みます。あるプロジェクト にあなたが追加したコードというものには全て、非常に高価なバグが潜 んでいる可能性があるということを憶えておきましょう。 もし TCP があなたの要求に対してあまりにも遅すぎるのであれば、メ

    hiboma
    hiboma 2014/03/14
    "connect() を呼び出すと、受信側のソケットの振る舞いに影響を与えますか?" 通信先を限定, ICMP
  • 或るプログラマの一生 » SOCK_SEQPACKET の使い方

    表を見ると分かる通り、ほぼ SOCK_STREAM と同じです。「SOCK_STREAM のデータグラム版」と考えておくのがいいでしょう。 AF_LOCAL (AF_UNIX) での実装 仕様は上のとおりなのですが、実装となるといろいろと細かい話が出てきます。(なお、ここでは AF_LOCAL の話だけします) 多くの POSIX 実装において、(AF_LOCAL では)SOCK_DGRAM は順序性も信頼性も持つ。というか、そうでない実装は見たことがない。つまり、上の表における SOCK_SEQPACKET と SOCK_DGRAM との差異はコネクション指向かどうかという点だけになる。 SOCK_SEQPACKET は実装されていない環境があり、古めの OS だと使えないことがある。NetBSD なんかは現時点の stable である 5.0 ですら使えず、6.0-beta でようやく

    hiboma
    hiboma 2013/11/06
    SOCK_SEQPACKET
  • du で見つからない巨大ファイルは lsof で見つけるの術 - HsbtDiary(2013-07-24)

    ■ du で見つからない巨大ファイルは lsof で見つけるの術 とあるサーバーの disk usage が 90% を超えていて「やれやれ logrotate 漏れか」と、ルートから du でせっせと調べてみても全体の 30% くらいにしかならなくてなんだコレは!と右往左往していたら隣に座っている @hiboma が lsof でプロセスが掴みっぱなしの fd を見つけてくれた。 どうやら td-agent がゾンビのように残っていて、削除済みでマークされている巨大な tail ログを掴み続けていて、それが全体の 60% になっていたことが原因だった。さっくり kill したら fd が解放されて無事 disk usage が緑色に戻りましたとさ。めでたしめでたし。

    du で見つからない巨大ファイルは lsof で見つけるの術 - HsbtDiary(2013-07-24)
    hiboma
    hiboma 2013/07/24
    ファイルシステムの霊。/// チューニガソン系のイベントで初っぱなから容量少なくて困ってしまう罠として仕込んでおくとか出来そう
  • Bug #4909: trapハンドラは再入されてはいけないのではないか? - Ruby master - Ruby Issue Tracking System

    以下のプログラムは if intrap == 1 raise "trap nested" end が真になってしまって例外終了してしまうのですが、これは起きてはいけないのではないでしょうか。 以下の二点が問題だと考えます。 1)このプログラムのようにシグナルを連続して配送されるとスタックオーバーフローを引き起こせる 2)Rubyレベルでsigprocmask()に相当するシグナルブロッキング操作が提供されていないため、 正しいトラップハンドラを書くのが、ほぼ不可能になっている C言語ですら、シグナルハンドラ実行中はシグナルが自動的にマスクされるんですから、Rubyでも 同レベルの配慮はMRIがおこなうべきだと思います。 n = 0 intrap = 0 parent = $$ trap(:USR1) { if intrap == 1 raise "trap nested" end intr

    hiboma
    hiboma 2013/07/16
    "trapハンドラは再入されてはいけないのではないか?"
  • Hybrid kernel - Wikipedia

    This section needs additional citations for verification. Please help improve this article by adding citations to reliable sources in this section. Unsourced material may be challenged and removed. (August 2022) (Learn how and when to remove this message) The Windows NT operating system family's architecture consists of two layers (user mode and kernel mode), with many different modules within bot

    Hybrid kernel - Wikipedia
    hiboma
    hiboma 2013/06/03
    user mode と kernel mode を区分した図がおもろい
  • Re: rsync で削除すると速い (?) 件 - いちいの日記

    こんなの頑張る意味あんの? って気もしなくもないけど、必要なことの小さいサンプルになったのでグラフまで書いてみた。 rsync --delete よりも rm -rf のほうが、 getdents (readdir) の累計時間が 30 秒多いから real も 30 秒多い、というのが前提のように書いてますが、実際に正しいのかは未確認。重要なのは methodology ってことで。 調査用 dtrace スクリプト aggregation の key に wall からの経過時刻 (秒単位) を入れることで秒ごとに出した。 quantize したいけど @ を数えんのめんどいし、あんまり printf しまくると drop されちゃうし。 avg いるの? というのは excel の pivot table の都合。 #!/usr/sbin/dtrace -s int start_wa

    Re: rsync で削除すると速い (?) 件 - いちいの日記
  • Oracle Blogs

  • Procfs: Processes as Files (1984) [pdf]

    hiboma
    hiboma 2013/03/22
    /proc を実装したほげほげのペーパー  歴史。
  • https://www.in-ulm.de/~mascheck/various/shebang/4.0BSD_newsys_sys1.c.html

    hiboma
    hiboma 2013/01/25
    shebang のルーツ
  • ログイン - はてな

    パスワードを忘れた方はパスワードの再設定を行ってください。 うまくログインできない方はお問い合わせをご覧いただき、Cookieの設定をご確認ください。

    hiboma
    hiboma 2012/11/28
    FD_CLOEXEC
  • USP友の会:UNIXはシェル上でJOINができる。せっかくあるのに使わないの?

    こんにちは、ふたたびUSP MAGAZINE編集長のまつうらです。昨日は風が炸裂してましたけど、爆弾低気圧って呼ぶんですね。ニュースの題名を見たとき「テロでも起こったか!?」とびっくりしました。 その1、その2に続き、OSC 2012 Tokyo/Springでのセッションの続きとするつもりだったのですが、書いているうちにだいぶその中で語られていたネタから逸脱してしまったので、フツーに行きます。でも、その2で語らなかったJOINの話です。 INNER JOINがUNIXコマンドでできるの知らなイカ? INNER JOIN(内部結合)といえば、SQLをかじったりすれば必ず登場する概念。そのINNER JOINをするコマンドが古くからUNIXに存在する(POSIX標準である)のを知っていますか? ―「知らない」 じゃあ、UNIX系OSのターミナル用意して試してみましょう。 まずは、会員番号とそ

    hiboma
    hiboma 2012/04/05
    へー
  • スレッドの(というか並行処理の)歴史 - 西尾泰和のはてなダイアリー

    Twitterから転載 ふとスレッドっていつ発明されたんだろうと調べてみたけどよくわからない。Linuxがカーネルスレッドをサポートしたのが2.6からで2003年とか意外と新しい??もちろんユーザレベルのスレッドはもっと古いんだろうけど、いつからだろう。 hideaki_t: NeXTSTEP(Mach 2.0?)にはcthreadがありました。 atsuoishimoto: 私がスレッドって用語初めて聞いたのは、たしか'90年代初頭のOS/2だったかなぁ? これが2004年の話か>NetBSD 2.x+, and DragonFly BSD implement LWPs as kernel threads (1:1 model) shidocchi: 私は院の研究室でMachのソースリーディングをやってた頃知った。 これが2001年 > October 2, 2001 Mac OS X

    スレッドの(というか並行処理の)歴史 - 西尾泰和のはてなダイアリー
    hiboma
    hiboma 2011/05/13
  • バックグラウンドのアプリを軽くする:腰も砕けよ 膝も折れよ:So-net blog

    Macの手書き説明書」さんの「バックグラウンドで開いているアプリを劇的に軽くするPythonスクリプト」というエントリで知った。元ネタは「日曜研究室」さんのこの記事。 同じ動作をする専用の簡単なアプリDesquanderを書いたので、それを紹介する。 元ネタの記事を見せてもらうと 1 killall -SIGSTOP firefox-bin 2 killall -SIGCONT firefox-bin でアプリケーション(ここではFireFox)の動作を一時停止したり、継続したりできるらしい。 なに、それ?SIGTRAPとかSIGALRMじゃなくてSIGSTOPなの? ちょこちょこ調べてみるとどうやらそういうシグナル(signal)があるらしい。全然知らなかった。すくなくとも昔のSytemVにはなかった。なぜそれが断言できるか、というとずっと昔、HP-UX(HP社のunix)でsigna

    hiboma
    hiboma 2011/02/24
    新しいシグナルなんすね-
  • 共有ホームディレクトリ環境の管理方法 - Blog by Sadayuki Furuhashi

    MacPorts や apt などのパッケージ管理システムでインストールできないアプリケーションやライブラリ、自分で書いたツールなどを、ホームディレクトリにインストールしたいことは良くある。 ホームディレクトリならroot権限が要らないし、rootを持っている場合でも思わぬ操作ミスや設定ミスのリスクを抑えられる利点がある。アンインストールもしやすい。gem や easy_install などのスクリプト言語の管理システムが、OS全体のパッケージ管理システムと競合してしまう問題も回避できる。 このようにホームディレクトリにアプリケーションをインストールするときに、複数のバージョンを同時にインストールしたいことがある。また、異種のOSやCPUアーキテクチャのマシンでホームディレクトリを共有したかったりする*1 *2。 以上のような要求があるときに、ホームディレクトリ環境をどうのように構築し、P

    共有ホームディレクトリ環境の管理方法 - Blog by Sadayuki Furuhashi