Posts

Showing posts from December 4, 2018

水時計

Image
水時計 (みずどけい)とは、容器に水が流入(流出)するようにして、その水面の高さの変化で時をはかる時計のこと。東洋(中国由来)のものは 漏刻 (ろうこく)ともいう。西方のものは クレプシドラ (英綴り、clepsydra)ともいう。砂時計のような、点滴式のようなものもある。 目次 1 概説 1.1 エジプト 1.2 バビロニア 1.3 インド 1.4 中国 1.5 ギリシア・ローマ世界 1.6 日本 1.7 イスラムとアラビアの水時計 1.8 現代の水時計の設計 2 出典 3 関連項目 概説 古代ペルシャの時計 水時計は、日時計と同様、(日にちを数えるために刻み目を付ける棒を除けば)おそらく最古の計時器具である [1] 。その古さゆえに水時計がいつ・どこで発明されたかは不明である。ただ、日時計では夜間には使えないことからこれを補うものとして水時計は作られたと考えられている [2] 。 水が流出する椀状の水時計は最も単純な型であり、紀元前16世紀ごろのバビロニアや古代エジプトには既に存在していたことが知られている。世界の別の地域、例えばインドや中国でも古くから存在していたが、最古のものがどの時代から存在していたかはよく分かっていない。しかしながら、水時計は前4000年には中国に出現していたと主張する研究者もいる [3] 。 ギリシア・ローマ文明は水時計の設計を最初に進歩させ、精度を向上させたと信じられている(これらに使われた複雑な歯車機構は奇抜なオートマタへとつながった)。これらの進歩は東ローマやイスラム時代を経て、最終的にはヨーロッパで開花した。その流れとは独立に中国人も進歩した水時計を創り出し、それは朝鮮半島や日本へと伝わった。 水時計の設計には各地で独立に生み出されたものもあれば、貿易によって知識が伝播したものもある。公衆が時刻を知りたがるようになったのは、労働時間が重要になってくる産業革命が最初である。それ以前には、水時計の使用目的は天文学および占星術であった。当時の水時計は日時計を基準にして目盛りが刻まれていた。これらの水時計は弁護士が法廷で発言する時間や売春宿の労働時間、夜警の勤務時間、教会での説教やミサの時間な

Syscall hijacking from kernel

Image
up vote 0 down vote favorite 1 I want to intercept the open() syscall, for testing each time a file is opened by the user, the message “OPEN IS!” should be displayed in dmesg . The syscall table and open-call addresses in dmesg are displayed, but the message “OPEN IS!” is not visible. Kernel v. 4.18 I would like to know what the problem is. unsigned long cr0; static unsigned long *__sys_call_table; typedef asmlinkage int (*orig_open_t)(const char *, int, int); orig_open_t orig_open; unsigned long * get_syscall_table_bf(void) { unsigned long *syscall_table; unsigned long int i; for (i = (unsigned long int)ksys_close; i < ULONG_MAX; i += sizeof(void *)) { syscall_table = (unsigned long *)i; if (syscall_table[__NR_close] == (unsigned long)ksys_close){ printk(KERN_INFO