1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng phần mềm nguồn mở và hệ điều hành linux ( combo full slides 8 chương )

206 5 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

Tiêu đề Bài Giảng Phần Mềm Nguồn Mở Và Hệ Điều Hành Linux (Combo Full Slides 8 Chương)
Định dạng
Số trang 206
Dung lượng 37,47 MB
File đính kèm slides.zip (31 MB)

Nội dung

Bài giảng phần mềm nguồn mở và hệ điều hành linux ( combo full slides 8 chương ) Bài giảng phần mềm nguồn mở và hệ điều hành linux ( combo full slides 8 chương ) Bài giảng phần mềm nguồn mở và hệ điều hành linux ( combo full slides 8 chương ) Bài giảng phần mềm nguồn mở và hệ điều hành linux ( combo full slides 8 chương ) Bài giảng phần mềm nguồn mở và hệ điều hành linux ( combo full slides 8 chương ) Bài giảng phần mềm nguồn mở và hệ điều hành linux ( combo full slides 8 chương )

Trang 2

NỘI DUNG

CHƯƠNG 1 TỔNG QUAN PHẦN MỀM NGUỒN MỞ VÀ HỆ ĐIỀU HÀNH LINUX

CHƯƠNG 2 HỆ THỐNG TỆP LINUX

CHƯƠNG 3 QUẢN LÝ TIẾN TRÌNH

CHƯƠNG 4 SAO LƯU

CHƯƠNG 5 QUẢN LÝ NHẬT KÝ

CHƯƠNG 6 TỰ ĐỘNG HÓA CÁC THAO TÁC

CHƯƠNG 7 KHỞI ĐỘNG HỆ THỐNG

CHƯƠNG 8 LẬP TRÌNH SHELL

Trang 3

Tổng quan phần mềm nguồn mở

và HĐH Linux

Trang 4

Nội dung

• Phần mềm sở hữu và phần mềm tự do nguồn mở

• Hệ điều hành Linux

Trang 5

PHẦN MỀM SỞ HỮU VÀ PHẦN MỀM TỰ DO NGUỒN MỞ

Trang 6

• Tự do sử dụng

• Tự do thay đổi

• Tự do phân phối

• Tự do phân phối những thay đổi

• Bảo trì: trách nhiệm của nsd

• An toàn: hộp mở, công khai

• Cho phép cả cộng đồng đóng góp cùng phát triển

Trang 7

LỊCH SỬ

Trang 8

Lịch sử

• 1969: Ken Thompson and Dennis Ritchie phát triển Unix (AT&T lab)

 phát hành chính thức 1970

• 1983: Richard Stallman khởi động dự án GNU với mục đích phát

triển hđh miễn phí UNIX-like OS Cùng lúc, ông viết GNU General Public License (GPL) Đến năm 1990, gần như đã đủ phần mềm để cho ra đời hđh nguồn mở đầu tiên Tuy nhiên, nhân của GNU (Hurd) không đủ hấp dẫn để kêu gọi cộng đồng phát triển  GNU chưa

đáp ứng tốc độ phát triển nhanh và rẻ của dòng chip phổ thông

Intel 32bit cho các PC Còn hđh thương mại Unix chạy được kiến

trúc 32 bit thì lại quá đắt cho người dùng phổ thông lúc đó

Động lực để Linus Torvalds viết hđh Linux

Trang 9

Lịch sử

• 1991: Linus Torvalds (ở Helsinki – Phần Lan) bắt đầu viết hđh cho máy 80386, hđhMINIX, độc lập với hđh, sử dụng ch.trình dịch GNU C Compiler.

25/8/1991: Linus viết trên comp.os.minix:

Hello everybody out there using minix

-I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones This has been brewing since april, and is starting to get ready I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work This implies that I'll get something practical within a few months, and I'd like to know what features most people would want Any suggestions are welcome, but I won't

promise I'll implement them :-)

Linus (torvalds@kruuna.helsinki.fi)

PS Yes - it's free of any minix code, and it has a multi-threaded fs It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.— Linus Torvalds

Trang 10

Lịch sử

• Thời gian đầu, Linus giới hạn nhân Linux thuộc

sở hữu cá nhân, chỉ những phần mềm là tự do nguồn mở dưới bản quyền của GNU.

• 1992: Linus chính thức đưa nhân Linux thành

tự do nguồn mở với bản quyền GPL

Trang 11

Message from Professor Andrew

Tanenbaum

" I still maintain the point that designing a monolithic

