C言語入門書を終えて目標のソケットプログラミングを覗いて見るもまだ足りないという印象で、足りなさげなところはポインタと構造体というものだった。ポインタというとC言語を習う学生にとって最大の難関ってことらしい。学生に限った話ではないけどね。
たけけんが行ってた学校では、あいまいのままに先に進んでもどうせまた配列に戻ってくるから配列までしかやらないってことだったんで(記憶によればだが)、ポインタとか構造体は未知のアウターゾーン。ポインタは%pでアドレスを見ることが出来るんだが、今の環境はVMware上のScientific Linuxだから、これは仮想メモリのアドレスだよねってのが疑問に思ったこと。
ここで言う仮想メモリはスワップ領域ではなくて、ゲストOSのメモリを指してます。
困ったときはグーグル師匠の出番だ。
KVM でオーバーコミットを行う
KVMではCPU、メモリーのオーバーコミットが可能で、物理メモリ以上のメモリを割り当てる事が可能なのだ!という事らしい。
ということは、エミューレートされたマシン上でのメモリのアドレスが出ているわけだな。
仮想マシンと物理マシンとじゃメモリの使われ方って違うのかなって一瞬思ったけど、完全仮想化だったら、まあ一緒か。エミュレートされたものか実際のメモリなのかの違いなだけで。
だけどオーバーヘッドってのがあるみたいだから、物理メモリとは何かが違うはずなのだが。
コンピュータなんて理屈のかたまりなんだから、かならず理屈はわかるもののはずだ。
いっつも使ってるApacheだってCで出来てるんだからにゃあ。
こんにちは,先日フォローしていただいたかぼちゃです.
ソケットプログラミングでは構造体(のアドレス,またそのキャスト)は捨てられない要素ですね.
プロトコルにそって関数群をセルフで実装するなら話は別ですが….
かぼちゃさん、はじめまして。
どうも、サーバーの設定が原因でご迷惑おかけしたようで大変申し訳ございませんでした。m__m
コメントありがとうございます!
リンクまでしていただいてありがとうございます><
こちらもこっそりリンク追加させていただきました。
プログラミングはだいぶ久し振りの再入門ですけど、これから頑張っていこうと思っています。!(^^)!
かぼちゃさんはお若いのに素晴らしいですね。
頑張ってくださいね。
またかぼちゃさんのブログの方にもお邪魔させていただきます~。