1. Trang chủ
  2. » Thể loại khác

www.tinhgiac.com HDH LINUX

18 30 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 105 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

www.tinhgiac.com HDH LINUX tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực k...

Trang 1

HDH LINUX

I Giới thiệu hệ điều hành Linux:

1.Linux là gì?

Linux là hệ điều hành Về mặt nguyên tắc hệ điều hành cũng là một software;

nhưng đây là một software đặc biệt – được dùng để quản lý, điều phối các tài

nguyên (resource) của hệ thống (bao gồm cả hardware và các software khác)

Linux còn được gọi là Open Source Unix (OSU), Unix-like Kernel, clone of the

UNIX operating system

Linux do Linus Torvalds, một sinh viên tại trường Đại Học ở Helsinki (Phần Lan)

phát triển dựa trên hệ điều hành Minix, một hệ điều hành có cấu trúc tương tự

Unix với các chức năng tối thiểu được dùng trong dạy học

Hiện nay, Linux là một hệ điều hành với mã nguồn mở (Open Source) và miễn phí

(free) dưới bản quyền của tổ chức GNU (Gnu’s Not Unix)

Khởi đầu, Linux được thiết kế để hoạt động trên nền tảng của kiến trúc i386

Intel với khả năng đa tác vụ (multitasking) Tuy nhiên ngày nay, Linux đã có các

phiên bản trên các họ chip khác chẳng hạn như chip Alpha Linux có nguyên lý hoạt động tương tự hệ điều hành Unix (Unix-like) Mặc dù

Linux không phải là Unix nhưng người ta vẫn xem Linux như là phiên bản Unix trên

PC (PC version of Unix OS)

Do là Unix-like; Linux có đầy đủ tất cả các đặc tính của Unix (fully

functional) Ngoài ra nó còn hỗ trợ thêm một số tính năng mà trên Unix không có,

như long file name (tên file có ký tự space “ ”)

Hiện tại có nhiều hãng, nhiều tổ chức, nhiều nhóm khác nhau cùng phát triển

Linux Tất cả các phiên bản (release) Linux đều có chung phần kernel (phần nhân

của hệ điều hành) và hầu hết các tính năng đặc trưng, tuy nhiên các tool (công

cụ) và utility (tiện ích) có đôi chút dị biệt

Có rất nhiều các ứng dụng cho Linux, tuy nhiên hầu hết các ứng dụng cho Linux

hiện có đều là các ứng dụng mang tính chuyên dụng Để đưa Linux vào từng gia

đình, các tổ chức, các hãng đang cố gắng phát triển các ứng dụng mang tính phổ

Trang 2

cập trên Linux chẳng hạn hãng SUN đưa ra phiên bản Star Office tương tự như MS

Office – và cũng tương thích với MS Office - cho những người sử dụng Linux ở gia

đình, văn phòng

Hãng Borland (nay là hãng Inprise) đang phát triển một dự án có tên là KyLix,

nhằm đưa ra một môi trường lập trình cấp cao trên Linux, đồng thời các ứng dụng

trên Windows được viết bằng Delphi/C++Builder sẽ dễ dàng compile (biên dịch) lại

dưới Linux bằng KyLix Hiện tại Kylix đã có phiên bản thử nghiệm (beta)

Dự án này hứa hẹn một loạt các ứng dụng thông thường đã có trên MS Windows sẽ

mau chóng được chuyển sang Linux, và điều này sẽ giúp cho hệ điều hành Linux dễ

dàng thâm nhập vào thị trường PC nhanh chóng hơn

Các ứng dụng được viết trên Linux đều có thể hoạt động trên các

hệ thống UNIX

(có thể cần phải compile lại)

Các release hiện nay gồm có:

RedHat Linux:

Hiện đã có version (ấn bản) 7.0; là phiên bản khá phổ biến Cung cấp khá nhiều

tool và utility để hỗ trợ user (người sử dụng) từ các thao tác setup (cài đặt)

đến config (cấu hình) hệ thống

Mandrake Linux:

Một dòng khác thoát thai từ RedHat Linux, tương thích hoàn toàn với RedHat Hiện

có tới version 7.1

Slackware Linux:

Đây là một trong phiên bản Linux lâu đời Hỗ trợ các dịch vụ mạng rất mạnh, tuy

nhiên việc setup và config đòi hỏi user có kiến thức tốt về hệ điều hành này

Hiện có version 7.0

S.u.S.E Linux:

Do hãng S.u.S.E (Đức) phát hành, khá phổ biến tại Âu châu, nhưng không được phổ

