訪客留言簿

星期一, 12月 03, 2007

wini 的簡單 Ubuntu Linux 概念講座

有錯誤或是不足之處還請指正補充 m(_ _)m

前言

因為有人跟我反應,他看了我寫的 Ubuntu 使用筆記後,還是不會安裝 Ubuntu ,而且還不小心誤刪了硬碟上的其它分割區,然後也搞不是很清楚 Linux 環境下要怎麼操作,所以我想在教人安裝 Ubuntu 前,應該是有必要講些簡單的電腦概念,當然我其實是電腦外行,所以本篇文章錯誤連連也是在所難免的。

然後這篇文章是我在用 Ubuntu 時,有接觸到的一些 Linux 及電腦的概念,今天臨時需要寫到就稍微回想,並猜測了一些可能有必要瞭解的問題;當然我也有稍微碰過 Gentoo 和 B2D 、 Knoppix 這些 Linux LiveCD ,不過因為 Ubuntu 用起來比較無腦一點點,所以在用 Ub 時印象會比較深。

推薦可以先閱讀的其它文章:

關於 Ubuntu 的一些概念

  1. Ubuntu 是使用 Linux 核心的發行套件版本(distro, distribution),也就是拿 Linux 這核心程式,搭配一些圖形操作介面、多媒體程式、瀏覽器或辦公套裝軟體等等的其它應用程式,所發行的「基於 Linux(核心) 的作業系統」。
  2. Linux 是採用 GNU GPL 這系列授權,而開放原始碼的「自由軟體」,意思是你可以隨便拿這玩意(包括程式原始碼跟編譯好的執行檔)做任何事(包括拿去大街上叫賣或放在網路上公開給人下載),但是要發佈你修改過的該程式版本時,就必須要沿用同一授權。(另外 GNU LGPL 這授權好像是你可以使用自由軟體,但是不必公開你修改過的版本的程式原始碼的樣子,不太確定。)
  3. Linux 是多工作業系統,意思是同時間可以讓許多人登入同一台電腦,並使用不一樣的桌面環境、使用者家目錄,而且也具有不錯的使用者權限設定,防止未授權使用者查看你的私人資料。
  4. Linux 上最高權限的使用者,是系統管理員 root ,這個字同時也代表了「根目錄」,也就是整台電腦沒有什麼地方是 root 去不了的;反過來說,一般使用者沒有經過允許,是無法執行開啟需要 root 權限才能進入的目錄,也不能執行裡面的檔案的。但是 Ubuntu 基本上是不使用 root 帳號的,代替 root 的是超級使用者密碼功能,也就是你安裝時所設定的帳號的「密碼」。
  5. Linux 的目錄結構是由根目錄「 / 」開始,底下放有各使用者資料的家目錄「 /home 」,系統管理員的家目錄「 /root 」,系統的重要程式目錄「 /etc 」,使用者自行安裝的應用程式目錄「 /usr 」,列有主機板上的硬體裝置的目錄「 /dev 」,列有系統掛載好可以讓你使用的儲存裝置掛載點的目錄「 /media 」或「 /mnt 」……的這種感覺;簡單說,不管是硬體還軟體,在 Linux 下都是用目錄或檔案的方式表示。
  6. 掛載點(mount point)」算是連結硬體裝置到系統中來使用的一種路徑。簡單說,今天有顆硬碟放在 /dev/hda ,裡面有個分割區 hda1 ,你想要使用或是查看裡面的東西時,不能直接執行開啟 /dev/hda1 ,而是要設定好該硬體、該分割區的一些資料(硬碟的話要編輯 /etc/fstab 這檔案),然後設定一個「掛載點」連結到 /dev/hda1 ,才能利用那個掛載點來執行開啟硬碟裡的資料。當然了,掛載點的檔案名稱你可以隨便取。(延伸應用:利用掛載點,把使用者家目錄 /home 指定到不是根目錄 / 所在的磁碟分割區放,也就是把 /dev 下的分割區指定到 /home 的掛載點掛起來用,以後重灌時就不怕丟失使用者資料了。)
  7. Linux 下的磁碟管理程式啥的,有很多都可以支援正常讀寫 Windows 的 FAT32 跟 NTFS 了,甚至你想要隨意調整這些檔案系統的分割區大小又不損失任何資料也可以;不過基於誠實的原則,不負責任的自由軟體,預設是不會讓你寫入資料到 Linux 以外的檔案系統分割區中的。(筆者鬼扯爛中)追註:關於調整分割區大小的問題,請看後面的 GParted 使用問題說明
  8. Linux 下的虛擬機器軟體 VMWare 可以讓你安裝 Windows ,而 Windows 系統環境模擬器 WINE 也能讓你執行 Windows 的執行檔(EXE) ……當然效果如何請不要太期待,因為新手使用時很容易失敗這樣。
  9. 關於 Linux 的權限管理,可以把一堆使用者,設在某個群組中,然後只要設定該群組的權限,就會同時影響到在該群組內的使用者權限了;另外同一名使用者可以加入到不同群組中。
  10. Ubuntu 預設可以使用的套件,也就是由官方維護的套件,是以「無專利權爭議」的軟體為主,所以你想要用一些可能有專利問題的,或是非官方維護,或是有官方以外的專門組織在維護的套件時,要自己想辦法開啟非官方套件庫的選項。

