1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng môn học lập trình linux

324 726 8
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lập trình linux
Tác giả Nguyễn Phương Lan, Hoàng Đức Hải
Người hướng dẫn Giảng Viên Đào Thị Ngọc Hân
Trường học Trường Đại học Xây dựng
Chuyên ngành Công nghệ thông tin
Thể loại Bài giảng
Năm xuất bản 2025
Thành phố Hà Nội
Định dạng
Số trang 324
Dung lượng 11 MB

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

Nội dung

bài tập lap trinh shell

Trang 1

Giảng viên: Đào Thị Ngọc Hân Email: daothingochan2012@gmail.com

Điện thoại: 0987.999.338 Địa chỉ: P408 - nhà A1

Bộ môn Công nghệ Phần mềm Khoa Công nghệ Thông tin Trường Đại học Xây dựng

Trang 2

Thông tin về môn học

Thông tin về môn học –– Lập trình Linux Lập trình Linux

 60 tiết = 36 tiết lý thuyết + 24 tiết thực hành

 Điểm chuyên cần: 5 điểm

 5đ đi học đầy đủ & Ý thức tốt *(ĐD/tổng)

 Hình thức thi cuối kỳ:

 Lý thuyết (trắc nghiệm – 30 phút): 40% tổng số điểm

 Thực hành (trên máy – 60 phút): 60% tổng số điểm

 Không sử dụng tài liệu

Trang 3

Tài liệu tham khảo

 Beginning Linux Programming 4th

Edition, Neil Matthew, Richard

Stones, Express Wrox, 2007

 Lập trình Linux - Tập 1, Nguyễn Phương Lan, Hoàng Đức Hải, NXB Giáo Dục, 2004

Trang 4

Tài liệu tham khảo

 Ubuntu Server Guide

 https://help.ubuntu.com

 Linux Bible 2010 Edition,

Christopher Negus

Trang 5

Các tài liệu khác

Trang 7

Nội dung

 Giới thiệu về hệ điều hành Linux

 Hướng dẫn cài đặt HĐH Linux - Ubuntu

 Kiến trúc chung của Unix / Linux

 Đường dẫn và cách truy xuất ổ đĩa trong Linux

 Tương tác với hệ thống Linux

Trang 8

1.1 Giới thiệu về hệ điều hành Linux

Hệ điều hành:

Hệ điều hành là một phần mềm chạy trên máy tính,

cách dễ dàng

Trang 9

1.1.1 Lịch sử hệ điều hành Linux

–– Linux & chặng đường 20 năm Linux & chặng đường 20 năm

Kernel HĐH có tên là “Linux”

Với suy nghĩ: “chỉ làm theo sở thích, không tham vọng vĩ

đại hay chuyên nghiệp như GNU”

“Tôi đang xây dựng một hệ điều hành miễn phí cho dòng

máy AT-386(486) Công việc bắt đầu từ tháng 4 và cho đến nay đã sẵn sàng Do hệ điều hành của tôi tương tự như Minix, tôi muốn nhận được mọi thông tin phản hồi về những thứ mọi người thích hay không thích ở hệ điều hành Minix.”

Trang 10

 Hiện nay: 70% các sàn giao dịch chứng khoán sửdụng Linux, các máy chủ của Amazon, Facebook,Twitter, eBay, Google đều chạy Linux

Top 500 Super Computer

Trang 13

Bắ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.

Trang 14

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.

1995

Tháng 1, FreeBSD 2.0.

Red Hat có giám đốc điều hành mới là Robert Yong

(người sáng lập Linux Journal)

1996

Con gái đầu lòng của Linus ra đời Sự phát triển của Linux có chậm lại.

Tháng 12, Linux 2.0.

1997

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).

1998 …

Trang 15

1.1.3 Tại sao phải sử dụng Linux?

Linux là một HĐH miễn phí (tính tính miễn miễn phí, phí, tính tính tự tự do 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 tính ổn ổn định đị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 tính mềm mềm dẻo dẻo) Tài liệu về HĐH này

có sẵn nhiều trên 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 tính linh linh hoạt 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

Trang 16

 Linux là một HĐH 32-bit, thậm chí 64-bit (tính tính tương tương thích 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 tính nhân nhân văn văn)

 Linux Linux thích thích hợp hợp cho cho những những người người muốn muốn đi đi vào vào nghiên