kernel in 1991 is a fundamental error Be thankful you are not my student You would not get a high grade for such a design :-)“

(Andrew Tanenbaum to Linus Torvalds)

Trang 12

Tình hình phát triển OSS trên thế giới

• Các lĩnh vực

– dữ liệu mở (open data)

– tài nguyên giáo dục mở (OER- open educational resources)

– phần cứng nguồn mở (open hardware)…

• 2004: công cụ git  social coding github.com

• Từ 2005: 11.800 cá nhân từ gần 1.200 công ty

đã đóng góp cho nhân Linux

* thống kê được thực hiện bởi công ty BlackDuck vào năm 2015

Trang 13

Tình hình phát triển OSS trên thế giới

•  thay đổi cái nhìn của các ông lớn công nghệ về OSS

• VD của Microsoft:

– 2001: Steve Ballmer (CEO của Microsoft) đã ví hệ

điều hành Linux là “căn bệnh ung thư”.

– 2012: Microsoft thành lập công ty con là Microsoft

Open Technology chuyên phát triển phần mềm nguồn

mở

– 6/2016: Microsoft công bố phần mềm nguồn mở NET Core 1.0, và gần đây nhất là Microsoft gia nhập Linux Foundation, là thành viên bạch kim (cấp bậc thành

viên cao nhất của Linux Foundation).

Trang 14

Tình hình phát triển OSS trên thế giới

Satya Nadella - CEO Microsoft: Microsoft yêu Linux

Trang 15

Tình hình phát triển OSS trên thế giới

• 1/2016: Quốc hội Pháp muốn bắt buộc các cơ quan hành

chính nhà nước của quốc gia này công khai mã nguồn các giải pháp phần mềm được xây dựng tùy biến của nó

• Liên minh Châu Âu (EU) còn cấp tiền cho việc nghiên cứu lập trình nguồn mở, bao gồm kiểm tra mã, kiểm thử an toàn và

mã hóa.

• 2/2016: Trong một bài viết của John Allison - một sỹ quan

quân đội đã nghỉ hưu, có kinh nghiệm hơn 20 năm làm quản

lý công nghệ thông tin và kỹ sư hệ thống – đã tiết lộ về những khó khăn của ông khi đưa phần mềm nguồn mở vào triển

khai cho Không quân Mỹ trong thời gian phụ trách Trung tâm Điều hành hàng Không và Vũ trụ (AOC - Air and Space

Operations Center).

• 7/2016: Balan công bố họ đang hoàn tất chương trình dữ liệu

mở quốc gia của mình.

Trang 16

Tình hình phát triển OSS trên thế giới

• 8/2016: Văn phòng Điều hành Tổng thống của Mỹ công bố Chính sách mã nguồn Liên bang trong đó yêu cầu trong vòng 3 năm tới, các cơ quan liên bang Mỹ sẽ phải xây dựng ít nhất 20% các phần mềm tùy chỉnh được làm mới của họ như là nguồn mở

• Cảnh sát Litva đã hoàn thành việc chuyển sang bộ phần mềm văn phòng nguồn mở LibreOffice và bắt đầu thử nghiệm chuyển đổi sử dụng Linux

• Quân đội Ý cũng bắt đầu chuyển 8.000 máy tính sang sử dụng LibreOffice

và đang thí điểm sử dụng phần mềm thư điện tử Zimbra.

• Tháng 10 năm 2016, kho mã nguồn liên bang Mỹ (www.code.gov) được công bố Cổng này sẽ phục vụ như là kho phần mềm của tất cả các phần mềm mà chính phủ Mỹ đang mua sắm hoặc xây dựng.

• Tháng 11 năm 2016, Bộ Giáo dục và Nghiên cứu Đức đã quyết định dành 1,2 triệu EUR trong vòng 2 năm để tạo ra một cổng tổng hợp các tài

nguyên giáo dục mở.

Trang 17

Tình hình phát triển OSS trên thế giới

• 1/2016, Engine Javascript Chakra của Microsoft trở thành mã nguồn

mở trên github.

• 2/2016: Quarks của IBM và Tensorflow của Google

• 3/2016: Microsoft quyết định chia sẻ Software for Open Networking

in the Cloud (SONiC) như một đóng góp cho Open Compute Project (OCP) của Facebook

• 4/2016: Nginx nhận được khoản đầu tư 8 triệu USD từ hãng viễn thông Telstra (Úc).

• 7/2016: Facebook ra mắt dự án OpenCellular nhằm tạo ra một hệ

