Chương 5: Lập trình trong LINUX.– Phát triển chương trình với ngôn ngữ C – Thư viện liên kết trên Linux 8 Soạn thảo TS LÊ MẠNH manhle@uit.edu.vn... - Có những sự khác nhau giữa các bản p
Trang 1Môn học:
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CÔNG NGHỆ LINUX Quản
Quản trị trị mạng mạng LINUX LINUX
Trang 3Tài liệu tham khảo chính
Nguyễn Phương Lan, Hoàng Đức Hải Lập trình Linux - Tập 1,
NXB Giáo dục, 2001.
VN-Guide : LINUX Toàn Tập (NXB Thống kê ,2002
RedHat,Chủ biên Nguyễn Minh Hoàng Linux (GT lý thuyết và Thực
hành) NXB Lao đông-Xã Hội,2003.
VN-Guide :Bảo mật trên Mạng (Bí quyết và Giải pháp)2003.
Trang 4Đề cương : môn học
“Công nghệ Linux( Quản trị mạng và lập trinh )”
Chương 0: Giới thiệu , lịch sử của HĐH LINUX
• Sơ lược lịch sử UNIX.
• Lịch sử và quá trình phát triển LINUX.
• Các ưu và nhược của LINUX.
Chương 1:Cài đặt, quản lý các Files System trong
LINUX
• Chuẩn bị trước khi cài đặt LINUX.
• Đĩa cứng và phân vùng Đĩa cứng.
• Quy trình cài đặt LINUX.
• Quản lý các Files System trong LINUX.
4 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 5Chương 2 Các câu lệnh và một vài trình
tiện ich trong LINUX.
Trang 6Chương 3: Quản trị mạng LINUX.
Các vấn đề IP Trong LINUX và WINDOWS
NIS Kết nối mạng.
FTP cho hệ thống
SAMBA (Quản lý các thiết bị)
NFS (Quản lý, chia sẻ Files hệ thống,dữ liệu)
NetWoking trong LINUX
DNS Trong Mạng
Security in Linux (Fire Wall, Security, mã hóa, chứng thực .) Tham khảo thêm An Ninh Mạng Internet
Mail và quản lý Mail
Web và nguyên lý xây dựng WEB.
Lập trình SOCKET trong LINUX.
6 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 7Chương 4: Lập trình Shell (vỏ ) trong
Trang 8Chương 5: Lập trình trong LINUX.
– Phát triển chương trình với ngôn ngữ C
– Thư viện liên kết trên Linux
8 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 9Chương 6: Xử lý tập tin và Thư mục trong LINUX.
Hệ thống tập tin trong Linux
Các cách xử lý tập tin trong Linux
Thư viện xuất nhập chuẩn (Standard I/O Library)
Hàm truy xuất cấp thấp
Xử lý thư mục
Chương 7 : Xử lý tiến trình trong LINUX
Khái quát về tiến trình trong Linux
Cách hoạt động của tiến trình
Trang 110.1 Lịch sử hệ điều hành Unix
- Giữa những năm 60, General Electric, Massachusetts Institute for
Technology và Bell Laboratories (AT&T) cùng phối hợp trong một cố gắng tạo ra một HĐH mới gọi là Multics (MULTiplexed Information and Computing System) Đến năm 1969, chương trình Multics bị bãi bỏ.
- Sau đó, Kenneth Thomson, một người rất thích các tính năng của
Multics, nhưng nhận thấy nó quá phức tạp và tìm cách đạt các mục tiêu
cơ bản của Multics nhưng bằng con đường đơn giản hơn Năm 1969,
phiên bản đầu tiên của Unix gọi là Unics (Uniplexed Information and
11
phiên bản đầu tiên của Unix gọi là Unics (Uniplexed Information and
Computing System) được xúc tiến xây dựng.
- Năm 1973, hệ thống được viết lại bằng ngôn ngữ C Kể từ đó, Unix trở thành hệ điều hành được sử dụng rộng rãi nhất có tính khả chuyển cao Năm 1979, phiên bản 7 của Unix được phát hành và là hệ điều hành gốc cho tất cả các hệ thống kiểu Unix sau này.
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 12- Vào thời điểm trên, cộng đồng các trường đại học và học viện, đứng
đầu là Berkeley, phát triển một nhánh khác gọi là Berkeley Software
Distribution (BSD), trong khi AT&T tiếp tục phát triển Unix dưới tên gọi
là System III, System V, System VII.
- Trên thị trường, System V là phiên bản thành công và nhiều nhà cung cấp phần cứng đã hướng tới sản phẩm này của AT&T.
- Hầu hết các phiên bản Unix đều thuộc quyền sở hữu và được bảo vệ
bởi từng nhà cung cấp phần cứng tương ứng, ví dụ Sun Solaris là một
12
bởi từng nhà cung cấp phần cứng tương ứng, ví dụ Sun Solaris là một
phiên bản của System V Trong khi, ba phiên bản của BSD cuối cùng đã trở thành mã nguồn mở: FreeBSD (dễ cài cho PC), NetBSD (đa nền
tảng) và OpenBSD (có tính bảo mật cao).
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 13.: TÓM TẮT LỊCH SỬ PHÁT TRIỂN HĐH UNIX:.
-1969 The Beginning Kenneth Thompson, Dennis Ritchie khởi công
"little-used PDP-7 in a corner" tại Bell Labs (AT&T), tiền thân của UNIX sau này.
1971 First Edition Assembler cho PDP-11/20, File system, fork() và ed
1973 Fourth Edition Được viết lại bằng C Có tính khả chuyển (Portable)
Những thay đổi có tính cách mạng đối với toàn lịch sử phát triển hệ điều hành.
13
1975 Sixth Edition Unix lần đầu lộ diện ngoài khuôn khổ Bell Labs
1979 Seventh
Edition
Unix được hoàn thiện đáng kể Thêm Bourne shell.
Chuyển sang họ máy VAX với nhân khoảng 40 KB.
1980 Xenix Xenix của Microsoft.
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 14.: TÓM TẮT LỊCH SỬ PHÁT TRIỂN HĐH UNIX:.
-1982 System III AT&T's UNIX System Group (USG) đưa ra System III.
SunOS 1.0, HP-UX, Ultrix-11.
1983 System V Computer Research Group (CRG), UNIX System Group
(USG) hợp nhất thành UNIX System Development Lab.
AT&T công bố System V, phiên bản đầu tiên được hỗ trợ.
Hơn 100.000 bản UNIX được cài trên toàn thế giới.
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 151989 SVR4 UNIX System V Release 4 thống nhất System V, BSD và Xenix.
Hơn 1.2 triệu bản Unix.
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 161993 4.4BSD 4.4BSD phiên bản cuối cùng của Berkeley.
Tháng 6, Novell mua USL.
Late
1993
SVR4.2MP Novell chuyển thương hiệu "UNIX" và Single UNIX
Specification cho X/Open.
Trang 17IRIX 6.4, AIX 4.3 và HP-UX 11.
17
IRIX 6.4, AIX 4.3 và HP-UX 11.
1998 UNIX 98 The Open Group công bố UNIX 98
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 18.: TÓM TẮT LỊCH SỬ PHÁT TRIỂN HĐH UNIX:.
-1999 UNIX at 30 UNIX tròn 30 tuổi Linux 2.2 kernel.
The Open Group cùng IEEE cùng xem xét lại POSIX và Single UNIX Specification.
Những hội thảo đầu tiên của LinuxWorld.
nhất với POSIX của IEEE.
Linux 2.4 kernel AIX 5L.
Tổng giá trị liên quan đến dòng Unix vượt 25 tỉ USD.
Trang 19.: CÂY TIẾN HÓA CỦA HĐH UNIX :.
-19 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 200.2 Lịch sử hệ điều hành Linux
- Năm 1991, Linus Torvalds bắt đầu phát triển một Kernel HĐH có
tên là “Linux”
- Trong cộng đồng Linux, nhiều tổ chức khác nhau đã kết hợp các
thành phần khác có sẵn thành bản phân phối (distribution) Đó là các nhà phân phối (distributors)
- Các bản phân phối thông dụng gồm có Linux của Red Hat,
Mandrake, SuSE, Caldera, Corel và Debian Ở Việt Nam có Linux
20
Mandrake, SuSE, Caldera, Corel và Debian Ở Việt Nam có Linux
VN và VietKey Linux.
- Có những sự khác nhau giữa các bản phân phối đó, nhưng tất cả
các bản phân phối đó đều dựa trên cùng nền tảng: Kernel của Linux
và các thư viện của GNU (http://www.gnu.org/)
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 21- Kernel của Linux được phân phối dưới giấy phép GNU GPL
(General Public License) và mã nguồn của nó được phân phối tự do
tới mọi người.
- Phiên bản Kernel cuối hiện nay là 2.6 (2.6.19 – phân phối ngày
26/11/2006 tại trang Web:
http://www.kernel.org/pub/linux/kernel/v2.6/)
- Ngoài Kernel, có nhiều phần mềm và dịch vụ được xây dựng để
chạy trên Linux (Software Packages)
21
chạy trên Linux (Software Packages)
- Người dùng có xu thế lựa chọn Linux Kernel với một số ứng dụng
cần thiết cho mình và đó là nguồn gốc của các Linux Distribution.
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 22Bắt đầu phát triển Linux.
Tham khảo thiết kế của Marice J Bach
Tháng 10, công bố bản “chính thức” của Linux (bản 0.02) mới chỉ có Bash Shell và GCC
1992
Tháng 1, Linux 0.12 Chuyển sang dùng General Public License.
Tháng 3, Linux 0.95 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 23Linus Torvalds
1994
Version 0.99 sau đó là Version 1.0 được công bố trên Internet
Cuộc cách mạng WEB đi cùng với Linux
Linus tiếp xúc với Microsoft: Kết thúc gian đoạn hàn lâm tại
Phần Lan (từ 1988-1997, đúng 10 năm học tập và nghiên cứu
tại University of Helsinki) Nay về Bay Area (Santa Clara) để
làm việc với Transmeta (Paul Allen của Microsoft là một trong
những người sáng lập chính)
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 240.3 Tại sao phải sử dụng Linux?
- Linux là một HĐH miễn phí ( tính miễn phí, tính tự do ) Mọi người
đều có thể truy cập và thay đổi Linux
- Linux là một hệ điều hành mạnh và tin cậy ( tính ổn định )
- Trong thực tế, Linux có thể dễ dàng lấy về và nâng cấp, sửa đổi cho phù hợp ( tính mềm dẻo ) Tài liệu về HĐH này có sẵn nhiều trên
mạng.
24
mạng.
- Người sử dụng không còn bị lệ thuộc Windows hay những sản
phẩm Microsoft khác để vận hành máy tính Thay vào đó, có thể
chọn bất kỳ một chương trình nguồn mở nào ( tính linh hoạt ) Điều
này đảm bảo cho người dùng Linux duy trì hệ thống của họ và
những cải tiến sẽ không ngừng được phát triển
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 25- Linux là một HĐH 32-bit, thậm chí tới 64-bit ( tính tương thích )
Cộng đồng trên mạng hiện nay sử dụng HĐH này nhiều, do đó có
thể yên tâm rằng chúng ta luôn có “hậu phương” đông đảo và vững
mạnh sẵn sàng trợ giúp trong khoảng thời gian sớm nhất ( tính nhân
văn )
nghiên cứu HĐH chuyên nghiệp và là công cụ tốt cho
việc đào tạo tại các trường
25
việc đào tạo tại các trường
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 260.4 Mô hình phát triển
26 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 275 Các đặc tính cơ bản của Linux.
• Đa tiến trình.
• Tốc độ cao.
• Bộ nhớ ảo (Partition Swap).
• Sử dụng chung thư viện.
27
• Sử dụng các chương trình xử lý văn bản.
• Sử dụng giao diện cửa sổ.
• Samba.
• Network Information Service (NIS).
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 28Các phần mềm hỗ trợ
• Internet:Apache, Sendmail, BIND, Squid, Wu-ftp, Inn
• Database :Postgresql,mySQL,Litle SQL, SQL Server
• Desktop : KDE, GNOME
• Office : OpenOffice, KOffice, Abiwor
• Graphics : GIMP
• Development : KDevelop, Anjuta
• Các tài nguyên trên m ng :
1 http://vnlinux.org ,http://xvnkb.sf.net , http://vnlug.org
,http://freshmeat.net, http://www istrowatch.com
,http://www.osnews.com, http://www.linuxto ay.com
28 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 29• Lập lịch hoạt động.
• Sao lưu dữ liệu.
• Hỗ trợ nhiều ngôn ngữ lập trình.
• Đa người dùng (multiuser)
• Đa nhiệm (multitasking)
• Hệ thống file phân cấp (hierarchical)
Các đặc tính cơ bản … (tt)
29
• Hệ thống file phân cấp (hierarchical)
• Xuất nhập (I/O) độc lập thiết bị
• Độc lập kiến trúc và trong suốt với người dùng
• Bảo mật
• Mã nguồn mở
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 306 Các khuyết điểm của Linux.
• Thiếu trợ giúp kỹ thuật Ít có công ty nào chịu trách
nhiệm phát triển hệ điều hành Linux này, Thiếu hỗ trợ
phần cứng
• Các vấn đề về phần cứng Linux không dễ cài đặt và rất
nhiều khi không tương thích với một vài phần cứng nào
30
nhiều khi không tương thích với một vài phần cứng nào
đó, Chưa thân thiện với người dùng
• Cài đặt còn phức tạp
• Phần mềm ứng dụng còn khó thao tác
• Còn dựa nhiều vào giao tiếp dòng lệnh
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 317 Kiến trúc của Linux.
NGƯỜI DÙNG
31 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 328 Linux khác UNIX như thế nào?
• UNIX được phát triển với một chính sách nghiêm ngặt.
• Mỗi người đều có thể tham gia phát triển Linux.
• Không có tổ chức nào chịu trách nhiệm về các phiên bản
của Linux.
32 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 339 So sánh Linux với Windows
• Kernel và môi trường.
• Tính mở trong phát triển cộng đồng công nghệ.
• Khả năng phát triển hệ thống trên nhiều môi trường ứng
dụng
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 340.11
0.11 Giấy Giấy phép phép GNU GNU –– GPL (General Public License) GPL (General Public License)
- Giấy phép phần mềm mã nguồn mở (Open Source – OS) cho phép
người dùng đọc, truy cập, thay đổi và làm lại mã nguồn của một sản
phẩm phần mềm (theo tổ chức OSI – Open Source Initiative) Các giấy phép phần mềm được OSI phê chuẩn và quản lý tại
http://www.opensource.org Xem thêm chi tiết trong
phủ.
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 35- Một trong những điều khoản quan trọng là: Nếu ta thay đổi mã nguồn thì phải lập lại tài liệu về các thay đổi và đính kèm mã nguồn theo phần mềm.
- Không được thông báo bản quyền của mình (copyright) mặc dù đã thay đổi mã nguồn của chương trình.
- Xem thêm thông tin tại http://www.linux.org/info/gnu.html
- Người ta còn nói GNU GPL là “Copyleft” để thay cho khái niệm
Trang 36Nội dung chính của GNU GPL
• Tác giả vẫn giữ bản quyền đối với với phần mềm gốc.
• Người sử dụng có thể sao chép và phân phối chương
trình dưới bất cứ hình thức nào và giá cả tùy ý.
• Người sử dụng có thể thay đổi một phần của chương
trình và phân phối thay đổi của mình cùng toàn bộ
phần mềm cho người khác, với điều kiện nói rõ phần
mình thay đổi.
36
mình thay đổi.
• Nếu những thay đổi không thể tách rời toàn bộ phần
mềm thì GNU GPL sẽ mở rộng sang những thay đổi đó.
• Người sử dụng không được thông báo bản quyền.
• Phải đảm bảo cung cấp mã nguồn khi bán một sản phẩm
theo GNU GPL để người khác có thể sử dụng và/hoặc
bán tiếp Người dùng kế tiếp có đầy đủ quyền lợi như
của người trước.
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 37THƯ MỤC THAM KHẢO
37 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 380.12
0.12 Cách Cách phát phát âm âm đúng đúng chuẩn chuẩn
Linux thường được phát âm với “i” ngắn giọng mũi và trọng âm tại
nguyên âm đầu tiên: LIH LIH nucks nucks Tác giả Linus Torvalds phát âm từ
này như sau:
Bằng tiếng Thụy Điển:
http://www.linux.org/info/sounds/swedish.au
-Nghe đọc: SWEDISH SWEDISH
38
-Nghe đọc: SWEDISH SWEDISH
Bằng tiếng Anh: http://www.linux.org/info/sounds/english.au
-Nghe đọc: ENGLISH ENGLISH
- Xem thêm thông tin tại: http://www.linux.org/info/gnu.html
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 390.12
0.12 Các Các bản bản phân phân phối phối của của HĐH Linux HĐH Linux
- Các bản phân phối của Linux bao gồm:
Tập hợp các phần mềm (Software Packages)
Chương trình cài đặt (Installer)
Các cấu hình của riêng nhà sản xuất (Re-configure)
Trình quản lý và cập nhật gói phần mềm (Update/Patch)
Các phần mềm thương mại khác (Commercial Software)
Tài liệu hướng dẫn, hỗ trợ người dùng (User Guide)
39 Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 40- Một số Linux Distro chính (thông dụng - được nhiều người dùng và hỗ trợ):
trình cài đặt vào máy tính (kỹ thuật này sử dụng bộ nhớ RAM để
phục vụ trong quá trình thực thi Ví dụ Knoppix là một Linux
LiveCD ổn định và được nhiều người dùng, thích hợp cho quá trình giảng dạy Linux).
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 41FEDORA CORE LINUX
Dự án mã nguồn mở được Red Hat tài trợ, công bố tháng 9/2003
Những thành quả cuả cộng đồng có thể được dùng cho Red Hat Enterprise Linux
Các phiên bản phổ biến: 4, 5, 6
Tham khảo: http://fedora.redhat.com
41
Tham khảo: http://fedora.redhat.com
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)
Trang 420.13
0.13 Cài Cài đặt đặt HĐH Linux HĐH Linux
Giai đoạn chuẩn bị trước khi cài đặt
- Mục tiêu: Nắm được một số yêu cầu cần thiết nhằm phục vụ tốt trong quá trình cài
đặt.
Yêu cầu phần cứng: (Tối thiểu)
– CPU 386 hoặc mới hơn.
– Dung lượng bộ nhớ: 16MB
– Dung lượng ổ cứng:
42
– Dung lượng ổ cứng:
~ 100MB nếu chỉ sử dụng Console Mode (~1000MB nếu cài RedHat 9.0)
~ 500MB nếu sử dụng Graphic Mode (~1500MB nếu cài RedHat 9.0)– Ổ CD-ROM
– Ổ đĩa mềm 1.44MB
Yêu cầu phần mềm:
– Bộ cài đặt RED HAT Linux 9.0 (6 disks: CD1-CD6)
– Đĩa mềm khởi động Linux
Soạn thảo TS LÊ MẠNH (manhle@uit.edu.vn)