biến tại các nước khác Có các công cụ riêng để hỗ trợ setup và config tương đối

dễ sử dụng Hiện đang có đến version 6.3

Free BSD Linux:

Được phát triển bởi Đại Học Berkeley, đây không phải là phiên bản thương mại, do

vậy ít được phổ biến Có rất nhiều tiện ích dành cho việc phát triển hệ thống và

lập trình Hỗ trợ đầy đủ các shell trên Unix Hiện có version 2.2

Trang 3

Corel Linux:

Phát triển bởi hãng Corel, dễ setup, có graphic interface (giao diện đồ họa) khá

giống Windows NT kể các tool và utility Tuy nhiên các config tool chưa hoạt

động tốt Hiện có đến version 1.0

Open Linux:

Do hãng Caldera phát triển, dễ cài đặt cũng như sử dụng Giao diện KDE Thích

hợp cho người sử dụng tại gia đình Hiện đang có version 2.3

X Linux:

Hỗ trợ đa ngôn ngữ Tương thích với RedHat Bộ công cụ không lấy gì làm đặc sắc

Tuy nhiên kèm theo nó có khá nhiều ứng dụng Hiện có version 1.0

Và còn rất nhiều release khác như Turbo Linux, Linux PPC,

Debian Linux,

Infomagic Linux, Softlanding Linux System Release (SLS) v.v Các thông tin và tài nguyên (resource) của Linux có thể tìm thấy

ở khắp nơi trên

Internet và hầu hết đều free Thêm vào đó có khá nhiều các trình ứng dụng cũng

như tiện ích dành cho Linux dễ dàng được tìm thấy trên Internet

2 Các tính năng & service cơ bản của Linux:

Như đã trình bày, Linux là một hệ điều hành với đầy đủ các tính năng của Unix

Vì thế nó có khả năng đóng vai trò của một Internet/Intranet Server (Web Server,

Ftp Server, Mail Server, DNS Server, v.v ), Database Server, File Server

v.v hoặc làm việc như một Unix workstation (máy trạm Unix) Như vậy, Linux là một hệ điều hành mạng với đầy đủ các tính năng của nó

Cũng như Unix, Linux cũng tuân theo chuẩn POSIX (Portable Operating System

Interface for Computer Enviroment) mặc dù nó vẫn chưa được tổ chức này công

nhận

Các service được cung cấp bởi Linux bao gồm hầu hết các

service của Unix như:

UUCP (Unix to Unix Copy Protocol): Giao thức hỗ trợ service truyền thông giữa

các host Unix

TCP/IP IP (Transmission Control Protocol/Internet Protocol): Giao thức cung cấp

service truyền thông trên mạng Internet

X Protocol: Giao thức để xử lý GUI (Graphics User Interface) trên

X Window

PPP: (Point to Point Protocol): Giao thức dùng để truyền thông trực tiếp giữa

Trang 4

hai máy.

Samba: Giao thức cung cấp File service tương tự File Service của Windows NT cho

phép các windows client truy xuất hệ thống file trên Linux

Server

DNS (Domain Name Service): Dịch vụ quản lý tên host trên mạng Internet/Intranet

v.v

TCP/IP là hệ thống dịch vụ mạng chính của Linux

Tuy nhiên các service trên chỉ là các service tùy chọn, nghĩa là

hệ thống có thể

có hay không có các service trên vẫn hoạt động tốt Các service này chỉ làm cho

Unix/Linux tăng thêm khả năng và sức mạnh của mình mà thôi Chúng ta sẽ xem xét chi tiết từng service trên ở trong các phần sau

Còn các service được mô tả sau đây là các service quan trọng của Unix/Linux

Điều đó có nghĩa là nếu không có các service này, hệ thống có thể không hoạt

động được

Do vậy, một số trong chúng sẽ được cài đặt một cách tự động khi chúng ta thiết

lập một hệ thống Unix/Linux

a Init:

Dịch vụ đơn lẻ quan trọng nhất trong hệ thống Unix/Linux là init

Nó được khởi

động như là tiến trình đầu tiên trong mọi hệ thống Unix/Linux Đây là tiến

trình dùng để khởi động (boot) hệ thống Nó sẽ kiểm tra và mount filesystems vào

hệ thống, khởi động các daemon

Nó cung cấp các khái niệm như single user mode (chế độ hoạt động như hệ người

dùng đơn lẻ), multiuser mode (chế độ đa người dùng) Một số tài liệu còn gọi là

run level (cấp độ hoạt động)