sinh thái không dây mã nguồn mở Tháng 10, Facebook ra đời

switch quang học mang tên Voyager được mở hoàn toàn về thiết kế

• 10/2016: WalmartLabs mở mã nguồn ứng dụng vận hành

Walmart.com có tên gọi là Electrode nhằm ứng phó với việc

Facebook ra mắt chợ bán hàng Facebook Marketplace.

Trang 18

Index (BOSS Index)

Rank Project Name

Overall Project Rating

Category

Sample of Related Companies

1 Linux 100.00 IT Operations Red Hat, Ubuntu

2 Git 31.10 DevOps GitHub, GitLab

3 MySQL 25.23 Data & Analytics Oracle

4 Node.js 22.75 DevOps NodeSource,

Rising Stack

5 Docker 22.61 DevOps Docker

6 Hadoop 16.19 Data & Analytics Cloudera,

Hortonworks

7 Elasticsearch 15.72 Data & Analytics Elastic

8 Spark 14.99 Data & Analytics Databricks

9 MongoDB 14.68 Data & Analytics MongoDB

10 Selenium 12.81 DevOps Sauce Labs,

BrowserStack

11 NPM 12.31 DevOps NPM

12 Redis 11.61 Data & Analytics Redis Labs

Trang 19

Thống kê việc sử dụng PMMNM *

• 78% công ty sử dụng OSS cho một phần/toàn

bộ các công việc

• 93% việc sử dụng OSS tăng hoặc giữ nguyên

• 64% các công ty đang tham gia vào các dự án OSS, trong đó 88% khẳng định sẽ tiếp tục tăng đóng góp của mình cho OSS

* thống kê được thực hiện bởi công ty BlackDuck vào năm 2015

Trang 20

Tình hình phát triển OSS ở Việt Nam

• Quyết định số 235/QĐ-TTg của thủ tướng

chính phủ (02/03/2004) phê duyệt Dự án tổng thể "ứng dụng và phát triển phần mềm nguồn

mở ở Việt Nam giai đoạn 2004 - 2008“

• 2016: vẫn còn ở khâu “thay đổi nhận thức”

Trang 21

Sự kiện OSS ở VN

• 1/2016, phần mềm nguồn mở NukeViet chính thức ra mắt CMS phiên bản mới NukeViet CMS 4.0 (NukeViet CMS và NukeViet Shop, NukeViet Edu Gate, NukeViet Portal, NukeViet eNews, NukeViet eGovernment)

• 2/2016, Tập đoàn VNPT có công văn yêu cầu các đơn vị trực thuộc tập

đoàn gỡ bỏ toàn bộ phần mềm Microsoft Office và thay bằng LibreOffice

 tiết kiệm hàng chục tỷ đồng

• DrupalCamp lần đầu tiên tổ chức tại Việt Nam.

• 3/2016: Ngày Dữ liệu Mở (OpenData Day)

• 5/2016, Cộng đồng OpenCPS ra mắt với 13 đơn vị, công ty thành viên:

phần mềm dịch vụ công trực tuyến được thiết kế tổng quát đáp ứng nghiệp

vụ của tất cả các thủ tục hành chính theo quy định của Nhà nước.

• 9/2016: Software Freedom Day (SFD)

• 10/2016, kho học liệu mở là các bài giảng chính thống đầu tiên ở Việt Nam

ra đời: https://elearning.moet.edu.vn

• 15/9/2018 tại Đại học Cần Thơ: Ngày hội Phần mềm Tự do Nguồn mở Software Freedom Day/SFD

Trang 22

-HĐH LINUX

Trang 24

Linux Shell

• Shell thông dịch các câu lệnh

(command) và gửi yêu cầu

dịch vụ từ nhân (kernel)

• Cũng giống hđh DOS nhưng

DOS chỉ có một tập các giao

diện, trong khi đó Linux có

nhiều kiểu shell: Bash, TC shell

• Giao diện đồ họa cũng là một

chương trình chạy trên shell

Kernel

Bash, Tcsh, Zsh

ls whoami pwd

Trang 25

Tính năng của Linux

• Mã nguồn mở

– Nguồn sáng tạo vô hạn?

• Hỗ trợ nhiều phần cứng

• Có các phân phối khác nhau

• Thừa kế các tính năng Unix

Trang 26

Bản phân phối Linux

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

Linux = Kernel (OS Basic Part)

KernelSoftware Packages

Trang 27

Lựa chọn bản phân phối phù hợp

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

Trang 28

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

Ubuntu Linux Mint

openSUSE Debian

