1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Linux và phần mềm mã nguồn mở

266 21 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 266
Dung lượng 7,81 MB

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

Nội dung

Mục tiêu của môn học▪ Cung cấp các kiến thức cơ bản về giấy phép mã nguồn mở và cộng đồng FOSS ▪ Hiểu về cách thức làm việc của hệ điều hành Linux ▪ Hiểu về các khái niệm cơ bản của HĐH

Trang 1

Linux và Phần mềm Mã

nguồn mở

Bài 1: Giới thiệu

Trang 2

Nội dung

1 Giới thiệu môn học

2 Tài nguyên học tập

3 Sự ra đời của mã nguồn mở

4 Các loại giấy phép phân phối mã nguồn

5 Giới thiệu về Linux

Trang 3

Giới thiệu môn học

Phần 1

Trang 4

Môn học “Linux”

▪ Tên môn học đầy đủ là “Linux và phần mềm mã

Trang 5

Mục tiêu của môn học

▪ Cung cấp các kiến thức cơ bản về giấy phép mã

nguồn mở và cộng đồng FOSS

▪ Hiểu về cách thức làm việc của hệ điều hành Linux

▪ Hiểu về các khái niệm cơ bản của HĐH Linux

▪ Biết sử dụng giao diện dòng lệnh cơ bản

▪ Biết làm việc với hệ thống file, tiến trình và dịch vụ

▪ Biết làm việc với x-windows

▪ Biết cấu hình các dịch vụ internet cơ bản và có thể

vận hành máy chủ internet chạy Linux

Trang 6

Kiến thức yêu cầu / nên biết

▪ Kiến thức về kiến trúc máy tính (cơ bản)

Trang 8

Học môn này có lợi gì?

▪ Có kiến thức về hệ điều hành Linux

▪ Có hiểu biết sâu sắc hơn về hoạt động của máy

tính, giúp khai thác tốt hơn các thiết bị tin học

▪ Có thể vận hành ở mức cơ bản các máy chủ

internet (lợi thế rất lớn khi đi xin việc liên quan đến ngành lập trình web, quản trị hệ thống,…)

▪ Có thêm lựa chọn cho đề tài nghiên cứu khoa học

sinh viên, làm đồ án tốt nghiệp

▪ Có điểm môn học và được ra trường

Trang 9

Nội dung môn học

▪ Tổng quan về Linux

▪ Người dùng, phân quyền và quản lý file

▪ Quản trị tài nguyên và dịch vụ

Trang 10

Tài nguyên học tập

Phần 2

Trang 11

Tài liệu học tập

▪ Sinh viên được cung cấp:

▪ Bài giảng môn học (pdf)

▪ Bài tập thực hành (pdf)

▪ Tài liệu tham khảo

▪ Phần mềm và các file tài nguyên liên quan (tùy chọn)

▪ Online: bài giảng, bài tập, tài liệu tham khảo, phần

mềm, điểm quá trình, thông báo,… sẽ được đưa lên website http://txnam.net, mục BÀI GIẢNG

Mọi thắc mắc về môn học được khuyến khích trao đổi với thầy giáo qua email

Trang 12

Tài liệu học tập

▪ Tài liệu tham khảo:

▪ Ellen Siever, Stephen Figgins, Robert Love and Arnold

Robbins Linux in a Nutshell, 6th edition O’Reilly Media, 9/2009.

▪ Don R Crawley The Accidental Administrator: Linux

Server Step-by-Step Configuration Guide 2nd edition SoundTraining.net, 2014.

▪ Tài liệu tiếng Việt có nhiều trên mạng

Với môn học này, chìa khóa thành công là thực hành thật nhiều và thực hành từ khi bắt đầu vào môn học

Trang 13

Phần mềm thực hành

▪ Sinh viên cần sử dụng các phần mềm tạo máy ảo và

thực hành trên các máy ảo đó

▪ Phần mềm tạo máy ảo:

▪ VMware

▪ VirtualBox

▪ Các bản linux dùng trong môn học:

▪ Ubuntu: dùng cho cài đặt và sử dụng các phần mềm cá nhân, sử dụng giao diện đồ họa

▪ CentOS: dùng cho cài đặt và quản trị các dịch vụ

internet, sử dụng giao diện dòng lệnh

Trang 14

Sự ra đời của mã nguồn mở

Phần 3

Trang 15

Sự ra đời của mã nguồn mở

▪ Từ ý tưởng của Richard Matthew Stallman cho rằng

mã nguồn cũng như kiến thức, nên được phổ biến miễn phí

▪ Sinh ngày 16/3/1953