Khi hệ thống kết thúc hoạt động (shutdown), init sẽ dọn dẹp (dừng mọi triến

trình đang hoạt động, umount filesystems, v.v )

* init 0: Shutdown hệ thống (halt)

* init 1: Admin single user mode: chỉ có root account có thể login

ở mode này

* init 2: Multi user mode, không có hỗ trợ NFS

* init 3: Multi user, có hỗ trợ NFS: cho phép chia sẻ hệ thống file với các hệ

thống khác trong mạng

* int 4: Không dùng

* int 5: Multi user, hỗ trợ graphic mode (X11)

* init 6: reboot (tái khởi động) hệ thống

Trang 5

Lưu ý: không được thiết lập mặc định (default) ở chế độ này.

* s (hoặc S): Single user, sử dụng hệ thống như hệ thống cá nhân riêng biệt

(Tại một thời điểm chỉ có một và chỉ một user có quyền đăng nhập hệ thống)

b Login:

Dịch vụ này cho phép user login (đăng nhập) vào hệ thống và khai thác các tài

nguyên của hệ thống – trong quyền hạn mà user này được cấp

c Graphic User Interface (GUI):

Đây chính là X Window service Nó cung cấp khả năng giao tiếp

đồ họa với người

sử dụng

Nếu không cài đặt X service, một số các chương trình ứng dụng

có xử lý đồ họa sẽ

không thể chạy

d Network:

Dịch vụ này cho phép user có thể login vào hệ thống từ xa

e Network File System (NFS):

Đây là dịch vụ được hãng SUN phát triển Nó cho phép các tác

vụ về file trong

một hệ thống mạng là trong suốt (transparency) đối với user Nghĩa là, các user thao tác với các tập tin trên máy khác nhau trong cùng hệ

thống mạng như đang thao tác trên máy đơn duy nhất

Tóm lại:

Cũng như Unix, Linux là một hệ điều hành với các khả năng multiproccessing (đa

nhiệm), multitasking (đa tác vụ), multiuser (đa người dùng) sau hơn mười năm

phát triển và hiệu chỉnh bởi hàng nghìn lập trình viên trên thế giới đã chứng tỏ

được là một hệ điều hành uyển chuyển (có thể hoạt động trên nhiều platform),

đáng tin cậy và ổn định

II File System (Hệ thống tập tin) của Linux:

Hệ thống tập tin Linux được tổ chức theo dạng tree (cây) Có một vị trí khởi

điểm, gọi là root (gốc)

Bất kỳ một hệ thống Unix/Linux nào cũng có một thư mục đặc biệt gọi là thư mục

gốc (root directory) ký hiệu là dấu slash (“/”) Đây là điểm bắt đầu để gắn

(mount point) tất cả các phần tử còn lại như hệ thống disks, partions, CDROM

v.v vào hệ thống Linux/Unix Tất cả các thư mục và tập tin khác, kể cả system

files (các tập tin hệ thống) và system directories (các thư mục

hệ thống) cũng

Trang 6

chỉ là cấp con của root.

Khi hệ thống Linux/Unix khởi động (startup), thông qua tiến trình init - nó sẽ

tự động mount (gắn) các system files và system directories vào root (/)

Hệ thống files của Linux hiện đang sử dụng là Ext2 FS (Second Extended

Filesystem) Nó cung một hệ thống tập tin UNIX chuẩn cùng với các tính năng mở

rộng

Ext2fs được phát triển cho các hệ thống nhân Linux (Linux kernel) với các khả

năng uyển chuyển

Ext2fs có khả năng quản trị các hệ thống tập tin trên các phân vùng rất lớn (big

partion)

Ext2fs cung cấp tên tập tin dài (long file name) Đây là khả năng của Linux mà

trên các hệ thống UNIX chuẩn (standard UNIX) không hề cung cấp Tối đa một tên

tập tin là 255 ký tự và có thể có khoảng trắng (space)

Ext2fs cho phép truy xuất đến các hệ thống khác như FAT, VFAT (FAT32), MSDOS

trên windows 9.x và DOS một cách dễ dàng

Ngược lại, chúng ta có thể cũng có thể từ các hệ thống FAT, NTFS, BeOS, OS/2,

MacOS truy xuất đến Ext2fs thông qua các trình tiện ích như LTOOLS

Và còn nhiều khả năng khác như có thể dễ dàng thêm vào các khả năng cho Ext2fs

1 System directories:

Thông thường, sau khi thiết lập hệ thống Linux với các default parameters

(option mặc định), ta sẽ có được hình ảnh các thư mục hệ thống như sau:

