ブックマーク / softantenna.com (4)

  • Linux Kernelハッカーのためのディープな技術情報「linux-insides」が電子書籍化される | ソフトアンテナ

    Linux Kernelに関する深い知識を提供していることで評判の技術資料「linux-insides」が電子書籍の形式でもダウンロードできるようになりました。現在ここから、ePUB(iPadiPhoneMac用)、MOBI (Kindle用)、PDF形式でファイルをダウンロードすることができます。電子書籍版は、GitBookを使って生成されたもので、内容はGitHubで提供されているものと同じみたいですがタブレット等で閲覧する場合には便利そうです。 また上記ファイルだけではなく、オンラインブック形式でも読むことが出来、こちらも直接GitHubで読むよりは読みやすくなっています。 ちなみに、linux-internalsの内容は、先日「Kernel booting process」の解説が完了した後、今は「Kernel initialization」(ブート後のKernelの初期化処理

    Linux Kernelハッカーのためのディープな技術情報「linux-insides」が電子書籍化される | ソフトアンテナ
  • Linuxカーネルに関する技術ドキュメント「Linux internals」の第2部が公開される | ソフトアンテナ

    Linuxハッカーを目指す技術者に役立ちそうな技術ドキュメント「Linux internals」の第2部が公開されています(Hacker News)。これは前回紹介した第1部の続編となるドキュメントで、カーネルのセットアップが完了し、アセンブラ言語からC言語のmain関数がよびだされた後、を解説するものとなっています。 具体的には、プロテクトモード、起動パラメーターのzeropageへのコピー、コンソールの初期化、ヒープの初期化、CPUの検証、メモリの検出、キーボードの検出、Querying(様々な情報の取得)などのトピック関して解説されています。 次回第3部は、ビデオモードの設定と、その他プロテクトモードへ移行する前に行う各種準備、プロテクトモードへの移行を解説する予定となっています。

    Linuxカーネルに関する技術ドキュメント「Linux internals」の第2部が公開される | ソフトアンテナ
  • Ruby作者Matz伝説第2章、新言語「Streem」始まる | ソフトアンテナ

    世界的にも有名なRubyの作者Matzことまつもとゆきひろ氏の新しいプログラミング言語「Streem」のリポジトリがGitHubで公開され、注目を浴びています。 説明によるとStreemとは「ストリームベースの並行スクリプト言語」。シェルと似たプログラミングモデルを基礎として、RubyやErlangやその他関数型プログラミング言語に感化されているということ。 例えばシンプルなcatプログラムは、以下のように記述されます。 STDIN | STDOUT さらにFizzBuzz問題はこのように。 seq(100) | {|x| if x % 15 == 0 { "FizzBuzz" } else if x % 3 == 0 { "Fizz" } else if x % 5 == 0 { "Buzz" } else { x } } | STDOUT シンプルですね。パイプでつなげるところがシェル

    Ruby作者Matz伝説第2章、新言語「Streem」始まる | ソフトアンテナ
  • わずか500行のCソースコードで作られたCコンパイラ「CC500」 | ソフトアンテナ

    Cコンパイラといえばとてつもなく複雑なプログラムというイメージがあります。ところが、このCコンパイラを(サブセットとはいえ)わずか500行ほどのCのソースコードで実現した「CC500」名付けられたプログラムが公開されています。 ソースコードは可読性を維持するためにつけられた空行やコメントを含めると、実際は750行ほどになるそうですが、それでもこれだけコンパクトなソースコードで実行可能なELFバイナリ(Linux用のバイナリ)を生成できるのは興味深いのではないでしょうか。 以下実際にLinuxでコンパイルしてみました。 自己コンパイルできる このコンパイラはC言語のサブセットで、自分自身のソースコードをコンパイルできるところがおもしろいところです。まず「cc500_1」という実行ファイルを生成します。 gcc cc500.c -o cc500_1 生成された実行ファイル「cc500_1」を使

    わずか500行のCソースコードで作られたCコンパイラ「CC500」 | ソフトアンテナ
  • 1