Trang 31

HỆ THỐNG TỆP LINUX

Trang 32

– Một thư mục có thể chứa các thư mục con

• Thư mục gốc (/) là điểm vào đầu tiên cho cả cây thư mục

Trang 33

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

• / (thư mục gốc)

– /bin : thư mục tệp chương trình cơ bản

– /boot : thư mục chứa hạt nhân của HĐH

– /etc : thư mục các tệp cấu hình

– /dev : thư mục các tệp thiết bị

– /home : thư mục chứa dữ liệu NSD

– /lib : thư viện hệ thống

– /usr : thư mục ứng dụng

– /var : thư mục dữ liệu hệ thống, thường được cập nhật

Trang 34

Tệp UNIX vs tệp Windows

• Giống nhau

– độ dài tối đa cho tên tệp là 255

– Chấp nhận tất cả các kí tự để đặt tên tệp (nhưng nên tránh

sử dụng các kí tự đặc biệt như * ? [ ] & để tránh sự nhập nhằng trong câu lệnh sử dụng sau này)

• Tính đặc thù của Unix

– Quản lý dưới một khung nhìn của tệp cho cả thư mục và các loại tài nguyên hệ thống (ngoại vi, bảng phân chương đĩa)

– Không có khái niệm phần mở rộng của tên tệp (kí tự '.'

trong tên tệp được đối xử như mọi kí tự khác

– Không dùng ổ đĩa logic trong cây thư mục

– '/' được dùng thay cho '\' trong đường dẫn thư mục

Trang 35

Kiểu của tệp

• Có 3 loại tệp chính trong một cây thư mục của Unix:

– Tệp thư mục là một thư mục trong đường dẫn phân loại (vd., /usr, /home,…)

– Tệp thông thường là một tệp chứa dữ liệu hoặc tệp

chương trình (vd., /bin/passwd, /etc/passwd, …)

– Tệp đặc biệt là một tệp thiết bị tương ứng với thiết bị

ngoại vi hoặc các tệp tự sinh bởi HĐH (vd., /dev/hda1, /dev/cdrom, /dev/lp0, …)

Trang 36

Quản lý tệp

• pwd: hiển thị đường dẫn tuyệt đối của thư mục hiện tại

• cd: thay đổi vị trí thư mục hiện tại

• tuỳ chọn -a cho phép hiển thị cả các tệp ẩn

• tuỳ chọn -l cho phép hiển thị thuộc tính cho mỗi tệp (kiểu, quyền, liên kết, chủ sở hữu, nhóm sở hữu, kích thước, ngày sửa đổi)

• mkdir: tạo một thư mục rỗng

• rmdir: xoá một thư mục rỗng

Trang 40

drwxr-xr 2 tuananh user1 512 Feb 10 19:12 c_prog

drwxr-xr 2 tuananh user1 512 Feb 10 19:12 java_prog

$ ls -l *

-rw-r r 1 tuananh user1 451 Feb 7 07:30 bashrc

-rw-r r 1 tuananh user1 225 Feb 7 07:30 bash_profile -rw-r r 1 tuananh user1 351 Feb 7 07:30 bash_logout

Trang 43

Inode, soft link and hard link

• Một file trong Unix:

file name #inode

permbits, etc data addr

data

data

file

inode

Trang 44

Thư mục

• Một thư mục là một tệp với

nội dung là một bảng liên kết

– một liên kết gắn một tên tệp với

một inode của hệ thống tệp

Trang 45

Inode, soft link and hard link (cont.)

• Liên kết vật lý (hard link)

file name 1 #inode

permbits, etc data addr

Trang 46

– tệp mới chia sẻ cùng inode và

khối dữ liệu của tệp ban đầu

$ln fbis lien

Trang 47

Liên kết vật lý (3)

• Số liên kết vật lý đến một inode có thể được xem

bằng lệnh ls –l

$ ls -l

-rw-rw-r 1 tuananh user1 0 Nov 12 15:19 file

drwxr-xr-x 2 tuananh user1 4096 Dec 14 17:50 dir

• Tại sao với một thư mục luôn có ít nhất 2 liên kết vật lý?

• Xoá một tệp (lệnh rm) đồng nghĩa với xoá một liên kết

– Nếu là liên kết vật lí cuối cùng trỏ đến inode được xoá thì các khối liên quan đến inode cũng được xoá theo

Trang 48

Inode, soft link and hard link (cont.)

• Liên kết biểu tượng (soft link)

file name 1 #inode

permbits, etc addr

file name 2 #inode

permbits, etc data addr

data

data

Trang 49

Liên kết biểu tượng

• ln -s R2/nouveau R3/lien_symbolique

– khi tạo liên kết biểu tượng (tuỳ chọn –s) một inode mới được tạo ra – inode này chứa tên (dạng tuyệt đối hay tương đối) của phần tử được trỏ tới

Trang 50

Liên kết biểu tượng vs Liên kết vật lý

• Liên kết biểu tượng cho phép tránh được các hạn chế về mặt dung lượng của thiết bị lưu trữ

– Một liên kết vật lý luôn luôn chiếm một số lượng inode nhất định

• Chúng ta có thể phân biệt rõ một file được tạo ra và file gốc trong một liên kết biểu tượng

– Điều gì sẽ xảy ra khi một người xóa đi file gốc ?

Trang 51

-rw-r r 2 tuananh user1 16 Feb 10 1:12 link1

lrw-r r 1 tuananh user1 16 Feb 10 1:13 link2->test.txt

Trang 53

Phân quyền truy cập tệp

Trang 54

Khái niệm người sử dụng

• Tạo một người sử dụng

– Tên

– Mật khẩu

– home của người sử dụng (/home/tên)

– Nhóm (một người sử dụng có thể thuộc một hoặc nhiều nhóm, tuy nhiên cần phải xác định một nhóm chính)

– Tất cả các thông tin về người sử dụng được lưu trong file: /etc/passwd

Trang 55

Nhóm người sử dụng

• Mỗi người sử dụng có thể thuộc về một hoặc nhiều nhóm

– Một nhóm = tên nhóm + danh sách các thành viên

– Khả năng chia sẻ các file giữa những người sử dụng trong cùng một nhóm

– Danh sách các nhóm được lưu trữ trong file: /etc/group

– root có khả năng tạo ra các nhóm bổ xung, ngoài các nhóm

mà hệ điều hành đã ngầm định

Trang 56

Các lệnh quản lý user và group

• Thêm user: sudo adduser username

• Xóa user: sudo deluser username

• Khóa hoặc hủy khóa user:

sudo passwd -l username

sudo passwd -u username

• Thêm/Xóa nhóm:

sudo addgroup groupname

sudo delgroup groupname

• Thêm một người vào một nhóm:

sudo adduser username groupname

• Ví dụ them một người vào group sudo:

usermod -aG sudo username

Trang 57

nhóm sở hữu đối với file/thư mục.

• Sự phân quyền cho phép xác định rõ các

quyền mà người sử dụng có đối với một file

hoặc một thư mục.

Trang 58

Quyền truy cập

– Cho phép hiển thị nội dung của file hoặc thư mục

– Cho phép thay đổi nội dung của file

– Cho phép thêm hoặc xóa các file trong một thư mục

• x : thực thi

– Cho phép thực thi file dưới dạng một chương trình– Cho phép chuyển đến thư mục cần truy cập

Trang 59

Các nhóm người sử dụng

• Có 3 nhóm người sử dụng đối với 1 file/ thư mục:

– u (người sở hữu) : người sở hữu duy nhất của file

– g (groupe) : những người sử dụng thuộc nhóm chứa file

– o (others) : những người sử dụng khác, không phải là

người sở hữu file cũng như không thuộc nhóm chứa file

• Mỗi nhóm người sử dụng sẽ có một tập các quyền (r,

w, x) xác định.

Trang 60

Ví dụ

$ ls -l

rw-rw- 1 tuananh user1 16 Feb 10 19:12 test1.txt -rw-rw-rw- 1 tuananh user1 16 Feb 10 19:12 test2.txt drw-r r 2 tuananh user1 512 Feb 10 19:14 vanban

Trang 61

Các lưu ý

• Để có thể thêm các file, cần phải có quyền « w » đối với thư mục

• Để có thể xóa, thay đổi nội dung hoặc di chuyển 1 file, người

sử dụng cũng cần phải có quyền « w » đối với thư mục

• Việc xóa một file còn phụ thuộc vào quyền đối với thư mục

chứa file đó

• Để bảo mật các dữ liệu, người sở hữu file thậm chí có thể bỏ

cả quyền đọc « r » đối với tất cả mọi người sử dụng khác

• Để hạn chế quá trình truy cập vào hệ thống file, người sử dụng

có thể bỏ quyền thực thi (x) đối với thư mục gốc của hệ thống file

Ngày đăng: 20/02/2024, 18:33

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

TÀI LIỆU LIÊN QUAN

w