Hệ điều hành Linux
Chương trình đào tạo Việt Nhật &
Khoa Công nghệ Thông tin
Giới thiệu chung
Các khái niệm cơ bản
Lịch sử phát triển Unix
Hệ ñiều hành Linux
Hạt nhân Linux
Khái niệm mã nguồn mở
Các bản phân phối
Cài ñặt hệ ñiều hành
UNIX
là một hệ điều hành
đa nhiệm
đa người sử dụng
có tính mơ đun hố cao
khơng phụ thuộc vào phần cứng
hỗ trợ môi trường phát triển ứng dụng
Kiến trúc hệ thống
Giao diện
Người sử dụng
Ứng dụng
(shells, trình biên dịch, các tiện ích,…)
Thư viện lập trình
(open, close,read, write, ...)
Hạt nhân hệ ñiều hành
(quản lý tệp, bộ nhớ, thiết bị phần cứng,…)
Phần cứng máy tính
Tính đa nhiệm
Một chương trình khi chạy trong máy tính là một
tiến trình
đa nhiệm có nghĩa là nhiều tiến trình có thể chạy
cùng một thời điểm
tiến trình khơng phải là chương trình
có thể chạy nhiều tiến trình cho cùng một chương
trình tại một thời điểm
Hệ điều hành nào là đa nhiệm: DOS, NT, Windows
9x, Windows 2000, Windows XP ?
Tính đa người sử dụng
Nhiều người sử dụng có thể cùng truy xuất vào
hệ thống tại một thời điểm
cần có khái niệm tài khoản sử dụng nhưng có nhiều
tài khoản khơng đồng nghĩa với đa người sử dụng
một tiến trình tạo ra thuộc quyền sở hữu người đã tạo
ra nó
do đó các tiến trình có thể thuộc quyền sở hữu của
nhiều người khác nhau
Hệ ñiều hành nào là ña người sử dụng: DOS, NT,
Windows 9x, Windows 2000, Windows XP ?
Tính mơ đun
Mơ đun hố về kiến trúc
Hạt nhân quản lý các nhiệm vụ ở mức thấp
Tầng ứng dụng cung cấp các tiện ích sử dụng đối với
người sử dụng
Mơ đun hố về ứng dụng
Cung cấp nhiều cơng cụ nhỏ, chun dụng nhưng đa
dạng để hỗ trợ cơng việc người sử dụng
Khơng cung cấp các cơng cụ có tính đa năng nhưng
người sử dụng làm ñược rất nhiều việc phức tạp
bằng cách kết hợp các công cụ nhỏ với nhau
Các cơng cụ cơ bản
Các trình thơng dịch lệnh (shell) : sh, csh, bash
Các câu lệnh quản lý hệ thống tệp
Các câu lệnh quản lý tiến trình
Các câu lệnh xử lý dữ liệu
Các trình soạn thảo: vi, emacs, …
Các trình quản lý gói dữ liệu: tar, gzip,…
Các trình biên dịch : C, C++, Fortran, Perl
Các bộ xử lý văn bản (latex), hình ảnh (xv)
v.v.
Lịch sử phát triển Unix
1969: Thiết kế phiên bản ñầu tiên bởi Ken Thompson
trong phong thí nghiệm Bell Lab của AT&T
1973: Viết lại bằng ngơn ngữ C để cho phép cài ñặt
UNIX trên nhiều hệ thống khác nhau
1975: Phân phối sản phẩm V6 trong các trường ñại học
1977: Xuất hiện phiên bản Unix ñầu tiên dùng trong các
trường ñại học, BSD (Berkeley Software Distribution)
1978 : Phân phối V7 trong lĩnh vực cơng nghiệp
1984 : Ra đời X-Window (X11) trong Unix
1990 : Ra ñời chuẩn POSIX cho thư viện của UNIX
Ngày nay UNIX là hệ thống mở phát triển xung quanh
một hạt nhân POSIX, các tiện ích, các mơi trường hệ
thống, giao diện ñồ hoạ,...
1970
V1
1975
V6
1977
BSD1.0
1978
BSD2.0
V7
1979
BSD3.0
Unix 32 V
1980
BSD4.0
1981
BSD4.1
1982
1983
System III
BSD4.2
System V
...
1983
BSD4.2
System V
1984
System V R1
Sun OS 1.0
1985
System V R2
X10
1986
1988
BSD4.3
Sun OS 4.0
MACH
System V R4
1989
1991
1992
System V R3
X11
OSF 1
BSD4.4 ?
GNU/LINUX (1)
1984 : khởi sướng dự án GNU bởi Richard
Stallman với mục đích phát triển một hệ điều
hành đầy đủ, tựa Unix nhưng có mã nguồn mở
GNU cho ra đời nhiều tiện ích UNIX được sử dụng
ngày nay : emacs, gcc,…
Vẫn cần phải phát triển một hạt nhân để có một hệ
điều hành đầy đủ
1991 : Linus Torvald đã cơng bố phiên bản
LINUX ñầu tiên, một hạt nhân UNIX, ñồng thời
yêu cầu hỗ trợ phát triển của cộng ñồng lập trình
viên
GNU/LINUX (2)
Sự kết hợp giữa hạt nhân LINUX và các tiện ích
GNU đã cho ra đời một hệ điều hành GNU/
LINUX đầy đủ, có sức mạnh và miễn phí cho rất
nhiều dịng máy tính khác nhau
Intel x86, Alpha, ARM, Power PC (Macintosh), PDA
Chú ý
Tên LINUX vẫn thường ñược dùng cho cả hệ ñiều
hành bao gồm hạt nhân Linux và các tiện ích kèm
theo
Hạt nhân Linux (1)
1991 : Phiên bản ñầu tiên (version 0.01).
1992 : Phiên bản 0.96 có rất nhiều chức năng và sở hữu
một giao diện ñồ hoạ X Window (Xfree86)
1993 : Có hơn 100 lập trình viên tham gia phát triển
Linux (version 0.99)
1994 : Ra ñời phiên bản 1.0. Cách ñánh số các phiên
bản tuân thủ theo nguyên tắc:
..
Các phiên bản có số phụ giống nhau thì khơng có chức năng
mới
Tất cả các phiên bản ổn định đều có số phụ là chẵn
Các phiên bản "bêta" khi thêm chức năng đều có số phụ là lẻ
Hạt nhân Linux (2)
1996: Ra ñời Linux 2.0 và ñược sự dụng trong cơng
nghiệp
1997: Xuất hiện các tạp chí chun ñề về Linux ở nhiều
nước trên thế giới
2001: Ra ñời phiên bản 2.4. ðây là hạt nhân có tính ổn
định và ñược sử dụng trong hầu hết các bản phân phối
Linux
Ngày nay: Hạt nhân Linux ñang ñi vào giai ñoạn cuối.
Người lập trình khơng đưa thêm vào các chức năng mới
nữa mà tập trung vào gỡ lỗi và tạo ra phiên bản ổn ñịnh
nhất
Khái niệm mã nguồn mở
LINUX ñược bảo vệ bản quyền dưới giấy phép GPL
(General Public Licence)
Chủ sở hữu thuộc về tác giả, phân phối tự do và sử dụng miễn
phí
Có thể sử dụng để thu lợi nhuận, nhưng khơng được phép thay
ñổi các ñiều lệ trong bản quyền
Cho phép thay ñổi mã nguồn nhưng sau ñó phải phân phối dưới
cùng giấy phép GPL
GPL <> GNU
Một chương trình GNU thuộc sở hữu của tất cả mọi người
PMMNM <> PM Chia sẻ (shareware)
Mã nguồn phải ñược mở cho tất cả mọi người
Chú ý : một phần mềm mã nguồn mở không nhất thiết phải dùng
giấy phép GPL
Các bản phân phối Linux
Một bản phân phối là tập hợp đầy đủ các
chương trình của HðH bao gồm
Các cơng cụ cấu hình và cài đặt hệ thống
Các ứng dụng của người sử dụng
Phiên bản của bản phân phối <> phiên bản của hạt
nhân
Các bản phân phối
Redhat (Fedora Core)
Mandrake
Debian
VietKey (HðH Việt nam??? ☺)
…
ðặc điểm của HðH LINUX
Tương thích với chuẩn POSIX, System V và BSD
Hỗ trợ giả lập thiết bị ñầu cuối
Hỗ trợ các console ảo
Có thể cài đặt với các HðH khác (dùng LILO, GNUB)
ðọc ñược dữ liệu trên nhiều ñịnh dạng lưu trữ: etx2fs, msdos, vfat, iso 9660,…
Cài ñặt ñầy ñủ các chuẩn giao thức mạng: TCP/IP, SLIP,
PPP, NFS,…
Giao diện ñồ hoạ: X Window KDE & Gnome
Hỗ trợ rất nhiều dịch vụ ứng dụng: CSDL, ƯD văn phòng,
dịch vụ internet, …
Hỗ trợ tích hợp mạng với các HðH khác như Windows
Linux vs. Window
Tại sao dùng LINUX?
ñủ tin cậy ñể ñảm bảo HðH có thể thực nhiều cơng
việc nặng
Tốt hơn nhiều Windows trong khía cạnh quản lý cơng
việc và quản lý mạng
Ít lỗi hệ thống và chạy ổn đinh hơn nhiều so với
Windows
Miễn phí nhưng rất đầy đủ
Là lựa chọn tuyệt vời trong giảng dạy và nghiên cứu
Cài ñặt HðH Linux
Sử dụng bộ ñĩa cài ñặt
Thực hiện các bước
Boot hệ thống
Phân chia ổ ñĩa
Giải nén và sao chép tệp
Cấu hình hệ thống
Tạo các tài khoản sử dụng
Boot hệ thống
Kiểm tra khơng gian đĩa đủ để cài HðH
mới
Có thể cài đặt Linux cùng với Windows trên
một máy
Dọn dẹp đĩa trước khi cài đặt
Boot bằng CD-ROM
Cũng có thể boot bằng ñĩa mềm
Phân chương đĩa cứng
Một đĩa cứng có thể được phân chia thành
nhiều partition
Dưới Windows, một partition tương ñương với một ổ
lơgic
Chỉ có thể cài một HðH cho một partition
Có nhiều nhất 4 partition ngun thuỷ trên một
đĩa cứng, trong đó
chỉ có thể mở rộng nhiều nhất một partition ngun
thuỷ để chứa nhiều bảng partition logic (ñược gọi là
partition mở rộng)
Phân chương đĩa cho Linux
LINUX cần ít nhất 2 bảng partition
Một dành cho các tệp của HðH
Bảng còn lại dùng cho vùng nhớ swap (/swap)
Nên xem xét việc tạo ra các bảng partition
chuyên dùng chứa dữ liệu
Làm tăng tính an tồn và độ tin cậy của hệ thống
Ví dụ tạo một partition ñể làm ổ chưa dữ liệu người
sử dụng (/home)
Kích thước các bảng
swap: 2 lần kích thước của RAM
Kích thước các bảng khác phụ thuộc dữ liệu cần lưu
trữ
Phân chương lại đĩa
Giả thiết
ðã có một HðH được cài ñặt dùng toàn bộ ñĩa
Phân chương lại ñĩa ñể cài thêm Linux vào vùng đĩa
cịn trống
Phương pháp
(tồi nhất) sao lưu, phân chương, format lại đĩa rồi
khơi phục HðH cũ
(tốt hơn) dùng trình soạn thảo chương đĩa cứng để
giảm kích thước các bảng phân chương đã có rồi tạo
thêm partition mới cho Linux (QMagic)
Phân chương trong cài đặt Linux
fdisk
Tạo, xố và hiển thị các bảng phân chương
mkswap
Format bảng phân chương swap của Linux
swapon
ðưa bảng phân chương swap vào sử dụng như bộ
nhớ ảo máy tính
mkfs.ext2/3
Format một mảng phân chương theo định dạng hệ
thống tệp của Linux