nghiên cứu cứu HĐH HĐH chuyên chuyên nghiệp nghiệp và và là là công công cụ cụ tốt tốt cho

cho việc việc đào đào tạo tạo tại tại các các trường trường đại đại học học

Trang 17

1.1.4 Mô hình phát triển

Trang 18

1.1.5 Giấy phép GNU

1.1.5 Giấy phép 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 vietnamese.php/

http://www.opensource.org/docs/osd- Open Source mang ý nghĩa “tự do” nhiều hơn là “miễn phí”.

 Mỗi loại giấy phép có những điều khoản quy định riêng.

 Ví dụ: BSD Licensing chỉ dài 1 trang với 3 điều khoản cần phải tuân thủ nhưng Mozilla Public License 1.1 dài đến 12 trang đề cập mọi thứ từ việc định nghĩa thuật ngữ đến cách thức áp dụng giấy phép cho chính phủ.

Trang 19

 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 “Copyright”.

Trang 21

Nội dung chính của GNU

Nội dung chính của GNU GPL 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.

 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.

Trang 22

1.1.6 Cách phát âm đúng 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:

Trang 23

Linux là gì?

 Có rất nhiều tên gọi ~ Linux & phần mềm nguồn mở

 HĐH có thể chia ra 4 thành phần chính: nhân, cấu trúc (hệ thống) tập tin, trình dịch lệnh người dùng và các tiện ích.

 Nhân là thành phần chính, nòng cốt của HĐH, điều khiển kiến trúc phần cứng & điều khiển việc thực hiện chương trình.

 Cấu trúc tập tin (hệ thống tập tin) là hệ thống lưu tập tin trên các thiết bị lưu

 Trình dịch lệnh (hệ vỏ - shell) là chương trình tổ chức giao tiếp giữa máy tính và người dùng.

 Tiện ích là các chương trình riêng lẻ, thực hiện các công việc dịch vụ.

 “Hệ điều hành dựa trên nhân Linux”

Trang 24

 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à Kernel: 3.3 (18 March 2012)

Trang 25

1.1.7 Các bản phân phối của 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)

Trang 26

để phục vụ trong quá trình thực thi).

Trang 27

 Pieces 2 Slides\Gldt.svg

Trang 28

 More

Trang 30

1.2 Cài đặt HĐH Linux

Giai đoạn chuẩn bị trước khi 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ớ: 256MB

 Dung lượng ổ cứng: 2GB

 Ổ đĩa CD-ROM

 Yêu cầu phần mềm:

 Bộ cài đặt Ubuntu 11.10, 12.10 (file iso, 695MB) hoặc đĩa CD

 Nếu không có ổ đĩa CD-ROM thì cần phần mềm tạo ổ đĩa ảo

 Cài đặt để học tập:

 Máy tính đang sử dụng với HĐH Windows

 Bộ cài đặt Ubuntu 11.10 (695MB, file iso)

 Phần mềm tạo ổ đĩa ảo (ví dụ: Ultra ISO)

 Mount bộ cài đặt Ubuntu vào ổ đĩa ảo

 Mở wubi.exe

 Để tùy chọn Hệ điều hành khởi động có thể dùng EasyBCD 2.0

Trang 32

1.3.1 Nhân là gì?

system functions

Trang 33

Phân loại nhân

 It includes code only necessary to allow the system to provide major functionality.

 Inter-process Communication

 Some memory management

 Low level process management & scheduling

 Low level input / output

 It includes all the necessary functions.

 Such as Linux and …

Trang 34

Monolithic vs Microlithic

Performance Flexible

Modular Easy to implement

Trang 35

1.3.2 Kernel Architecture Overview

Trang 36

File System

retrieving and updating this information

as : open, read, write, …

 FAT16, FAT32, NTFS

 ext2, ext3

Trang 37

 Manage the cataloging of the file system

 Used to access the peripheral devices

Trang 38

So sánh với hệ thống file của Windows

 Boot Block : information needs to boot the system

 Super Block : File System Specifications

Trang 39

an i-number

access the file

Trang 40

Inode (Cont.)

Trang 41

Directories

Trang 42

Virtual File System

program and the file system implementations

Trang 43

Virtual File System (Cont.)

and inodes (the same way as the Ext2)

Trang 44

Virtual File System (Cont.)

Trang 45

Process Management

(time slice)

Trang 46

Process Management (Cont.)

the result of a fork system call

processes (Parent and Child)

Trang 48