▪ Ý tưởng về GNU (9/1983)

▪ GNU = G NU’s N ot U nix

▪ Free Software Foundation

▪ Khái niệm copyleft (1985)

▪ Giấy phép cộng đồng GNU

▪ Nhiều người không đồng ý với Richard Stallman,

trong đó nổi tiếng nhất là Bill Gates

Trang 16

Sự ra đời của mã nguồn mở

▪ Ý tưởng về phần mềm tự do (cuối năm 1983)

▪ Dự án GNU: phát triển một HĐH miễn phí (1984)

▪ GNU trở thành thuật ngữ để chỉ phần mềm tự do: thoải mái sao chép, sửa đổi và phân phối lại

▪ Nhiều phần mềm kiểu GNU xuất hiện: GNU Emacs, GNU

C Compiler, GNU Debugger,…

▪ Khai sinh Tổ chức Phần mềm Tự do (Free Software

Foundation) để thúc đẩy các phần mềm được phân phối theo giấy phép GPL

▪ Sự ra đời của Linux (1991), chính thức hoàn thiện

mảnh ghép lớn nhất của GNU

Trang 17

Lợi ích của phần mềm nguồn mở

▪ Chi phí ban đầu rất rẻ (gần như bằng 0)

▪ Không bị kiểm soát hoặc bắt chẹt bởi một nhà cung

cấp duy nhất

▪ Có thể tự tạo phiên bản riêng phù hợp với yêu cầu

đặc biệt của tổ chức, doanh nghiệp

▪ Bảo mật tốt hơn, vì mã nguồn được “soi” bởi nhiều

người hơn

▪ Tốt cho việc học tập, nghiên cứu

▪ Có cơ hội cải tiến nhiều hơn

Trang 18

Phần mềm nguồn mở là cơ hội

▪ Nhiều doanh nghiệp xây dựng mô hình kinh doanh

dựa trên phần mềm nguồn mở

▪ Triển khai phần mềm và hỗ trợ kĩ thuật

▪ Đào tạo người sử dụng

Trang 19

Các loại giấy phép phân phối

mã nguồn

Phần 4

Trang 20

Giấy phép nguồn đóng

▪ Thương mại (commercial software)

▪ Tác giả hoặc nhà sản xuất giữ bản quyền, cung cấp ở

dạng mã nhị phân, muốn dùng phải trả tiền

▪ Thử nghiệm có giới hạn (limited trial software)

▪ Giống như phần mềm thương mại, nhưng có thể dùng thử mà không phải trả tiền

▪ Chia sẻ (shareware):

▪ Cung cấp đầy đủ tính năng, mua hay không thì tùy đối tượng sử dụng và hoàn cảnh

Trang 21

Giấy phép nguồn đóng

▪ Sử dụng phi thương mại (non-commercial use):

▪ Tổ chức phi lợi nhuận thì dùng không phải trả tiền Tổ chức thương mại thì phải trả phí.

▪ Dùng với mục đích phi thương mại thì không phải trả phí

