1 / 194

Linux 簡介

Linux 簡介. 計算工具 國立高雄大學應用數學系 2004/05/10. 前言. Don ’ t panic! No C/C++/assembly language No hard examination But Linus wrote Linux 0.0.1 when he was a sophomore student. 參考資料. 鳥哥的私房菜館 http://linux.vbird.org/ GNU/Linux 初學之旅:李果正 http://www.study-area.net/tips/linux_entry.htm

spike
Télécharger la présentation

Linux 簡介

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux 簡介 計算工具 國立高雄大學應用數學系2004/05/10

  2. 前言 • Don’t panic! • No C/C++/assembly language • No hard examination • But Linus wrote Linux 0.0.1 when he was a sophomore student

  3. 參考資料 • 鳥哥的私房菜館 http://linux.vbird.org/ • GNU/Linux 初學之旅:李果正http://www.study-area.net/tips/linux_entry.htm • Linux 教育訓練:國家高速電腦中心

  4. Unix 簡介 • Multix – MIT, GE • Bell Labs, AT&T, early 1970's • Unix, C Programming Language • Ken Tompson、Dennis Ritchie • 主要概念 • 所有程式都是檔案 - (最具創意的概念)。 • 不論是建構編輯器還是附屬檔案,所寫的程式只有一個目的,且要能有效完成目標。 • 任何人可以由小到大,模組化建構系統。 • BSD – Berkeley Software Distribution • Billy Joy(vi), Kirk McKusik

  5. Unix 簡介 (續) • Kernel 核心 • e.g. Linux Kernel • can access kernel data • can execute kernel programs • switch to user mode • service an interrupt • User 使用者 • e.g. root、userXXX • cannot access kernel data • cannot execute kernel programs • issue a system call to switch to kernel mode • Shell 殼? • e.g. sh、csh、tcsh、bash

  6. Unix 簡介 (續) • Shell • User management • File system • Process control

  7. Unix 簡介 (續)

  8. Unix 簡介 (續) • UNIX variants • AT&T, Bell Labs • UC, Berkeley – Berkeley Software Distribution • SCO Unix • Sun – SunOS, Solaris • IBM – AIX • SGI – Irix • HP – HP-UX • SYSV, BSD, POSIX

  9. Unix 簡介 (續) • Opensource Unix-like OS • Minix • Linux • BSD series, OpenBSD, FreeBSD, NetBSD • Darwin, BSD4.4 + Mach Microkernel, Apple • More...

  10. Unix 簡介 (續) • 可以讓「多個」使用者、「同時」執行「多個」程式的! • 超級使用者:root • 群組 groups

  11. Unix 簡介 (續) • An unix account is for • an individual person to login • e.g. user001 • an entity to execute program or own files • e.g. shutdown,sys, bin, ... • Entries in /etc/passwd • name:pass:UID:GID:GECOS:homedir

  12. Opensource自由軟體 • 傳教士:Eric S. Raymond • http://www.tuxedo.org/~esr/ • Opensource一詞的發明人 • The Cathedral & The Bazaar • The Art of UNIX Programming • A Brief History of Hackerdom • Freedom (自由)/Open(開放) • Source Code必須公開 • 任何人都可以自由傳播、下載、使用或改寫

  13. GNU計畫 • 1983 年 Richard Stallman (自由軟體業的精神教父) http://www.stallman.org • 開始於1984年,旨在發展一個 類-Unix 且為 自由軟體 的完整作業系統 • 軟體應該是人類的共同智能,屬於公共財! • 我要做出一系列亂棒的免費軟體,好到讓廠家們只要不用他就會倒店的程度。 • http://www.gnu.org/

  14. 自由軟體基金會 • GNU計畫的贊助單位 • FSF (Free Software Foundation) 提倡免費軟體 • FSF自由使用權的三個意義: • 可自由複製GNU的軟體 • 可自由修改原始碼 • 可自由散佈修改過的原始碼,但不得收取任何版權費用

  15. GNU Genel Public License (GPL) • 大眾公有版權/通用公共版權 • 官方翻譯:自由文件許可證 • Copyleft • http://www.linux.org.tw/CLDP/GNU/licences/fdl.zh.html • http://www.gnu.org/copyleft/gpl.html

  16. Linux 簡介 • 1991 年 8 月 芬蘭的一個學生在comp.os.minix 新聞組貼上了以下這段話: 「你好,所有使用 minix 的人 -我正在為 386 ( 486 ) AT 做一個免費的操作系統 ( 只是為了愛好 ),不會像 GNU 那樣很大很專業。」

  17. Linus 的郵件原文 From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)Newsgroups: comp.os.minixSubject: What would you like to see most in minix?Summary: small poll for my new operating systemMessage-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>Date: 25 Aug 91 20:57:08 GMTOrganization: University of HelsinkiHello everybody out there using minix -I'm doing a (free) operating system (just a hobby, won't be big andprofessional like gnu) for 386(486) AT clones. This has been brewingsince april, and is starting to get ready. I'd like any feedback onthings people like/dislike in minix, as my OS resembles it somewhat(same physical layout of the file-system (due to practical reasons)among other things).I've currently ported bash(1.08) and gcc(1.40), and things seem to work.This implies that I'll get something practical within a few months, andI'd like to know what features most people would want. Any suggestionsare welcome, but I won't promise I'll implement them :-)Linus (torvalds@kruuna.helsinki.fi)PS. Yes - it's free of any minix code, and it has a multi-threaded fs.It is NOT protable (uses 386 task switching etc), and it probably neverwill support anything other than AT-harddisks, as that's all I have :-(.

  18. A small understatement ! • “just a hobby, won’t be big and professional like gnu “– Linus, 1991 • “HP Records More Than $2.5 Billion in Linux-based Revenue in 2003”– http://www.hp.com/hpinfo/newsroom/press/2004/040115a.html

  19. History of Linux • A more complete history is available here :http://netfiles.uiuc.edu/rhasan/linux • “Just for Fun : The Story of an Accidental Revolutionary”, Linus Torvalds and David Diamond.

  20. Linux version numbers • Each linux kernel version is characterised by three numbers: • Major Version . Minor Version . Release Numbere.g. 2 . 6 . 2 • The minor version number denotes whether the kernel is a stable release or a development release. • Even = Stable ( e.g. 2.6.2 ) • Odd = Development ( e.g. 2.5.102)

  21. What is linux? • Clone of Unix • Aims to be POSIX and Unix specification compliant. • True Multitasking • Virtual Memory • Shared Libraries • Shared copy-on-write executables • Proper memory management • TCP/IP networking ... and a few other things

  22. What is linux? (cont.) • Linux runs on (at least), the following architectures :• 32-bit x86-based • Compaq Alpha AXP• Sun SPARC • Sun UltraSPARC• Motorola 68000 • PowerPC• PowerPC64 • ARM • Hitachi • SuperH • IBM S/390 • MIPS• HP PA-RISC • Intel IA-64 • DEC VAX • AMD x86-64• CRIS

  23. What is linux? (cont.) • Written mainly in C • Some Assembler • 240 MBytes of source code and documentation • 1,000,581 lines in .h files • 4,196,191 lines in .c files

  24. Linux 簡介 (續) • Linux 是一套免費的32*位元多人多工 Unix-like 作業系統,同時相容於 System V 與 BSD 並且符合POSIX標準。 • It's GPLed! • Ported to other platforms: i386, IA64, DEC's Alpha, Sun SPARC, PowerPC, VAX, SGI MIPS etc.

  25. Linux 簡介 (續) • 人類進化演進的過程 • 為求生存 • 為求社會地位 • 為娛樂,Just for fun! • 全球性的團隊遊戲 (for developer)

  26. Linux 簡介 (續) • Totaly Free! • Opensource • Cross platform • 多人多工 • 具網路功能 • 上千種 GNU 軟體 • 可與其他作業系統並存

  27. Linux 簡介 (續) • Developers worldwide • Opensource, thounds of eyeballs • Community support • Vendors support • IBM • Redhat • Mandrake

  28. Linux 簡介 (續) • Linux 是 kernel! • A distribution = Linux kernel + software packages • Linux kernel + 基本的 libc utilities + X Window system • 最重要的工具集:GNU tools! • 嚴格來講、叫做 GNU/Linux

  29. GNU與Linux • GNU • 仍自行發展 Hurd Kernel • 開發許多以GPL發行的應用程式與工具程式 • Linux(Linus’s Unix) • 由網路上熱心的朋友一起發展Linux Kernel • 採用GNU發展的許多應用程式與工具程式 • 應該稱作GNU/Linux

  30. Linux品牌 • RedHat Linux • SuSE Linux • Mandrake Linux • Caldera Linux • Turbolinux • Debian GNU/Linux • Gentoo Linux • Linpus Linux

  31. Linux Kernel 現況與認證 • Kerenl 版本 http://www.kernel.org • 發展版本-2.5.70 • 穩定版本-2.4.20 • Linux認證 • RedHat RHCE http://www.redhat.com/ • LPI Level one/two/three http://www.lpi.org

  32. Linux 開機流程 • BIOS 嘗試在開機磁碟機的第 0 磁區、第 0 磁柱載入可供開機的磁區開機 • 開機載入程式 (boot loader ,如 LILO或Grub)的程式碼 • 找出 kernel 所在位置,接著載入並執行它以啟動開機程序 • 一旦 kernel 載入完畢,一些基本設備也完成初始化 (initialization) • 嘗試從某個設備載入以及掛上 (mount) root filesystem 一旦 root filesystem 被載入並掛上,會看到一行訊息像: VFS: Mounted root (ext3 filesystem) readonly

  33. Linux 開機流程 • 此時系統會在 root filesystem 上找到 init 程式 ( 在 /bin or /sbin) 並執行 init 讀取它的組態設定檔 (configuration file) /etc/inittab ,找出檔中標明 sysinit 的一行,並執行被指名的script。這個 sysinit script 通常類似 /etc/rc 或 /etc/init.d/boot 這兩個檔。這個 script 是一組建立基本系統服務的 shell 指令,諸如: • 對所有磁碟執行 fsck • 載入必備的核心模組 (modules) • 啟動 swapping • 進行網路初始化 • 將指定在 fstab 內的磁碟掛上

  34. Linux 開機流程 • 當 sysinit script 結束後,控制權回到 init 上,接著進入預設的runlevel • 預設的 runlevel 以 initdefault 這個關鍵字被指定在 /etc/inittab 內

  35. runlevel 說明 0 – 關機 halt (不要在 initdefault 設定這個) 1 – 單人模式 Single user mode 2 – 多人模式未含網路功能 Multiuser, without NFS (與 runlevel 3 相同, 用在沒有網路環境下) 3 – 完整多人使用者模式 Full multiuser mode 4 – 未使用 unused 5 – xwindow 模式 X11 6 – 重開機 reboot (不要在 initdefault 設定這個)

  36. man 男人? • 線上查詢 man page # man ls # man 1 ls # info ls • /etc/man.conf • whatis filename • 不管,我也要 woman 啦! 簡易耍寶版 • 用別名 alias • $alias woman=man • 以後就可以用 `woman ls' 了!

  37. vi • 文書處理器 vi • 管理員至少一定要會一種編輯器 • vi 的使用: • 一般模式:移動、複製、刪除、貼上 • 編輯模式:插入與取代文件 • 指令列模式:搜尋、自動取代、檔案存取等

  38. vi help • h,j,k,l 移動 • yy 複製 • dd 刪除 • p 貼上 • o,i,a 插入 • R,r 取代 • u 回復 • / 搜尋 • :%s/x/y/g 自動取代 • :w 寫入 • :q 離開 • :wq! 寫入強制離開

  39. Linux 檔案 # touch test # ls –al test

  40. Linux 檔案種類 • 正規檔案( regular file ) • 第一個屬性為 [ - ] • 純文字檔(ascii) • 二進位檔(binary) • 目錄 (directory): • 第一個屬性為 [ d ] • 連結檔 (link): • 第一個屬性為 [ l ] • 設備檔 (device): • 區塊 (block) 設備檔,第一個屬性為 [ b ]; • 字元 (character) 設備檔,第一個屬性為 [ c ]。

  41. Linux 檔案屬性

  42. 更改 Linux 檔案屬性指令 u g o a owner  = rwx  = 4+2+1 = 7 group  = rwx  = 4+2+1 = 7 others = ---  = 0+0+0 = 0 r=4,w=2,x=1 # chmod 770 test +(加入) -(除去) =(設定) r w x 檔案或目錄 chmod

  43. 更改 Linux 檔案擁有者指令 語法: chown [ -R ] 帳號名稱 檔案或目錄 chown [ -R ] 帳號名稱:群組名稱 檔案或目錄 範例: [root@test root]# chown games test [root@test root]# ls -l test drw-r--r--    1 games     root        0 Jun 20 14:36 test [root@test root]# chown –R root:root tmp

  44. 更改 Linux 檔案所屬群組 語法: chgrp 群組名稱檔案或目錄 範例: [root@test root]# chgrp users test [root@test root]# ls -l drw-r--r--    1 root     users        1 Jun 20 14:36 test

  45. Linux 目錄結構 • /bin:常用系統程式目錄 • /boot:開機設定檔,也是預設擺放核心 vmlinuz 的地方 • /dev:擺放所有系統裝置檔案的目錄 • /etc:幾乎系統的所有設定檔案均在此,尤其 passwd, shadow • /etc/rc.d/init.d:系統開機的時候載入服務的 scripts 的擺放地點 • /home:系統使用者的家目錄

  46. Linux 目錄結構 • /lib:Linux 執行或編譯程式函式庫目錄 • /mnt:軟碟與光碟接預設掛載點的地方 • /proc:系統核心與執行程序的一些資訊 • /root:系統管理員的家目錄 • /usr/bin, /bin:一般執行檔擺放的地方 • /usr/sbin, /sbin:系統管理員常用指令集 • /var:擺放系統記錄檔案的地方 • /lost+fount:擺放系統不正常產生錯誤時遺失的片段

  47. Linux 管理工具介紹 • 檔案與目錄管理 • 磁碟與硬體管理 • 程序與資源管理 • RPM的管理 • 帳號與身份管理

  48. 檔案與目錄管理 • 目錄與路徑 • 相對路徑與絕對路徑 .     代表此層目錄 ..    代表上層目錄 ~     代表自己的家目錄 ~user 代表到 user 這個人的家目錄

More Related