Process Structure (cont.)

task_struct data structure in the system

 This means that the maximum number of processes in the system is limited by the size of the task vector

Trang 50

Device Driver

hardware from user

into every application, the code is kept in the Linuxkernel

 All HW devices look like regular files.

Trang 51

Memory Management

limitation

Trang 52

Virtual memory

Trang 53

Physical and Virtual memory

Trang 54

Swap memory

manner similar to memory

Trang 55

Network layers

Trang 56

Linux network layers

Trang 57

BSD socket layer

 Used in networking and IPC.

Trang 58

What is socket?

Trang 59

INET socket layer

operation which is registered with BSD socket layer

Trang 61

User Space

trình của người sử dụng

 Hệ thống tránh việc các tiến trình thuộc không gian User Space ảnh hưởng lẫn nhau

 Chỉ có tiến trình của kernel mới có thể truy cập vào tiến trình của người dùng

Trang 62

Kernel Space

gọi hệ thống

Trang 63

System Call

nhau

được truyền từ User Space tới Kernel Space

kernel khi nó thực hiện lời gọi hệ thống

Trang 64

Mối quan hệ giữa User Space và Kernel Space

Trang 65

1.3.3 Kernel Functional Overview

Trang 66

Tổng quan về chức năng của nhân

Cung cấp cơ chế bộ nhớ ảo

Hệ thống tập tin trừu tượng

Trừu tượng những chi tiết

khác biệt của các loại thiết bị

bằng cách giới thiệu một giao

diện tập tin chung cho tất cả

Giao tiếp liên tiến trình

Hỗ trợ giao tiếp giữa các tiến trình trên một máy tính

Trang 67

Tổng quan về chức năng của nhân

Trang 68

Các phiên bản Linux kernel

 Stable (ổn định): Phiên bản ở mức sản phẩm phù hợp cho việc triển khai rộng rãi

 Development (phát triển): Phiên bản thử nghiệm với nhiều cải tiến được đưa vào

Trang 69

Quá trình phát triển phiên bản

bản Development

 không cho thêm mới tính năng,

 chỉ cho chỉnh sửa tính năng đã có

đóng băng: chỉ chấp nhận các hiệu chỉnh lỗi

tiên của chuỗi phiên bản stable mới

Trang 70

Short history of major Linux kernel releases

Trang 71

Mã nguồn của Linux kernel

cộng đồng phát triển

 Phân phối những thay đổi trên mã nguồn

 Dùng để nâng cấp version mà không download toàn bộ mã nguồn version mới

Trang 72

 System calls & glibc

 Input / output Control

 Cần hiểu hệ thống kiến trúc kernel

 Device drivers

Trang 73

1.4 Đường dẫn và cách truy xuất ổ đĩa trong Linux

 Cấu trúc cây thư mục

Trên DOS/Windows, các ổ đĩa C:, D:, E:, làm gốc cho mọi đường

dẫn truy xuất các tập tin:

C

C::\\Users Users\\NgocHan NgocHan\\Documents Documents\\myletter myletter txt txt

Trên Unix/Linux, ký hiệu “/” làm ký tự đại diện cho thư mục gốc,

đồng thời là ký tự làm dấu phân cách thư mục:

/home/ngochan/Documents/myletter

/home/ngochan/Documents/myletter txt txt

 Diễn giải: /home/ngochan/Documents/myletter.txt là đường dẫn

tuyệt đối đến tập tin myletter.txt trong thư mục Documents của người dùng ngochan thuộc thư mục home dưới thư mục gốc /

Trang 75

 Ví dụ: nếu ta có 2 đĩa cứng a và b, một đĩa mềm vàmột ổ CD-ROM Hãy giả sử rằng ổ đĩa thứ nhất có 2phân vùng (partition) là a1 và a2, ổ đĩa thứ 2 chỉ cómột phân vùng là b.

ổ cứng a, phân vùng a1 (hda1): ổ đĩa C

ổ cứng a, phân vùng a2 (hda2): ổ đĩa D

ổ đĩa mềm: /mnt/floppy

ổ CD-ROM: /mnt/cdrom -> mỗi ổ đĩa sẽ được gắn kết (mount) vào trong cây thư mục (Tree Directory) giống như là một thư mục bình thường

Trang 77

1.5 Tương tác với hệ thống và cơ chế đăng nhập

1.5.1 Tương tác với hệ thống