▪ Mã tự do không phải trả phí (royalties free binaries

Trang 22

Giấy phép nguồn mở

▪ Open Source BSD-style

▪ Mã nguồn có thể sửa đổi thoải mái, muốn sửa đổi nâng cấp cần được sự chấp thuật của nhóm phát triển

▪ Open Source Apache-style

▪ Mã nguồn có thể sửa đổi thoải mái, có thể tạo phiên bản khác tùy thích

▪ Open Source Copyleft, Linux-style (General Public

Licence – GPL)

▪ Nếu sử dụng một phần mềm mã nguồn GPL, thì phần mềm mới cũng phải tuân theo chuẩn GPL

Trang 23

Giới thiệu về Linux

Phần 5

Trang 24

Các hệ thống Unix

Trang 25

Đặc trưng của Linux

▪ Mã nguồn mở

▪ Nhiều tính năng cảm hứng từ Unix

▪ Đa nhiệm, đa người dùng

▪ Tin cậy, sẵn sàng, mềm dẻo

Trang 26

Cấu trúc của Linux

Trang 27

Nhân Linux

▪ Thành phần chính điều phối mọi

hoạt động của hệ thống: tiếntrình, bộ nhớ, file, thiết bị, mạng,…

Trang 28

Các phiên bản phân phối Linux

Trang 29

Ubuntu với giao diện unity

http://www.ubuntu.com

Trang 30

Mint với giao diện cinnamon

https://www.linuxmint.com

Trang 31

Debian với giao diện gnome

https://www.debian.org

Trang 32

openSUSE với giao diện Plasma

https://www.opensuse.org

Trang 33

Giao diện của elementary OS

https://elementary.io

Trang 34

Linux và Phần mềm Mã

nguồn mở

Bài 2: Tổng quan về Linux

Trang 35

 Kho chứa (repository)

 Mô hình phát triển bazaar

2 Cài đặt linux trên máy ảo

Trang 36

Một số khái niệm cơ bản trong Linux

Phần 1

Trang 37

Linux distro

 Nghĩa tiếng Việt là “bản phân phối Linux”

 Nhân linux chỉ giúp quản trị tài nguyên máy tính,

chưa phải là một hệ thống hoàn chỉnh dành cho

người sử dụng

 Linux distro = nhân linux + các phần mềm bổ sung

 Do mã nguồn mở, nên mỗi một công ty có thể tùy chọn các phần mềm bổ sung theo mục tiêu riêng của mình

 Một phần mềm thường tối ưu cho distro cụ thể nào đó

 Mỗi cách xây dựng hệ thống như vậy gọi là một distro

 Có hàng nghìn linux distro khác nhau

Trang 38

Linux distro

 Linux distro thường gồm:

 Nhân linux (linux kernel)

 Tập hợp các gói 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 (update/patch)

 Tài liệu hướng dẫn sử dụng (user guide)

 Gói phần mềm: thư viện hoặc ứng dụng

 Có thể phụ thuộc lẫn nhau

 Định dạng nhị phân tùy vào distro

Trang 39

Linux distro nào phù hợp nhất?

 Distro cho doanh nghiệp: Red Hat Enterprise Linux

hoặc SUSE Enterprise Linux

 Distro cho server: CentOS hoặc Debian

 Distro cho desktop: Linux Mint Cinnamon

 Distro cho laptop: Ubuntu MATE

 Distro cho máy tính yếu: Lubuntu

 Distro cho xử lý đa phương tiện: Ubuntu Studio

 Distro cho di động: Plasma Mobile

 Distro cho chip ARM: Arch Linux ARM

Trang 40

Linux distro nào phù hợp nhất?

 Distro cho chơi game: Steam OS

 Distro cho hoạt động ẩn danh: Tails

 Distro cho internet vạn vật: Snappy Ubuntu Core

 Distro cho máy dựa trên đám mây: Chrome OS

 Distro cho điện thoại thông minh: Android

Các distro giúp linux phù hợp với từng loại thiết bị

Các distro làm cho linux trở nên phân mảnh

Các distro khiến viết ứng dụng trở nên phức tạp

Trang 41

Linux shell

 Linux shell là bộ diễn dịch các câu lệnh thành các

yêu cầu cho hệ thống

 Trong linux có nhiều shell

 Bourne shell (bash)

 Korn shell

 C shell

 Bash là shell mặc định

 Dùng giao diện text (console)

 Giao diện đồ họa (x-window) thực chất chỉ là ứng dụng chạy trên shell

Trang 42

 X-window (gọi tắt là X11 hay X) là thuật ngữ chỉ các

hệ thống giao diện đồ họa trên unix/linux

 Dựa trên X11 người ta xây dựng các ứng dụng quản

lý desktop cho linux: GNOME, KDE,…

 Đối với các máy linux dùng cá nhân, để thân thiện

hơn với người dùng, hệ thống tự động chạy một

ứng dụng quản lý desktop mặc định, giúp người

dùng không chuyên dễ dàng sử dụng

 Hầu hết các máy linux server đều không sử dụng

giao diện đồ họa, mọi việc thực hiện qua bash

Trang 43

Kho chứa (repository)

 Linux sử dụng kho chứa để lưu trữ các phần mềm

(gồm cả mã nhị phân, mã nguồn, tài liệu, file kiểm tra toàn vẹn,…), thường gọi tắt là các repo

 Bản thân đĩa DVD cài đặt cũng có thể coi là một repo

 Hầu hết các repo đặt trên các file server internet, hệ

thống có thể kết nối và tải phần mềm về qua giao thức truyền file nào đó (giống như tải file bằng trình duyệt)

 Thường mỗi linux distro sẽ có repo của riêng nó, chứa các phần mềm đã được nhà sản xuất kiểm định

Linux repo là khuôn mẫu để phát triển Apple Store và Google Play sau này

Trang 44

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

 Hầu hết các phần mềm trên linux sử dụng mô hình

phát triển bazaar (phố chợ)

 Về cơ bản thì ý tưởng là đưa mã nguồn ra công khai

 Người sử dụng tham gia vào quá trình phát triển

 Những phần mềm kiểu này thường chia phiên bản

thành 3 loại: stable (bền vững), beta, night version

 Loại stable: phiên bản hoạt động ổn định, ít lỗi

 Loại beta: phiên bản có tính năng mới, chưa kiểm tra kĩ

 Loại night version: phiên bản vừa đưa thêm tính năng mới hoặc vừa sửa lỗi, hoạt động chưa ổn định

Trang 45

Cài đặt linux trên máy ảo

Phần 2

Trang 46

 Nên thử nghiệm các bản linux khác, chẳng hạn như

Debian (hỗ trợ tiếng Việt rất tốt)

Trang 47

Thiết lập máy ảo

 Thường các máy linux đòi hỏi cấu hình không cao,

nhưng máy ảo càng mạnh thì sẽ càng dễ dàng thử nghiệm các phần mềm phức tạp

 Hình bên là một cấu hình thiết lập với VMware

Trang 48

Cài đặt

1 Khởi động máy ảo vào BIOS để kiểm tra xem cấu

hình đã phù hợp chưa

2 Khởi động vào DVD và chọn cài đặt hệ điều hành

3 Làm theo hướng dẫn của phần mềm cài đặt

 Lựa chọn ngôn ngữ, bàn phím, múi giờ,…

 Thiết lập người dùng

 Các cấu hình khác

4 Khởi động lại và bắt đầu sử dụng

Trang 49

Linux và Phần mềm Mã

nguồn mở

Bài 3: Làm quen với hệ thống linux

Trang 50

Nhắc lại và chú ý

Các khái niệm cơ bản trong linux: bản phân phối

(distro), shell, x-window, kho chứa (repo), mô hình bazaar (stable, beta, night version)

Quá trình cài đặt linux lên máy ảo (giống như dùng một máy tính mới, chỉ dùng để chạy duy nhất một bản phân phối linux nào đó)

Linux cũng có thể cài đặt lên máy đã cài trước đó hệ

điều hành khác (Windows, Mac OS hoặc bản Linux

khác), người sử dụng có thể chọn khởi chạy hệ điều

hành khi máy khởi động (sinh viên tự tìm hiểu)

Trang 51

Nội dung

1 Các chế độ làm việc của linux

2 Môi trường văn bản (console)

3 Môi trường đồ họa (graphics)

4 Làm quen với hệ thống file

Trang 52

Các chế độ làm việc của linux

Phần 1

Trang 53

TRƯƠNG XUÂN NAM 5

Chế độ làm việc văn bản (3)

Chế độ làm việc đồ họa (5)

Trang 54

Các chế độ làm việc của linux

Hệ điều hành linux có 6 chế độ làm việc khác nhau

Chế độ

(run level)

Trường hợp sử dụng (common usages)

4 Chưa sử dụng

Trang 55

Các chế độ làm việc của linux

Ta có thể chuyển sang trạng thái mới bằng lệnh

init [run level]

Áp dụng:

Cũng có thể khởi động lại máy bằng lệnh “reboot” hoặc “shutdown –r now”

Cũng có thể tắt máy bằng lệnh “poweroff” hoặc

“halt” hoặc “shutdown –h now”

Trang 56

Môi trường văn bản (console)

Phần 2

Trang 57

Môi trường văn bản (console)

Khi khởi tạo vào môi trường văn bản, thực chất

người dùng sẽ làm việc với shell (thường là bash)Khi bắt đầu, hệ thống sẽ yêu cầu tên đăng nhập

(username) và mật khẩu người dùng (password)

Sau khi đăng nhập thành công, shell sẽ nhận lệnh

gõ trực tiếp từ người dùng và thực thi các câu lệnh

đó sau mỗi lần nhấn phím <enter>

Để thuận tiện, shell cung cấp một dấu nhắc và một chút thông tin về hệ thống hiện tại, giúp người sử dụng định hướng rõ hơn

Trang 58

Môi trường văn bản (console)

Dấu nhắc và thông tin hiện tại thường có dạng như sau (có thể chỉnh lại nếu muốn):

<tên-đăng-nhập>@<tên-máy>:<vị trí><kiểu>

Ví dụ dấu nhắc là: txnam@server01:/tmp$

Ta có thể hiểu như sau:

Chú ý, đôi khi dấu nhắc sẽ là: # (quản trị hệ thống)

Trang 59

Môi trường văn bản (console)

Môi trường văn bản thường gọi là terminal

Đây là môi trường ưa thích của các nhà quản trị

Dễ dàng đăng nhập từ xa (từ máy tính khác, qua mạng) Nhanh, gọn, nhẹ, chiếm ít tài nguyên của hệ thống

Dễ dàng lặp lại các thao tác vừa thực hiện

Chạy được các lệnh được chuẩn bị từ trước

Dễ dàng tham khảo và lặp lại các câu lệnh cần thiết từ nhà quản trị khác

Muốn thoát khỏi người dùng hiện tại, sử dụng lệnh

“exit” hoặc “logout”

Trang 60

Môi trường đồ họa (graphics)

Phần 3

Trang 61

Môi trường đồ họa (graphics)

Môi trường đồ họa của linux có rất nhiều lựa chọn, tuy nhiên chỉ phù hợp với người dùng phổ thông

Lợi thế:

Trực quan, dễ hiểu, nhiều thông tin hơn

Có nhiều công cụ hỗ trợ các thao tác quản trị phức tạp

Có thể chạy song song với terminal

Bất lợi:

Tốn tài nguyên

Không phù hợp với chạy từ xa

Học các thao tác lâu hơn so với dòng lệnh

Trang 62

Làm quen với hệ thống file

Phần 4

Trang 63

Hệ thống file phân cấp

Hệ thống file trong linux có 2 loại đối tượng chính

Tập tin (file): vùng lưu trữ dữ liệu cơ bản

Thư mục (directory/folder): chỗ chứa các tập tin và các thư mục khác

Cấu trúc thư mục theo kiểu cây phân cấp với thư mục gốc (root directory)

Hầu hết mọi đối tượng trong hệ thống đều được ánh xạ vào hệ thống file

Các tài nguyên phần cứng (ổ đĩa cứng, CD, USB,…)

Các tiến trình trong hệ thống

Trang 64

TRƯƠNG XUÂN NAM 16

Trang 65

/lib thư viện dùng chung

/mnt các nguồn dữ liệu (usb, ổ đĩa mạng,…)

/opt các gói phần mềm bổ sung

Trang 66

Các thư mục thông dụng (2/2)

/srv dữ liệu cho các dịch vụ server

/tmp thư mục chứa các file tạm thời

/usr các ứng dụng theo người dùng

/var file dữ liệu của ứng dụng

Chú ý : vai trò của các thư mục trên chỉ là quy ước,

không phải distro nào của linux cũng tuân theo

Trang 67

Trong thế giới unix và linux các thiết bị phần cứng được xem như là file

Đĩa cứng IDE hoặc SCSI: had, hdb, sda, sdb,…

Các phân vùng trên ổ cũng: hda1, hda2,…

Đĩa mềm là fd0, cd là cdrom, sbd là usb,…

Trang 68

đĩa cd) hoặc floppy là thư mục kết gán với đĩa mềm/tmp: thư mục chứa các file tạm mà chương trình

