2021年9月8日 星期三

FreeBSD 11.4-RELEASE Installation Instructions

 1.修改 portsnap 設定檔 (/etc/portsnap.conf) 

SERVERNAME=portsnap.tw.FreeBSD.org

2.修改 freebsd-update 設定檔 (/etc/freebsd-update.conf) 

SERVERNAME=update.tw.FreeBSD.org

3.套用安全性修補

套用 FreeBSD 安全性修補的過程已經被簡化,讓系統管理員可使用 freebsd-update 來保持系統更新。更多有關 FreeBSD 安全性報告的資訊可以參考 FreeBSD 安全報告

FreeBSD 安全性修補可以使用以下指令下載並安裝。 第一個指令會偵測是否有可用的修補,如果有,將列出若執行修補後會變更的檔案清單。第二個指令將會套用修補。

# freebsd-update fetch
# freebsd-update install

如果更新套用了任何核心修補,系統將會需要重新開機以使用修補過的核心。如果修補套用在任何執行中的 Binary,受影響的應用程式應重新啟動來使用修補過的 Binary 版本。

加入以下項目至 /etc/crontab 可設定系統每天自動檢查更新一次:

@daily                                  root    freebsd-update cron

如果有新的修補,該程式會會自動下載,但不會執行。root 使用者會收到電子郵件通知複查該修補並手動執行 freebsd-update install 安裝。

如果有發生任何錯誤,freebsd-update 可以使用以下指令還原最後所做的變更:

# freebsd-update rollback
Uninstalling updates... done.

再次強調,若核心或任何核心模組有做過修改應重新啟動系統,以及任何受影響的 Binary 應重新執行。

只有 GENERIC 核心可使用 freebsd-update 自動更新。 如果有安裝自訂的核心,在 freebsd-update 完成安裝更新後,需要重新編譯和重新安裝。 預設的核心名稱為 GENERIC,可使用 uname(1) 指令來檢查安裝的核心。

隨時在 /boot/GENERIC 保留一份 GENERIC 核心的複本將有助於診斷各種問題及執行版本升級。請參考 在 FreeBSD 9.X 及之後版本自訂核心 來了解有關如何取得 GENERIC 核心的複本說明。

除非在 /etc/freebsd-update.conf 的預設設定檔被修改,否則 freebsd-update 將會安裝更新後的核心原始碼和其餘的更新,可依平常的方式執行重新編譯與重新安裝核心。

以 freebsd-update 發行的更新並非總是會更新核心。若核心的原始碼沒有被 freebsd-update install 修改則不需要重新編譯自訂的核心。雖然如此 freebsd-update 總是會更新 /usr/src/sys/conf/newvers.sh,目前修補的版本如 uname -r 執行結果中的 -p 數字,便是由該檔取得。即使沒有做任何其他變更,重新編譯自訂核心可讓 uname 準確的回報系統目前的修補版本。當維護多個系統時這會特別有用,因其可讓你快速評估每個系統安裝的更新。

4.FreeBSD升級

# freebsd-update upgrade -r 11.4-RELEASE
# freebsd-update install

5.重新開機

# shutdown -r now

6.更新新的元件

# freebsd-update install

7.再重開機一次

# shutdown -r now

8.確認FreeBSD版本

# uname -a

2015年11月12日 星期四

C語言學習加油站 羅東高中邱柏翰製

**適合高中生的**




