Linux內核可加載模塊剖析

Linux 就是通常所說的單內核(monolithic kernel),即操作系統的大部分功能都被稱為內核,並在特權模式下運行。它與微型內核 不同,後者只把基本的功能(進程間通信 [IPC]、調度、基本的輸入/輸出 [I/O] 和內存管理)當作內核運行,而把其他功能(驅動程序、網絡堆棧和文件系統)排除在特權空間之外。因此,您可能認為 Linux 是壹個完全靜態的內核,但事實恰恰相反。通過 Linux 內核模塊(LKM)可以在運行時動態地更改 Linux。

    可動態更改 是指可以將新的功能加載到內核、從內核去除某個功能,甚至添加使用其他 LKM 的新 LKM。LKM 的優點是可以最小化內核的內存占用,只加載需要的元素(這是嵌入式系統的重要特性)。 Linux 不是可以進行動態更改的惟壹(也不是第壹個)單內核。Berkeley Software Distribution(BSD)的變體、Sun Solaris、更老的內核(比如 OpenVMS),以及其他流行的操作系統(比如 Microsoft? Windows? 和 Apple Mac OS X)都支持可加載模塊。 LKM 與直接編譯到內核或典型程序的元素有根本區別。典型的程序有壹個 main 函數,其中 LKM 包含 entry 和 exit 函數(在 2.6 版本,您可以任意命名這些函數)。當向內核插入模塊時,調用 entry 函數,從內核刪除模塊時則調用 exit 函數。因為 entry 和 exit 函數是用戶定義的,所以存在 module_init 和 module_exit 宏,用於定義這些函數屬於哪種函數。LKM 還包含壹組必要的宏和壹組可選的宏,用於定義模塊的許可證、模塊的作者、模塊的描述等等。

在vmware下使用linux操作系統註意的幾點

在vmware下使用linux操作系統為介質來搭建ORACLE RAC環境,主要註意以下幾點:
1,新建虛擬機時選擇SCSI為I/O適配器類型,使用LSI logic驅動,這樣可以擁有實驗用足夠的磁盤(針對vmware 1.0.6版本);
2,本地磁盤和裸設備文件分而置之,避免系統克隆時把裸設備文件也拷貝過去;
3,安裝linux操作系統時,切勿將本地磁盤和裸設備文件劃分到同壹個卷組當中;
4,打補丁時切記對應正確操作系統版本,否則得不償失;
5,對任何磁盤做“刪除分區”這個動作前多想想此操作是否得當;
6,面對vip漂移的問題,先考慮是否擁有默認網關;
7,無論是安裝clusterware還是安裝database的時候,遇到報錯信息,壹定要學會看日誌,雖然有的時候不壹定管用;
8,足夠的耐心。

Linux命令之tzselect

tzselect命令用於選擇時區。要註意的是tzselect只是幫我們把選擇的時區顯示出來,並不會實際生效,也就是說它僅僅告訴我們怎麽樣去設置環境變量TZ。(TZ = Time Zone)(The  tzselect  program asks the user for information about the current location, and outputs the resulting time zone description to standard output.  The output is suitable as a value for the TZ environment variable. All interaction with the user is done via standard input and standard error.)如果妳要永久更改時區,按照tzselect命令提示的信息,在.profile或者/etc/profile中設置正確的TZ環境變量並導出。還有另外壹種更改時區的方法就是直接更改系統配置文件/etc/sysconfig/clock,然後修改符號鏈接/etc/locatime對應的文件,詳見示例三。

  常用參數

  無。

  使用示例

  示例壹 將時區更改為北京

  [root@new55 ~]# tzselect

  Please identify a location so that time zone rules can be set correctly.

  Please select a continent or ocean.

  1) Africa

  2) Americas

  3) Antarctica

  4) Arctic Ocean

  5) Asia

  6) Atlantic Ocean

  7) Australia

  8) Europe

  9) Indian Ocean

  10) Pacific Ocean

  11) none – I want to specify the time zone using the Posix TZ format.

  #? 5

  Please select a country.

  1) Afghanistan           18) Israel                35) Palestine

  2) armenia               19) Japan                 36) Philippines

  3) Azerbaijan            20) Jordan                37) Qatar

  4) Bahrain               21) Kazakhstan            38) Russia

  5) Bangladesh            22) Korea (North)         39) Saudi Arabia

  6) Bhutan                23) Korea (South)         40) Singapore

  7) Brunei                24) Kuwait                41) Sri Lanka

  8) Cambodia              25) Kyrgyzstan            42) Syria

  9) China                 26) Laos                  43) Taiwan

  10) Cyprus                27) Lebanon               44) Tajikistan

  11) East Timor            28) Macau                 45) Thailand

  12) Georgia               29) Malaysia              46) Turkmenistan

  13) Hong Kong             30) Mongolia              47) United Arab Emirates

  14) India                 31) Myanmar (Burma)       48) Uzbekistan

  15) Indonesia             32) Nepal                 49) Vietnam

  16) Iran                  33) Oman                  50) Yemen

  17) Iraq                  34) Pakistan

  #? 9

  Please select one of the following time zone regions.

  1) east China – Beijing, Guangdong, Shanghai, etc.

  2) Heilongjiang (except Mohe), Jilin

  3) central China – Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.

  4) most of Tibet & Xinjiang

  5) west Tibet & Xinjiang

  #? 1

  The following information has been given:

  China

  east China – Beijing, Guangdong, Shanghai, etc.

  Therefore TZ=’Asia/Shanghai’ will be used.

  Local time is now:      Mon Dec  6 09:40:35 CST 2010.

  Universal Time is now:  Mon Dec  6 01:40:35 UTC 2010.

  Is the above information OK?

  1) Yes

  2) No

  #? 1

  You can make this change permanent for yourself by appending the line

  TZ=’Asia/Shanghai’; export TZ

  to the file ‘.profile’ in your home directory; then log out and log in again.

  Here is that TZ value again, this time on standard output so that you

  can use the /usr/bin/tzselect command in shell scripts:

  Asia/Shanghai

  [root@new55 ~]#

  現在要做的事情就是按照提示,把  TZ=’Asia/Shanghai’; export TZ   添加到.profile中(bash對應加到.bash_profile)。