標籤

Linux (2) 中原宿舍 (2) 網路 (2) CISCO (1) android (1) ubuntu (1) vim (1) windows (1) x10 (1) 冷知識 (1) 網路協議 (1) 網路工程 (1)

2010年7月18日 星期日

C語言control statement的for和while誰比較快?

C語言程式新手最常問的問題就是control statement的for和while誰比較快?

寫以下兩個無限迴圈程式:

main() {
  for(;;);
} // main()



main() {
  while(1);
} // main()

存檔後,兩個程式透過GCC(註1)翻譯成Assembly Language(註2)後的結果都是下面的結果:

    .file    "infinite.c"
    .text
.globl main
    .type    main, @function
main:
    leal    4(%esp), %ecx
    andl    $-16, %esp
    pushl    -4(%ecx)
    pushl    %ebp
    movl    %esp, %ebp
    pushl    %ecx
.L2:
    jmp    .L2
    .size    main, .-main
    .ident    "GCC: (GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)"
    .section    .note.GNU-stack,"",@progbits

故兩種control statement都一樣快。

註1:不同的compiler轉譯出來的結果可能會不同。

註2:翻譯出來的組合語言是遵守AT&T syntax,跟Intex和Microsoft不太一樣!

2010年7月13日 星期二

宿舍網路問題排除基本步驟

1.先檢查硬體設備是否沒問題
  • 網路線插了但是網路卡燈號沒亮
     → 網路卡或網路線有問題,換別的試試
     → 或者不是拿網路線(8 pin),而是拿錯拿成電話線(6 pin)去接
  • 區域連線是否啟用
     → 如果使用 Windows 7 你可以在控制台 → 網路和網際網路 → 網路和共用中心 → 變更介面卡設定
     → 如果使用 Windows 2000/XP 你可以在「網路上的芳鄰」按右鍵 → 內容
     ,看看區域連線是否有啟用,若沒有請啟用它,如果已經啟用網路卡,而沒顯示連線

     → 壁孔損壞,請至傳達室填維修單

2.telnet下列校內BBS
   電機心站  140.135.12.1
   中原資工神祕之旅  140.135.11.30
   如果不能上
   → 請檢查IP是否設成手動取得,請換成DHCP自動取得;
如果你是用 Windows 2000/XP 你可以在「網路上的芳鄰」按右鍵 → 內容,開啟區域連線 → 內容 → 按兩下Internet Protocol(TCP/IP),請選擇「自動取得IP位址」以及「自動取得 DNS 伺服器位址」

3.連學校首頁 http://www.cycu.edu.tw,如果連不上
   → 請設定DNS
      如果使用 Windows 7 你可以在控制台 → 網路和網際網路 → 網路和共用中心 → 變更介面卡設定 → 區域連線 → 內容 → 按兩下Internet Protocol(TCP/IP)
      如果你是用 Windows 2000/XP 你可以在「網路上的芳鄰」按右鍵 → 內容,開啟區域連線 → 內容 → 按兩下Internet Protocol(TCP/IP)
      ,請選擇「手動取得 DNS 伺服器位址」
      慣用DNS伺服器:140.135.7.1
      其他DNS伺服器:140.135.7.2

4.連其他的BBS或網頁,如果不能上
  • IE 8設定proxy
     開啟IE → 工具 → 網際網路選項 → 連線(標籤) → 區域網路設定 → Proxy伺服器請打勾「在您的區域網路使用 Proxy 伺服器」以及「進端網址不使用 Proxy」
       網址:proxy.cycu.edu.tw      連接埠:3128
       進入「進階」,請打勾「所有通訊協定使用相同的 Proxy」,會留下 HTTP 一欄
       Proxy位址:proxy.cycu.edu.tw       連接埠:3128
      「例外」欄,下面有「含有下列起始文字的位址不使用 Proxy 伺服器」
    請填入 *.cycu.edu.tw;140.135.*