======     C語言學習加油站 羅東高中邱柏翰製======

  * 緣起:現在高中課本提到的程式語言都是以Visual Basic作為範例,但是卡在一個問題是Visual Basic並不是免費的軟體,如果要「在家裡」練習,就得承擔一些風險,因此我在這個網站將提供關於C語言的教學(其實有用到C++的一點點語法,也就只有cin、cout的部分),我相信高中生絕對有能力寫程式,只不過你們忙著升學科目......:-(


  * C language learner **WANTED**:徵求願意加強磨練C語言的同學,如果你有志於資訊相關科系,或是資訊競賽的話。意者請洽教務處[[bohann@mail.ltsh.ilc.edu.tw|邱柏翰]]老師。
  * **將星錄**(曾經陪伴過的學生)
    - 96年羅高畢業:江明駿(94東區佳作、95東區佳作,中正資工,中正資工所)、陳志烈(95東區佳作,交大工業工程管理轉台大機械,台大機械所)[[江陳照|照片]]、劉賀至(中正電機推甄上)
    - 98年羅高畢業:戴至佑(成大資工推甄上)
    - 99年羅高畢業:秦建平(台大資工推甄上)([[與秦建平和照]])
    - 100年羅高畢業,專題研究一代學生:林聖堯(台大化學推甄上)、林瑋晟(中興土木)、林文勝(交大資工推甄上)、黃國維(成大機械)、李易哲(清大電機推甄上,98東區佳作、99東區佳作)、黃胤勳(台大電機、台大資工、台大物理連中三元推甄上,97東區第五、98東區第四、99資訊奧匹入選、99東區第三)[[專研一代|專研一代照片]]
    - 102年羅高畢業,專題研究二代學生:楊佳芷(繁星政大資管)、黃鈺倫(台大工商管理學系科技管理組)、林允丞(台大機械推甄上)、張育豪(100東區佳作,台大電機推甄上)、陳以律(100東區佳作、101東區第二、指考宜蘭二類榜首台大資工)、張偲宇(繁星清大資工)[[專研二代|專研二代照片]]、[[與陳以律合照|與陳以律合照]]
    - 104年羅高畢業,專題研究三代學生:李冠廷(繁星清大電機)、李翊倫(102東區佳作、成大資工)、張宇閎(交大電機)[[專研三代|專研三代照片]]
    - 105年羅高畢業,專題研究四代學生:李翊源、林士鈞、張庭與(103東區佳作、104北區科展佳作、104東區第四名)、歐子立、蕭延儒、謝泓均[[專研四代|專研四代照片]]
    - 106年羅高畢業,專題研究五代學生:林辰、曾煒策、張立憲、林濬元
    - 107年羅高畢業,專題研究六代學生:

  * 為什麼選擇C語言?
    - 正規比賽使用C語言或PASCAL
    - 資訊相關科系使用C語言(所以乾脆先學吧!)
    - C語言的開發軟體免費取得
    - C語言的開發軟體很小,安裝很快(12M,請按這裡{{wiki:devcpp4980.exe|下載一}},[[http://120.101.70.10/devcpp4980.exe|下載二]],[[http://cid-f48c264565f6f1cf.office.live.com/self.aspx/%E5%85%AC%E9%96%8B/devcpp4980.exe|下載三]],不然來圖書館我CO給你)(不然把C:\Dev-Cpp目錄複製帶走,可以當「綠色版」使用)
    - Code::Blocks,另一個不錯的開發工具(100M,請按這裡[[http://www.codeblocks.org/downloads|下載]])
    - C語言我比較熟


  * 為什麼電腦課要學程式語言
    - 可以動動腦
    - 預先瞭解資訊相關科系最主要的活動
    - 當程式可以執行的時候會有成就感
    - [[http://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code.html|大師這麼說]]
    - The spread of the internet will put people into two groups: 「People who tell computers what to do, and people who are told by computers what to do.」 - Marc Andreessen


  * 範例程式**絕對不是最好的寫法**,請讀者不要奉為圭臬。因為我不夠聰明,沒辦法寫出一兩行做一堆事的程式碼(其實這也造成閱讀不易),程式碼也儘量加上註解。

  * 好站連結:
    - [[http://uva.onlinejudge.org/|UVa Online Judge]]:裡面有做不完的題目讓你練功,前提是英文要好。
    - [[http://ace.delos.com/usacogate|USACO]]:學生建議的網站,聽說題目比較有順序性,教學成分較多。[[USACO小小心得|小小心得]]
    - [[http://poj.org/|PKU JudgeOnline]]
    - [[http://cms.iis.sinica.edu.tw/|台大NICE網站]]:秦建平同學推薦我的
    - [[http://cpe.cse.nsysu.edu.tw/|大學程式能力檢定CPE]]:獲得各大學認可的檢定,看看考古題有簡單的喔!
    - [[http://zerojudge.tw/|高中生程式解題系統]]:裡面有做不完的題目讓你練功,是中文的。[[小小心得]]
    - [[http://www.cplusplus.com/|C加加]]:函數說明、範例好用
    - [[http://www.cppreference.com/wiki/|C加加參考]]:函數說明、範例好用
    - [[http://luckycat.kshs.kh.edu.tw/|Lucky貓的ACM園地]]:上述題目的中文翻譯

  * 好書推薦(語法篇):(柏翰註:書店C/C++的書一堆,如果需要買,請買你看的懂得那一本)
    - [[http://www.books.com.tw/exep/prod/booksfile.php?item=0010478314|C++教學手冊]](入門書,寫的滿通順的)
    - [[http://www.books.com.tw/exep/prod/booksfile.php?item=0010322617|C Primer Plus 5/e中文精華版--增訂版]](原文書是經典,雖然講的是C,但內容豐富,翻譯的語句不錯)
    - [[http://www.books.com.tw/exep/prod/booksfile.php?item=0010358819|C++ Primer Plus 5/e中文豪華版]](原文書是經典,但與C共同的部分跳得比較快,詳細的要看上一本,翻譯的語句不錯)
    - [[http://www.books.com.tw/exep/prod/booksfile.php?item=0010171773|C++函式庫精華錄]](本書介紹函數的用法,瞭解函數,讓你不用重複設計已有的功能,可惜這本書已經絕版)
    - if與else的思考術:程式設計邏輯腦的養成講座(休閒用)
    - 易讀程式之美學:提升程式碼可讀性的簡單法則

  * 好書推薦(大學正規課程)
    - [[http://www.books.com.tw/exep/prod/booksfile.php?item=F011244162|Fundamentals of Data Structures in C]](經典,大學都用這本)
    - 資料結構應試寶典(內容豐富,可惜絕版)
    - Introduction to Algorithms, third edition([[http://www.tenlong.com.tw/items/0262533057?item_id=45494|大學用書聖經]])

  * 好書推薦(考試解題篇):(柏翰註:語法熟悉,再談解題。紮實練完基本題,佳作有望)
    - 名題精選百則:技巧篇
    - 來自程式的試鍊:專為程式開發人員所寫的技術面試完全攻略
    - [[http://www.books.com.tw/exep/prod/booksfile.php?item=0010409847|Short Coding寫出簡捷好程式-短碼達人的心得技法]](也有不錯的題目)
    - 培養與鍛鍊程式設計的邏輯腦:程式設計大賽的解題策略基礎入門
    - 培養與鍛鍊程式設計的邏輯腦:世界級程式設計大賽的知識、心得與解題分享
    - 提升程式設計的解題思考力:國際演算法程式設計競賽訓練指南
    - 提升程式設計的資料結構力:國際程式設計競賽之資料結構原理、題型、解題技巧與重點解析
    - 提升程式設計的邏輯思考力:國際程式設計競賽之演算法原理、題型、解題技巧與重點解析
    - 程式之美-微軟技術面試心得(可惜絕版)
    - 來自程式的試鍊:專為程式開發人員所寫的技術面試完全攻略(期待新版)

  * [[從專題到科展]]

  * 與世界學生同步學習:MIT Open Courseware([[http://ocw.mit.edu/|英文版]])([[http://www.myoops.org/twocw/mit/index.htm|中文版]])


  * [[http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html|TIOBE index(當紅程式語言排行榜)]]

  * 廢話說了一堆,**[[C語言教學篇|進來看看]]**吧

  * [[一位台灣工程師的人生故事|電機?電子?資工?資管?]]
 
  * 最近在學Python,[[Python筆記]]

  * [[about me|本站作者:邱柏翰]]

           {{wiki:羅.jpg?150|}}{{wiki:東.jpg?150|}}{{wiki:高.jpg?150|}}{{wiki:中.jpg?150|}}

                                                       集__[[趙孟頫]]__字--羅東高中 

2014年6月5日 星期四

源碼編譯 MySQL 5.0.45

源碼編譯 MySQL 5.0.45

資料來源:http://hi.baidu.com/chinaw3/item/0bd472ba15fc19eb4fc7fd37

[ 源碼編譯 MySQL 5.0.45 ]
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> tar xzf mysql-5.0.45.tar.gz
shell> cd mysql-5.0.45
shell> CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure \
--prefix=/usr/local/mysql \
--enable-assembler \
--enable-local-infile \
--with-pthread \
--enable-thread-safe-client \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=root
shell> chown -R root   .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=root &
======================.

CFLAGS="-O3"  
-O (-O1), -O0, -O2, -O3, -Os
依照後面數字的大小,針對效能最佳化的程度也不同 (穩定度也可能遞減)。其中 -Os 是個比較特殊的等級,針對原始碼大小最佳化。
可使用 -Os,降低程序加載的時間。

=============================
FreeBSD 6.3 下編譯 MySQL4.0.27
=============================

./configure --prefix=/usr/local/mysql --enable-shared --enable-static --enable-thread-safe-client --enable-assembler --enable-local-infile --with-pthread --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-low-memory --with-vio --with-charset=gb2312 --with-extra-charsets=all --with-big-tables CFLAGS="-pipe -march=i686 -fno-omit-frame-pointer -O3" CXXFLAGS="-pipe -march=i686 -fno-omit-frame-pointer -O3 -felide-constructors -fno-rtti -fno-exceptions"

註:如果出現 configure: error: cannot compute sizeof (int), 77 錯誤。
是with-named-thread-libs 參數不對,可以取消這個參數。先跳過這個錯誤。


2013年12月10日 星期二



架設DNS服務器BIND設置詳解



1. acl : 定義一份IP位址對應清單,以利存取時的控制。
2. options :控制通用的伺服器組態,設定其他選項的預設值。
3. controls :宣告使用ndc程式時控制的方式。
4. zone :定義zone,所謂zone是只DNS伺服器管理時的邏輯單位, 例如 *.twnic.net或 *.dns.twnic.net在每個區域中至少須存在一部DNS伺服器。
Bind 的主要設定檔為 named.conf,因此Bind執行時會去讀取此執行檔。而 named.conf的功能是由於每部 name server 主要是負責某些特定 zone 中有關機器的 domain name,IP 的查詢、127.0.0.1 本機 IP 的查詢,除此之外,name server 也需要知道要怎樣去找 root name server。因此 named.conf 便會指出該 name server 管轄的網域名稱及相關檔案存取的位置及名稱。
named.conf 檔案主要的內容包含4個部分,分別為:
options
關於 .(root) 的內容
關於 localhost 的正反解
關於其他 domain 的正反解
我們先看一個完整的 named.conf 的檔案:
acl internals { 192.168.10.0/24; };
options {
directory 「/var/named」;
allow-transfer{ 192.168.11.7;
internals;
};
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone 「.」 { //.(root) 的內容
type hint;
file 「named.ca」;
};
zone 「localhost」{ //localhost 的正解
type master;
file 「localhost.zone」;
};
zone 「0.0.127.in-addr.arpa」{ //localhost 的反解
type master;
file 「named.local」;
};
zone 「twnic.com.tw」{ //使用者domain的正解
type master;
file 「twnic.hosts」;
};
zone 「10.168.192.in-addr.arpa」{ //使用者domain的反解
type master;
file 「twnic.rev」;
};
由上例關於 named.conf 的設定檔中可分為許多不同的類型,不同類型皆由{}包起來,以下說明不同設定的類型。
1. acl : 定義一份IP位址對應清單,以利存取時的控制。
e.g.
acl internals { 192.168.10.0/24; };
定義IP位址清單範圍為192.168.10.0/24,而」internals」為使用者可自行定義的 acl 名稱,設定acl後對於之後相關存取設定時 (e.g. allow-query、allow-transfer…等等),便可直接使用 acl 名稱來代表之前所設定的IP範圍。
2. options :控制通用的伺服器組態,設定其他選項的預設值。
e.g.
options {
directory 「/var/named」;
allow-transfer{ 192.168.11.7;
internals;
};
表示將 named 的區域紀錄檔(zone file)儲存在 /var/named 的目錄中,也就是Bind伺服器中所有DNS紀錄檔案都集中於此。此外,在往後的」DNS Server型態」中會提到的forwarder,其設定也是加在options內。
至於 allow-transfer 選項,它指定 DNS 對於特定 IP 位址的 zone transfer。 舉例來說, 我們允許 IP 位址為192.168.11.7和 IP 範圍192.168.10.0/24(由acl定義名稱為」internals」,於之後介紹acl)的主機(可能是我們網域上的一個次要 DNS伺服器)請求 zone transfer。如果您漏了這個選項,位於 Internet 的任何人都可以請求這個轉換。
3. controls :宣告使用ndc程式時控制的方式。
e.g.
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
其中」inet」表示利用TCP/IP Socket來存取Internet資源,它是由指定的」ip_addr」(IP address)和」ip_port」(ip_port)所產生,而此處表示可允許本機(localhost)利用鍵值(rndckey)進行存取,此設定會在」DNS server 安全防護」中有詳細的說明。
4. zone :定義zone,所謂zone是只DNS伺服器管理時的邏輯單位, 例如 *.twnic.net或 *.dns.twnic.net在每個區域中至少須存在一部DNS伺服器。
e.g.
zone 「.」 {
type hint;
file 「named.ca」;
};
定義「.」,Internet DNS 最上層的位置,而 file 「named.ca」指定了其記錄檔(zone file)名稱。記錄檔都存放在 /var/named 這個目錄下面,也就是前面 options 指定的 directory。
e.g.
zone 「twnic.com.tw」{
type master;
file 「twnic.hosts」;
};
定義 twnic.com.tw 這個網域,是網域的正解設定,而其型態(type)是master DNS server,指定區域紀錄檔(zone file)為」twnic.hosts」。
e.g.
zone 「10.168.192.in-addr.arpa」{
type master;
file 「twnic.rev」;
};
這個部份就和上述的設定是相互配合的,是網域的反解設定。要特別注意的是 in-addr.arpa 是固定的定義格式,不可改變。而在設定反查詢區域的時候﹐您一定要將您的 net ID 部份反過來寫。例如﹕本地網路為192.168.0.0/24 ﹐它的反查詢區域名則是﹕「0.168.192.in-addr.arpa」﹔如果我將 netmask 改為16bit﹐即192.168.0.0/16﹐它的反查詢區域名就會變成﹕「168.192.in-addr.arpa」。
設定 /etc/resolv.conf 檔案
此檔案可用來設定 DNS 用戶端要求名稱解析時,所定義的各項內容。我們分別來看一個完整的resolv.conf的檔案:
domain twnic.com.tw
nameserver 192.168.10.1
nameserver 192.168.2.5
search twnic.com.tw twnic.net.tw
「domain」指定本地的網域名稱,如果查詢時的名稱沒有包含小數點,則會自動補上此處的網域名稱為字尾再送給DNS伺服器。
「nameserver」指定用戶端要求進行名稱解析的 nameserver IP位址,在此可指定多部DNS伺服器,則用戶端將會依序提出查詢要求。
「search」這個選項為非必要選項,而功能在於若使用者指定主機名稱查詢時,所需要搜尋的網域名稱。例如,當我們設 「search twnic.com.tw」時,當DNS伺服器在做名稱解析過程中,無法對輸入的名稱,例如pc1,找出相對應的IP時,則DNS會利用search的設定值加上需查詢的名稱,即pc1.twnic.com.tw來進行解析,解析失敗時則會嘗試pc1.twnic.net.tw。
需要注意的是當我們想嘗試多種在沒有包含小數點,於字尾補上所需要搜尋的網域名稱時,我們會在」search」中指定幾種組合給DNS伺服器,而不能在」domain」中指定。因為「domain」是指定本地的網域名稱,而搜尋時也以「domain」為優先嘗試,如果失敗之後才會嘗試」search」中的組合。
DNS server型態(type)
設定 master/slave server
設定 hint
設定 master
設定 slave
設定 forwarder
在bind的設定檔named.conf中,可設定的伺服器型態共有5種:
master: 主要伺服器,在網域中負責名稱解析。
slave: 為了避免master發生故障時影響網路上的名稱解析工作,可以安裝其他的DNS伺服器,並且會定期複製master中的資料。
stub: 與slave類似,但只會複製master的NS紀錄,而非所有區域(zone)資訊。
hint: 表示為root伺服器。
forward: 可將來自用戶端的名稱解析要求代為轉送至其他伺服器。
設定master/slave server
透過 master 和 slave 的架構,要進行資料變更的時候﹐只需在 master上面 維護就好,然後 slave 會定期的自動過來將更新資料同步回去。而slave 會在 refresh 時間到達的時候,就嘗試和 master 進行資料同步的動作,這在 DNS 系統裡面有一個專門術語﹐叫做「zone transfer」(區域轉移)。
設定hint:
e.g.
zone 「.」 { // 表示這是對於.(root)的解析。
type hint; // 型態為hint。
file 「named.ca」; // 讀取的檔案為named.ca
};
設定master:
e.g.
zone 「twnic.com.tw」{
type master;
file 「named.cs」;
};
設定slave:
e.g.
zone 「mlc.com.tw」 {
type slave;
file 「slave/slave.mlcnet」;
masters { 163.19.163.7; };
};
slave的設定只不過將type master改為slave並額外加入master的IP位址。
設定forwarder
我們除了能夠用 slave 來分擔 master 工作、減少網路流量之外,還可以透過 另外一種 DNS 機制來減低網路流量的,那就是 forwarder 設定了。 所謂的 forwarder,就是當某一台name server主機遇到非本機負責zone之查詢請求的時候,將不直接向 root zone 查詢而把請求轉交給指定的forwarder (一台或多台) 主機代為查詢。 如果name server上面指定了 forwarder,那這個name server發現 cache 沒 有記錄的話,將不向 root 查詢,而是將自己扮成一個 client,向 forwarder 送 出同樣的請求,然後等待查詢結果;而逐級往下查詢的動作,則交由 forwarder 負責﹐name server自己就輕鬆多了。但無論這個結果是自己直接查詢得來的﹐還是 forwarder 送回來的,name server都會保存一份資料在 cache 中。這樣,其後的相同查詢就快多了,這對於name server所服務的 client 而言更是有效率得多。
options {
…..
forwarders {
139.175.10.20; //設定forwarder的IP位址
168.95.1.1; };
};
設定 /etc/named/named.ca(named.root)檔案
此檔案為ROOT伺服器位址設定檔案,在DNS的名稱解析流程中,如果DNS伺服器的資料庫沒有包含所要求的紀錄,則此伺服器首先會要求ROOT伺服器解析有關網域的類型 (即是FQDN中最右邊的部分),因此是個很重要的一個檔案,而本檔案應定期更新,請至ftp://rs.internic.net/domain 下載 「named.root」檔案。檔案預設內容如下:
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the 「cache . 」
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.root
; on server FTP.INTERNIC.NET
;
; last update: Nov 5, 2002
; related version of root zone: 2002110501
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; operated by VeriSign, Inc.
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; operated by IANA
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
在檔案中行首出現」;」符號,表示該行內容為註解,此外以」.」為首的13個設定內容(E.g. 3600000 IN NS A.ROOT-SERVERS.NET.),則表示13個 root 名稱伺服器的名稱,而每筆皆由4個欄位所組成,』3600000′是TTL(Time To Live),也就是此紀錄在快取中保留的時間(秒)。』IN'表示這是一個 internet 地址類型,』NS'是」Name Server」的縮寫,它是DNS資源紀錄的一種類型,而其後的」A.ROOT-SERVERS.NET.」就是表示伺服器的FQDN。其後緊接著另一紀錄(E.g. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4)則是紀錄此伺服器名稱所對應的IP,』A'也是資源紀錄的一種類型,之後會有資源紀錄的詳細介紹。
設定 /etc/named/localhost.zone檔案
這是第2個紀錄檔,包含許多DNS伺服器運作和設定上的重要項目。此檔案的預設內容如下:
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS @
1D IN A 127.0.0.1
第一行是一個 TTL 設定,目前是定義這個記錄檔裡面的資源紀錄(Resource Record)在cache中保留的時間,預設 TTL 值為 86400 秒(剛好是一天)。在記錄檔中宣告的所有資源記錄(Resource Record),都一定有一個 TTL 設定,如果沒有,則使用這裡預設的值。注意 TTL 後面所接的時間須以」秒」為單位,
第二行是一個 ORIGIN 設定,說明下面的記錄源出何網域(這裡是源出 localhost. 的記錄)。請您留意最後的一個小數點」.」,它在DNS紀錄中表示全域名稱,也就是FQDN。如果在前面找不到 $ORIGIN 宣告,那就以 /etc/named.conf 中定義的 zone 名稱為基準。
第三行,是一個 SOA 記錄的設定,在這裡我們看到一個特殊字符「 @ 」,它就是 ORIGIN 的意思,也就是剛才所定義的 $ORIGIN localhost. 內容,您可以寫成 localhost. 也可以用 @ 來代替。 在 @ 之後,是 TTL 的設定,這裡是 1D,也就是一天的意思,如果這裡的 TTL 沒有設定,則套用前面的 $TTL 值,如果前面沒有定義 $TTL,那就參考其後介紹的 minium ttl 設定。
在TTL之後的」IN」是表示目前紀錄類型是屬於Internet類別。
在SOA後面的內容,是指此區域的授權主機和管理者電子郵件信箱。因為「@」在 DNS 記錄中是個保留字,所以在 SOA 中就用「.」來代替了「 @ 」。目前這個信箱是 root. 沒有指定主機位址,也就是本機,可以寫成 「root.localhost.」但不能寫成「root@localhost.」。
root後括號」()」內的設定在之後的DNS資源紀錄有詳細介紹。
「1D IN NS @」,表示一筆NS紀錄,指出本地網域的名稱伺服器為localhost.(@)。
「1D IN A 127.0.0.1〞,表示一筆A紀錄,指出本地網域的名稱伺服器所對應的IP為127.0.0.1。
設定 /etc/named/named.local檔案
這個紀錄檔是指」0.0.127.in-addr.arpa」區域的反解紀錄檔。此檔案的預設內容如下:
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
以上檔案與之前介紹的localhost.zone檔案類似,不一樣的地方是在最後一行。它是一筆」PTR」紀錄,也就是反向解析的紀錄,它與」A」的功能剛好相反。
在說明最後一行之前,先解釋」in-addr.arpa」,此為DNS在標準中定義的特殊網域,藉以提供可靠的反向查詢方法。
127.0.0.1所對應的主機名稱為localhost,因為這裡是反向查詢,所以 IP 順序是倒過來寫的,於是這個反查詢 IP 就是」1.0.0.127.in-addr.arpa.」。 由於此處的ORIGIN(@)定義為」0.0.127.in-addr.arpa.」,所以在紀錄檔中如果名稱沒有包含小數點,則會自動補上$ORIGIN或是網域名稱的字尾。因此,最後一行的開始為」1〞,其實就是」1.0.0.127.in-addr.arpa.」的意思。
DNS資源紀錄(Resource Record)介紹
類型
SOA
NS
A
AAAA
PTR
CNAME
MX
SOA設定內容說明
Serial
Refresh
Retry
Expire
Minimum
DNS server內的每一個網域名稱都有自己的檔案,這個檔案一般會稱為區域檔案 (zone file),例如之前所提到的」named.ca」或」named.local」 檔案…等等。區域檔案是由多個記錄組成的,每一個記錄稱為資源記錄(Resource Record,簡稱RR)。當在設定DNS名稱解析、反向解析及其他的管理目的時,您需要使用不同類型的RR,底下將介紹常用的RR類型及表示法。
類型
SOA
Start Of Authority,這種 record 放在 zone file 一開始的地方,每一個記錄檔只能有一個 SOA,而且一定是檔案中第一個「記錄」,它描述這個 zone 負責的 name server,version number…等資料,以及當 slave server 要備份這個 zone 時的一些參數。 緊接在 SOA 後面指定了這個區域的授權主機和管理者的信箱,這裡分別是 「school.edu.tw」 和」 root.school.edu.tw」,也就是school.edu.tw主機和 root 的信箱。這裡要注意的是我們以」root.school.edu.tw」代表」root@school.edu.tw」
e.g.
@ IN SOA school.edu.tw. root.school.edu.tw. (
1999051401 ; Serial
3600 ; Refresh
300 ; Retry
3600000 ; Expire
3600 ) ; Minimum
在兩個括號中間的選項表示SOA的設定內容,底下會有更詳細的說明。
NS
name server,用來指定操作的DNS伺服器主機名稱,需注意的是不可以IP位址表示。
e.g.
IN NS dns.twnic.net.tw.
A
address,將DNS網域名稱對應到IPv4的32位元位址。
e.g.
server IN A 140.123.102.10
AAAA
可將DNS網域名稱對應到IPv6的128位元位址。
e.g.
twnic.net.tw. 86400 IN AAAA 3ffe: :bbb:93:5
PTR
pointer,定義某個 IP 對應的 domain name,即將 IP 位址轉換成主機的FQDN。
e.g.
20 IN PTR mail.twnic.net.tw.
CNAME
canonical name,可為同一部主機設定許多別名,例如 mix.twnic.net.tw的別名可為www.twnic.net.tw和 ftp.twnic.net.tw,因此所設定的別名都會連至同一部伺服器。
e.g.
www IN CNAME mix
MX
mail exchanger,設定區域中擔任郵件伺服器的主機,所有要送往那部機器的 mail 都要經過 mail exchanger 轉送。而數字則是該主機郵件傳遞時的優先次序,此值越低表示有越高的郵件處理優先權。
e.g.
server IN MX 10 mail.twnic.net.tw.
SOA設定內容說明
SOA record,以之前例子來看,其中 @ 這個符號是縮寫,代表 named.conf 中這個 zone file 所對應的 zone。 SOA 後面的兩個參數是指這個 zone file 是在哪部主機 (school.edu.tw)定義的,以及這個 zone file 的負責人 (注意是寫成 root.school.edu.tw),然後是用括號括起來的 5 個參數, 分別由底下說明。
Serial
代表這個 zone file 的版本,每當 zone file 內容有變動,name server 管理者就應該增加這個號碼,因為 slave 會將這個號碼與其 copy 的那份比對以便決定是否要再 copy 一次 (即進行 zone transfer)。
Refresh
slave server 每隔這段時間(秒),就會檢查 master server 上的 serial number。不過這裡會發生一個問題就是,在 master server 在 update data 完成到 slave server 來檢查時再 update 可能還有 好一段時間,因此這段期間 master/slave DNS server間 zone files 就可能出現不一致。所以在Bind較新的版本中便加入」notify」功能,使用者在 「named.conf」 設定中在需要的 zone 中加入」notify」的設定,則 master server在 update 完成某個 zone file 的 data 後便會主動發個訊息(NOTIFY),藉以通知該其它的 slave servers,因此如果 slave servers 也有支援這個」notify」功能時,接下來 slave servers 馬上就可以做 zone transfer 來update data。
e.g.
zone 「twnic.com.tw」 {
type master;
file 「twnic.hosts」;
notify yes;
also-notify { 192.168.10.1; }; //指定slave server的IP位址
};
Retry
當 slave server 無法和 master 進行 serial check時,要每隔幾秒 retry 一次。
Expire
當時間超過 Expire 所定的秒數而 slave server 都無法和 master 取得聯絡,那麼 slave 會刪除自己的這份 copy。
Minimum
代表這個 zone file 中所有 record 的內定的 TTL 值,也就是其它的 DNS server cache 這筆 record 時,最長不應該超過這個時間。
更詳盡資料參考http://dns-learning.twnic.net.tw

2013年10月30日 星期三

使用 net use 指令連線網路磁碟機,節省輸入密碼時間


使用 net use 指令連線網路磁碟機,節省輸入密碼時間


連線到網路磁碟機每次都要輸入密碼?
使用 net use 指令可以解決這個麻煩
 舉例來說,如果你要使用username這個帳號連線到 \\server\path\,密碼是password的話,可以在命令列中這樣用
net use "\\server\path\" password /user:"username"
這樣當你連線的時候系統就不會再問你密碼了。這個方法對使用Home版作業系統的使用者來說很有用,可以把要連線的路徑全部都寫成一個批次檔,在系統啟動的時候自動執行這個批次檔,這樣連線常用的網路芳鄰時就不需要再輸入帳號密碼了。
 如果想要把連線指定到你本機的磁碟機Z:,那可以這樣用
net use Z:"\\server\path\" password /user:"username"

以下是微軟官方的範例,請自行參考。
Examples
若要將磁碟機裝置名稱 E:指派到 \\Financial 伺服器上的 Letters 共用目錄,請輸入:
net use e:\\financial\letters
若要將磁碟機裝置名稱 M:指派 (對應) 到 \\Financial NetWare 伺服器之 Letters 磁碟區內的 Mike 目錄,請輸入:
net use m:\\financial\letters\mike
若要連接使用者識別元 Dan (就像從「帳戶」網域所作的連線一樣),請輸入:
net use d:\\server\share /user:Accounts\Dan
若要將磁碟機裝置名稱 F:指派到命名為 TargetName 之 MSN Internet Access 社群內的檔案櫃 (使用 Passport 帳戶 UserName@passport.com),請輸入:
net use f:http://www.msnusers.com/TargetName /user:UserName@passport.com
若要中斷自 \\Financial\Public 目錄的連線,請輸入:
net use f:\\financial\public /delete
若要與 \\Financial 2 伺服器上的共用資源備忘錄連線,請輸入:
net use k:"\\financial 2" \memos

2013年5月14日 星期二

芬蘭教育制度成功的關鍵


《邁向國際》—教育制度  
芬蘭教育制度成功的關鍵
全國教師工會總聯合會外事部摘要整理
近年來,芬蘭的教育制度的成功受到全世界囑目。到底芬蘭教育制度成功的關鍵在哪裡?英國BBC針對這個議題訪問芬蘭赫爾辛基大學師資培育系的Kristiina Kumpulainen教授,本會將其訪問摘要如下:
芬蘭教育制度成功的關鍵在於:(1)社會福利國制度;(2高素質教師;(3)地方對教育的主控權;(4)其他因素。
由於芬蘭實施社會福利國的制度,讓其國內的教育機會均等得以落實。由於教職是一個受到尊重的行業,故芬蘭得以招募到高素質且態度積極的教師。由於地方政府擁有將國家課程地方化的權力,再加上對教師的信任,故地方政府和教師擁有相當大的自由為學生量身打造適合他們課程。在其他因素的部份,芬蘭的中小學班級人數為15-25人。對於表現不理想的學校,芬蘭政府會提供更多的資源幫助其改善。
其實,讓這個教育制度成功的最關鍵因素來自於芬蘭政府辦教育的信念。他們相信讓學生在放鬆的教育環境中學習,能教導學生為生命而受教育,而不是為學校而受教育。

本文全文刊登於英國BBC網站,詳全文請點:http://www.bbc.co.uk/news/uk-21354932