2008年8月31日 星期日

Linux File System

File System 就如 Windows 內的 FAT32 或 NTFS; 想要提提, Linux 是可以讀到 FAT32 的, 但想讀 NTFS, 就須另外加軟件才可以讀取 !所以我用在 Windows 和 Linux 兩邊都可以讀存的外置硬碟盒, 就會用 FAT32 來格式硬碟 !FAT32 最大分割只可以去到約 20 G, 也有 2 G 大的檔案限制, 但 NTFS 就無這些限制, 所以安裝 Windows 2000 或 XP 都會用 NTFS, 而 NTFS 也可以設權限, 所以在保安方面是強過 FAT32 好多 !

Linux 的 File System 就有以下幾種(Windows 系統是讀存不到的) :


  1. ext2 (ext2fs) = second extended filesystem - 舊 Linux file system, 速度較慢.

  2. ext3fs - 由 ext2 變化出來的, 速度快過 ext2, 是用 hashed b-tree, 是一個穩定的 file system.

  3. ReiserFS - 用 B*-tree 來儲存 4 kb 小的檔案, 速度快過 ext2 或 ext3, 也可以讀寫大檔案, 但如用在/boot partition 就不太好的. (我以前好喜歡用在儲存檔案的 partitions, 因為應該可以省硬碟空間, 可惜它的開發員現在為殺妻罪名坐牢, 所以有排都不會更新)

  4. XFS - 如 Windows 的 NTFS, 可以設 ACL 權限, 但缺點是, 如果你電源不穩定突然停電, 你可能會損失資料, 因為 XFS 會先把資料儲存在記憶區, 之後才一次過寫入硬碟內, 所以只可以用在有穩定電源的地方 !

  5. JFS = Journaled Filesystem (IBM 專用)

註: 為穩定性, 你須用 ext3fs 在 partitions 如 /boot, /root 和 /usr.
ACL = Access Control Lists is supported in Samba 2.x and Samba 3.x with the filesystem :
Ext2, Ext3, JFS, ReiserFS, and XFS
http://www.bluelightning.org/linux/samba_acl_howto/

還想說, Windows NTFS 是好霸道, 試過把 windows2000 和 Linux 裝在同一個硬碟內, 開了 windows, 成日彈出對話盒問是否要刪去不明來源的 partition, 你一不小心按"是", 就無了個 Linux ! 如存 Linux 的軟件在 NTFS 內, 再轉去 Linux 安裝, 也會發現個軟件已損壞 !
也發現, NTFS 或 XFS 是不可以用開機碟去從新格式, 如 MBR 花佐, 一定要駁去 NTFS 系統, 格式成 FAT32 後才可以用返 !

2008年8月30日 星期六

Split 分割工具

一個在 Linux 系統已有的檔案分割工具, 可以把一個大檔案割成你想要的大小, 方便轉移 !

先把一些檔案合併和壓縮

# tar -czvf file.tar.gz filedirectory

之後分割

# split file.tar.gz --bytes=600000000 (about 572 MB)

檢視成果

# ls
xaa xab xac xad xae

之後可以用 FTP 或網頁轉移去第二部機

# wget http://www.yourdomain.com/xaa
# wget http://www.yourdomain.com/xab
# wget http://www.yourdomain.com/xac
# wget http://www.yourdomain.com/xad
# wget http://www.yourdomain.com/xae

才把分割檔合併

# cat x* > file.tar.gz

之後才解壓

# tar -xzvf file.tar.gz

2008年8月27日 星期三

安裝 Linux

不同的 Linux 版本, 有不同的安裝方法, 想知祥情, 可以去 Roy Chan 寫的 wiki 看看.

市面都有好多安裝 Linux 書本賣, 但講到深入的就好少, 所以想玩 server 的人都是要靠 documents 的了 !

其實 Linux 在愈簡單愈普通的電腦上安裝是愈少問題的 !
我就選了
CPU = P4 (因為用過 AMD 太熱, 所以只用 intel)
RAM = 1G 或 2G
motherboard = 差不多最平的都可以了, 但不用 Sis, 因為慢 !
其他 display card, soundcard, network card, onboard 都可以了 !
用 Nvidia 就須另安裝 driver !
火牛就一定要最少 300 W, 如不夠電, 會發生重複 reboot 的問題 !

通常, 如有硬件出問題, 我就會去買最平個隻 model 返來裝上去, 才去 BIOS disable onboard 個隻, 就解決到問題的啦 ! 所以買 motherboard 個時, 須研究是否夠插槽去加新卡 !