各種瀏覽器設定Proxy方法以後會詳細介紹!
  • 檢查使用IP跟分配IP是否相同
    → 請到 http://ccdna.cycu.edu.tw,檢查你的使用IP是否和系統
    分配的IP相同
      網頁查詢出來的IP Address是系統分配IP
      如果你是使用 Windows 7 請按 開始 → 搜尋列輸入cmd → 點選cmd
      如果你是使用 Windows 2000/XP  請按 開始 → 執行 → cmd
      如果你是使用 Windows 95/98/ME 請按 開始 → 執行 → command
      進入 MS-DOS 模式
      請輸入「ipconfig」,其中的「IP Address」便是你使用中的IP看看是否一樣
  • 檢查MAC是否正確
     →請到 http://ccdna.cycu.edu.tw,檢查你的網路卡 MAC 是否正確,網頁查詢出來會有「已登錄網路卡 MAC」跟「目前連線網路卡 MAC」 請看看是否一樣,如果不一樣請修改, 必須等待10分鐘左右的處理時間,等待table更新,10分鐘後才能連線。
  • 改成手動取得IP
     → 設定成手動取得IP

        Winodws 7:
        控制台 → 網路和網際網路 → 網路和共用中心 → 變更介面卡設定 → 區域連線
        → 內容 → 雙擊Internet Protocol(TCP/IP)

        Windows 2000/XP:
        控制台 → 網路連線 → 區域連線 → 內容 → 雙擊Internet Protocol(TCP/IP)

        請打勾「使用下列IP位址」
        IP位址:系統分配IP (140.135.xxx.xxx)
        子網路遮罩:255.255.255.0(力行)
                    255.255.254.0(恩慈、良善)
        預設閘道:140.135.24.254 (力行一東)
                  140.135.25.254 (力行二東)
                  140.135.26.254 (力行三東)
                  140.135.27.254 (力行四東)
                  140.135.28.254 (力行一西)
                  140.135.29.254 (力行二西)
                  140.135.30.254 (力行三西)
                  140.135.31.254 (力行四西)
                  140.135.151.254(恩慈前棟)
                  140.135.153.254(恩慈後棟)
                  140.135.155.254(良善123樓)
                  140.135.157.254(良善456樓)
                  140.135.159.254(良善789樓)
        慣用DNS伺服器:140.135.7.1
        其他DNS伺服器:140.135.7.2

        系統分配IP請至 http://ccdna.cycu.edu.tw 查詢
  • 是否被阻斷
     → 請至 http://ccdna.cycu.edu.tw/virus_st/index.html
        按 Ctrl+F 輸入自己的系統分配IP查詢是否在清單內   
     → 如果阻斷原因是超過流量上限,則管理系統會自動在08:00刪除

        如果阻斷原因是流量異常,請先看流量異常原因進行調整或解毒

        要清除阻斷,請至 http://ccdna.cycu.edu.tw 自行解除,一天限一次!

以下情況是我們經常遇到的狀況:

開啟不明軟體後,發現到MSN和瀏覽器不能開啟網頁的狀況,防毒軟體也不能更新,請開啟cmd輸入ping + 室友的正常電腦的IP,也嘗試看看從室友的電腦那裡ping回來自己的IP,然後自己的電腦cmd輸入「ping tw.yahoo.com(或者其他網頁地址或IP)」,如果ping出來的結果如圖下顯示的一樣,表示其他網路服務雖然不能使用,但是電腦實際上還是能ping出去(ping只是測試學校網路有沒有問題),代表你的電腦已經徹底中毒,請網管來也沒用,電腦抱回去重灌比較快!

2010年7月12日 星期一

良好的網路使用習慣

在任何環境下,電腦最常發生的事是中毒。電腦中毒後,病毒會不停複製自己,造成CPU(中央處理器)和記憶體超出負荷,讓電腦運作異常,使之變得不穩定、變慢、當機、自動重開機,甚至直接死機(不能開機),病毒嘗試感染其他電腦,也使自己的網路流量增加、速度變慢、甚至不能上網,因此建立良好的網路使用習慣是非常重要的事情。

良好的網路使用習慣大致如下:
  • 不開啟和安裝來路不明的軟體
這個習慣最多人會犯,尤其是遊戲的外掛!最常遇到的就是一開來路不明的外掛後,電腦可以ping出去,也可以ping進來,就是所有網路服務都不能開,這種情況「重灌」是最快的辦法。另外一種狀況就是安裝軟體時有時候會自動附上惡意Toolbar,綁架瀏覽器首頁,就算是良好的Toolbar,也會使瀏覽器效能降低,所以安裝任何軟體,記得照子要放亮,只要一出現安裝Toolbar選項,不管是好是壞,馬上取消就對了,「寧可錯殺一百,不願漏掉萬一。」

