タグ

UNIXに関するhitsujibaneのブックマーク (77)

  • 2004-12-26

    まえまえから気にはなっていたんだけどやっと POSIX の規格書を見ることができた。 JISC-日工業標準調査会 というところが pdf として JIS の規格書を WEB 上で公開しており、閲覧に限って参照することができる。("閲覧にかぎって"というところがポイント。ダウンロードや印刷さらにはテキストのコピペもできない(さすがにスクリーンショットのコピペはできるけど…)。せこい商売してるなぁ…) トップページから「データベース」->「JIS検索」と進み「JIS規格名称検索」に POSIX と入力すれば以下のリストが得られる。 JISX3030 移植可能なオペレーティングシステムのインタフェース(POSIX) 第1部 応用プログラム向けのインタフェース(API)[プログラム言語C] JISX3031 移植可能なオペレーティングシステムのインタフェース(POSIX) 第2部 シェル及びユー

    2004-12-26
  • 移転しました

    移転しました

    hitsujibane
    hitsujibane 2011/04/09
    shebangについての議論
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • Wataru's memo(2006-07-30)

    ● [UNIX] malloc failure (その4) いよいよ、malloc failureシリーズも最終回。前回作成した malloc_null.c は、ライブラリ中の malloc をハイジャックし、ゼロを呼び出し元に返すだけでしたが、今回は来の malloc を内部で呼び出し、メモリ割り当てを実行できる wrapper function に挑戦してみましょう。 Wrapper function を実装するためには、malloc ライブラリ関数のエントリアドレスの取得など初期化処理が必要になります。一般のアプリケーションであれば、処理の前後で初期化・終了処理を行うことは簡単ですが、共有オブジェクトで実現するとなると、はてと悩んでしまいます。 実は、GCCにはこのような場合のために、特別な仕掛けが用意されているのです。 __attribute__((constructor)),

  • Wataru's memo(2006-07-22)

    ● [UNIX] malloc failure (その3) libc hijack は楽し 今回は、いよいよ malloc failure シリーズの最終回第3回。楽しい "libc hijack" を始める前に、軽く準備体操をしておきましょう。次に示す、puts_test.c をご用意ください。 int puts(const char*); int main() { puts("Hello, world!"); return 0; } printf 関数の代わりに puts 関数を用いた、簡易版 Hello, world! プログラムです。 $ gcc -Wall -o puts_test puts_test.c $ ./puts_test Hello, world! $ nm -u puts_test w __gmon_start__ w _Jv_RegisterClasses U _

  • Wataru's memo(2006-07-18)

    ● [UNIX] malloc failure (その2) リンク方式に見る Linux と BSD の違い failmalloc の仕組みを理解するためには、"動的リンク" に関する知識が必要になります。C言語によるプログラム開発は、プリプロセス・コンパイル・アセンブル・リンクの4工程を経ますが、最後のリンクはその方式により、動的リンクと静的リンクのふたつに分類されます。 BSD 環境では、危機管理のためにシステムの基幹部分に関するプログラムは静的リンク、それ以外の一般ユーザーアプリケーションは動的リンクにより作成されています。 これに対して、Linux 環境ではほぼ全てのプログラムが動的リンクにより作成されています(Debian Sarge で確認したところ、静的リンクで作成された実行可能ファイルは /sbin/ldconfig ただひとつでした)。この事実が意味するところは、これから

  • malloc failure (その1) - Wataru's memo(2006-07-15)

    ● [UNIX] malloc failure (その1) failmalloc と危機管理 奥地氏の enbug diary で、とても刺激的なお題を見つけました。failmalloc と呼ばれる共有ライブラリパッケージを使ったお話ですが、要は "意図的にメモリ確保に失敗する malloc 共有ライブラリ" を使い、メモリ管理を内部で正しく行っているかどうか、"外部から" 簡単に検証してみようというものです。 failmalloc は英文の紹介ページですが、その内容はさすがです。なぜ、氏がこのような事を思いついたのかは、次の一言に集約されています。 経験不足な人が書いたコードはエラーチェックが無茶苦茶である。 要するに、失敗することを考えていない。 後で述べますが、私は Linux 環境もまた「失敗することを考えておらず、危機意識に欠けている」と常々感じていましたので、failmallo

  • プロセスとパイプ

    システム・プログラム 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp> このページは、次の URL にあります。 http://www.hlla.is.tsukuba.ac.jp/~yas/coins/syspro-2001/2001-05-07 あるいは、次のページから手繰っていくこともできます。 http://www.hlla.is.tsukuba.ac.jp/~yas/coins/ http://www.is.tsukuba.ac.jp/~yas/index-j.html ■印刷配布資料 ■復習 ■今日の重要な話 プロセスの考え方と操作 プロセス main() の引数と環境変数 fork() システムコール execve() システムコール wait() システムコール パイプ pipe() システムコール dup() システムコール ■捕捉--数の入出力 U

  • UNIX のフォント事情

    2016-07-21: このページの記述は古いうえに、(当初から)致命的に間違っている箇所があります。 今のところ気づいているのは、 ヒンティングの強弱と LCD レンダリングモードの直交した指定ができないというのは大嘘。当時から FreeType のリファレンスにちゃんと説明がある。 Firefox のレンダリングは cairo に移行済。 LCD フィルタは freetype 側に実装され、現在では多くの環境で適切に使用されている。 cairo で hintstyle の設定が無視される問題は Bugzilla を見る限りまだ残っているように思えるけれど、手元で試した感じでは反映されているような…。気のせいかも(適当)。 pango は HarfBuzz に移行。 TrueType のバイトコードヒンティングは、 2.6.4 で水平方向のヒンティング命令を無視する処理が追加され、サブピ

  • ソースコードリーディング(wコマンド編)-ロードアベレージ/ログインユーザ/プロセス情報の取得

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、みなさんお久しぶりです。Yahoo!ショッピング開発担当の吉野哲仁です。 約1年3ヶ月ぶりのソースコードリーディングは、wコマンドのソースコードを読んでいきたいと思います。 ■はじめに wコマンドは、システムの稼働状況とログインユーザーの情報を表示するコマンドです。 システム運用ではよく使われます。ロードアベレージを取得するために使用する場合も多いと思います。 wコマンドでやっていることは大きく分けて2つ。 ・現在のシステム状況(システム稼働時間、ロードアベレージ)の表示 ・現在のログインユーザー情報(ユーザー名、端末名、ログイン元ホスト、現在実行しているコマンドなど)の表示 です。今回はこの2つにスポットを当てて読ん

    ソースコードリーディング(wコマンド編)-ロードアベレージ/ログインユーザ/プロセス情報の取得
  • Autotoolsの簡単な使いかた (2) - I.S.の日記

    前回に引き続き、Autotoolsの簡単な使いかたの解説です。 autoheader 前回はconfigure.inの修正まででしたが、次はautoheaderを実行します。autoheaderは主にconfig.h.inというfileを生成するために実行します。config.h.inは処理系依存のmacroを集めたheader fileであるconfig.hの元になるfileです。 $ autoheader $ ls autom4te.cache autoscan.log config.h.in configure.in hoge.cppこれでconfig.h.inが生成されたはずです。autom4te.cacheというdirectoryは今回は直接関係ありませんので、説明は省略します。 aclocal 前回configure.inにAM_INIT_AUTOMAKEというmacroを追加

    Autotoolsの簡単な使いかた (2) - I.S.の日記
  • Autotoolsの簡単な使いかた (1) - I.S.の日記

    Compiler言語で開発する際、makeのお世話になることが多いと思います。そういうときに自前でMakefileを書くのもいいのですが、処理系ごとの違いを吸収し、それを反映したMakefileを自動的に作成してくれるような便利なtoolがあります。それがAutotoolsです。 Softwareを自分でcompileしてinstallしたことがある方なら以下のようなcommandを使ったことがあるかもしれません。 $ ./configure : $ make : $ sudo make install :このconfigureこそがAutotoolsで生成されたscriptです。configureを実行することによって、処理系ごとの違いを判別し、Makefileを自動的に生成します。 では、Autotoolsを使うにはどうすればいいのでしょうか。これから順を追って説明していきましょう。各

    Autotoolsの簡単な使いかた (1) - I.S.の日記
  • The Art of Unix Programming

    This book and its on-line version are distributed under the terms of the Creative Commons Attribution-NoDerivs 1.0 license, with the additional proviso that the right to publish it on paper for sale or other for-profit use is reserved to Pearson Education, Inc. A reference copy of this license may be found at http://creativecommons.org/licenses/by-nd/1.0/legalcode. AIX, AS/400, DB/2, OS/2, System/

  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
  • 知っていると便利な gcc のオプション

    back GNU gcc を使う際に知っていると便利なオプションを挙げておきます。 注意: これが全部ではありません。gcc には、ほかにも プロセッサ依存の細かいオプションが山のようにありますが、それらは ふつうあまり利用しないので省略しました。 一般的なオプション -c, -o, -I, -g, -O, -L, -l 省略。それくらい知ってること。ちなみに -L と -l は ld へのオプションであり、順番が重要である。 -pipe 各ステージ間で情報のやりとりをするのに temporary file を使わず、 pipe を使うようにする。このオプションが Makefile などに 含まれているときは、たいてい除いたほうがよい。なぜなら、 多くのシステムでは、アセンブラ側がパイプに対応してないから。 言語仕様に関するオプション -ansi 厳格な ANSI 仕様でコンパイルする。こ

  • ファイルディスクリプタについて一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    ファイルディスクリプタについて一覧
  • 3つの人気OSのカーネルを比較する

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    3つの人気OSのカーネルを比較する
  • プログラミング言語Make 補遺:引数付きの関数 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「Makefileの書き方:プログラミング言語Make」のコメント欄で、shiroさんから「引数付き関数もユーザー定義できるよ」とご指摘いただきました。 http://www.gnu.org/software/automake/manual/make/index.htmlを見てみたら、最近のGNU Makeでは引数を扱えることが判明。例えば、次のように使えます。 SUBDIRS := src include test files = $(wildcard $(1)/*.erl) $(wildcard $(1)/*.hrl) ALL_FILES := $(foreach dir,$(SUBDIRS),$(call files,$(dir))) filesが引数付き関数(Make用語ではパラメータを持つ再帰的変数)です(($(wildcard $(1)/*.erl) $(wildcard $(

    プログラミング言語Make 補遺:引数付きの関数 - 檜山正幸のキマイラ飼育記 (はてなBlog)