Ngoài ra, Linux lại có độ an toàn cao, thích hợp cho quản trị mạng, chạy thống nhất trên hệ thống phần cứng, tích hợp nhiều phần mềm tiện ích,… Tuy nhiên với những người quen sử dụng Win
Trang 1Lời mở đầu
Có lẽ bạn đã quá quen với hệ điều hành Windows cũng như quá quen lập trình trên hệ điều hành này Windows có thể nói là một HĐH khá "hoàn hảo", dễ sử dụng, với rất nhiều tiện ích đáp ứng gần như mọi yêu cầu của người dùng Vậy thì tại sao chúng ta lại phải tìm đến một HĐH mới như Linux ?
Trong bối cảnh nền kinh tế thế giới đang có xu hướng toàn cầu hóa như hiện nay thì đây là một vấn đề nổi cộm Ở Việt Nam, vấn đề vi phạm bản quyền phần mềm là rất phổ biến (nước ta dẫn đầu thế giới về số lượng phần mềm dùng không
có bản quyền) Theo tổ chức BSA&IDC thì chúng ta xếp thứ 10/108 nước về vi phạm bản quyền CNTT, trong khi đó năm 2007 chúng ta đứng thứ 11 vừa thoát ra khỏi 9 nước có tỷ lệ vi phạm bản quyền CNTT nhiều nhất ở năm 2005
Trước tình hình đó, việc tự xây dựng cho mình những phần mềm thương hiệu Việt Nam đang trở nên một vấn đề cấp bách Phần mềm mã nguồn mở được xem là một giải pháp hữu hiệu nhất cho bài toán bản quyền ở nước ta hiện nay Phần mềm mã nguồn mở một mặt có chi phí rẻ hơn so với các phần mềm truyền thống, mặt khác rất dễ nâng cấp, cải tiến (do cung cấp mã nguồn kèm theo) Đặc biệt là tính ổn định của hệ thống, tính đa nhiệm và đa người dùng Chính vì thế, phát triển phần mềm mã nguồn mở chúng ta có thể tận dụng được những công nghệ tiên tiến có sẵn trên thế giới, cải tiến cho phù hợp với người Việt Nam, tiết kiệm được rất nhiều công sức so với việc phát triển từ đầu Linux là một HĐH mã nguồn
mở như vậy! Ngoài ra, Linux lại có độ an toàn cao, thích hợp cho quản trị mạng, chạy thống nhất trên hệ thống phần cứng, tích hợp nhiều phần mềm tiện ích,…
Tuy nhiên với những người quen sử dụng Windows thì việc tiếp xúc với một
hệ điều hành mới không khỏi bỡ ngỡ, khó khăn, nhất là giao diện “Command Line”
Vì thế, mục tiêu đề tài của tôi là giới thiệu một cách khái quát về hệ điều hành Linux, cụ thể qua phiên bản OpenSUSE có khả năng hỗ trợ tốt cho máy chủ
và giới thiệu về lập trình Shell trên Linux để những người yêu thích lập trình có cái nhìn cơ bản về nó
Bố cục khóa luận như sau:
Chương I: Tổng quan về hệ điều hành Linux
Chương II: OpenSUSE
Chương III: Lập trình Shell
Trang 2Chương I Hệ điều hành Unix, Linux
I Lịch sử phát triển của Unix, Linux
1 Unix
Vào những năm 70 của thế kỷ này, thế giới đã chứng kiến một trào lưu phát triển rực rỡ của tin học xung quanh HĐH UNIX Trong khoảng thời gian đó, hầu như toàn bộ các trường đại học trên thế giới, khắp nơi đều nở rộ phong trào học, nghiên cứu và phát triển HĐH UNIX Vì sao UNIX có mặt khắp mọi nơi như vậy?
Vì UNIX là HĐH miễn phí với mã nguồn mở duy nhất trong thời gian đó Có thể nói sự phát triển của HĐH UNIX gắn liền với sự phát triển của khoa học và CNTT trong suốt những năm 70 và kéo dài cho đến tận ngày hôm nay Hệ thống mạng máy tính đã phát triển rất nhanh bắt đầu từ những năm 70 với các mạng riêng cho UNIX như USENET, CSNET, BITNET, EARN, NSFNET và rất nhiều các mạng khác đã xuất hiện trên quy mô toàn cầu, liên kết thế giới UNIX thành một hệ thống thống nhất
Sau khi chiếc máy PC ra đời và đặc biệt khi các hệ điều hành cho PC phát triển rầm rộ thì người ta cảm thấy sự đi xuống của phong trào UNIX hóa như đã nói
ở trên Cảm tưởng rằng UNIX đã lép vế và bắt đầu đi xuống nhường chỗ cho những
hệ điều hành PC mới nổi lên như DOS, OS/2, Netware, Windows NT, Thế giới UNIX xưa bây giờ chỉ còn trong các máy tính lớn hoặc trong các trường đại học
Tuy nhiên phong trào “UNIX” đã lại nở rộ lần thứ 2, lần này nó xuất hiện một cách bài bản hơn, nhanh hơn, quyết liệt hơn, bắt đầu từ khi LINUX được tung
ra lần đầu tiên vào năm 1991 bởi Linus Torvalds Thế giới UNIX ngày hôm nay với LINUX làm trung tâm đã và đang chứng kiến một sự phát triển nhanh nhất trong lịch sử phát triển của phần mềm nói chung và hệ điều hành nói riêng Hàng chục triệu chuyên gia lập trình, và cả những người không cần có chuyên môn tin học, hàng triệu website trên toàn thế giới tham gia vào phong trào “Linux hóa” có quy mô và tốc độ phát triển chóng mặt trên toàn thế giới Chưa bao giờ đội ngũ những người lập trình và phát triển hệ điều hành LINUX lại mạnh, đoàn kết, nhất trí và đông đảo như hiện nay
Giai đoạn phát triển thứ hai của UNIX, được gọi là LINUX/GNU đã và đang được toàn thế giới quan tâm Sự quan tâm này không dừng lại ở phía các nhà lập trình, các công ty tin học mà chính phủ của các quốc gia cũng đã ra trận Một loạt
Trang 3các quốc gia đã chính thức tham gia phong trào nhằm phát triển một HĐH của riêng cho quốc gia mình.
2 Linux
Linux là HĐH đa người dùng, nghĩa là nhiều người có thể cùng đăng nhập
và cùng lúc sử dụng hệ thống Mặc dù ưu điểm này không mấy nổi bật đối với một máy PC ở nhà, song nếu trong các công ty hoặc trường đại học, nhiều người cùng lúc có thể sử dùng chung tài nguyên, từ đó giảm chi phí đầu tư cho máy móc Ngay
cả khi ở gia đình, chúng ta cũng có thể vào hệ thống nhiều account khác nhau qua các đầu cuối ảo (virtual terminal ) Cũng từ môi trường gia đình, bạn có thể tự tổ chức dịch vụ mạng riêng của mình bằng cách sử dụng Linux và nhiều modem Linux cung cấp cho chúng ta một cơ hội học tập mà hiện nay chưa có hệ điều hành nào có thể sánh được Có Linux, ta có một hệ điều hành đầy đủ bao gồm cả mã nguồn Trong khi đó các hệ điều hành thương mại khác không bao giờ tiết lộ mã nguồn
Năm 1991, Linus Torvalds, sinh viên trường đại học tổng hợp Helsinki Phần Lan bắt đầu xem xét Minix, một phiên bản của UNIX làm ra với mục đích nghiên cứu cách tạo ra một hệ điều hành UNIX chạy trên PC với bộ vi sử lý Intel 80386
Ngày 25/8/1991, Linus cho ra version 0.01 và thông báo trên comp.os.minix
về dự định của mình về Linux
Tháng 1/1992, Linus cho ra phiên bản với shell và trình biên dịch C Linux không cần minix nữa để phiên dịch lại hệ điều hành của mình, Linus đã đặt tên hệ điều hành của mình là Linux Năm 1994, phiên bản chính thức 1.0 được phát hành Linux là một hệ điều hành dạng UNIX chạy trên máy PC với bộ điều khiển trung tâm Intel 80386 trở lên, hay các bộ vi xử lý trung tâm tương thích AMD, Cyrix Linux ngày nay có thể chạy trên máy Macintosh hoặc SUN Space Linux thoả mãn chuẩn POSIX.1
Linux được viết toàn bộ từ con số không, tức là không sử dụng một dòng lệnh nào của UNIX, tuy nhiên hoạt động của Linux hoàn toàn dựa trên nguyên tắc điều hành UNIX Vì vậy một người nắm được UNIX sẽ nắm được Linux Linux là
hệ điều hành phát hành miễn phí, phát triển trên mạng Internet, tựa UNIX và được
sử dụng trên máy tính cá nhân Linux đã phát triển nhanh chóng và trở lên phổ biến trong thời gian ngắn Nó nhanh chóng được nhiều người sử dụng vì một trong
Trang 4những lý do không phải trả tiền bản quyền, mọi người có thể dễ dàng download từ Internet hay mua tại các hiệu bán CD.
Linux là hệ điều hành có hệ năng cao, trong tất cả các máy tính có cấu hình cao nhất hay thấp nhất Hệ điều hành này hỗ trợ các máy tính sử dụng 32 cũng như
64 bit và rất nhiều phần mềm khác nhau
Quá trình phát triển Linux được tăng tốc qua sự phát triển chương trình GNU Đó là một chương trình phát triển các UNIX có khả năng chạy trên nhiều nền tảng khác nhau Đến cuối năm 2001 phiên bản mới nhất của Linux kernel là 2.4.2-2 có khả năng điều khiển các máy đa bộ vi xử lý và rất nhiều các tính năng khác
II Một số khái niệm
1 Nhân Linux (Kernel)
Nhân (còn gọi là hệ lõi) của Linux, là một hệ các modun chương trình có vai trò điều khiển các thành phần của máy tính, phân phối các tài nguyên cho người dùng Nhân chính là cầu nối giữa chương trình ứng dụng và phần cứng Người dùng sử dụng bàn phím gõ nội dung yêu cầu của mình và yêu cầu đó được nhân gửi tới Shell; Shell phân tích lệnh và gọi các chương trình tương ứng với lệnh để thực hiện Nó cung cấp những chức năng cơ bản nhất để hệ điều hành hoạt động như quản lý bộ nhớ, quản lý file, quản lý các thiết bị nhập/xuất
Nhân của Linux gồm 5 hệ thống nhỏ:
1/ Bộ phân thời cho tiến trình (Process Scheduler-SCHED)
Cơ bản PC vẫn là một hệ thống xử lý đơn tức là chỉ có 1 lệnh thực thi tại một thời điểm Tuy nhiên các hệ điều hành đa nhiệm (multi-task) như Windows, Linux,… đều cho phép nhiều chương trình chạy cùng một lúc Bằng cách chuyển quyền thực thi qua lại giữa các chương trình thật nhanh làm cho chúng ta có cảm giác các chương trình chạy cùng lúc với nhau Ví dụ bạn vừa gõ văn bản trên OpenOffice vừa nghe nhạc trên Amarok thì thật ra SCHED sẽ chạy OpenOffice 5,10 lệnh xong chuyển qua Amarok 5,10 lệnh rồi chuyển lại Việc này cực kì nhanh nên bạn không có cảm giác gì
2/ Bộ quản lý bộ nhớ (Memory Manager-MM)
Bộ nhớ qui ước (conventional memory) của PC chỉ có 640KB Do chương trình BIOS chỉ quản lý được tới FFFFF, mà vùng nhớ cao (từ A0000 trở lên) dùng
Trang 5để ánh xạ BIOS, video card memory và các thiết bị ngoại vi khác, vùng nhớ thấp
là từ 9FFFF trở xuống Ở chế độ bảo vệ của CPU 32bít đưa ra khái niệm bộ nhớ
ảo (virtual memory) Lúc này các tiến trình được cấp cho 4GB bộ nhớ ảo từ 00000000-FFFFFFFF Nhưng nhân sẽ giữ 1 bảng mô tả ánh xạ từng trang của bộ nhớ ảo với bộ nhớ vật lý Bộ nhớ vật lý bây giờ bao gồm cả RAM và swap disk space Tất nhiên là 4GB bộ nhớ ảo không bao giờ được ánh xạ hết (4GB là dùng chung cho tất cả tất cả các tiến trình) Phần lớn mặc dù có đánh địa chỉ, nhưng chỉ khi đọc hoặc ghi lên đó thì nhân mới định vị từ bộ nhớ vật lý
3/ Hệ thống file ảo (Virtual File System – VFS)
Hệ thống tệp không chỉ cung cấp truy xuất đến hệ thống file trên đĩa cứng
mà còn cho tất cả các thiết bị ngoại vi Ý tưởng này bắt nguồn từ Unix và các hệ điều hành sau này điều thiết lập theo hướng đó Trong DOS dùng copy xxx con để
in file xxx ra màn hình Khi đó “con “ là filehandler cho thiết bị xuất chuẩn (console)
4/ Giao diện mạng (Network Interface-NET)
Linux xây dựng sẵn TCP/IP trong nhân Vì thế Linux dễ dàng kết nối các hệ thống khác qua mạng và có thể truy xuất mà không quan tâm đến các thiết bị và giao thức được sử dụng
5/ Bộ truyền thông nội bộ (Inter-process communication IPC)
Cung cấp các phương tiện truyền thông giữa các tiến trình trong cùng hệ thống Linux
lệnh đó (bởi Unix) Phương tiện đó gọi là Shell Từ khi ra đời, Unix đã có vài kiểu
Shell, đó là Bourne, C, Korn shell Thực ra shell làm gì? Toàn bộ mục đích của shell là để khởi động các tiến trình xử lý lệnh đưa vào: Yêu cầu đưa (dòng) lệnh vào, đọc đầu vào, thông dịch dòng lệnh đó, và tạo ra tiến trình để thực hiện lệnh đó Nói cách khác Shell quét dòng lệnh đưa vào máy tính, cấu hình môi trường thực thi
và tạo tiến trình để thực hiện lệnh
Trang 6Hình 1: Vị trí của Shell khi “thực hiện” lệnh của người dùng Shell dịch các lệnh nhập vào thành lời gọi hệ thống, chuyển các ký tự dẫn hướng >, >> hay | thành
dữ liệu di chuyển của các lệnh Đọc các biến môi trường để tìm ra thông tin thực thi lệnh
Như vậy, tìm hiểu Shell thực tế là học một ngôn ngữ lập trình, cho dù không phức tạp như C, hay một số ngôn ngữ khác, nhưng cũng phải trải qua những đòi hỏi cần thiết Trong Unix/Linux có các loại Shell khác nhau và có thể lựa chọn để dùng theo nhu cầu mà người dùng thấy phù hợp Hình 2 là mô tả tương tác giữa các Shell, chương trình ứng dụng, hệ X- window và nhân
Linux/Unix tách biệt các ứng dụng, lệnh gọi các hàm chức năng của nhân thành những đơn thể rất nhỏ (tiến trình) Tuy nhiên, nhiều lệnh của Linux có thể kết hợp lại với nhau để tạo nên chức năng tổng hợp rất mạnh mẽ Ví dụ:
$ ls –al | more
lệnh trên được kết hợp bằng hai lệnh, ls liệt kê toàn bộ danh sách tệp và thư mục trên đĩa ra màn hình, nếu danh sách quá dài, ls chuyển dữ liệu kết xuất cho lệnh more xử lý hiện thị kết quả thành từng trang trên màn hình Linux có cách kết hợp
dữ liệu kết xuất của các lệnh với nhau thông qua cơ chế chuyển tiếp (redirect) và ống dẫn (pipe)
Kết hợp các lệnh với nhau chỉ bằng dòng lệnh không là chưa đủ Nếu muốn nhiều lệnh thực hiện đồng thời với nhau và tùy vào từng điều kiện, kết xuất của lệnh mà có những ứng xử thích hợp Lúc đó sẽ dùng đến những cấu trúc rẽ nhánh
như if, case Trường hợp bạn muốn thực hiện các thao tác vòng lặp, phải dùng các
Trang 7lệnh như for, while Shell chính là các trình diễn dịch cung cấp cho người dùng
khả năng này Hầu hết các Shell trong Unix/Linux sử dụng một ngôn ngữ gần giống với C
Hệ thống cung cấp cho người dùng rất nhiều chương trình Shell Mỗi shell
có một số tiện ích như hỗ trợ chế độ gõ phím, ghi nhớ lệnh Kết hợp các tiện ích của shell để tạo một chương trình chạy được, thì một chương trình như vậy được lưu dưới dạng một tệp, gọi là tệp kịch bản (script) Viết được một tệp Script thực chất là lập trình theo Shell
Các Shell trên Unix/Linux:
Sh (Bourne) shell nguyên thủy áp dụng cho Unix
Csh, tcsh và zsh dòng shell sử dụng cấu trúc lệnh của C làm ngôn ngữ
kịch bản Được tạo ra đầu tiên bởi Boy Joy Là shell thông dụng thứ hai sau bash shell
Bash Shell chủ yếu của Linux Ra đời từ dự án GNU bash
(viết tắt của Bourne Again Shell) có lợi điểm là mã nguồn được công bố rỗng rãi
rc Shell mở rộng của csh với nhiều tương thích của ngôn
ngữ C hơn rc cũng ra đời từ dự án GNU
Shell chuẩn thường được các nhà phân phối Linux sử dụng hiện nay là bash Khi cài đặt Linux, trình cài đặt thường mặc định bash là shell khởi động Có thể tìm thấy chương trình Shell này trong thư mục /bin với tên chương trình là bash bash đôi khi là một chương trình nhị phân đôi khi là một script gọi đến chương trình nhị phân khác Có thể dùng lệnh file để xem bash là một tập tin nhị phân hay
script như sau:
$ file/ bin/ bash
/ bin/bash: ELF 32 –bit LSB executable Intel 80386
nếu kết quả kết xuất là dạng ELF (Executable and Linking Format) thì có nghĩa là bash là chương trình nhị phân
Tuy bash là shell sử dụng phổ biến trong Linux, nhưng các ví dụ về lập trình
sẽ được sử dụng ngôn ngữ và lệnh của shell sh vì sh là shell nguyên thủy, có thể
chạy trên cả Unix Bằng lệnh file ta sẽ thấy trong hầu hết các bản Linux hiện nay sh
chỉ là liên kết đến bash mà thôi Ví dụ:
$ file/ bin/ sh
Trang 8/ bin/sh: symbolic link to bash
điều này có nghĩa là bash hoàn toàn có thể diễn dịch và điều khiển các lệnh của shell sh
3 Tiến trình
* Định nghĩa tiến trình: Tiến trình (process) là một chương trình đơn chạy trên không gian địa chỉ ảo của nó Cần phân biệt tiến trình với lệnh vì một dòng lệnh trên shell có thể sinh ra nhiều tiến trình
Ví dụ: dòng lệnh sau nnroff -man ps.1
grep kill | more user sinh ra 3 tiến trình khác nhau.
Các loại tiến trình chính trên Linux
- Tiến trình với đối thoại (Interactive processes) : là tiến trình khởi động và quản
lý bởi shell, kể cả tiến trình foreground hoặc background
- Tiến trình batch (Batch processes) : Tiến trình không gắn liền đến bàn điều khiển (terminal) và được nằm trong hàng đợi để lần lượt thực hiện
- Tiến trình ẩn trên bộ nhớ - (Daemon process) Là các tiến trình chạy dưới nền Đa
số các chương trình server cho các dịch vụ chạy theo phương thức này Đây là các chương trình sau khi được gọi lên bộ nhớ, đợi thụ động các yêu cầu chương trình khách (client) để trả lời sau các cổng xác định (cổng là khái niệm gắn liền với giao thức TCP/IP BSD socket) Hầu hết các dịch vụ trên Internet như mail, Web, DNS
… chạy theo nguyên tắc này Các chương trình được gọi là các chương trình daemon và tên của nó thường kết thúc bằng ký tự “d” như named, inted
3.1 Kiểm tra tiến trình
Cách đơn giản nhất để kiểm tra hệ thống tiến trình đang chạy là sử dụng lệnh
ps (process status) Lệnh ps có nhiều tùy chọn và phụ thuộc một cách mặc định vào
người login vào hệ thống
$ ps
PID TTY STAT TIME COMMAND
41 v01 S 0:00 -bash
134 v01 R 0:00 ps
* Lệnh ps : Để hiển thị tất cả các process, ta có thể sử dụng lệnh ps –a Một người
sử dụng hệ thống bình thường có thể thấy tất cả các tiến trình, nhưng chỉ có thể điều khiển được các tiến trình của mình tạo ra Chỉ có superuser mới có quyền điều
khiển tất cả các tiến trình của hệ thống Linux và của người khác Lệnh ps –ax cho
Trang 9phép hiển thị tất cả các tiến trình, ngay cả những tiến trình không gắn liền đến có bàn điều khiển (tty – teletypewriter) Chúng ta có thể coi các tiến trình đang chạy
cùng với dòng lệnh đầy đủ để khởi động tiến trình này bằng ps –axl
3.2 Dừng một tiến trình- kill
Trong nhiều trường hợp, một tiến trình có thể bị treo, một chương trình server cần nhận cấu hình mới, card mạng cần thay đổi địa chỉ IP, khi đó chúng ta
phải dừng tiến trình đang có vấn đề Linux có lệnh kill để thực hiện các công việc
này Trước tiên bạn cần phải biết PID (Process Identifier - số hiệu tiến trình) của
tiến trình cần dừng thông qua lệnh ps Chỉ có super-user mới có quyền dừng tất cả
các tiến trình, còn user chỉ được dừng các tiến trình của mình
* Lệnh kill :
kill -9 PID_của_ tiến_trình : Tham số –9 là gửi tín hiệu dừng không điều
kiện chương trình Chú ý nếu bạn đăng nhập vào hệ thống như root, nhập số PID chính xác nếu không bạn có thể dừng một tiến trình khác
Một tiến trình có thể sinh ra các tiến trình con trong quá trình hoạt động của mình Nếu chúng ta dừng tiến trình cha, các tiến trình con cũng sẽ dừng theo, nhưng không tức thì Vì vậy phải đợi một khoảng thời gian và sau đó kiểm tra lại xem tất cả các tiến trình con có dừng đúng hay không Trong một số hữu hạn các trường hợp, tiến trình có lỗi nặng không dừng được, phương pháp cuối cùng là khởi động lại máy
3.3 Hoạt động của tiến trình
* Lệnh Top : Hiển thị sự hoạt động của các tiến trình, đặc biệt là các thông tin về
tài nguyên hệ thống cũng như việc sử dụng tài nguyên đó của từng tiến trình Với
lệnh đơn giản top, ta sẽ có
top -14:44:52 up 3:12, 1 user, load average: 0.11, 0.18, 0.26
Tasks: 111 total, 3 running, 108 sleeping, 0 stopped, 0 zombile
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 907064k total, 623316k used, 283748k free, 39580k buffers
Swap: 2097140k total 0k used, 2097140k free, 419188k cached
Số % máy rảnh (id - viết tắt idle) in đậm trên là rất quan trọng Một máy rảnh dưới
50% là một máy quá tải và cần được xem xét Lệnh top còn cho phép theo dõi xem
có tiến trình nào chiếm quá nhiều thời gian CPU cũng như truy cập ổ đĩa Ngoài ra, một số lệnh khác như vmstat mpstat, sar, iostat cũng cho phép xem xét với các mục đích khác nhau hoạt động của máy chủ
Trang 104 Cấu trúc thư mục
Hệ thống tập tin của Linux được tổ chức theo một hệ thống phân cấp Bậc cao nhất của hệ thống tập tin là thư mục gốc, được ký hiệu bằng vạch chéo “/” (root directory) Đối với các hệ điều hành Linux tất các thiết bị kết nối vào máy tính đều được nhận ra như các tập tin, kể cả những linh kiện như ổ đĩa cứng, các phân vùng đĩa cứng và các ổ USB Sau đây là danh sách các thư mục thông thường được nhìn thấy dưới thư mục gốc (/) :
/bin – Thư mục này chứa các file chương trình thực thi dạng nhị phân và các
chương trình khởi động của hệ thống
/boot – các tập tin cấu hình quá trình khởi động hệ thống.
/dev – Thư mục này chứa các file thiết bị Trong Linux các thiết bị phần cứng
(device) được xem như là các file Đĩa cứng và phân vùng cũng là file như hda1, hda2, hdb1, hdb2, đĩa mềm thì mang tên fd0… các file thiết bị này thường được đặt trong thư mục này
/etc – Thư mục này chứa các file cấu hình toàn cục của hệ thống Có thể có nhiều
thư mục con trong thư mục này nhưng nhìn chung chúng chứa các file script để khởi động hay phục vụ cho mục đích cấu hình chương trình trước khi chạy
/home – Thư mục này chứa các thư mục con đại diện cho mỗi user khi đăng nhập
Ở đây là thư viện làm việc thường xuyên của người dùng Khi người quản trị tạo tài khoản cho ta thì họ sẽ cấp một thư mục cùng tên với tên tài khoản nằm trong thư mục /home Ta có mọi quyền thao tác trên thư mục của mình mà không ảnh hưởng đến người dùng khác.(local users' home directories)
/lib – Thư mục này chứa các file thư viện so (shared object) hoặc a Các thư viện
C và liên kết động cần cho chương trình chạy và cho toàn hệ thống Thư mục này tương tự như thư mục SYSTEM32 của Windows.(system libraries)
/lost+found – Khi hệ hệ thống khởi động hoặc khi bạn chạy trình fsck, nếu tìm thấy
một chuỗi dữ liệu nào thất lạc trên đĩa cứng và không liên quan đến đến các tập tin, Linux sẽ gộp chúng lại và đặt trong thư mục này để nếu cần ta có thể đọc và giữ lại
dữ liệu bị mất
/media – thư mục này được dùng để tạo ra các tập tin gắn (loaded) tạm thời được
hệ thống tạo ra khi một thiết bị lưu động (removable media) được cắm vào như đĩa CDs, máy ảnh kỹ thuật số, USB, etc
Trang 11/mnt – thư mục này được dùng để gắn các hệ thống tập tin tạm thời (mounted
filesystems),v /opt – thư mục dùng để chứa các phần mềm ứng dụng đã được cài đặt thêm
/proc – đây là một thư mục đặc biệt linh động để lưu các thông tin về tình trạng của
hệ thống, đặc biệt về các tiến trình đang hoạt động,
/root – đây là thư mục gốc của người quản trị hệ thống.
/sbin – Thư mục này chứa các file thực thi của hệ thống dành cho người quản trị
(system binaries)
/sys – thư mục này lưu các tập tin của hệ thống (system files).
/tmp – thư mục này lưu lại các tập tin được tạo ra tạm thời (temporary files).
/usr – Thư mục này chứa rất nhiều thư mục con như /usr/bin, /usr/local… Đây cũng
là một trong những thư mục con quan trọng của hệ thống, bên trong thư mục con này (/usr/local) cũng chứa đầy đủ các thư mục con tương tự ngoài thư mục gốc như sbin, lib, bin…Thư mục này giống như thư mục C:\Program Files của Windows
/usr/src - Thư mục chứa mã nguồn kể cả mã nguồn của Linux.
/usr/man - Chứa tài liệu hướng dẫn (manual)
/var – thư mục này lưu lại các tập tin ghi các số liệu biến đổi như các tập tin dữ liệu
và các tập tin bản ghi (logs and databases)
Trang 125 Đặc điểm chính của hệ điều hành Linux
Linux hỗ trợ các tính năng cơ bản thường thấy trong các hệ điều hành Unix
và nhiều tính năng khác mà không hệ điều hành nào có được Linux cung cấp môi trường phát triển một cách đầy đủ bao gồm các thư viện chuẩn, các công cụ lập trình, trình biên dịch, debug … như ở các hệ điều hành Unix khác Hệ thống Linux trội hơn các hệ thống khác trên nhiều mặt, mà người dùng quan tâm như sự phát triển và hỗ trợ mạng Một số đặc điểm của Linux mà chúng ta quan tâm:
1 / Đa tiến trình
Là đặc tính cho phép người dùng thực hiện nhiều tiến trình đồng thời Ví dụ bạn vừa in, vừa soạn văn bản, vừa nghe nhạc … cùng một lúc Máy tính sử dụng chỉ một CPU nhưng chỉ xử lý được một mệnh lệnh, việc thực hiện cùng lúc nhiều công việc là giả tạo bằng cách làm việc xen kẽ và chuyển đổi trong thời gian nhanh
Do đó người dùng cứ ngỡ là thực hiện đồng thời
sẽ giúp cho hệ thống tiết kiệm được tài nguyên cũng như thời gian xử lý
4 / Sử dụng giao diện cửa sổ
Giao diện cửa sổ dùng trong hệ thống X Window, có giao diện như hệ điều hành Windows Với hệ thống này người làm việc rất thuận tiện khi làm việc trên hệ thống Hệ thống X Window hay còn gọi tắt là X được phát triển tại viện Massachusetts Institute Technology Nó được phát triền để tạo ra môi trường làm việc không phụ thuộc phần cứng X chạy dưới dạng client – server Hệ thống X Window hoạt động qua hai bộ phận :
+ Phần server còn gọi là X server
Trang 13+ Phần client còn được là X Window manager hay desktop environment.
X server sử dụng trong hầu hết các bản phân phối của Linux là Xfree86.Client thường sử dụng thường là KDE ( K Desktop Environment ) và GNOME (GNU Network Object Model Environment )
Dịch vụ Samba sử dụng tài nguyên đĩa, máy in với Windows Tên Samba xuất phát từ giao thức Server Message Block (SMB) mà Windows sử dụng để chia
sẻ tập tin và máy in Samba là chương trình sử dụng giao thức SMB chạy trên Linux Sử dụng Samba bạn có thể chia sẻ tập tin và máy in với các máy Windows
5 / Network information service (NIS)
Dịch vụ NIS cho phép chia sẻ các tập tin password và group trên mạng NIS
là một hệ thống cơ sở dữ liệu dạng client – server, chứa các thông tin của người dùng và dùng để chứng thực với người dùng NIS xuất phát từ hãng Sun Microsystems với tên là yellow pages
6/ Làm việc trên các phần cứng khác nhau
Mặc dù đầu tiên HĐH Linux được phát triển cho máy tính cá nhân (PC) trên nền tảng Intel 386/486,bây giờ nó có thể làm việc trên tất cả các bộ vi xử lý Intel bắt đầu từ 386 và kết thúc là các hệ thống nhiều bộ xử lý Pentium IV, bao gồm cả các bộ xử lý 64bit.Đồng thời Linux còn làm việc trên nhiều bộ xử lý tương thích với Intel của các nhà sản xuất khác, như AMD.Trong Internet còn có những thông báo nói rằng trên các bộ xử lý Athlon và Duron của AMD Linux còn làm việc tốt hơn so với trên Intel Ngoài ra còn có phiên bản Linux cho các bộ xử lý khác bao gồm ARM, DEC Alpha, SUN Sparc, M68000 và những bộ xử lý khác
7/ Các tiện ích sao lưu dữ liệu
Linux cung cấp các tiện ích như tar, cpio và dd để sao lưu back up dữ liệu Redhat Linux còn cung cấp tiện ích Backup and restore System Unix (BRU) cho phép tự động backup dữ liệu theo lịch
8 / Hỗ trợ nhiều ngôn ngữ lập trình.
Linux cung cấp một môi trường lập trình Unix đầy đủ bao gồm các thư viện chuẩn, các công cụ lập trình, trình biên dịch, debug chương trình mà bạn có thể tìm thấy trong các hệ điều hành Unix khác Ngôn ngữ chủ yếu sử dụng trong các hệ điều hành Unix là C và C++ Linux dùng trình biên dịch cho C và C++ là gcc, chương trình biên dịch này rất mạnh, hỗ trợ nhiều tính năng Ngoài C, Linux cũng
Trang 14cung cấp các trình biên dịch, thông dịch cho các ngôn ngữ khác như pascal, FORTRAN, Java…
6 Một số lệnh cơ bản trên Linux
Khi mở một shell, bạn cần đến tài khoản kích hoạt vào thư mục chủ (thông thường nằm trong /home/tên_người_dùng)
Chú ý rằng mỗi lệnh đều có nhiều tùy chọn riêng của mình Để xem các tùy
chọn cho một lệnh cụ thể, đơn giản bạn chỉ cần gõ "man <command>" (trong đó: man là từ khóa; command là tên lệnh) Một điểm quan trọng cần chú ý là trong các
hệ điều hành Linux, câu lệnh có phân biệt chữ hoa, chữ thường
Các lệnh về khởi tạo
rlogin dùng để điều khiển hoặc thao tác lệnh trên một máy khác
exit thoát khỏi hệ thống (Bourne - Shell)
logout thoát khỏi hệ thống C – Shell
id chỉ danh của người sử dụng
logname tên của người sử dụng login
newgrp chuyển người sử dụng sang một nhóm mới
passwd thay đổi password của người sử dụng
set xác định các biến môi trường
tty đặt các thông số terminal
uname tên của hệ thống (host)
who cho biết những ai đang thâm nhập hệ thống
Lệnh về hiển thị màn hình
echo hiển thị dòng chữ hay biến
setcolor đặt màu nền và chữ của màn hình
Lệnh về Desktop
bc Tính biểu thức số học
cal Máy tính cá nhân
Trang 15date Hiển thị và đặt ngày.
mail Gửi - nhận thư tín điện tử
mesg Cấm /cho phép hiển thị thông báo trên màn hình (bởi write/hello)
spell Kiểm tra lỗi chính tả
vi Soạn thảo văn bản
write/hello Cho phép gửi dòng thông báo đến những người sử dụng trong hệ thống
Lệnh về thư mục.
cp Sao chép hai thư mục
mkdir Tạo thư mục
rm Loại bỏ thư mục
pwd Trình bày thư mục hiện hành
Lệnh về tập tin
more Trình bày nội dung tập tin
cp Sao chép một hay nhiều tệp tin
find Tìm vị trí của tệp tin
grep Tìm vị trí của chuỗi ký tự trong tệp tin
ls Trình bày tên, thuộc tính của các tệp tin trong thư mục
mv Di chuyển/ đổi tên một tệp tin
sort Sắp thứ tự nội dung tệp tin
wc Đếm số từ trong tệp tin
cat Xem nội dung của tệp tin
vi Soạn thảo hoặc sửa nội dung tệp tin
Lệnh về quản lý tiến trình
kill Hủy bỏ một quá trình
Trang 16ps Trình bày tình trạng của các quá trình.
sleep Ngưng hoạt động một thời gian
Các lệnh về phân quyền.
chgrp Chuyển chủ quyền tệp tin, thư mục từ một nhóm sang một nhóm khác
chmod Thay đổi quyền sở hữu của tệp tin hay thư mục
chown Thay đổi người sở hữu tệp tin hay thư mục
Lệnh về kiểm soát in
cancel Ngừng in
lp In tài liệu ra máy in
Lệnh về các thao tác trên mạng
ping Kiểm tra sự tham gia của các nút trên mạng
netstat Kiểm tra trang thái của mạng hiện thời
ftp Thực hiện dịch vụ truyền nhận file
telnet Thực hiện kết nối với một hệ thống
Untry Kết nối UUCP
rcp Sao chép file ở xa
7 Một số phiên bản của Linux
RedHat Linux (Fedora Core):
Là phiên bản khá phổ biến Cung cấp khá nhiều công cụ và tiện ích để hỗ trợ người sử dụng từ các thao tác cài đặt đến cấu hình hệ thống
Mandrake Linux:
Một dòng khác từ RedHat Linux, tương thích hoàn toàn với RedHat Thường
có nhiều phần mềm mới đang ở giai đoạn thử nghiệm
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 cài đặt và cấu hình đòi hỏi người dùng có kiến thức tốt về HĐH này
Trang 17S.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ợ cài đặt và cấu hình tương đối dễ sử dụng
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
Corel Linux:
Phát triển bởi hãng Corel, dễ cài đặt, có giao diện đồ họa khá giống Windows NT kể các công cụ và tiện ích Tuy nhiên các công cụ cấu hình chưa hoạt động tốt
Damn Small Linux
Damn Small Linux là hệ điều hành chạy trực tiếp trên đĩa CD hay trên các thiết bị di động Mặc dù có kích thước nhỏ nhưng lại khá đa năng với đầy đủ các chức năng như nghe nhạc, word, game, xử lý đồ hoạ Nếu chúng ta cần một hệ điều hành nhỏ gọn và hỗ trợ web tốt thì đây có lẽ là sự lựa chọn tuyệt vời
Debian
Debian do dự án Debian xây dựng và được phát triển bởi hàng triệu tình nguyện viên trên khắp thế giới Được xây dựng dựa trên nhân của Linux với nhiều công cụ cơ bản của hệ điều hành được lấy từ dự án GNU
Fedora
Fedora là một bản phân phối Linux dựa trên RPM Package Manager, được phát triển dựa trên cộng đồng theo "dự án Fedora" và được bảo trợ bởi Red Hat
Trang 18Freespire là một HĐH mã nguồn mở xây dựng dựa trên Linux Ubuntu Freespire kế thừa mọi thế mạnh của Ubuntu nhưng được thiết kế đẹp hơn và dễ sử dụng hơn
Gentoo
Gentoo là bản phân phối Linux được đặt tên theo loài chim cánh cụt Gentoo
Nó được thiết kế cho thiết bị xách tay, dễ bảo dưỡng, linh hoạt và có khả năng tuỳ biến theo máy tính của người dùng
Knoppix
Knoppix là một HĐH có thể chạy trực tiếp trên đĩa CD/DVD mà không cần cài đặt bất cứ thành phần nào của nó lên đĩa cứng Knoppix là hệ thống dựa trên Debian và được phát triển bởi Klaus Knopper
Linspire
Linsprise trước đây có tên gọi LindowsOS, là bản phân phối dựa trên Debian GNU/Linux
Linux Mint
Linux Mint được phát triển dựa trên nền tảng của Ubuntu, với khả năng xử
lý nhanh hơn nhưng kém ổn định Ưu điểm của Linux Mint là hỗ trợ khá tốt các hoạt động giải trí đa phương tiện trong gia đình và rất dễ sử dụng
Và còn rất nhiều phiên bản khác như Turbo Linux, Linux PPC, Infomagic Linux, Softlanding Linux System Release (SLS) v.v
Trang 19Chương II OpenSUSE
I Giới thiệu chung
1.OpenSUSE là gì?
OpenSuSE là một hệ điều hành đa năng, được phát triển bởi dự án OpenSuSE Sau khi đạt được SUSE Linux vào tháng 1 năm 2004, Novell đã quyết định phát hành sản phẩm SUSE Linux Professional như một dự án nguồn mở 100%, liên quan đến cộng đồng trong quá trình phát triển Phiên bản đầu tiên là SUSE Linux 10.0, phiên bản mới nhất hiện nay là 11.1 (Phát hành tháng 12/2008)
Ngoài việc phân phối, các dự án openSUSE còn cung cấp một cổng web cho cộng đồng tham gia Các cộng đồng hỗ trợ trong việc phát triển openSUSE hợp tác với đại diện từ Novell bằng việc đóng góp mã thông qua OpenSUSE Build Service, viết tài liệu hướng dẫn, thiết kế ảnh nghệ thuật
Giống như hầu hết các bản phân phối, OpenSUSE bao gồm cả giao diện đồ họa và giao diện dòng lệnh Trong khi cài đặt, người sử dụng có thể chọn lựa trong
số các giao diện đồ họa như KDE, GNOME, và Xfce OpenSUSE còn cung cấp hàng nghìn gói phần mềm đầy đủ, miễn phí
2 Lịch sử phát triển
Các bản phân phối Linux SUSE được bắt nguồn từ một bản Tiếng Đức của Slackware Linux.Việc phân phối Slackware (được duy trì bởi Patrick Volkerding) ban đầu chủ yếu dựa trên hệ thống Linux Softlanding Trong giữa năm 1992, SLS được thành lập bởi Peter MacDonald, đã được phân phối đầu tiên có chứa thành phần như X và TCP / IP
S.u.S.E được thành lập vào cuối 1992 như là một nhóm thảo luận UNIX, mà trong số những nhóm khác thường xuyên phát hành các gói phần mềm bao gồm SLS và Slackware, và hướng dẫn sử dụng in ấn UNIX / Linux S.u.S.E là một từ
viết tắt cho cụm từ Tiếng Đức "Software- und System-Entwicklung" ( "Phần mềm
và phát triển hệ thống"), tuy nhiên trong cộng đồng nói tiếng Anh một lời đồn đại vẫn truyền bá rằng tên đó là một vật cống của người mở đường máy vi tính Đức Konrad Zuse, tên người này trong Tiếng Anh đã có cách phát âm tương tự Những đĩa CD đầu tiên của phiên bản SLS / Slackware đã được phát hành vào năm 1994, dưới tên SUSE Linux 1.0 Sau này nó đã tích hợp với bản phân phối Jurix của Florian La Roche, để phát hành bản thực sự độc đáo đầu tiên là S.u.S.E Linux 4.2
Trang 20năm 1996.Qua một thời gian, SUSE Linux kết hợp nhiều khía cạnh của Red Hat Linux (ví dụ, bằng cách sử dụng RPMs và / etc / sysconfig) Để tiếp cận hiệu quả với đối tượng kinh doanh của mình, SuSE giới thiệu SUSE Linux Enterprise Server (máy chủ doanh nghiệp SUSE Linux) năm 2001, và liên tiếp thay đổi tên công ty cho đến SUSE Linux vào tháng 9-2003.
Ngày 4- 11-2003, Novell công bố sẽ mua SuSE Việc mua lại đã được hoàn thành trong tháng 1-2004 J Philips (nhà chiến lược công nghệ hợp tác của Novell cho khu vực Châu Á Thái Bình Dương) nói rằng Novell "trong giữa thời hạn” sẽ không thay đổi cách thức mà SUSE tiếp tục được phát triển Năm 2004, tất cả các máy tính đã chạy SUSE Linux lần đầu tiên Trong đợt thu thập này, người ta cũng
đã thông báo rằng các chương trình quản lý SUSE (gọi là YaST2) sẽ được phát hành trong công chúng theo giấy phép GPL
Ngày 4 -8-2005, người phát ngôn Novell và giám đốc các mối quan hệ công chúng Bruce Lowry thông báo rằng sự phát triển của hàng loạt SUSE Professional
sẽ trở nên “mở” hơn và trong cộng đồng dự án, openSUSE sẽ cố gắng để tiếp cận rộng hơn người sử dụng và phát triển Các phần mềm, theo định nghĩa của mã nguồn mở, đã có mã “mở” của chúng, nhưng bây giờ quá trình phát triển sẽ được
"mở" nhiều hơn trước, cho phép nhà phát triển và người dùng kiểm tra các sản phẩm và trợ giúp phát triển nó Trước đó, tất cả công việc phát triển được thực hiện
“trong nhà” bởi SUSE, và phiên bản 10.0 là phiên bản đầu tiên Là một phần của sự thay đổi, dịch vụ truy cập YaST Online Update sẽ mời những người sử dụng SUSE Linux, và dọc theo tuyến đường của hầu hết các bản phân phối mã nguồn mở, cả hai sẽ được tải miễn phí sẵn có trên trang web và một bản sao đóng hộp Điều này thay đổi trong triết lý đã dẫn đến việc phát hành SUSE Linux 10.0 vào ngày 6-10-
2005 trong "OSS" (hoàn toàn mã nguồn mở), "eval" (cả hai đều có mã nguồn mở
và các ứng dụng sở hữu và là một phiên bản đầy đủ tính năng) và các bản sao bán lẻ
3 Đặc điểm
OpenSUSE có nhiều đặc điểm, bao gồm:
• AppArmor: quyền cho một số ứng dụng dựa trên cách thức chúng hoạt động và tương tác với môi trường
• YaST: một hệ thống ứng dụng quản lý mà openSUSE sử dụng như là một Trung tâm Kiểm soát
Trang 21• Xen, VirtualBox, KVM và Qemu: phần mềm ảo hóa.
• KDE: một môi trường làm việc (mở rộng với những công cụ như Kickoff và KNetworkManager) OpenSUSE 11.1 hỗ trợ cả KDE 4.1, KDE 3.5.10, mặc dù khuynh hướng 11.1 là phiên bản cuối cùng được phát hành để hỗ trợ hàng loạt KDE 3.5
• Gnome: một môi trường desktop
• Compiz Fusion: một desktop 3D mà chạy trên Xgl hoặc AIGLX Lưu ý rằng các hiệu ứng 3D có sẵn thông qua KWin được cấp quyền theo mặc định, nơi trình điều khiển 3D sẵn sàng trên việc cài đặt media cho card đồ họa của hệ thống (ví dụ, Intel tích hợp card đồ họa) Từ khi các trình điều khiển ATI và NVIDIA đầy đủ không (chưa) có giấy phép mã nguồn mở, các hiệu ứng desktop phức hợp chưa được cấp quyền theo mặc định trên hệ thống sử dụng một trong số các card đồ họa này
• CPU: Intel Pentium-1-4 hoặc Xeon;-AMD Duron, Athlon, Athlon XP, Athlon MP, Athlon 64, Sempron, hoặc Opteron
• RAM: tối thiểu 256 MB, 512 MB đề nghị
• Ổ đĩa cứng: 500 MB tối thiểu cho các hệ thống; 3 GB được đề nghị cho hệ thống tiêu chuẩn
2 Các bước cài đặt
- Phân vùng ổ cứng: Dùng Partition Magic hay một chương trình chia ổ nào
đó tạo ra một ổ định dạng kiểu Linux lớn khoảng hơn 5GB (ổ này nên lấy từ một ổ đĩa trống để tránh trường hợp mất dữ liệu từ ổ đĩa gốc trong Window)
- Chỉnh sửa BIOS: Chọn máy tính khởi động từ CD/DVD
Trang 22Sau đó, bạn boot vào DVD OpenSUSE, các Options xuất hiện, chọn Install OpenSUSE Màn hình cài đặt đầu tiên :
Chọn mục Installation và đợi YaST, cài đặt openSUSE và chương trình cấu hình để tải lên Nếu bạn muốn thay đổi ngôn ngữ ở màn hình khởi động, nhưng cũng phải để sau đó Thông thường bạn có thể bỏ qua chọn lựa khác cho một cài đặt điển hình
Bước 1: Welcome screen
YaST sẽ hiển thị với màn hình chào mừng Tất cả trang YaST sau cùng giao diện: một danh sách các nơi cài đặt phía bên trái, các chức năng khác trên màn hình
chính, và các nút Help, Back, Abort và Next ở phía cuối trang.
Lựa chọn ngôn ngữ ở màn hình này Cách trình bày bàn phím đặt một cách
tự động dựa trên ngôn ngữ Nếu cách trình bày bàn phím của bạn khác với ngôn ngữ được chọn lựa bởi YaST, hãy sửa đúng nó
Trang 23Bạn sẽ được dẫn đến openSUSE License Agreement (thỏa thuận cho phép
openSUSE) Để trải rộng sự thỏa thuận cho phép, click vào show license Sau khi đọc các thỏa thuận, click vào Next.
Bước 2 (System Analysis ) Phân tích hệ thống
YaST sẽ phân tích máy tính của bạn để quyết định những bố trí nào nên dùng cho việc cài đặt
Thật đơn giản bạn có thể đợi cho đến khi nó kết thúc
Bước 3: (Installation Mode) Phương thức cài đặt
Sau khi check xong, bạn sẽ được yêu cầu cài mới (New Installation) hay
Update từ phiên bản cũ Nếu cài mới, bạn chọn New Installation.
Trang 24Hầu hết người dùng nên bỏ phần chọn lựa đã mặc định Nếu có phiên bản
trước của OpenSUSE, có thể chọn phần Update để cập nhật phiên bản đó đến
phiên bản OpenSUSE 11.1 Nếu đã từng cần sửa chữa việc cài đặt của OpenSUSE
11.1, phần Repair Installed System có thể được dùng để định mức và sửa chữa hệ
thống cài đặt OpenSUSE
Nếu muốn điều chỉnh vi cấp(tinh chỉnh) toàn bộ hệ thống cài đặt được
thiết lập như thế nào bao gồm cấu hình ổ cứng, thì có thể bỏ chọn Use Automatic
Configuration Điều này chỉ được khuyên cho những ai biết mình đang làm gì, và
nó cũng tăng thời gian cần để cài đặt OpenSUSE Ta có thể cấu hình những phần
đã hoàn thành bằng việc cấu hình tự động sau đó sau khi chạy hệ thống nếu cần, đặc biệt những người mới bắt đầu nên để nguyên như nó đã sẵn có
Bước 4: (Set the time & time zone ) Chọn múi giờ và thời gian
Trang 25Ở bước này là cài đặt múi giờ và vùng miền Nếu thời gian trong phần Time
and Date không đúng, chọn Change để sửa đúng nó.
Bước 5:(Desktop Selection) Chọn lựa màn hình nền.
Ở đây ta sẽ chọn các môi trường Desktop Ở mỗi Desktop có những đặc trưng và các tiện ích khác nhau Nếu thích Desktop KDE 3 hơn, những quản lý
window nhỏ hơn khác, hay ngay cả chế độ văn bản, hãy chọn Other và sau đó chọn
từ danh sách được hiện thị Chú ý rằng, đây chỉ là cài đặt ban đầu Sau đó trong phần cài đặt hay ngay cả về sau, ta sẽ có thể chọn bất kỳ một môi trường desktop khác để cài đặt
Trang 26Bước 6: (Setting up your disk) Cài đặt ổ đĩa của bạn
Kế đến sẽ là phần chọn phân vùng cài đặt Linux Nếu đã phân vùng trước
đó, ta chỉ cần chọn phân vùng đã chia sẵn Nếu không, chọn Custom (khuyên các
bạn nên chọn tùy chọn này để tự phân chia phân vùng cài đặt, như thế an toàn hơn cho dữ liệu của bạn), ta sẽ chọn HDD có sẵn, sau đó Resize một phân vùng riêng
Và cũng tiến hành chia như mình đã đề cập ở trên Các hình ảnh bên dưới mô tả
cách chia phân vùng root (/), boot và Swap.
Trang 27YaST đề xuất việc cài đặt mà sẽ làm thỏa mãn hầu hết người dùng Nếu thấy dòng văn bản đỏ trong cửa sổ đề nghị phân vùng, có thể ta phải thay đổi sự cài đặt, dòng đỏ có nghĩa là những phân vùng đó có thể bị xóa Nếu muốn sửa đổi những
cài đặt sẵn có, click vào Edit Partition Setup Nếu muốn làm lại cài đặt cũ cho cài đặt của riêng mình, click vào Creat Partition Setup Nếu muốn giữ cài đặt mặc định, click Next.
Bước 7: (Creat your user) Tạo người dùng.
Bước này, ta cần đặt một tài khoản cho người dùng đầu tiên của máy tính.Nhập tên đầy đủ, một username (mà tự động được chọn lựa: ta có thể thay đổi tên nếu muốn) và một password
Bằng việc mặc định, hệ thống được đặt cùng password của ta là password
của người quản trị hệ thống (cũng được biết như root).Bởi vậy, việc đăng nhập tự
động cũng được bật lên Ta có thể bỏ những chọn lựa này để an toàn hơn nếu
muốn.Sau đó click Next.
Trang 28Bước 8: (Installation overview) Tổng quan cài đặt
Ở bước này, trình cài đặt sẽ kiểm tra các gói cài đặt trong DVD, và đưa ra các cấu hình cài đặt bao gồm : thông tin về phân vùng đã chia, các gói ứng dụng sẽ được cài đặt vào hệ thống
Nếu muốn thêm bớt các gói ứng dụng, chọn Change và lựa chọn các thành phần
muốn thay đổi Cửa sổ mới sẽ hiện ra, ta chỉ cần check hoặc uncheck các gói ứng dụng để cài đặt
Thay đổi phần mềm
Trang 29Thông thường người sử dụng cài đặt muốn thay đổi là phần mềm Trong YaST, phần mềm được cài đặt trong các mẫu, hay nhóm mà đạt được một mục tiêu tương tự.
Các mẫu phần mềm thích hợp cho việc cài đặt openSUSE cơ bản đã được lựa chọn theo mặc định, nhưng có thể muốn bổ sung thêm những phần mềm khác (ví dụ như phát triển thêm các công cụ hoặc ứng dụng văn phòng) Nếu vậy, chỉ đơn giản hãy kiểm tra xem các mẫu bên trái Dung lượng đĩa cho phép, tất cả các phần mềm liên kết sẽ được cài đặt cùng với phần còn lại của hệ thống Để đẩy nhanh tiến trình cài đặt người ta khuyên là để nguyên việc lựa chọn phần mềm sẵn
có cho việc cài đặt Ta có thể cài đặt phần mềm mới như là các gói phần mềm riêng
lẻ hay các mẫu sau này trong các hoạt động hệ thống
Bước 9: (Install openSUSE!) Cài đặt OpenSUSE.
Sau khi đã kiểm tra đầy đủ, chọn OK Quay trở lại mục Installation Setting, chọn Install Trình cài đặt YaST2 sẽ yêu cầu xác nhận việc cài đặt
Trang 30Chọn Install để xác nhận Sau đó, quá trình cài đặt sẽ bắt đầu :
Quá trình cài đặt sẽ yêu cầu Restart máy tính Sau đó, nó sẽ tiến hành check các thông số của hệ thống và các cấu hình
Trang 31Sau đó, quá trình cài đặt thành công Màn hình khởi động đầu tiên vào OpenSUSE sẽ như sau:
Quá trình cài đặt đã xong Sau đây là một vài hình ảnh :
II Cài đặt các gói phần mềm
Trang 321 Phân phối phần mềm trên Linux
Trên Windows phần mềm thường được phân phối ra dưới dạng file cài đặt msi hoặc exe thì trên Linux cũng gần tương tự như vậy, có điều trên Linux có nhiều hình thức hơn Phần mềm cho Linux thường có ở những nơi sau:
• Trong bộ đĩa cài đặt (thường với những bản phân phối lớn như Redhat, OpenSuse, Mandriva… mà bộ đĩa cài lên tới 5 hay 6 đĩa CD)
• Trên trang web của nhà sản xuất (người dùng thường phải tự down về và thường có sẵn hướng dẫn cài đặt cho từng hệ thống)
• Trên các repository (gọi tắt: repo) là các nơi chứa phần mềm
tập trung trên mạng dành riêng cho một hệ thống nào đó Ubuntu và Debian
sử dụng repo nhiều nhất, kế đến là Fedora và openSUSE Mọi phần mềm đều được chứa tại repo và khi nào người dùng cần thì phần mềm sẽ được tải về
từ repo rồi cài đặt lên máy Rất tiện lợi trong việc cập nhật phần mềm
Các gói phần mềm định phổ biến nhất là RPM và DEB (các gói phần mềm này có thể cài đặt dễ dàng và gần như đã thành chuẩn chung cho việc phân phối phần mềm) Phần mềm cũng có thể được phân phối dưới dạng mã nguồn (nhất là phần mềm nguồn mở), người dùng phải tự biên dịch trên máy rồi cài đặt (thường chỉ áp dụng với những phiên bản mới nhất của phần mềm, mất ít thời gian biên dịch, hoặc khi chưa có bản DEB hay RPM tương ứng)
2 RPM hay DEB?
RPM (Redhat package manager) và DEB (Debian software package) là hai định dạng file chuyên dùng cho phân phối phần mềm Chúng giống như định dạng file nén mà trong đó chứa tất cả nhưng file chạy và cấu hình của phần mềm, thông tin về phần mềm, nhà sản xuất, những yêu cầu về hệ thống… Hệ điều hành Linux
sẽ có một phần mềm chuyên dùng để cài đặt các gói phần mềm dạng này (giải nén, chuyển các file của phần mềm vào đúng chỗ, cấu hình cho phần mềm…) và nói chung thì phân phối phần mềm kiểu này rất dễ cài đặt
RPM thường được dùng trong các hệ thống tương tự Redhat như Fedora, openSUSE,… còn DEB lại được dùng trên các hệ thống của Debian gồm Debian, các họ nhà Ubuntu… Khó có thể nói cái nào tốt hơn cái nào, chỉ biết là cả hai đều rất đơn giản và dễ dùng
Trang 33Mỗi file RPM hoặc DEB chỉ chứa một phần mềm hoặc một phần nào đó của phần mềm Vì vậy thường khi cài một phần mềm phải cài đặt kèm theo 1, 2 hay thậm chí cả chục gói khác Chúng ít khi chứa toàn bộ thư viện (vì số lượng thư viện dùng chung là khá lớn) nên đôi khi xảy ra tình trạng không thể cài đặt do thiếu một gói nào đó (thuộc về một chương trình khác chẳng hạn) Chương trình cài đặt bao giờ cũng kiểm tra xem toàn bộ gói cần thiết đã được cài đặt trước chưa, nếu thiếu một gói nào đó, quá trình cài đặt sẽ dừng lại Công việc này gọi là “check dependency”.
Chính vì sự ràng buộc đó nên chúng ta mới cần đến những phần mềm hỗ trợ cài đặt Những phần mềm này sẽ tự động tải về hoặc tìm tất cả những gói có liên quan rồi lần lượt cài đặt chúng theo đúng thứ tự
3 Cài đặt các gói phần mềm
3.1 Sử dụng Install Software
Chọn vào Application/ System/ Configurion/ Install Software hoặc vào Application/ Recently Used/ Install Software để vào quản lý các gói phần mềm trong OpenSUSE
Tại ô Filter, có thể chọn các chức năng của nó là: Patterns, Package Groups,
Languages, Repositories, Search, Installion Summary
Chức năng Patterns: các mẫu ( Base Technilogies: Các kỹ thuật căn bản,
Graphical Environments : Các môi trường đồ họa Gnome, Kde3, Kde4, X Window, Desktop Functions: Các chức năng Desktop, Server Functions: Các chức năng dịch vụ)
Chức năng Package Groups sẽ lọc các gói phần mềm theo các nhóm ứng
dụng (nhóm dành cho Education, Games, Graphic, Office )
Chức năng Languages: Các ngôn ngữ hỗ trợ.
Chức năng Repositories: Các kho phần mềm (hệ thống, cập nhật phiên bản) Chức năng Search cho phép tìm gói phần mềm theo tên hoặc theo mô tả, tuỳ thuộc vào việc lựa chọn các thành phần trong ô Search.
Chức năng Installition Summary: là hiển thị tất cả các gói phần mềm.
Trang 34Sau khi lựa chọn được gói phần mềm cần thiết, nhắp nút Accept để chấp
nhận việc cài đặt gói phần mềm đó Software Management sẽ tự động check các gói phần mềm liên quan, nếu có sẽ đưa ra thông báo và sau đó sẽ cài đặt
Trên giao diện chính của Yast dễ nhận thấy bảng các gói phần mềm với các cột: Package (tên gói phần mềm), Summary (chi tiết về gói phần mềm tương ứng), Size (kích thước khi cài đặt), Installed (Available)(các phiên bản đã cài đặt hoặc chưa cài đặt trên bộ cài đặt) Cột ngoài cũng có ô sẽ xác định trạng thái của gói phần mềm: đã được cài đặt (có dấu check), chưa được cài đặt (ô trắng), sẽ bị xoá (biểu tượng nhân chéo), update (biểu tượng mũi tên và dấu check: cập nhật nếu có phiên bản mới hơn hoặc cập nhật không điều kiện), taboo (biểu tượng vòng tròn có gạch chéo: phần mềm không bao giờ cài), Protected(biểu tượng ổ khóa: phần mềm không sửa đổi)
Khi bấm chuột vào một gói phần mềm, phía bên dưới của bảng sẽ có thông tin chi tiết về gói phần mềm đó: Description, Technical, Data Dependencies, Versions,
Trang 353.2 Cài đặt trực tiếp từ file RPM
Nếu có sẵn file RPM hoặc DEB thì thật là phí công và tốn kém nếu lại phải tải phần mềm về Ta hoàn toàn có thể cài đặt trực tiếp từ các file đó, miễn là phải
đủ các file cấu thành phần mềm Một điều cũng hết sức quan trọng là phải có bản dành cho đúng hệ máy Ví dụ các file RPM thường dùng cho redhat, openSUSE, trong khi file DEB thường dùng cho debian và ubuntu Ngoài ra còn là số phiên bản của phần mềm, sử dụng cho loại máy nào Ví dụ các phần mềm cho máy INTEL hay AMD 32bit thường có phần “i386″ hay “i586″ trong tên, cho máy 64bit thì trong tên gói phần mềm sẽ có kí hiệu “am64″, cho các máy dùng chip PowerPC thì
có kí hiệu “ppc” Điều này là rất quan trọng vì nếu có gói mà không phù hợp thì ta cũng cài được
Để cài file rpm trên OpenSUSE thì ta chỉ việc mở file đó ra như một file bình thường, chương trình quản lí file rpm sẽ tự chạy click chuột vào nút Install ta cũng có thể dùng lệnh # yast -i *.rpm
hoặc # rpm -i *.rpm từ dòng lệnh để cài gói xyz vào hệ thống, Để xóa một gói
ra khỏi hệ thống, dùng lệnh:
rpm –e(hoặc erase) [các tùy chọn] <danh sách các gói>
Các tùy chọn:
test Thử xóa, không xóa thực sự
noscripts Không thực hiện các mã pre-uninstall và post-uninstall
nodeps Không kiểm tra tính phụ thuộc
Khi một gói được xóa khỏi hệ thống, rpm thực hiện công việc sau đây
- Kiểm tra xem có một gói nào trọng hệ thống phụ thuộc vào gói sẽ không bị xóa không
- Thực hiện script pre-uninstall nếu có
-Kiểm tra các file cấu hình có bị thay đổi hay không, nếu có sẽ lưu lại một bản copy
- Tra cứu cơ sở dữ liệu rpm để xóa các file của gói đó
- Thực hiện script post-uninstall nếu có
- Xóa các thông tin liên quan đến các gói trong cơ sở dữ liệu
Trang 36Chương III Lập trình Shell
I Giới thiệu các trình soạn thảo và các ngôn ngữ lập trình trên OpenSUSE.
1 Một số trình soạn thảo trên OpenSUSE
1.1 Trình soạn thảo Kwrite
KWrite là một trình soạn thảo văn bản cho các K Desktop Environment
(KDE) Đây là trình soạn thảo được cấu hình sẵn khi ta cài đặt OpenSUSE
1.2 Trình soạn thảo Gedit
Gedit là một phần mềm miễn phí, tương thích UTF-8 soạn thảo văn bản cho
các môi trường làm việc Gnome Nó được thiết kế chủ yếu cho các chương trình chỉnh sửa mã, và cấu trúc văn bản, chẳng hạn như đánh dấu ngôn ngữ Nó được thiết kế để có một giao diện đồ họa người dùng đơn giản theo triết lý của dự án Gnome
1.3 Trình soạn thảo Vi
Vi (video interactif) là chương trình sọan thảo văn bản theo trang màn hình :
- Màn hình được xem như một cửa sổ mở trên tập tin
- Có khả năng di chuyển con trỏ đến bất kì vị trí nào trên màn hình
- Cửa sổ có thể di chuyển tự do trên tập tin
Phần lớn các phím dùng độc lập hoặc kết hợp với phím Shift và Ctrl để
tạo ra các lệnh của vi Khi một lệnh bị gõ sai, vi báo hiệu bằng cách nháy màn hình,
kêu còi hay thông báo lỗi
Chương trình vi được xây dựng từ chương trình soạn thảo dòng ex.Các lệnh của ex có thể được gọi khi có dấu ":" ở dòng cuối màn hình.
1.4 Trình soạn thảo Emacs
Emacs là một lớp học về tính năng biên tập nội dung phong phú, thường là
đặc thù của họ extensibility Phát triển đã bắt đầu vào giữa 70 và giờ vẫn còn hoạt
động Emacs biên tập văn bản được hầu hết các kỹ thuật phổ biến với người sử
dụng thành thạo máy vi tính và lập trình Các phiên bản phổ biến nhất là GNU