注意一下某些軟體會附上「PANDORA.TV」的「Ask」搜尋ToolBar,這種ToolBar裝下去後,除了瀏覽器上會多一個ToolBar以外,也會私自把搜尋預設改成Ask,安裝的時候注意一下!

  • 不開啟來路不明網頁連結和郵件
MSN或即時通上的好友突然間沒事傳一個連結給你,千萬別點下去!點下去後自己也會中木馬程式,除了個人資料被盜取之外,怪客(cracker)(註1)還會利用你的帳號繼續發佈給其他人!電子郵件也是使用同樣的手法感染其他電腦。一般網頁和電子郵件也很常遇到,例如在論壇和信件上常常看到的援交、X片販賣、網路遊戲私服廣告等等,也不要亂點。也有用相似的文字來引人上當,例如yahoo改成yah00、大寫「I」、小寫的「L」和數字「1」,很容易混淆。某些重要資料登入,例如網購和網路銀行,記得認明是「https」(例如:https://login.yahoo.com/*)才能登入。

  • Proxy注意!
有心人士會架設假的Proxy伺服器,擷取網路封包過慮個人資料。通常學校的Proxy伺服器沒有這個風險存在。
  • 小心別人的USB隨身碟或硬碟!
目前最夯的病毒就是USB病毒,專門透過Win XP的自動開啟功能感染其他電腦,所以自動開啟功能一定要關閉!使用前一定要先掃毒!自己的隨身碟插在別人的電腦上後回來也要徹底掃毒一遍!
  • 設定難以猜測的密碼與更改密碼
加密網路相簿最常遇到的就是密碼設的太簡單,很容易猜出來,例如生日、手機號碼......等等,這類密碼非常容易被怪客猜出來,設定難以猜測的密碼極為重要,最怕的就是遇到字典破解,就是用字典的辭彙硬把密碼猜出來,防堵暴力破解的方法,最快的辦法是設定非英文密碼,改設其他歐洲語言的密碼也不錯。有的病毒或木馬會測錄鍵盤紀錄密碼,當發現到中毒時,檔案刪掉並馬上修改密碼,算是亡羊補牢的方法。時常更改密碼更能大幅降低個資盜取的風險。

How Secure Is My Password?」,這個網站能測試你的密碼需要多少時間才能破解,可以參考參考。
  • 不亂留個人資料與隱私管理
這是第二個徹底解決的方法,尤其是在社交網站(Facebook和Twitter),個人資料留的愈多愈危險。如果要留,就要好好保護自己的隱私。
  • 系統更新 
怪客攻擊通常從系統漏洞下手,因此系統修補也是防堵攻擊的不二法門,更新設定成自動就好(雖然Windows修補漏洞的速度非常慢)。
  • 關閉不必要的服務
利用系統服務入侵電腦的狀況也十分常見,停止不需要的服務可以大大降低被入侵的機率,服務越多所造成被入侵的機率越高,像是 Microsoft IIS (網頁伺服器)、FTP、SQL 等都是十分常見的管道,若不需要則將服務停止或移除,以免安裝的服務沒有實際用途卻形成系統的一個弱點而遭到入侵。
  • 瀏覽器
選對的瀏覽器也是一門非常重要的課題,目前漏洞最多的瀏覽器還是IE......這是世界公認的!請改用Firefox、Chrome或Opera,安全性也比IE高很多。有的怪客會利用Flash漏洞透過瀏覽器攻擊系統,Firefox有一個插件叫「Stop Autoplay」,會強制讓Flash停止自動播放,要播放自己點開即可,歡迎到右邊的抓火狐貼紙下載Firefox並安裝Stop Autoplay。
  • Cookie別留下來!
某些需要帳號,甚至是有自動登入的網站和論壇,通常會把帳號紀錄在Cookie裡,甚至是自動登入的網站連密碼也紀錄在裡面,電腦放木馬很容易被盜取,所以瀏覽器設成不存取Cookie也是防止個資盜取的一個好方法,除非有把握不會中木馬(例如使用Linux作業系統)。
  • 防毒軟體
防毒軟體提供即時監測目前系統活動,判斷是否有類似病毒的活動及檔案,如有發現病毒會依軟體的使用者設定設定來執行相關動作,會嘗試清除病毒、刪除檔案等,會在當我們有所疏忽時,協助防止病毒入新,因此安裝是當的防毒軟體也是一種的良好習慣。市面上也有免費、功能又強大的防毒軟體(例:AVG.Ariva.Avast!)可以裝來用一用(註2)

王某史瑞克的風涼話:就算防毒軟體猛到百毒不侵,使用習慣不好,中毒也能搞到連防毒軟體都不能更新,無用武之地。
  • 最徹底解決的辦法:不使用「暈到死」!!!
就是使用非M$的作業系統,例如Linux和Mac OS X,因為世界上99%病毒和木馬都是針對「暈到死」的漏洞而設計的,因此「暈到死」跑的程式不能在其他作業系統上啟動,好比說淡水魚不能在海裡存活的意思一樣,安全性也比「暈到死」好上太多,尤其是Linux,它是開放原始碼的自由軟體,程式碼攤在陽光底下,漏洞比較快找到也很快修補。

註1:利用系統漏洞的人坊間通常都稱為「駭客」,但是在資安界和自由軟體界裡會細分駭客,專門寫開源自由軟體供大眾使用和幫助搜尋並修補系統漏洞的人稱為「駭客」;反之除了搜尋漏洞之外,還利用漏洞攻擊系統的人,就稱為「怪客」。因為自己身處於自由軟體界,只好用「怪客」一詞。 

註2:某些防毒軟體標榜雲端計算或服務,如果網路有限制流量,請不要使用,因為背景掃毒時,軟體會把資料丟到遠端伺服器,會造成流量增加。

    2010年7月11日 星期日

    論Linux Desktop系統硬碟規劃

    本文章只適用於一般Linux desktop使用。

    一般使用者剛學Linux的時候通常都是把整個硬碟規劃成「/」(root),初學時不小心把系統搞掛倒是司空見慣,但是重灌時「/home」裡面的檔案全部見......心會淌血是一定的。

    對於一般desktop用途的使用者,「/」只要割 10GB就夠了,對!就是這麼小!不放心割20GB也絕對夠,不過久了會發現到其實會浪費很多空間,除非有需求,否則平常不用割這麼大。給Swap留一部份空間(或完全不用割,詳細會在後面說明),剩下給「/home」就好了。

    「/」和「/home」分割的好處就是使用者的軟體設定檔和桌面的檔案重灌後都不會消失!因為軟體設定檔和桌面的檔案都放在「/home」目錄裡,重灌時「/」格式化也不會影響到「/home」,把原本使用的軟體裝回來也不用重新設定軟體,連compiz也不用重新裝就能跑特效。

    坊間的書有的會說「/boot」要割出來,其實是以前開機管理程式用LILO(Linux Loader)的年代,LILO無法辨別1024磁柱以後的空間,才要把「/boot」割出來,新增GRUB(GRand Unified Bootloader)以後就不用特別割出來了。

    另外Swap(虛擬記憶體,在Linux上稱為「靜置轉換空間」)的規劃又是一大學問,Swap空間就是從硬碟上分出一部份空間,模擬出記憶體讓電腦使用,以前的記憶體比較昂貴,才會出現硬碟當作記憶體使用這個方法;但是現在電腦實體記憶體動輒1GB以上,給desktop用絕對夠,所以沒必要給Linux這麼多Swap。另外系統使用Swap次數愈多,硬碟的壽命相對減少,因為Swap就是把記憶體的資料暫存在硬碟裡,讀寫次數過多對硬碟也是一種消耗,所以Swap能不用就不用。

    保守規劃,如果實體記憶體有512MB(我想應該會跑超慢......) ,Swap就割1024MB到2048MB就夠用;1G的實體記憶體就割512MB到1024MB;2G以上實體記憶體就完全不用割(連我自己都沒塞暴過......)就絕對足夠。小筆電的實體記憶體比較小(最少遇過256MB),直接用Ubuntu NetBook Remix版本割512MB以上會比較好用。