Có hai lựa chọn khi tương tác với hệ thống Linux:

Giao diện dòng lệnh (Console - Command Line).

 Tương tự như DOS Prompt/Command Prompt

 Shell là một chương trình thông dịch chịu trách nhiệm tiếp nhận lệnh do người dùng đưa vào từ bàn phím Có nhiều dạng Shell nhưng thông dụng là C Shell, Korn Shell và Bash Shell.

Giao diện đồ hoạ (GUI - Graphic User Interface).

 Tương tự như trong Windows

 Được đảm trách bởi X-Window với GUI dạng GNOME, Unity và KDE

Trang 78

1.5.2 Đăng nhập

Yêu cầu phải có USERNAME và PASSWORD (được cấp bởi root

-người quản trị hệ thống)

 Dấu hiệu phân loại tài khoản người dùng:

root (super-user)  dấu nhắc có dạng # - toàn quyền

username (normal-user)  dấu nhắc có dạng $ - giới hạn quyền

 Linux là HĐH đa chương, đa nhiệm, đa người dùng

 Trên cùng một máy, có thể đăng nhập với nhiều tài khoản khác nhau (có

tới 7 console ảo phục vụ cho quá trình đăng nhập và làm việc).

Sử dụng tổ hợp phím Alt + F1 Alt + F7 để hoán chuyển giữa các

console.

 Do tính đa nhiệm, Linux có thể chạy nhiều chương trình cùng lúc ngay từ dòng lệnh.

Trang 80

2.1 Đăng nhập hệ thống Linux

Trang 81

2.1.1 Truy cập vào máy tính đã cài đặt HĐH Linux

hiện dấu nhắc mời đăng nhập hệ thống:

Trang 82

2.1.2 Sử dụng Putty để truy cập vào máy Linux

 Khi đó, màn hình kết nối như trang sau:

 Chọn Open, sau đó login vào máy như đang dùng một terminal của hệ thống Linux

Trang 83

2

3

Trang 84

Hiển thị trên Putty

login as: ngochan

ngochan@192.168.228.170's password:

Welcome to Ubuntu 11.10 (GNU/Linux 3.0.0-12-generic i686)

* Documentation: https://help.ubuntu.com/

New release '12.04 LTS' available.

Run 'do-release-upgrade' to upgrade to it.

Last login: Wed Oct 03 20:55:36 2012 from 192.168.228.1 ngochan@ubuntu:~$

Trang 85

2.1.3 Thoát khỏi hệ thống

 Dùng lệnh exit hoặc logout

# shutdown –h now

$ sudo shutdown –h now

# shutdown –r now

Trang 86

2.2 Quản lý tập tin

 Tổ chức hệ thống tập tin trên Linux

 Các lệnh di chuyển giữa các thư mục, liệt kê tập tin

 Các lệnh thao tác trên các tập tin và thư mục

 Nội dung các tập tin

 Quyền truy cập tập tin

 Xuất nội dung thông báo

 Xem hướng dẫn sử dụng lệnh

Trang 87

2.2.1 Tổ chức hệ thống tập tin trên Linux

/etc Cấu hình hệ thống cục bộ theo máy

/usr/bin Chứa hầu hết các lệnh người dùng

/dev Các tập tin thiết bị

/usr/man Chứa các tài liệu trực tuyến

/usr/include Chứa các tập tin include chuẩn của C

/var/log Các tập tin lưu giữ thông tin làm việc hiện hành của người

dùng /home Chứa các thư mục con là thư mục chủ của các user

/usr/lib Chứa các tập tin thư viện của các chương trình người dùng

• Khi truy cập vào hệ thống, thư mục làm việc của người dùng được xem như là thư mục chủ

• Ví dụ : Thư mục chủ của ngochan sẽ là /home/ngochan

• Nếu đường dẫn bắt đầu bằng dấu “/”, hệ thống xem đó như là một tên đường dẫn đầy đủ bắt đầu từ thư mục gốc.

Trang 88

2.2.2 Các lệnh liệt kê tập tin, di chuyển

mình thì phải chọn đúng tên lệnh Tên lệnh là bắtbuộc phải có khi gõ lệnh

 các tham số có thể có hoặc không có, được viếttheo quy định mà ta sử dụng, nhằm cung cấp thôngtin về các đối tượng mà lệnh tác động tới

Ngày đăng: 03/01/2014, 20:24

TỪ KHÓA LIÊN QUAN