顯示具有 Linux-System 標籤的文章。 顯示所有文章
顯示具有 Linux-System 標籤的文章。 顯示所有文章

2015年2月5日 星期四

systemd

system management daemon,是 Linux userspace 第一個 process,可取代 init。systemd 改進軟體相依性的框架、允許更多動作可以在開機時同時處理、減少 shell 計算的 overhead。

延伸閱讀
  • http://www.freedesktop.org/wiki/Software/systemd/
  • http://linoxide.com/linux-command/systemd-vs-sysvinit-cheatsheet/

2015年1月25日 星期日

busybox halt, poweroff, reboot

指令 halt、poweroff、跟 reboot 的動作過程類似,都是 kill 1 號行程,一般是 init,在 OpenWrt 是 procd。1 號行程會去執行 inittab 的 shutdown 動作後,呼叫函式庫函式 reboot()。reboot() 再執行系統呼叫進到 kernel 執行 sys_reboot() ,去做相關動作。

signal to kill initreboot() 參數kernel動作
haltSIGUSR1RB_HALT_SYSTEM (0xcdef0123)kernel_halt()停止所有程式
poweroffSIGUSR2RB_POWER_OFF (0x4321fedc)kernel_power_off()停止所有程式後關電 (關電未必有實作)
rebootSIGTERMRB_AUTOBOOT (0x01234567)kernel_restart()停止所有程式後再開機

如果下這些指令加 -f 參數的話,就直接執行 reboot(),不做 inittab 的 shutdown 動作。

參考來源:busybox init/halt.c 及 Linux kernel 原始碼

延伸閱讀

2015年1月6日 星期二

Linux Container

Linux Container (LXC、Linux 容器系統) 是 Linux 下一種虛擬 Linux 環境的虛擬機器 (虛擬 Linux 作業系統),有各自的 rootfs 可安裝各自的 Linux 應用程式,但共用 host 的 Linux kernel 及函式庫來直接使用實體電腦的軟硬體資源,減少虛擬的損耗。但也由於是共用 Linux kernel,所以只能虛擬 Linux,而且並不是所有 Linux 系統都可以虛擬。Linux Container 一開始由 IBM 開發,Linux 2.6.29 開始支援 Linux Container。

安裝
sudo apt-get install lxc
ls /usr/share/lxc/templates/ 可看到範本

建立 LXC 虛擬電腦
sudo lxc-create -t busybox -n test
sudo ls /var/lib/lxc/test 可看到建立的 rootfs 及設定

啟動 LXC 虛擬電腦
sudo lxc-start -n test

結束 LXC 虛擬電腦 (lxc-stop 或 ...)

複製、刪除 LXC 虛擬電腦 (lxc-clone、lxc-destroy)

參考來源:
  1. http://tobala.net/download/lxc/ch01.pdf
  2. http://fourdollars.github.io/lxc-intro
  3. wikipedia: LXC
延伸閱讀
  • 其它虛擬作業系統:OpenVZ、Linux-VServer、FreeBSD jails、AIX Workload Partitions、Solaris Containers。
  • Virtual Machine

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...