MacにはGrowlってアプリがあって便利なんですけど、linuxだとMumblesがそれにあたるみたいです。 まぁただ単にメールがとか情報が来たらリアルタイムでポップアップするだけなんですけど、あると便利なんですよ。
晴天の価値 2月中旬に出張で千葉へ行った。5日間の滞在中はずっと快晴で、気温は20℃に迫る春のような暖かさだった。仕事は朝から晩まで現場を走り回る過酷なもので、身体的にも精神的にも追い込まれた。毎朝、京葉線から見える美しい景色を眺めて正気を保っていた。太平洋へ燦々と…
また Linux カーネルの話です。 Linux では fork によるマルチプロセスと、pthread によるマルチスレッドでの並行処理を比較した場合、後者の方がコストが低く高速と言われます。「スレッドはメモリ空間を共有するので、マルチプロセスとは異なりコンテキストスイッチ時にメモリ空間の切り替えを省略できる。切り替えに伴うオーバーヘッドが少ない。」というのが FAQ の答えかと思います。 が「オーバーヘッドが少ない」と一言にいわれても具体的にどういうことなのかがイメージできません。そこで Linux のスレッド周りの実装を見て見ようじゃないか、というのが今回のテーマです。 3分でわかる(?) マルチプロセスとマルチスレッド まずはうんちく。マルチプロセスとマルチスレッドの違いの図。以前に社内で勉強会をしたときに作った資料にちょうど良いのがあったので掲載します。Pthreadsプログラミ
ひとつ前のエントリ id:naoya:20070924:1190653790 では Linux のコンテキストスイッチにおける、主にハードウェアコンテキストの退避/復帰の処理を追ってみました。その中で カーネルスタック (switch_to() 内で pushl %ebp とかして値が積まれるスタック)とはそのときの実行コンテキストに紐づくカーネルプロセススタックという理解でよいか。 という疑問がもやもや湧いて出てきました。ここ数日 はじめて読む486―32ビットコンピュータをやさしく語る を読んでいたのですが、その中にこの疑問への答えへの入り口が載っていまして、そこを糸口に調べてみました。で、結果としては 答え: 良い でした。 x86 は特権レベルの移行と連動してスタックポインタを切り替える仕組みを持っています。Linux の場合モードはカーネルモード(特権レベル0) とユーザーモード
Linux カーネルのプロセススケジューラの核である kernel/sched.c の schedule() を読み進めていくと、タスク切り替え(実行コンテキスト切り替え)はその名も context_switch() という関数に集約されていることが分かります。2.6.20 の kernel/sched.c だと以下のコードです。 1839 static inline struct task_struct * 1840 context_switch(struct rq *rq, struct task_struct *prev, 1841 struct task_struct *next) 1842 { 1843 struct mm_struct *mm = next->mm; 1844 struct mm_struct *oldmm = prev->active_mm; 1845 184
(Last Updated On: 2014年12月5日)Linuxパワーユーザには当たり前の情報が多いですが、IDFでlesswatts.orgがお披露目となったようです。 http://www.powertop.org/ と同じ情報が掲載されているものが多いようです。 LinuxをノートPCで利用する場合に少しでも長くバッテリを利用する為のTipsが掲載されています。サーバの消費電力軽減にも役立つTipsもあります。Intelチップ専用のTipsもありますが、Intel以外でも使えるTipsもあります。Kernelやコマンドがサポートしていないと利用できない機能もあります。 サイトの掲載されているTIPS: SMPスケジューラの電源管理有効化 echo 1 > /sys/devices/system/cpu/sched_mc_power_savings SATA電源管理有効化 hdpa
お久しぶりです、初めての日本の夏に圧倒されているトールマエサカです。 今日はLinuxにおけるネットワークプログラミング関連のネタです。分散データベースサーバの開発過程で最近よくLinuxのepollというイベントハンドリング機能を使っています。これがまた優秀な機能なので紹介します。 このContextでいうイベントハンドラーはサーバがクライエントのリクエストを処理するためのメカニズムです。イベントの感知と通知は大雑把にいうと以下の三つの処理で構成されています: 一つもしくは複数のディスクリプタを監視 ディスクリプタの準備が整うまでハチ公のごとくひたすら待ち続ける 準備が整ったディスクリプタの通知 アプリケーションでの実装は一昔までselect(2)、もしくはpoll(2)というシステムコールで行われていました。二つとも役目は同じですがselect(2)の場合、kernelをいじらない限り
米ユタ地方裁判所は8月10日(現地時間),「UNIXの著作権は米Novellが保有している」として米SCO Groupの提訴を退ける判決を下した。 SCOは2004年1月「NovellがUNIXおよびUnixWareの著作権を保有しているとの主張は誤りであり,これにより同社が損害を被っている」としてNovellを提訴していた(関連記事)。 「判決はSCOによる提訴の中核を無効とし,UNIXの著作権侵害の主張に基づくLinuxコミュニティへのSCOの脅威を除去するものだ」(Novell 上級副社長 Joe LaSala氏)。 SCO Groupは米IBMがUNIXソフトウエアのライセンス契約に違反したとしてユタ州裁判所に提訴している(関連記事)。UNIXの著作権をNovellが保有していることが確定すれば,この訴訟も根拠を失うことになる。 ◎関連資料 ◆Novell statement on
VIVERとは? VIVERは、1台のコンピュータをCDやDVD、USBメモリなどから起動し、続いて他のコンピュータを次々にネットワークブートすることで、瞬時にディスクレスネットワークを構築するシステムです。 VIVERを使うと、非常に簡単な手順で、今あるLinuxシステムをUSBメモリやネットワークブートからブートできるようにすることができます。 特定のLinuxディストリビューションには依存していないので、CentOSでもopenSUSEでもDebianでもMandrivaでも、ほとんどのディストリビューションをディスクレスブートさせられます。 ネットワークブートにはNFSを使いません。分散多重化共有ブロックデバイスV-FIELDを使います。 もっと詳しく デモムービーを見る
諸卿もご存知の通り、Linuxのメモリアロケーションはmalloc(), mmap()した段階ではメモリ割付をせず、最初にメモリにアクセスしたときに行うという俗に「first touch」と呼ばれるアロケーションポリシーを採用している。 さて、んでは、このmmap()したけどまだ実際にはメモリ割付されているないアドレスにたいしてmlock()したらどうなるか。 というと、この時点でメモリ割付が走る。 走るのはいいんだが、これがまたベラボーに遅い。 別にLinuxカーネルのアルゴリズムが悪いわけではなくて、メモリ割付をする=そのページを0クリアするという事なので、DRAMのアクセス速度が超えられない壁となって立ちはだかるわけだ。 じゃあ、どのくらい時間がかかるか計算してみよう。 まず、DRAMをDDR2 PC5300と仮定しよう。イマドキ、こんなもんよね。 これでアクセス速度理論値 5300
The Linux Foundation protects the public and Linux users from unauthorized and confusing uses of the trademark and authorizes proper uses of the mark through an accessible sublicensing program. The Linux Foundation offers a free, perpetual, world-wide sublicense to approved sublicense applicants. In return, the sublicensee holders must agree not to challenge Linus Torvalds’ ownership of the Linux
Internet Explorer, Edge and other Browsers on Linux and Mac Ies4Linux worked as a tool to run Internet Explorer on Linux. Nowadays we have a ton of other tools, containers and virtualization options to test a website on different browsers and mobile systems: Microsoft Virtual Machines for Linux and MacThe new Internet Explorer and Edge can not be run on Wine anymore. So Microsoft has its own VMs f
NVIDIAのドライバを使用する際、/etc/X11/xorg.confの設定をしているにもかかわらず、OpenGLが有効にならない場合がある。そのとき、/var/log/Xorg.0.logには、以下のようなエラーが記録される。 (EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X (EE) NVIDIA(0): log file that the GLX module has been loaded in your X (EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If (EE) NVIDIA(0): you continue to encounter problems,
apollo alpha1 でたので試す。 SDK はなんか Download for Macintosh and Windows (ZIP, 18 MB) とかってのしか見つからないんだけど、これそのまま Linux でもうごくぽい。java++ おとして unzip -d ~/app/flex apollo_sdk_alpha1_031907.zip などとして、Flex2 SDK のインストールディレクトリに上書き展開で、インストールかんりょ。 サンプルをコンパイルしてみる。 ~/app/flex/bin/amxmlc TextEditor.mxml これで、swf ができる。これはただの mxmlc のラッパぽい。その後、 ~/app/flex/bin/adt -package TextEditor.air TextEditor-app.xml TextEditor.swf ico
Catalyst を POE で動かす Engine の Catalyst::Engine::HTTP::POE という実装が CPAN にあります。"Single-threaded multi-tasking Catalyst engine " だそうです。"Single-threaded" と言いつつも実装を覗いてみると環境変数 CATALYST_POE_MAX_PROC を 1 よりも大きく設定することで prefork する実装になってます。POEシングルスレッドではアプリケーション内で発生するブロックを避けることが難しいのでそのための実装じゃないかなと思います。 ところでこの Catalyst POE エンジン、prefork の実装はどのように行っているかというと POE から prefork と名の付いたイベントが発生するとおもむろに子プロセスを生成する、というのもの。複数の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く