關於 Linux 發行套件

  1. Linux 是作業系統的核心,大概只會負責指令集、編譯器、系統運作跟硬體驅動程式這些地方(不確定),而桌面環境或辦公套裝軟體那些的,則是由其他人提供的;所以整合這些資源,弄成一個大包裝丟出來給人用的玩意,就是 Linux 發行套件,而發佈這玩意的就叫套件發行商。(另外「發行套件」和「發行版本」在很多時候可以當成是一樣的,不過「發行套件」感覺算是那些「發行版本」的統稱的樣子。)
  2. Linux 是自由的,所以你其實可以把某個發行套件拿來改一改,就當成另一個自創的發行套件來用、來發佈。(不過請看過裡面所使用的 GPL 等授權再做,人類所說的自由通常是指有限範圍內的完全自由。)
  3. 通常不同的發行套件,是由不同的公司或社群在維護的,但是有些相同架構的發行套件,可以互相使用彼此的資源。
  4. 在更新發行套件時,只要有提供套件下載鏡像站的網址給更新程式,你就可以選擇比較快的網站下載更新系統程式。

關於驅動程式和 Windows 程式

基本上說 Linux 上不能執行他們的硬體的廠商,大部分是在推拖、逃避問題(簡單說是嫌麻煩),因為能靠 Linux 賺錢的是極少數人,所以以獲利為目的的營利事業(永續經營只是企業假設不合現實就算了)是不太會投入成本去製作的;然後更糟的是,一部分握有專利的廠商也是不會放出詳細、或好懂的規格說明,所以想要讓 Linux 跑動硬體,你還是祈禱那東西不是偏向封閉規格的比較好。

同樣的,軟體也是有封閉規格的,而且就算你能解剖軟硬體,自行編寫出一套程式來運作這些封閉軟硬體,也會有專利問題限制你的行為,所以那些說 Linux 沒辦法幹啥幹啥的,建議你買台 Intel 架構的 Mac 電腦灌 Windows 最簡單。(有錢的話啦)

(註:當然實際的問題不是那麼簡單的樣子,不過我討厭麻煩,就用簡單的個人妄想來解釋了。)

關於 Linux 的桌面環境

Linux 的桌面環境(X Window)有很多種,有名的大計畫像 KDE 、 GNOME 和 Xfce ,這些不同桌面環境會有官方(指桌面環境計畫維護者)提供的不同的應用程式,而要使用不同桌面環境的應用程式,好像是要額外安裝些東西的樣子吧。

總之這裡先知道 Linux 的桌面環境有很多可以選,然後同樣的一套發行版本,可能會換個桌面環境就當另一種發行版本發佈,比如說使用 GNOME 桌面環境的 Ubunut ,就有使用 Xfce 桌面環境的 Xubuntu ,和使用 KDE 桌面環境的 Kubuntu 和 Edubuntu 等的非官方分支。

不過就算 Linux 發行套件的桌面環境功能多又靈活,吃的資源比 Windows 少,也不能改變這是以強大的純文字終端機為主的 Linux ,所以光靠圖形操作介面其實是不能管理到多少地方的。

關於分割區調整程式 GParted

GParted 雖然可以調整 Windows 的分割區,不過有時可能還是會有些問題,其中一個就是調整好 NTFS 分割區後,卻發生錯誤不讓你完成作業。錯誤訊息標題如下:

An error occurred while applying the operations

這種的有時候是回 Windows 下,跑 chkdsk /f 就可以了(也許磁碟重組也跑一下比較好),不過真的解決不了時,還是建議先別用 Ubuntu 裡的 GParted ,改用 GParted LiveCD 處理比較好,因為有時候可能是因為自動掛載之類的問題而不能調整的。

參考資料:

名詞簡單解釋

  1. 桌面環境、圖形操作介面:簡單說,你有看到文字以外的圖片,又可以用滑鼠操作的話,就把那個操作環境當成有圖形操作介面的桌面環境。相對於圖形介面的,是純文字的「終端機」操作介面。
  2. 檔案系統: Windows 的話就是 FAT32 跟 NTFS 比較流行, Linux 的話有一般作業時要用到的 ext3 跟供快取暫存檔案的 linux-swap , MacOSX 的話好像就是叫 Mac OSX ;基本上沒有無法讀取不同的檔案系統這回事,只是看有沒有人去做而已。
  3. 硬碟分割區、磁碟分割區:硬碟買來時,是不能直接寫入檔案的,必須要先建立分割區(可以分配全部或一部分空間),設定該分割區的檔案系統,然後如果是全新硬碟,就會要你格式化,這樣才能建立起該分割區內的檔案型態;也就是說,同樣的檔案,在不同的檔案系統上,電腦它看到的是不同的東西,所以要在不同檔案系統上移動檔案時,會需要經過轉換的樣子。(我猜啦)
  4. 系統管理員、使用者、群組:假設你的身分是使用者,那麼你可以加入不同的社團,就是等同於加入不同的群組,而這些社團的活動內容跟權限也不同,然後管理這些社團跟個別成員能做什麼的,就是系統管理員(日本好像是交給學生會管理吧);另外系統管理員應該也可以指派某個成員代為管理社團,那就當他們是社長吧。(啥)
  5. 原始碼、編譯、執行檔:不管是什麼程式,最初都是用某種程式語言寫出來的(一般來說是 C 或 C++ 類型的,當然也不是沒有人直接用只有 0 跟 1 所組成的機械語言啦。),這些程式語言可以讓機器做特定工作,但是因為高階語言的原始碼,不能直接給電腦硬體執行,而且不同作業系統運作時也會有差異,所以需要用「編譯器」把原始碼轉成適當的機械語言,製作成執行檔(或者正式點的稱呼是二進位檔),這樣才能在目前的環境內執行工作。
  6. 檔案、資料夾、目錄、掛載點:基本上目錄跟資料夾是指一樣的東西,譯名問題而已,然後說到為什麼要用到資料夾呢,你可以想想,你的房間要是把東西都堆在一起會不會很亂呢,就算把相同用途的放在一起,也改不了一堆不同用途的東西雜七雜八地放在一起的爽度問題,所以可能會買個箱子來分類包裝吧,檔案跟目錄也是差不多的道理;然後掛載點就是跟資料夾差不多的東西,不過這是用來連結到某個硬體裝置,讓你打開該裝置來看的特殊資料夾,用網頁的概念來看,就是像超連結一樣的東西。(當然了,你也可以設個掛載點來連結某個目錄,反正 Linux 下就是檔案跟資料夾而已。)
  7. 虛擬機器軟體 VMWare 、 Windows 系統環境模擬器 WINE : VMWare 可以當成是在你現有的作業系統中,建立一臺電腦,這臺電腦一樣有你現在的電腦的硬體設備,所以你可以安裝作業系統在這臺「虛擬電腦」裡;而 WINE 則是讓你可以在 Linux 環境中直接執行 Windows 執行檔的程式。
  8. LiveCD :你可以想像成「把裝好了作業系統的硬碟塞進光碟片裡」這樣,總之就是用光碟片來執行作業系統,對以前 DOS 時代的人來說應該不算太陌生的操作模式吧。(啥)
  9. 掛載、掛載點:一般來說,硬碟等儲存裝置都要經過掛載的動作,使用者的系統才能夠使用。我個人推測在 Linux 上的掛載過程是這樣的:主機板找到符合規格的硬碟,進到作業系統後,會依照該硬碟的硬體資料,把硬碟列在 /dev 目錄下,不過這兒只有硬體資料跟分割表資料而已,為了要正確使用,必須告訴系統這些分割區的檔案系統和字元編碼、讀寫權限設定,之後要再指定一個掛載點才可以使用,這過程就叫做掛載。一般來說,很多作業系統都會自動掛載這樣, Ubuntu 也可以做到。(雖然 7.10 好像拿掉自動掛載的預設值的樣子……?)
筆記

2 comments:

CHCOOBOO 提到...

(跪)

wini 提到...

你想表達什麼(變身成汽油人)

話說文章我下午剛改過一些了這樣,接下來大概會丟去 Ubuntu 那給人看看有啥問題吧。(預定)

 

本站著作(不包含圖片、影音以及回應留言)係採用 Creative Commons 姓名標示-非商業性-相同方式分享 2.5 台灣 (中華民國) 授權條款授權