安裝 Debian 時, 系統只會幫你裝最基本野, 所以之後你須自行安裝其他的 applications, 如不熟手, 可能有好多硬件 run 吾到, 所以新手用 Ubuntu 或 Fedora Core 會比較容易, 因為雖然會幫你一拼安裝太多不須要的東西, 但好多 drivers 都會幫你自動安裝, 幫你省了時間去搵 drivers !

2008年8月22日 星期五

其實學 Linux 不太難

因為每個 application 都有自己的 standard script, 你只須改一改個 script 之後 restart 個 application 就可以行到了. 難就難在如我呢個英文半桶水, 看都看不明解說, 所以要在 google search 成幾百個網頁, 搵有無好心人寫了 sample script 出來, 通常有用的得幾個, 而你又要從幾個 sample 中, 編出適合你個隻 Linux 版本的 script 出來 !呢樣就好花時間的啦 !

如安裝 INN news server, 我花了足足一年先可以 run 到個 news server, 因為在 script 中, 我把匯入同匯出的 server IP 倒轉了 !先在 Mandrake 安裝, 之後又在 Debian 安裝, 最後用了 Fedora Core run 成個 server !次次都要從新改成十個 script !

如安裝 mail server, postfix 是好易安裝的, 網絡上有好多 sample, 可以匯出信件又接受信件, 但想用網頁或 Outlook Express 去讀取信件又花了我一年 !

原來只要你識怎樣去改個 script, 下次安裝, 你只須十分鐘至半個鐘, 就可以 set 起一個 application ! 所以我通常會寫筆記去記錄, 自己做過的步驟 !也會把筆記分享出來, 因為我也在網絡上得到了不少的幫助 !

順帶要多謝 Roy, Zunix 和 Frankie, 他們是我的 Linux 老師, 教了我不少 Linux 知識 !

2008年8月21日 星期四

CA

path of the CA files
/usr/lib/ssl/misc (CA.pl samples)
/usr/lib/ssl/openssl.cnf

Step 1.
# vi /usr/lib/ssl/openssl.cnf
and make some change to the script

dir = ./demoCA

default_bits = 2048
default_days = 365

Step 2.
# cd /usr/lib/ssl
# /usr/lib/ssl/misc/CA.pl -newca
(and /private/cakey.pem is created as the private key)

Step 3.
# openssl req -nodes -new -keyout yourserver.key -out yourserver.req -days 365 -config ./openssl.cnf
(and two files : yourserver.key and yourserver.req are created)

Step 4.
# openssl req -x509 -new -key /usr/lib/ssl/yourserver.key -days 1000 -config ./openssl.cnf -out yourserver.crt
(and yourserver.crt is created)

For matching your website name, you should use the URL from your webpage as Common Name, eg : www.yourdomain.com

Change Server cert path in /etc/httpd/conf/ssl/ssl.default-vhost.conf (or where your ssl path is, can be in /etc/httpd/conf/httpd.conf)
You have to restart Apache after certs path changed !

Lenovo EEEPC

www.lenovoclub.com.hk/ideapads9promo

買手提電腦須留意 :

    CPU 速度
    可否加 RAM
    硬碟容量和讀寫速度
    電芯使用時間
    網絡卡速度

2008年8月19日 星期二

Debian-based OpenSSL

nvd.nist.gov

OpenSSL 0.9.8c-1 up to 0.9.8g-9 on Debian-based operating systems uses a random number generator that generates predictable numbers, which makes it easier for remote attackers to conduct brute force guessing attacks against cryptographic keys.

SSD Pro vs SSDMOBI

2008年8月17日 星期日

Linux 和 Windows 的分別


  1. Linux 系統是免費, Windows 系統須付錢 !

  2. Linux 軟件多數是免費, 如 OpenOffice, Windows 軟件須付錢, 如 Windows Office

  3. Linux 中毒機會小, 因為權限設定, 所以多數不需要安裝防毒軟件; Windows 易中毒, 因為權限太鬆, 所以一定要安裝防毒軟件, 呢樣又要錢 !

  4. 現在的 Linux 死硬碟機會小, 而 Windows 死硬碟機會大; Windows 一遇突然停電, 一個在寫入的硬碟好易死 !


