タグ

ohyajapanのブックマーク (1,548)

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

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

    Linuxシステムコール徹底ガイド | POSTD
  • Linuxのforkシステムコールをハックする - Qiita

    最近C言語で学ぶソケットAPI入門という投稿をアップさせて頂いていて、TCP、UDPを使ったプログラムまではとりあえず書いてみたので、そろそろネットワークプログラミングでは必要不可欠な並列化処理や多重化処理の方に移ろうと思っています。 そこで、今回はマルチプロセスの処理について掘り下げようと思ってます。マルチプロセスを実現するにあたって重要なシステムコールはforkです。 もともとLinuxで子プロセスを生成するシステムコールはforkというものであることは知っていますし、使い方も何となく知ってはいました。 ただ、それがどういった実装によって実現されているのかまでは知らなかったので、この際ちゃんとソースコードを追って調べてみました。 とはいえソースコードだけ追っていくのが辛い場面もあったりしたので、そんな時はとりあえずfork関数を使った適当なコードをgccで静的リンクさせたオブジェクトコ

    Linuxのforkシステムコールをハックする - Qiita
  • システムコールめもめも - Qiita

    概要 システムコールをいろいろ調べてみたので、自分の言葉で用語をまとめてみた。 修正しました(2017/4/25) 種類 i386 AMD INT $0x80/iret syscall/sysret(古いと使えないものもある) Intel INT $0x80/iret sysenter/sysexit(古いと使えないものもある) x86_64 AMD INT $0x80/iret syscall/sysret Intel INT $0x80/iret sysenter/sysexit syscall/sysret 特徴 INT $0x80/iret ソフトウェア割り込み発生させる。システムコールに特化していないのでsysenter、syscallよりオーバーヘッドがある 昔からある方法なのでほとんどのCPUは対応している?? sysenter/sysexitとsyscall/sysret

    システムコールめもめも - Qiita
  • http://yuma-z.com/blog/2013/03/5steps_english/

  • Free Computer books Download | Online computer ebooks | online free computer science ebooks

    Free Online Books Freebookcentre.net contains links to thousands of free online technical books. Which Include core computer science, networking, programming languages, Systems Programming books, Linux books and many more...

  • 無事です - Backnumbers: Steps to Phantasien

    2011-03-12 近況 無事です. はいいとして, 先週 Shibuya.js で話してきました (スライド). 空気をよまず JS と無関係の話をしてしまいやや申しわけなかったけれども, WebKit の様々な幻想をぶちこわす開発の様子を知ってもらうことには個人的な使命感を感じておりつまりこれはちょっとした十字軍なのです. JS のテストってなんでむずかしいの? 地震さわぎで自宅警備中の人も多いだろうから, お互いの気晴らしをかねてだらだら書きたい. JavaScript のテストについてぐぐったりついったを読んだりしていると, JavaScript でテストを書くのは大変だとか難しくてやってないという話が多くて不思議におもった. 私は JavaScript を使ってウェブアプリを作る仕事をしたことがなく, いまいち難しさがピンとこない. 趣味でさわっている範囲だと普通に書ける. な

  • C Language Resources | Hacker News

    ohyajapan
    ohyajapan 2011/02/22
  • C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴

    Top 10 C Language resources that will turn you into a better programmer - C and C++ Programming Resources 今更 C 言語かと言われそうだが、Linux カーネルだって、我々が利用している LL 言語の多くだってこの言語で書かれているのである。ワタシ自身は未だどの言語よりCを愛している。 以下に C 言語に関してウェブに公開されている代表的なリソースを挙げていく。さすがに更新が長らく止まっているものが多いが、それでも有用な情報源には違いない。ネタ元は Hacker News。 C Programming Notes Programming in C - UNIX System Calls and Subroutines using C. C Lesson by Chris Sawtell

    C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴
    ohyajapan
    ohyajapan 2011/02/22
  • 代入できない構造体 | 株式会社きじねこ

    備忘録として書きとめておきます。 C++であれば、構造体をはじめとしたクラスを代入できないようにするのは簡単です。しかし、Cでも代入できない構造体を作りたくなることがときどきあります。特定の関数またはマクロを使ってコピーしないといけないようなものがそうで、そうした構造体を代入演算子を使って代入すると破綻してしまいます。そこで代入演算子で代入しようとするとコンパイルエラーにできる方法がほしいわけです。 次のように、幅0のビットフィールドをconst修飾子付きで持たせてあげると代入できなくなります。

    ohyajapan
    ohyajapan 2011/01/15
  • 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
    ohyajapan
    ohyajapan 2011/01/15
    Javaコードから他の言語を呼び出す
  • 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
    ohyajapan
    ohyajapan 2011/01/15
    Javaのソースコードを動的にコンパイルする話
  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

    今の会社に移って半年経ちました。めでたく試用期間終了です。といっても別に試用期間中に密かに首を切られるような事をしたとか、逆に試用期間が終わったからと言ってこれで定年までのうのうと働ける、という訳ではありません。未来は全く判りません。まあとにかく、一つ区切りがやってきました。 金融を知らないQuantsの仕事 私の職業の肩書きには Quantitatitatitatitative という単語がくっついて超カッコよさそう。普通は Quant というと、金融工学や統計数理に詳しい夜もブイブイいわしている超イケメン20代を想像しますが、私は金融とか全然知らないアラフォーお父さんです。それでも Quant です。お願いですから、私に何を買ったらいいかとか、聞かないでください。金融商品とか買った事ないし。というか、逆に教えて欲しいです。 私のチームは、当の Quant さん達が開発した、金融派生商

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • Ghosts of Unix Past: a historical search for design patterns | Lambda the Ultimate

    Not strictly PLT-related, but Neil Brown has contributed an amazing series of articles to Linux Weekly News: Ghosts of Unix Past: a historical search for design patterns Ghosts of Unix past, part 2: Conflated designs Ghosts of Unix past, part 3: Unfixable designs Ghosts of Unix past, part 4: High-maintenance designs For this series we try to look for patterns which become visible only over an exte

  • クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー

    某所のチャットで話題になって、流れ去りそうだったのでもったいないから転載しておいた。事後承諾で。 MIYAMOTO Daisuke: 型の継承と実装の継承を区別する方法がないんだよな。 西尾泰和(nishio.hirokazu): 型を継承させずに実装を継承させたい→それ移譲で ってことかな? MIYAMOTO Daisuke: そそ。そもそも、クラスに「型としての役割」と「実装としての役割」という複数の責務があることに、俺は長い間気づかなかった。これに気づかないと、型継承と実装継承が頭の中で整理できない。 西尾泰和(nishio.hirokazu): 僕が最近気づいたことも加えると、クラスには「ユーザ定義型」「インスタンスを作成する道具」「実装の再利用の単位」という3つの役割がある。 MIYAMOTO Daisuke: あぁ、インスタンスの生成器ね。 西尾泰和(nishio.hiroka

    クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー
  • Software Development with Code Maps – Communications of the ACM

    CACM Web Account Membership in ACM includes a subscription to Communications of the ACM (CACM), the computing industry's most trusted source for staying connected to the world of advanced computing. Sign In Sign Up The Oahu code map showed that a single map could represent an entire software project in a way that was meaningful to all the developers on the team. Software developers regularly draw

  • グーグルが構築した大規模システムの現実、そしてデザインパターン(4)~デザインパターン編

    グーグルが「Evolution and Future Directions of Large-Scale Storage and Computation Systems at Google」(グーグルにおける、大規模ストレージとコンピュテーションの進化と将来の方向性)という講演を、6月に行われたACM(米国計算機学会)主催のクラウドコンピューティングのシンポジウム「ACM Symposium on Cloud Computing 2010」で行っています。 講演の内容を4つの記事(MapReduce編、BigTable編、教訓編、デザインパターン編)で紹介しています。この記事は教訓編の続き、デザインパターン編です。 大規模システムデザインの指針 よりよく使ってもらうためのインフラのデザインと開発方法を考えてみよう。 インフラに対する機能の要望についてさまざまなグループと話すと、多くのリクエ

    グーグルが構築した大規模システムの現実、そしてデザインパターン(4)~デザインパターン編
  • RPMパッケージのリビルド

    お家で使うLinux SRPMパッケージのリビルドとインストール 12 Jun 2007 (初出:26 May 2001) RPMの使い方は Vine-Linuxならオンラインマニュアル中に、あるいはWeb上に RPMによるパッケージ管理があります。 とくに「5.3. RPM - RPM Package Manager」、 「5.4. ソースパッケージからバイナリパッケージを再構築(rebuild)する」などが参考になるでしょう。 *.src.rpm、*.nosrc.rpm などのソースパッケージ(SRPM)をリビルドすることにより、*.i386.rpm、*.noarc.rpm などのバイナリパッケージ(RPM)を作ることができます。 できあがったバイナリパッケージを root権限でインストーするのが基的な手順となります。 SRPMリビルドの環境設定 リビルドに必要なソフト ソースパッケ

  • Five Best Time-Tracking Applications

    Where does the time go? Whether you need to know for billing purposes or just want a better idea of how your work day is split up, you can always answer that question with a good time-tracking application. Photo by judepic. Earlier this week we asked you to share your favorite time-tracking tool, and now we're back with the five most popular time-tracking applications to help you track the time yo

    Five Best Time-Tracking Applications
  • NoSQLの成功は1:10問題にかかっている:Kenn's Clairvoyance

    ここ2-3年ほど、いわゆる非SQL系データベースがホットな話題になってきています。このムーブメントを総称して「NoSQL (Not-only SQL)」と呼ばれることが多いようです。まるでSQLを否定しているかのような誤解を招きやすい用語ですが、かといってキー・バリュー型データストアや列指向DBを総称できる他の呼び方もないので、このエントリではNoSQLという用語を使うことにします。 OracleMySQLなどのSQLデータベースが成熟していく一方で、SQLデータベースを特徴づける弱点である柔軟性のなさ、堅牢さと引き換えに犠牲になった更新性能の低さ、スケールアウトの難しさなどから、「何でもかんでもRDB」から「目的に応じた永続化」が模索される流れになってきました。 時を同じくして、キャッシュサーバの世界でも、MemcachedのもつシンプルなAPIの使いやすさが評価される一方、LRUによ

    NoSQLの成功は1:10問題にかかっている:Kenn's Clairvoyance
  • 寝ている赤ちゃんの姿をアートにした写真 - Mila's Daydream -

    ▼ カテゴリーから探す お知らせ (17) アート/デザイン (282) インテリア (371) ガジェット (367) グルメ/キッチン (281) ゲーム (57) ファッション (180) フォト (245) ミュージック (24) 動画/ムービー (340) 広告 (96) 建築/スポット (243) (37) 雑貨 (267)

    寝ている赤ちゃんの姿をアートにした写真 - Mila's Daydream -