sử dụng chỉ trong quá trình chạy, sẽ được hệ thống dọn dẹp nếu không cần dùng đến nữa

Trang 69

/lib: thư mục này chứa các file thư viện của hệ điều hành và ứng dụng

Các thư viện C và các thư viện liên kết động cần cho

chương trình khi chạy và cho toàn hệ thống

Thư mục này tương tự thư mục system32 của Windows

Trang 70

Các thư mục thông dụng

/usr: thư mục chứa các chương trình cài đặt phục

vụ tất cả các user, tương tự Program Files trên

/var: thư mục chứa các file làm việc của ứng dụng

Thư mục này còn chứa log file để người quản trị xem lại khi hệ thống có lỗi

Trang 71

Đường dẫn

Đường dẫn (path) đến một vị trí (file/folder) nào

đó: có thể hiểu như thứ tự các “bước” để tìm được file/folder đó

Định vị file/folder bằng cách chỉ ra vị trí của nó

Viết liên tiếp các “bước”, ngăn cách với nhau bởi dấu /

Đường dẫn tuyệt đối (absolute path): đi từ thư mục gốc đến vị trí cần thiết

Đường dẫn tương đối (relative path): đi từ thư mục hiện tại đến vị trí đó

Trang 72

Đường dẫn (ví dụ)

Trang 73

Đường dẫn (ví dụ)

Vị trí hiện đang làm việc là thư mục “planets”,

đường dẫn tuyệt đối đến vị trí hiện tại sẽ là:

Tên file/folder trong linux phân biệt chữ hoa/thường

Trang 74

Vị trí hiện tại

Khi một người dùng login vào hệ thống, linux gán cho phiên làm việc đó một vị trí làm việc trên hệ

thống file (thường là thư mục của người dùng)

Xem đường dẫn đến thư mục hiện tại bằng “pwd”Người dùng có thể chuyển vị trí hiện tại sang nơi khác bằng lệnh “cd”

Ngày đăng: 16/12/2020, 00:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN