アカウント名:
パスワード:
realized by overwriting each funtion's entry point with jmp assenbly code. 各関数のエントリーポイントを jmp 機械コードで上書きする事により実現する。
target process is sleep status 目標のプロセスはスリープ状態にある
そういうことをOSレベルでサポートしていた最初の物ってのが, かのmulticsだったそうで. 動作中のプログラムの記憶イメージを一旦吐き出させてから不具合を修正, そして停止点から再実行させるという機能が後のcore dumpになったそうです.
そうするとLinuxは先祖返りしたということなのか, 現在のU*ixが既にmultics並みの巨大システムなのか...
とうわけで、Kernelも何もかもLispで書いておけば万事OKつーことで良いですか?。
# Lisp MachineとかPSIみたいなのに憧れてたもので……。^^;
ただし、当時はまだ「篠田先生」ではなくてドクターコースの 学生だったかも。
師匠ではなく
支障ではないですかね?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
動作中のプログラムにパッチといえば (スコア:4, 興味深い)
動作中のXwindowSystemにパッチを当てる際に、デーモンを
落とさずにバイナリを書き換えて、さらにプログラムが使用
しているメモリ領域も手動で書き換えてしまい、サービスを
停止させなかったみたいな話が載っていたのを読んで、
すげーと思ったことがあります。
#何となく思い出したのでとりあえず書いてみるテスト。
Re:動作中のプログラムにパッチといえば (スコア:4, 興味深い)
これは、『元もとあるバイナリ+バイナリのパッチ』で新しいプログラムになります。「アセンブラレベルで、古いプログラムに当てるパッチを書いているのかな?」と思っていましたが、このLinuxようのパッチというのはどういう原理なんでしょ?
Re:動作中のプログラムにパッチといえば (スコア:2, 興味深い)
というので、『関数単位で置き換える』みたいですね。じゃあ、高級言語でできるかも。あと、
ということですので、パッチを当てるプロセスが対応する関数を実行していない状態かつ、その関数から呼ばれた関数を実行していない状態でスリープ状態にして、関数を置き換えるんですね。
と、一人でなっとく。だれか試してみた人のレポートを見たいなあ。
Re:動作中のプログラムにパッチといえば (スコア:3, 興味深い)
そういうことをOSレベルでサポートしていた最初の物ってのが, かのmulticsだったそうで. 動作中のプログラムの記憶イメージを一旦吐き出させてから不具合を修正, そして停止点から再実行させるという機能が後のcore dumpになったそうです.
そうするとLinuxは先祖返りしたということなのか, 現在のU*ixが既にmultics並みの巨大システムなのか...
Re:動作中のプログラムにパッチといえば (スコア:0)
高級言語用のツールは実行時パッチの作成なんて想定外だから
挿げ替えるためのコードもアセンブラとかを使って手作業で
作成する必要があるし、実行中のプロセスと辻褄を合わせる
為にソースコードや実
Re:動作中のプログラムにパッチといえば (スコア:0)
スクリプト実行中に、スクリプトの中身に対してパッチ当てたいことってない?
Re:動作中のプログラムにパッチといえば (スコア:1)
とうわけで、Kernelも何もかもLispで書いておけば万事OKつーことで良いですか?。
# Lisp MachineとかPSIみたいなのに憧れてたもので……。^^;
Re:動作中のプログラムにパッチといえば (スコア:0)
Re:動作中のプログラムにパッチといえば (スコア:0)
砂原さんの逸話ではないかと思います、、
違ってたらごめんなさい。
完全にマシンを把握しきった行為(ハック)で
恐れ入った記憶があります。
Re:動作中のプログラムにパッチといえば (スコア:1, 参考になる)
砂原先生の話ですね。
Re:動作中のプログラムにパッチといえば (スコア:1)
ただし、当時はまだ「篠田先生」ではなくてドクターコースの 学生だったかも。
先生ではなく (スコア:0)
師匠というのが正しいそうです
Re:先生ではなく (スコア:0)
師匠ではなく
支障ではないですかね?