· Root filesystem được xác định trên mỗi máy Đó chính là hệ thống cây thư mục

cục bộ (Local filesystem) bao gồm local disks, CDROM, floppy disks v.v

Root directory không hề chứa bất kỳ file nào, ngoại trừ có thể có ảnh để khởi

động hệ thống; thông thường là /vmlinuz

Cho đến khi hệ thống được boot; init proccess sẽ mount

filesystem vào root

directory

Tất cả các thư mục còn lại là thư mục con (subdirectory) của root directory

Ký hiệu root directory là /

· /bin: Thư mục này chứa tất cả các lệnh cần thiết được dùng bởi

Trang 7

· /sbin: Tương tự như bin; tuy nhiên các lệnh ở đây thường không được dùng bởi

các users thông thường (normal users); mặc dù họ có thể sử dụng chúng nếu cần

thiết và nếu được phép (có quyền sử dụng)

· /etc: Lưu giữ các file cấu hình (configuration files) của máy cục

bộ (local

host)

· /root: home directory cho root user

· /lib: Cất giữ các thư viện cần thiết cho các chương trình trên root

filesystem

· /lib/modules: Lưu giữ các kernel modules, cần thiết cho việc khởi động hệ

thống (boot system)

· /dev: Các file thiết bị (device files)

Lưu ý: Linux/Unix luôn coi tất cả các thiết bị là file Điều này sẽ được trình

bày chi tiết trong phần dành cho các nhà quản trị hệ thống

· /tmp: Nơi lưu chứa các file tạm thời của các chương trình đang thực thi

Lưu ý: Các chương trình chạy sau khi bootup (khởi động hệ thống) sẽ sử dụng

/var/tmp làm nơi lưu chứa tạm

· /boot: Các file được sử dụng để khởi động

Ví dụ: LILO (LInux LOader) và các ảnh nhân (kernel images) được lưu trữ tại đây

· /mnt: Nơi dùng để mount (gắn) các thiết bị lưu trữ tháo ráp được Chẳng hạn

như CDROM, floopy disks, v.v

Chỉ có người quản trị hệ thống (Administrator) thông thường là root user mới có

quyền mount/umout các thiết bị trên

· /usr: Thư mục này khá lớn Hầu hết các chương trình dành cho user được lưu trữ

tại đây

· /var: Chứa các dữ liệu thay đổi khi hệ thống hoạt động

· /proc: Hệ thống filesystem ảo Nó không hề tồn tại trên disk Sự thật, kernel

tạo ra nó trong bộ nhớ Nó được sử dụng để cung cấp các thông tin về hệ thống

chẳng hạn như thông tin về các proccess

· /home: Nơi dành cho các user Bao gồm cả các tập tin cần thiết

để user login

vào hệ thống; cũng như cho phép user lưu trữ data (dữ liệu) lên disk Trong thư

mục /home, mỗi user sẽ có một thư mục mang đúng tên của user_name (default) Các

user chỉ có quyền lưu trữ, xóa, thay đổi các file/subdirectory

Trang 8

trong thư mục này

(trừ root user) Riêng root user thì thư mục này là /root

2 Các loại file trong Unix/Linux:

Trong Unix/Linux có bốn dạng file cơ bản: file thông thường (ordinary file), thư

mục (directory), file liên kết (link file) và các file đặc biệt (special file)

· File thông thường: Là các file dùng để lưu trữ các dữ liệu dạng text (văn bản)

hay binary (thường là các file thi hành được – excuted file hay các file thư

viện – lib file)

Thí dụ: file lưu trữ mã nguồn của một chương trình được lưu trữ ở dạng text:

hello.c

· Thư mục: Đây là một file khá đặc biệt, nó được hiểu như là pointer (con trỏ)

để trỏ đến các file hay các thư mục con (sub directory) của nó

· File Liên kết: còn gọi là ordinary link Link file không phải một file thật

sự Đơn giản nó chỉ là một pointer trỏ đến một file/directory nào

đó Và như

vậy, user có thể truy xuất đến file/directory này thông qua các link file như

đang truy xuất trực tiếp đến file/directory đó Và như thế,

Linux/Unix đã tạo ra

thêm một khái niệm – đó là một file có thể có nhiều thư mục cha khác nhau Đây

là khái niệm không có trên các hệ thống khác như Windows NT hay Windows 9.x Tuy

nhiên, Linux xem các ordinary link file và original file là như nhau, nghĩa là

hệ thống xem các link file như là các original file

Có một loại liên kết khác, được gọi là simbolic link Simbolic link

có thể link

