ソフトウェア環境
Linuxシステムあるいはソフトウェア的な環境 / Software environment of Linux or other layers
(verified 2010 Feb. / EOS 4.3.0 / DCS-7120T-4S 03.01)
プロセス
ps でプロセスが普通に見える。
[admin@localhost /]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Feb06 ? 00:00:20 /sbin/init
root 2 0 0 Feb06 ? 00:00:00 [kthreadd]
root 3 2 0 Feb06 ? 00:00:01 [migration/0]
root 4 2 0 Feb06 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 Feb06 ? 00:00:00 [watchdog/0]
root 6 2 0 Feb06 ? 00:00:00 [migration/1]
root 7 2 0 Feb06 ? 00:00:00 [ksoftirqd/1]
root 8 2 0 Feb06 ? 00:00:00 [watchdog/1]
root 9 2 0 Feb06 ? 00:00:00 [events/0]
root 10 2 0 Feb06 ? 00:00:01 [events/1]
root 11 2 0 Feb06 ? 00:00:00 [work_on_cpu/0]
root 12 2 0 Feb06 ? 00:00:00 [work_on_cpu/1]
root 13 2 0 Feb06 ? 00:00:15 [khelper]
root 102 2 0 Feb06 ? 00:00:00 [kblockd/0]
root 103 2 0 Feb06 ? 00:00:00 [kblockd/1]
root 108 2 0 Feb06 ? 00:00:00 [ata/0]
root 109 2 0 Feb06 ? 00:00:00 [ata/1]
root 110 2 0 Feb06 ? 00:00:00 [ata_aux]
.....
root 1474 1 0 Feb06 ? 00:00:00 ProcMgr-mast
root 1478 1474 0 Feb06 ? 01:29:39 ProcMgr-work
root 1492 1478 0 Feb06 ? 00:01:13 Launcher
root 1493 1478 0 Feb06 ? 01:12:50 Sysdb --conf
.....
root 1608 1 0 Feb06 ? 00:00:42 rsyslogd -c 3
root 1693 1 0 Feb06 ? 00:02:03 /usr/sbin/sshd
root 1719 1 0 Feb06 ? 00:00:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
(.... 以下略)
プロセスリストで中間あたりに Python スクリプトによるサービスプログラム群あり。
ProcMgr-mast
ProcMgr-work
Launcher
Sysdb --conf
などなど。このあたりで各種機能を実現している。
実体
これらの実体は /usr/bin 以下にある。
例えば Thermostat を見る。
bash-3.2# cat /usr/bin/Thermostat
#!/usr/bin/env python
# Copyright (c) 2006 Arista Networks, Inc. All rights reserved.
# Arista Networks, Inc. Confidential and Proprietary.
import Fwk, Agent, Thermostat
def main():
thermostatContainer = Agent.AgentContainer( [ Thermostat.Thermostat ] )
thermostatContainer.runAgents()
if __name__ == "__main__":
main()
bash-3.2#
これは単に Thermostat クラスを読み込み、起動しているだけ。
エージェントの本体、Thermostat クラスなどは以下にある。
bash-3.2# head /usr/lib/python2.5/site-packages/Thermostat.py
# Copyright (c) 2006, 2007, 2008, 2009 Arista Networks, Inc. All rights reserved.
# Arista Networks, Inc. Confidential and Proprietary.
""" The Thermostat Agent is responsible for monitoring and
regulating the temperature and cooling of the system. """
import Fwk, Agent, EntityMib
import weakref, os
import Tracing
(.... 以下略)
ディレクトリリスト
/usr/bin/[A-Z]* Cli (login shell)や EosInit など特殊なコマンドあり
/usr/lib/python2.5/site-packages/*.py 主たる Python コード置き場
/usr/lib/python2.5/site-packages/CliPlugin/*.py EOS shell からの実行コマンド群の実体
/usr/lib/tacc/map.d/ よくわからないがどのようなライブラリを使っているか見える?マップ
気になるファイル
/etc/Eos-release バージョン
/etc/nsswitch.conf.Eos
/etc/pam.d/login.Eos
/etc/profile.d/Eos.sh
/etc/rc.d/init.d/EosStage1 と 2
/etc/sysconfig/iptables-config.Eos
/var/log/eos
/var/log/eos-console
/var/log/EosInit