一些 Linux 免費軟件:OpenOffice(如 Windows Office), GThumb(修相軟件), Kino(影片剪接), NVU(網頁編緝, 也有免費 Windows版), Gimp(繪圖軟件如 Photoshop), Inkscape(向量繪圖軟件如 Illustrator), xmms(mp3 播放器), xine(DVD 播放器)!

小心 Facebook

2008年8月16日 星期六

什麼是 Linux ?

維基百科

1983年理查·馬修·斯托曼(Richard Stallman)創立了GNU計劃(GNU Project)。這個計劃有一個目標是為了發展一個完全免費自由的 Unix-like 作業系統。自1990年代發起這個計劃以來,GNU 開始大量的產生或收集各種系統所必備的元件,像是——函式庫(libraries)、編譯器(compilers)、偵錯工具(debuggers)、文 字編輯器(text editors)、網頁伺服器(web server),以及一個Unix的使用者介面(Unix shell)——除了執行核心(kernel)仍然付闕外。1990年,GNU計劃開始在馬赫微核(Mach microkernel)的架構之上開發系統核心,也就是所謂的GNU Hurd,但是這個基於Mach的設計異常複雜,發展進度則相對緩慢。

Linux內核最初只是由芬蘭林納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的,當時他並不滿意Minix這個教學用的作業系統。最初的設想中,Linux 是一種類似 Minix 這樣的一種操作系統。Linux的第一個版本在1991年9月被大學FTP server管理員Ari Lemmke發布在Internet上, 最初Torvalds 稱這個核心的名稱為 "Freax" ,意思是自由( "free") 和奇異( "freak") 的結合字,並且附上了"X"這個常用的字母,以配合所謂的 Unix-like 的系統。但是FTP server管理員嫌原來的命名「Freax」的名稱不好聽,把核心的稱呼改成「Linux」,當時僅有10000行代碼,仍必須執行於Minix作業系 統之上,並且必須使用硬碟開機;隨後在10月份第二個版本(0.02版)就發布了,同時這位芬蘭赫爾辛基的大學生在comp.os.minix上發佈一則 訊息. Linus Torvalds 一再聲明 Linux 是免費的,他本人可以賣掉,但 Linux 絕不能賣。

Linux 到了今時今日, 它的視窗介面, 已和 Microsoft Windows 差不多, 附加的軟件也超過了 Microsoft Windows 內的軟件數量, 所以安裝時須要多一些硬碟空間; 在現時硬碟已比以前便宜了, 所以不會構成一個大問題 !

因為 Linux 版本多, 所以想要安裝一個適合自己的版本, 就要慢慢去摸索了.
Linux 版本有 :
Red Hat (但早幾年已轉去了須要俾錢的商業版本),
Fedora Core (是由 Red Hat 轉變出來的免費版本, 安裝步驟也容易過 Red Hat.),
Mandrake (由法國人寫出來的版本, 但可惜因為財政問題好似暫停了.),
Debian (因為以前 Red Hat 和 Mandrake 對一般的用戶來說, 是難裝, 因為大大小小的軟件組合, 須自己在網絡上尋找, 好多時又出現不溶合的問題, 搞到用戶大叫救命, 所以有人寫了一個, 可以一次過安裝一個已包上所有聯系軟件的包包; 這些包包當然須要人手去包裝, 所以因為人手問題, 可以出現長時間都沒更新的問題.),
Ubuntu (由Debian 轉變出來的版本, 因為公司有錢, 所以人手多, 可以跟到新機硬件的需求.)

註: 因為寫 Linux 的開發員, 多數是用業餘時間來寫程式的義工, 所以寫得好不是必然的, 能給我們用到一個好而又不須錢的系統是我們的福氣 !我們要對這些開發員致敬 !還有 Linux 內的中文系統, 是須多謝香港和台灣的一班義工, 日日夜夜去幫手把英文翻譯成中文的 !

還有 Linux 現用的香港字, 是一班香港義工幫手砌成的 !
http://freefonts.oaka.org/

我在2001年讀完了 Linux plus 課程, 認識了一班常搞免費講座的教師, 去了幫手做義工, 但因為我又吾識寫程式, 幫吾到做開發員, 又吾係好識中文, 幫吾到做翻譯員, 所以只能幫手做宣傳和攝錄講座留檔 !

2008年8月14日 星期四

為何要學 Linux ?