đến các file/directory trong cùng filesystem, cùng disk, hoặc một file ở trên

một máy khác, các simbolic link và original file không ngang hàng với nhau

Có sự khác biệt giữa ordinary link và simbolic link:

-Nếu ta xóa link file của ordinary link thì dữ liệu thật sự (actual data) và các

link file khác vẫn còn nguyên (nếu không bị xóa) cho đến khi link file cuối cùng

bị xóa

-Còn nếu ta chỉ cần xóa original file của simbolic link thì lập tức file được

link cùng với các link file khác cũng bị xóa theo

· File đặc biệt: Mọi thiết bị vật lý, bao gồm disk, printers, CDROM, v.v đều

Trang 9

được Unix/Linux xem như các file Và các file này được gọi là special files

Hầu hết – không phải tất cả – các thiết bị được lưu giữ ở trong thư mục /dev

Thí dụ: /dev/cdrom là file quản lý CDROM Users sẽ config và dùng CDROM thông

qua file này

Có hai loại thiết bị trong Linux/Unix: character-special devices (thí dụ:

printer) và block-special devices (thí dụ: disk)

Tuy nhiên, về phía user chúng ta có thể không cần quan tâm đến việc thiết bị nào

thuộc loại nào Hệ thống sẽ tự lo điều này

3 File structure:

· File name (tên file): Tên file thường dùng các chữ cái, chữ số và dấu gạch

dưới (underscore)

Có thể dùng dấu phẩy (comma) hay dấu chấm (period) Tuy nhiên, tên file không

thể bắt đầu với dấu chấm “.” hay dấu phẩy “,”; ngoại trừ một số trường hợp đặc

biệt

Tên file có thể dài đến 256 ký tự, bao gồm cả phần mở rộng (extension of file

name) Tuy nhiên Linux/Unix chỉ quản lý thật sự là 32 (hoặc 64)

ký tự đầu tiên

mà thôi Nghĩa là nếu hai file chỉ khác nhau kể từ ký tự thứ 33 (hay 65) thì

Linux/Unix xem như chúng bị trùng tên Các ký tự mở rộng này chỉ dành cho user

Có một số các file khởi tạo (initialization) mà nó sẽ nắm giữ các lệnh cấu hình

shell, được gọi là các dot file được bắt đầu tên file với dấu chấm Thí dụ:

Các tên file sau là hợp lệ:

myfile.txt

yourfile.cpp

yourfile.cpp.old

Các tên file dưới đây là bất hợp lệ:

;hang

*nhuan

?Linh

· Path name: là tên đầy đủ của một file, còn gọi là fullname Fullname chỉ ra

một lộ trình (path) đầy đủ để có thể truy xuất đến tập tin đó

Trang 10

Thí dụ: để chỉ ra file tho.txt trong thư mục hang, thư mục hang là thư mục con

của home và home là thư mục con của root Ta có tên đầy đủ của tho.txt như sau:

/home/hang/tho.txt

Để phân cách giữa các thư mục với nhau Linux/Unix sử dụng dấu slash “/” (trùng

với ký hiệu của root)

Có hai dạng path name: đường dẫn tuyệt đối (absolute path name) và đường dẫn

tương đối (relative path name)

Absolute path name chính là full name Nghĩa là tên một

file/subdirectory bắt

đầu từ /

Relative path name: tên một file/subdirectory bắt đầu từ thư mục hiện hành

(current working directory)

Thí dụ: thư mục hiện hành là /home Relative path name của tho.txt là

hang/tho.txt

· File permission: quyền truy cập của file/directory trong

Linux/Unix

Có tất cả ba loại quyền truy xuất: read (đọc), write (ghi/xóa) và excute (thực

thi) cho ba nhóm khác nhau: owner (chủ sở hữu của

file/directory), group (những

user cùng nhóm với chủ sở hữu file/dir) và other (các user còn lại)

Ngoài owner, thì việc thiết lập các quyền này chỉ có thể thay đổi bởi root user

Những user khác, nếu không được phép của ower sẽ không thể thay đổi các quyền

trên

Ký hiệu của quyền read là “r”, write là “w” và excute là “x”, nếu không được set

permission là ký hiệu là “-”

4 Một vài khái niệm khác của file/directory:

· Thư mục hiện hành (current working directory): Còn gọi là thư mục đang làm

việc Là thư mục mà user đang làm việc trên đó Mặc định, khi user đăng nhập vào

hệ thống, working directory sẽ là /home/username

Thí dụ: Nếu bạn login vào hệ thống với username là hang Thì

Ngày đăng: 03/12/2017, 01:05

w