1987年在荷蘭, 因為電腦開始走進百姓家, 去了學初級電腦課程; 諗住電腦將來在生活中會好重要, 所以一定要學識. 當時的電腦沒有視窗, 只是文字模式, 要打指令, 電腦才會做你想做的事; 學完了自買返部 IBM, 對住部電腦無野好做, 因為部電腦只會幫你做文字檔案, 除了記錄一些事情如親朋戚友地址電話, 就無乜用途了, 又因為工作忙, 所以無再深究 !電腦之後就成為兩個兒子的玩具!十幾歲的大兒子自買了一本書和小他三歲的弟弟一齊去學習控制部電腦, 而我就把電腦指令忘記了 !

1997 年在香港, 兩個兒子已去了英國讀大學, 選讀課系都是電腦課, 也帶走了一人一部電腦, 所以當時讀中學的女兒叫我買返部電腦給她上網做工課, 我才又從新認識了電腦. 隨著新電腦附送的免費課程慢慢學上新聞組, 學寫簡單網頁, 到自費去學 Adobe 繪圖, 排版, 修相, 還去學砌機到專業 Microsoft 課程學起司服器, 起網絡 !之後才發覺, Microsoft license 好貴, 一部司服器要五千元, 一部普通 desktop 都要三千幾元, 而在電腦新聞組認識的網友叫我去學 Linux, 因為是免費的不須交 license 費, 還開了他司服器給我去練習, 但一用慣了彩色的視窗才去對住文字模式, 真是不知要從哪方面開始學起, 連 ls, cd 都吾知是代表乜野東東, 最後去了上課學 Linux !

網友當時說, 要學好 Linux, 一定要學好文字模式, 何況起司服器, 不到你不用文字指令去控制電腦, 只是安裝軟件都要你來來去去 ./configure, make, make install ; 錯了要找出錯處, make clean 後又從新來過至到你熟手為止 !
學 Linux 你一定要把 Microsoft 的一套放在一邊, 從新學起, 因為 Microsoft 視窗是一個合成系統, 內面的東西你不能減也不能改, 只可以外加軟件, 但 Linux 就不同了; Linux 是一個自砌系統, 由好多個小軟件組成, 你可以自行加減系統內的軟件, 是好好玩的 !

以前有人說 Linux 可以用在舊機上, 可以走得好快, 但這是一個好大的誤會. 在舊機上安裝的是文字模式, 只用最基本的軟件來行, 就可以在好少的資源上跑得快, 所以只限於司服器, 但如用視窗(xwindow), 你部機一定要勁過用 Microsoft Windows, 吾係會慢到嘔 ! 所以我成日說, 為公平起見, 如你想安裝一部走得好的 Linux desktop, 你一定要用新機, 而不是用舊機來安裝 !

有點失望的是, 近年可能開發人員忙了, 所以寫出來的新系統比以前差, 就如 fedora core, 我現用來寫網誌, 修相, 整影片的系統還是用 fedora core 4, 雖然已出到 fedora core 9, 因為有播放器在新系統出中文出了亂碼, 只有 fedora core 4 無呢個問題 !Debian 和 Ubuntu 都出了加密漏洞, 所以新不如舊 !

2008年8月13日 星期三

RPM, apt-get, dpkg

RPM = Redhat Package Management

  • # rpm -qa |more (will show all your application installed in your machine)

  • # rpm -qa |less (less is more than more)

  • # rpm -qa | grep application (or egrep, show the version of the application)

  • # rpm -qi packagename (will show the informations about that package)

  • # rpm -ql packagename |more (will show in which directory the files of the package are saved)

  • # rpm -e filename (erase the file; you can type all the filenames separate with a comma)

  • # rpm -e software_name (uninstall)

  • # rpm -ivh mtools-3.9.7-3.i386.rpm (install the application)

  • # rpm -Uhv (can install or upgrade, not to use when you don't want to overwrite the old installation)

  • # rpm --test -Uhv packagename-packageversion no-buildno.CPU.rpm (for testing without installing)

  • # rpm --rebuilddb (when you have made changes to an application, you have to rebuild the database stored in /var/lib/rpm or /var/lib/dpkg for Debian)


for application installing in Debian:

  • #apt-get update (update the system)

  • #apt-get install application

  • #apt-get remove application

  • #apt-get --purge remove application

  • #apt-get upgrade application

  • #apt-get dist-upgrade application

  • #apt-cache search word

  • #apt-cache show word


  • #dpkg application.deb (install .deb package)

  • #dpkg -i application.deb (install package .deb)

  • #dpkg -r (remove)

  • #dpkg -P (purge)

  • #dpkg -L application (show info about the application installed by apt-get install)

  • #dpkg -l (show all the packages installed in debian)