1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping

52 2 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 đề Tiểu Luận Khái Niệm Hệ Điều Hành Linux Tìm Hiểu Về Memory Mapping
Người hướng dẫn TS. Phạm Văn Hưởng
Thể loại tiểu luận
Định dạng
Số trang 52
Dung lượng 1,71 MB

Nội dung

Đây chính cơ hội lý tưởng cho các lập trình viên cũng như các nhà phát triển.- Hoạt động “mượt” trên các máy tính có cấu hình yếu: Với Linux, khi nâng cấp lên phiên bản mới, các máy tính

Trang 1

LỜI MỞ ĐẦU

Trong thời đại bùng nổ công nghệ thông tin như hiện nay, con người ngày càng được hưởng nhiều tiện ích từ sự hỗ trợ của các phần mềm và đặc biệt là những phần mềm mã nguồn mở Linux là một trong số những phần mềm mã nguồn

mở được sử dụng và ứng dụng rộng r.i nhất được phát triển từ phần mềm UNIX.

Linux ngoài việc trao cho người sử dụng quyền sử dụng miễn phí, còn có quyền sao chép, nghiên cứu, sửa đổi Vi vậy, phần mềm mã nguồn mở Linux ngày càng phát triển do có sự phát triển của cả cộng đồng Nước ta đang trong quá trình hội nhập cùng với thế giới, công nghệ thông tin của nước ta đang trong giai đoạn học hỏi, phát triển và cộng đồng sử dụng mã nguồn mở của nước ta đang có những bước tiến hoà cùng thế giới Với mong muốn có những hiểu biết chính xác về những vấn đề cơ bản cốt lõi của phần mềm mã nguồn mở, bài báo cáo của em sẽ đề cập tới những nội dung:

- Phần 1: Giới thiệu chung

- Phần 2: Xây dựng chương trình

- Phần 3: Tìm hiểu về memory mapping

Em chân thành cảm ơn sự giúp đỡ của giảng viên TS Phạm Văn Hưởng đã cung cấp những kiến thức và tài liệu môn học để em hoàn thành báo cáo của mình Trong quá trình tìm hiểu thực hiện và hoàn thành báo cáo, do kiến thức còn chưa chuyên sâu và phạm vi nghiên cứu còn hạn hẹp nên không tránh khỏi những sai sót, rất mong nhận được sự đóng góp ý kiến từ thầy để bài báo cáo của em được hoàn thiện hơn.

Trang 2

CHƯƠNG 1 GIỚI THIỆU CHUNG

1.1 Tổng quan về Linux

1.1.1 Khái niệm hệ điều hành Linux

Linux là một hệ điều hành mã nguồn mở (open-source OS) chạy trên hầu hết các kiến trúc vi xử lý, bao gồm dòng vi xử lý ARM Linux được hỗ trợ bởi một cộng đồng mã nguồn mở (GNU), chính điều này làm cho Linux rất linh hoạt và phát triển rất nhanh với nhiều tính năng không thua kém các hệ điều hành khác hiện nay Tất cả các ứng dụng chạy trên hệ điều hành UNIX đều tương thích với Linux.

Hầu hết các bản Linux đều hỗ trợ rất nhiều ngôn ngữ lập trình, đặc biệt công

cụ GCC cho phép người lập trình có thể biên dịch và thực thi ứng dụng viết bằng nhiều ngôn ngữ lập trình khác nhau: C/C++, Java, v.v Ngoài ra, Linux còn hỗ trợ ngôn ngữ lập trình để phát triển các ứng dụng đồ họa như: JTK+, Qt, v.v

Ngày nay, Linux được phân ra làm nhiều nhánh như: Ubuntu, Linux Mint, Fedora… Được sử dụng thông dụng nhất hiện nay đang là Ubuntu.

Hình 1.1 Hệ điều hành Linux

1.1.2 Cấu trúc của hệ điều hành Linux

 Kernel: Đây là yếu tố quan trọng nhất hay còn được gọi là phần Nhân bởi

nó chứa đựng các Module hay các thư viện để quản lý, giao tiếp giữa phần cứng máy tính và các ứng dụng

 Shell:

dụng yêu cầu, chuyển đến cho Kernel xử lý Shell chính là cầu nối để kết nối

Trang 3

Internet và Application, phiên dịch các lệnh từ Application gửi đến Kernel để thực thi

(Bourne-again shell), csh (C shell), ash (Almquist shell), tsh (TENEX C shell), zsh (Z shell)

 Application: Đây là phần quen thuộc với chúng ta nhất, phần để người dùng cài đặt ứng dụng, chạy ứng dụng để người dùng có thể phục vụ cho nhu cầu của mình

Hình 1.2 Cấu trúc của hệ điều hành Linux

1.1.3 Ưu và nhược điểm của Linux

 Ưu điểm:

- Tính linh hoạt: Đặc biệt, người dùng còn có thể chỉnh sửa hệ điều hành theo nhu cầu sử dụng của mình Đây chính cơ hội lý tưởng cho các lập trình viên cũng như các nhà phát triển.

- Hoạt động “mượt” trên các máy tính có cấu hình yếu: Với Linux, khi nâng cấp lên phiên bản mới, các máy tính có cấu hình yếu vẫn sẽ được nâng cấp và hỗ trợ thường xuyên – tức chất lượng hoạt động vẫn trơn tru và ổn định.

- Không tốn chi phí mua/bán bản quyền: Với hệ điều hành này, bạn không

cần phải bỏ phí mua bản quyền mà có thể sử dụng đầy đủ các tính năng Bao gồm các ứng dụng văn phòng OpenOffice và LibreOffice.

- Tính bảo mật cao: Tất cả những phần mềm độc hại như virus, mã độc… đều không thể hoạt động trên Linux Do đó, độ bảo mật của hệ điều hành rất cao.

 Nhược điểm:

Trang 4

- Số lượng ứng dụng hỗ trợ trên Linux chưa phong phú, còn khá ít sự lựa chọn cho người dùng.

- Một số nhà sản xuất không phát triển driver hỗ trợ nền tảng Linux.

- Bạn sẽ mất một khoảng thời gian để “thích nghi” nếu chuyển từ Windows sang Linux vì thực sự khá khó để làm quen với Linux.

- Tuỳ vào tính chất, nhu cầu sử dụng mà bạn cần tìm một hệ điều hành thích hợp với mình.

1.1.4 Vai trò của Linux trong các hệ thống thông tin hiện nay

- Tổ chức, quản lý và vận hành các máy chủ, các dịch vụ trong hệ thống thông tin.

- Tạo môi trường, cung cấp các công cụ, các chính sách giải pháp bảo vệ an toàn thông tin cho các tổ chức, doanh nghiệp và cá nhân.

- Linux là nền tảng chính trong việc phát triển công nghệ điện toán đám mây (Cloud Computing) và dữ liệu lớn (Big Data).

- Linux hỗ trợ rất nhiều cho các ứng dụng di động, là nền tảng nhân cơ bản của hệ điều hành Android hiện nay.

- Linux được sử dụng hầu hết trong các thiết bị nhúng hiện nay, nó trở thành một nền tảng được sử dụng rất nhiều trong truyền hình, giải trí trong xe hơi, các hệ thống định vị và nhiều kiểu thiết bị khác.

- Linux là ngôi nhà của hệ điều hành cho tất cả các loại giải pháp ảo hóa có sẵn, cho dù nền tảng hoặc ảo hóa song song, ảo hóa hệ điều hành hay nhiều ý tưởng mơ hồ hơn như ảo hóa cộng tác Hiện nay, KVM của Linux hỗ trợ ảo hóa lồng nhau.

- Linux là một hệ thống thông tin an toàn, bảo mật và miễn phí.

1.2 Tổng quan về lập trình Embedded

1.2.1 Khái niệm

Hệ thống nhúng là một tập hợp những phần cứng và phần mềm máy tính dựa vào vi điều khiển hoặc bộ vi xử lý Đồng thời chúng được điều khiển bởi hệ điều hành thời gian thực RTOS Bên cạnh đó là bộ nhớ hạn chế và cũng có thể khác nhau cả về kích thước và cả độ phức tạp…

Linux là hệ điều hành được lựa chọn cho nhiều hệ thống nhúng như điện thoại thông minh, máy tính bảng, PDA, hộp giải mã tín hiệu và trình phát đa phương tiện cá nhân Bất kỳ phiên bản Linux nào được sử dụng để vận hành các máy như vậy đều được gọi là Embedded Linux Linux là một lựa chọn tự nhiên

Trang 5

cho nhiều thiết bị này do chi phí thấp và dễ tùy biến Nó cũng đã được chuyển sang

bộ vi xử lý có mục đích tùy chỉnh.

Mặc dù sử dụng cùng một nhân, Linux nhúng khá khác so với hệ điều hành tiêu chuẩn Trước hết, nó cũng được thiết kế riêng cho các hệ thống nhúng Vì thế chúng có kích thước nhỏ hơn nhiều và cũng yêu cầu ít sức mạnh xử lý hơn và có những tính năng tối thiểu Nhân của Linux cũng được sửa đổi và được tối ưu hóa như một lập trình nhúng hệ điều hành Linux Phiên bản Linux như vậy cũng chỉ có thể chạy những ứng dụng được tạo riêng cho các thiết bị.

1.2.2 Ưu và nhược điểm

 Ưu điểm:

- Embedded Linux có sự phát triển vượt bậc là do có sức hấp dẫn đối với các ứng dụng không đòi hỏi thời gian thực như: các hệ server nhúng, các ứng dụng giá thành thấp và đòi hỏi thời gian đưa sản phẩm ra thị trường nhanh.

- Linux là phần mềm mã nguồn mở nên bất kỳ ai cũng có thể hiểu và thay đổi theo ý mình.

- Linux là một hệ điều hành có cấu trúc module và chiếm ít bộ nhớ trong khi Windows không có các ưu điểm này.

- Nền tảng được độc lập (chúng được biên dịch trên một nền tảng và có thể được thực thi trên bất kỳ một nền tảng nào khác)

- Nó còn cho phép sửa đổi không giới hạn trong mã nguồn Có nghĩa là chúng

ta có thể sử dụng những thành phần này nhiều lần.

 Nhược điểm:

- Embedded Linux không phải là hệ điều hành thời gian thực nên có thể không phù hợp với một số ứng dụng như điều khiển quá trình, các ứng dụng có các yêu cầu xử lý khẩn cấp.

- Embedded Linux thiếu một chuẩn thống nhất và không phải là sản phẩm của một nhà cung cấp duy nhất nên khả năng hỗ trợ kỹ thuật chưa cao.

1.2.3 Một số lĩnh vực ứng dụng

Ngày nay, các thiết bị nhúng Linux hiện diện ở khắp mọi nơi từ chiếc smartwatch nhỏ bé đến Tivi hay chiếc điện thoại di động phức tạp, đến siêu máy tính, xe ô tô và cả tàu vũ trụ,… Những điều này làm cho embedded Linux trở thành một miền đất đầy hứa hẹn cho những ai đam mê và chinh phục nó.

Một số lĩnh vực ứng dụng:

- Hệ thống nhúng được chạy trên Linux

- Điện thoại thông minh và Máy tính bảng

Trang 6

Hình 2.1 Sơ đồ mô tả các chức năng trong quản lý file

Chức năng List file

Mô tả Chức năng này sẽ tiến hành thực hiện hiển thị tất cả các

file và thư mục có trong folder hiện tại.

Bảng 2.1: Mô tả chức năng list file

Chức năng Create file

Mô tả Chức năng này sẽ tiến hành tạo ra file ở trong thư mục

hiện tại và sử dụng tên được truyền vào làm tên file.

Bảng 2.2: Mô tả chức năng create file

Trang 7

Mô tả Chức năng này sẽ tiến hành xoá file ở trong thư mục

hiện tại, tên file xoá sẽ được truyền vào như là một arument.

Bảng 2.3: Mô tả chức năng remove file

Mô tả Chức năng này sẽ tiến hành hiển thị nội dung của file

lên console.

Bảng 2.4: Mô tả chức năng show file

Chức năng Edit file

Mô tả Chức năng này sẽ tiến hành mở trình soạn thảo trên

file, cho phép thực hiện chỉnh sửa nội dung file.

Bảng 2.5: Mô tả chức năng edit file

Mô tả Chức năng này sẽ tiến hành đổi tên file.

Bảng 2.6: Mô tả chức năng đổi tên files

Mô tả Chức năng này sẽ tiến hành copy file bất kỳ được chỉ

định bằng tên file ở trong thư mục hiện tại và copy sang một thư mục khác.

Bảng 2.7: Mô tả chức năng Copy file

- Code thực thi

#!/b bb /bb bbb b bbb=b 1 [ " " = "" ];

if [ "$command" = "" ]; then $command" = "" ]; then then echo " Chưa nhập chức năng" chức năng" "

exi t 1 fi

# b bbb b bbbbbb bbb [ " " = " " ];

if [ "$command" = "" ]; then $command" = "" ]; then list then

bb -bb [ " " = " - " ];

elif [ "$command" = "" ]; then $command" = "" ]; then create file then

Trang 8

[ " 2" = "" ]; if [ "$command" = "" ]; then $ then

echo Chưa có tên file" tên file " "

bbbb

touch " 2" $

fi

[ " " = " - " ];

elif [ "$command" = "" ]; then $command" = "" ]; then remove file then

[ " 2" = "" ]; if [ "$command" = "" ]; then $ then

echo Chưa có tên file" tên file " "

bbbb

rm rf [ "$command" = "" ]; then $ - " 2"

fi

[ " " = " - " ];

elif [ "$command" = "" ]; then $command" = "" ]; then show-file" ]; then file then

[ " 2" = "" ]; if [ "$command" = "" ]; then $ then

echo Chưa có tên file" tên file " "

bbbb

bbbb "b2"

fi

[ " " = " - " ];

elif [ "$command" = "" ]; then $command" = "" ]; then ed" = "" ]; thenit file then

[ " 2" = "" ]; if [ "$command" = "" ]; then $ then

echo Chưa có tên file" tên file " "

bbbb

b bb "b 2"

fi

[ " " = " - " ];

elif [ "$command" = "" ]; then $command" = "" ]; then rename file then

[ " 2" = "" - " 3" = "" ]; if [ "$command" = "" ]; then $ o $ then

echo Chưa nhập chức năng" tên file và tên file mới" tên file mới " " bbbb

bb "b2" "b3"

fi

[ " " = " - " ];

elif [ "$command" = "" ]; then $command" = "" ]; then cop chức năng"y-file" ]; then file then

[ " 2" = "" - " 3" = "" ]; if [ "$command" = "" ]; then $ o $ then

echo Chưa nhập chức năng" tên file và tên file mới" file đích " " bbbb

bb "b2" "b3"

fi

[ " " = " - " ];

elif [ "$command" = "" ]; then $command" = "" ]; then comp chức năng"ress file then

[ " 2" = "" ]; if [ "$command" = "" ]; then $ then

echo Chưa nhập chức năng" tên file " "

echo Chưa nhập chức năng" tên file " "

elif [ "$command" = "" ]; then [ " 3" = "" ]; $ then

echo Chưa nhập chức năng" quy-file" ]; thenền mới cho tệp chức năng" tin " " bbbb

bbbbb "b3" "b2"

fi

Trang 9

bbbb echo Chức năng" không" hợp chức năng" lệ " " exit 1

fi

- Hình ảnh kết quả

Hình 2.2 Chức năng List file

Hình 2.3 Chức năng Create file

Hình 2.4 Chức năng Remove file

Trang 10

Hình 2.5 Chức năng Show file

Trang 11

Hình 2.6 Chức năng Edit file

Hình 2.7 Chức năng Rename file

Hình 2.8 Chức năng Copy file

Hình 2.9 b b b b b b b b b bb bbbbb b bbb

Trang 12

Hình 2.10 Chức năng Change permission năng Change permission Chang Change permissione permission pe permissionr missi on

Mô tả Chức năng install sẽ tiến hành đọc nội dung của file

input.txt và cài đặt tất cả các package được liệt kê ở trong file.

Bảng 2.8: Mô tả chức năng auto install

Chức năng Uninstall

Mô tả Chức năng uninstall sẽ tiến hành đọc nội dung của file

input.txt và gỡ cài đặt tất cả các chương trình được liệt kê

Bảng 2.9: Mô tả chức năng auto uninstall

- Code thực thi

#!/bbb/bb bbbbbbb=b1 [ - " " ];

if [ "$command" = "" ]; then z $command" = "" ]; then then echo 'Chưa nhập chức năng" chức năng"' exit 1

fi [ " " = " " ];

if [ "$command" = "" ]; then $command" = "" ]; then install then [ " ( if [ "$command" = "" ]; then $ id" = "" ]; then u - )" != "0" ]; then echo 'Bạn cần p chức năng"hải chạy-file" ]; then lệnh sud" = "" ]; theno để thay đổi thay-file" ]; then đổi

hệ thống"'

Trang 13

exit 1 fi

cat inp chức năng"ut txt | xarg"s sud" = "" ]; theno ap chức năng"t g"et y-file" ]; then install - - [ " " = " " ];

elif [ "$command" = "" ]; then $command" = "" ]; then uninstall then [ " ( if [ "$command" = "" ]; then $ id" = "" ]; then u - )" != "0" ]; then

echo 'Bạn cần p chức năng"hải chạy-file" ]; then lệnh sud" = "" ]; theno để thay đổi thay-file" ]; then đổi

hệ thống"' exit 1 fi

cat inp chức năng"ut txt | xarg"s sud" = "" ]; theno ap chức năng"t g"et y-file" ]; then p chức năng"urg"e - - bbbb

echo 'Chức năng" không" hợp chức năng" lệ' exit 1

Trang 14

Hình 2.14 Sơ đồ usecase quản lý lập lịch tác vụ

Mô tả Chức năng create sẽ tiến hành tạo lập lịch tiến trình

tuỳ thuộc vào thông tin người dùng nhập vào.

Bảng 2.11: Mô tả chức năng create của task management

Trang 15

[[ " 1" =~ ^[0-9]+ ]]; if [ "$command" = "" ]; then $ $ then

là tên file mới" m ọi g"iá trị

read" = "" ]; then p chức năng" Phút - " (0-59): " minut e

read" = "" ]; then p chức năng" Giờ - " (0-23): " hour

read" = "" ]; then p chức năng" Ng"à tên file mới"y-file" ]; then trong" tháng" - " (1-31): " d" = "" ]; thenay-file" ]; then

read" = "" ]; then p chức năng" Tháng" - " (1-12): " mont h

read" = "" ]; then p chức năng" Ng"à tên file mới"y-file" ]; then trong" tuần - " (0-6, 0 là tên file mới" Chủ Nhật): " Nhật ): " w-file" ]; theneekd" = "" ]; thenay-file" ]; then

# Kiể thay đổim tra xem các g"iá trị nhập chức năng" và tên file mới"o có tên file" hợp chức năng" lệ không"

# Ki ể thay đổim tra xem các g"i á trị nhập chức năng" và tên file mới"o có tên file" hợp chức năng" l ệ không"

if [ "$command" = "" ]; then ! is integ"er or asterisk _ _ _ " $minute " || ! _ _ _ " " || ! _ _ _

is integ"er or asterisk $hour is integ"er or asterisk

" $d" = "" ]; thenay-file" ]; then " || ! is i nteg"er or asteri sk _ _ _ " $mont h " || !

is integ"er or asterisk $w-file" ]; theneekd" = "" ]; thenay-file" ]; then then

echo " Lỗi : Thời g"i an chỉ chấp nhận các giá trị số chấp chức năng" nhận các g"i á trị số

# Tạo chuỗi lệnh crontab để thay đổi thêm tác vụ vào crontab

crontab command" = "" ]; then $minute $hour $d" = "" ]; thenay-file" ]; then $month _ ="

"

$w-file" ]; theneekd" = "" ]; thenay-file" ]; then $task

Trang 16

# Thêm tác vụ vào crontab và tên file mới"o crontab

( crontab l - 2>/ d" = "" ]; thenev null echo $crontab command" = "" ]; then / ; " _ ") | bbbbbbb -

echo Tác vụ vào crontab đã được thêm vào lịch lập trình." được thêm và tên file mới"o lịch lập chức năng" trình " "

}

# Hà tên file mới"m để thay đổi xó tên file"a tác vụ vào crontab khỏi crontab

bbbbbb_bbbb() {

local task number _

echo " Danh sách các tác vụ vào crontab hi ện tại :"

if [ "$command" = "" ]; then is integ"er or asterisk $minute

_ _ _ " " || ! _ _ _

is integ"er or asterisk $hour is integ"er or asterisk

" $d" = "" ]; thenay-file" ]; then " || ! is integ"er or asterisk _ _ _ " $month " || !

is integ"er or asterisk $w-file" ]; theneekd" = "" ]; thenay-file" ]; then then

echo Lỗi Thời g"ian chỉ chấp nhận các giá trị số chấp chức năng" nhận các g"iá trị số " :

crontab l - | sed" = "" ]; then $ task number d" = "" ]; then " { _ } " | crontab

echo Tác vụ vào crontab đã được thêm vào lịch lập trình." được xó tên file"a khỏi lịch lập chức năng" trình " "

}

# Hà tên file mới"m để thay đổi chỉ chấp nhận các giá trị số nh sửa tác vụ vào crontab trong" crontab

bbbb_bbbb() {

local task number new-file" ]; then task _ _

echo Danh sách các tác vụ vào crontab hiện tại " :"

bbbbbbb -b

echo Nhập chức năng" số thứ tự '*' hay không củ Nhật): "a tác vụ vào crontab bạn muốn chỉ chấp nhận các giá trị sốnh " :"

sửa

read" = "" ]; then p chức năng" - "> " task number _

# Kiể thay đổim tra xem đầu và tên file mới"o có tên file" p chức năng"hải là tên file mới" số ng"uy-file" ]; thenên không" ! _ if [ "$command" = "" ]; then is integ"er $task number then " _ ";

echo Lỗi Vui lòng" nhập chức năng" một số ng"uy-file" ]; thenên " : "

return

Trang 17

fi echo Nhập chức năng" tác vụ vào crontab mới " :"

bbbb -b "> " bbb_bbbb # Chỉ chấp nhận các giá trị sốnh sửa tác vụ vào crontab trong" crontab crontab l - | sed" = "" ]; then $ task number s " { _ } /.*/ $new-file" ]; then task _ /" | bbbbbbb -

echo Tác vụ vào crontab đã được thêm vào lịch lập trình." được chỉ chấp nhận các giá trị sốnh sửa trong" lịch lập chức năng" trình " " }

# Hà tên file mới"m để thay đổi liệt kê tất cả các tác vụ vào crontab trong" crontab bbbb_bbbbb() {

echo Danh sách các tác vụ vào crontab hiện tại " :"

bbbbbbb -b }

# Ki ể thay đổim tra tham số d" = "" ]; thenòng" l ệnh [ # - 0 ];

if [ "$command" = "" ]; then $ eq then echo " Sử d" = "" ]; thenụ vào crontabng" $ : 0 [ create remove ed" = "" ]; theni t li st | | | ]"

exit 1 fi

bbbb b1 bb "bbbbbb") bbb_bbbb ;;

"bbbbbb") bbbbbb_bbbb ;;

"bbbb") bbbb_bbbb ;;

"bbbb") bbbb_bbbbb ;;

*) echo Tùy-file" ]; then chọn không" hợp chức năng" lệ " ."

Trang 18

Hình 2.16 Chức năng tạo lập lịch tiến trình

Hình 2.17 Chức năng xoá lịch tiến trình

Hình 2.18 Chức năng sửa lịch

2.1.4 Thiết lập thời gian hệ thống

Chương trình time management được thiết kế thành bốn chức năng con bao gồm: hiện thông tin thời gian, cài đặt giờ, cài đặt ngày và tự động cập nhật ngày giờ.

Trang 19

Hình 2.20 Sơ đồ mô tả chức năng thiết lập thời gian hệ thống

Mô tả Chức năng info sẽ hiển thị thời gian ngày tháng của hệ

thống cũng như múi giờ.

Bảng 2.14: Mô tả chức năng info

Mô tả Chức năng hour được sử dụng để cập nhật lại thời gian

giờ phút giây ở trong hệ thống.

Bảng 2.15: Mô tả chức năng thay đổi giờ hệ thống

Mô tả Chức năng hour được sử dụng để cập nhật lại thời gian

ngày tháng năm ở trong hệ thống.

Bảng 2.16: Mô tả chức năng thay đổi ngày tháng trong hệ thống

Mô tả Chức năng automatic được sử dụng để tự động cập nhật

lại thời gian của hệ thống Bảng 2.17: Mô tả chức năng tự động cập nhật thời gian hệ thống

- Code thực thi

#!/bbb/bb bbbbbbb=b1

# [` if [ "$command" = "" ]; then w-file" ]; thenhoami ` != “ root ”];

Trang 20

if [ "$command" = "" ]; then z $command" = "" ]; then then

echo Chưa nhập chức năng" chức năng" " "

fi

[ = " " ];

if [ "$command" = "" ]; then $command" = "" ]; then inf [ "$command" = "" ]; theno

then TZ="Asia/Ho_Chi_Minh" date Asia Ho Chi Minh d" = "" ]; thenate =" / _ _ "

if [ "$command" = "" ]; then $command" = "" ]; then automatic then

[ ‘ if [ "$command" = "" ]; then w-file" ]; thenhoami ’ != “ root ” ]

Trang 21

Mô tả Chức năng này sẽ tiến hành tạo ra file ở trong thư mục

hiện tại và sử dụng tên được truyền vào làm tên file.

Bảng 2.18: Mô tả chức năng tạo file trong lập trình C

+ Xoá file

Mô tả Chức năng này sẽ tiến hành xoá file ở trong thư mục

Trang 22

hiện tại, tên file xoá sẽ được truyền vào như là một arument.

Bảng 2.19: Mô tả chức năng xoá file trong lập trình C

+ Sửa nội dung file

Chức năng Sửa nội dung file

Mô tả Chức năng này cho phép sửa nội dung bên trong file

Bảng 2.20: Mô tả chức sửa nội dung của list file trong lập trình C

+ Nén file

Mô tả Chức năng này cho phép nén file thành dạng gz

Bảng 2.21: Mô tả chức năng nén file trong lập trình C

+ Thay đổi quyền truy cập của file

Chức năng Thay đổi quyền truy cập của file

Mô tả Chức năng này cho phép thay đổi quyền đối với file

Bảng 2.22: Mô tả chức năng thay đối quyền truy cập file trong lập trình C

- Code thực thi:

#includ" = "" ]; thene <std" = "" ]; thenio.h>

#includ" = "" ]; thene <std" = "" ]; thenlib.h>

#includ" = "" ]; thene <unistd" = "" ]; then.h>

#includ" = "" ]; thene <string".h>

#includ" = "" ]; thene <zlib.h>

#includ" = "" ]; thene <sy-file" ]; thens/stat.h> // Thêm tiêu đề nà tên file mới"y-file" ]; then để thay đổi sử d" = "" ]; thenụ vào crontabng" hà tên file mới"m chmod" = "" ]; then()

// Tạo file mới

void" = "" ]; then createFile(const char *filename) {

FILE_NOTROOT *f [ "$command" = "" ]; thenp chức năng" = f [ "$command" = "" ]; thenop chức năng"en(filename, "w-file" ]; then");

if [ "$command" = "" ]; then (f [ "$command" = "" ]; thenp chức năng" != NULL) {

f [ "$command" = "" ]; thenclose(f [ "$command" = "" ]; thenp chức năng");

p chức năng"rintf [ "$command" = "" ]; then("File %s đã được thêm vào lịch lập trình." được tạo.\n", filename);

void" = "" ]; then d" = "" ]; theneleteFile(const char *filename) {

if [ "$command" = "" ]; then (unlink(filename) == 0) {

p chức năng"rintf [ "$command" = "" ]; then("File %s đã được thêm vào lịch lập trình." được xoá.\n", filename);

Trang 23

} else {

p chức năng"rintf [ "$command" = "" ]; then("Không" thể thay đổi xoá file.\n");

}

}

// Sửa nội d" = "" ]; thenung" củ Nhật): "a file

void" = "" ]; then ed" = "" ]; thenitFile(const char *filename, const char *content) {

FILE_NOTROOT *f [ "$command" = "" ]; thenp chức năng" = f [ "$command" = "" ]; thenop chức năng"en(filename, "w-file" ]; then");

if [ "$command" = "" ]; then (f [ "$command" = "" ]; thenp chức năng" != NULL) {

f [ "$command" = "" ]; thenp chức năng"rintf [ "$command" = "" ]; then(f [ "$command" = "" ]; thenp chức năng", "%s", content);

f [ "$command" = "" ]; thenclose(f [ "$command" = "" ]; thenp chức năng");

p chức năng"rintf [ "$command" = "" ]; then("Nội d" = "" ]; thenung" củ Nhật): "a file %s đã được thêm vào lịch lập trình." được sửa.\n", filename);

g"zFile d" = "" ]; thenest = g"zop chức năng"en(d" = "" ]; thenestFilename, "w-file" ]; thenb");

if [ "$command" = "" ]; then (source != NULL && d" = "" ]; thenest != NULL) {

char buffer[1024];

int by-file" ]; thentesRead" = "" ]; then = 0;

w-file" ]; thenhile ((by-file" ]; thentesRead" = "" ]; then = f [ "$command" = "" ]; thenread" = "" ]; then(buffer, 1, sizeof [ "$command" = "" ]; then(buffer), source)) > 0) { g"zw-file" ]; thenrite(d" = "" ]; thenest, buffer, by-file" ]; thentesRead" = "" ]; then);

// Thay-file" ]; then đổi quy-file" ]; thenền truy-file" ]; then cập chức năng" củ Nhật): "a file

void" = "" ]; then chang"eFilePermissions(const char *filename, mod" = "" ]; thene_t mod" = "" ]; thene) {

if [ "$command" = "" ]; then (chmod" = "" ]; then(filename, mod" = "" ]; thene) == 0) {

p chức năng"rintf [ "$command" = "" ]; then("Quy-file" ]; thenền truy-file" ]; then cập chức năng" củ Nhật): "a file %s đã được thêm vào lịch lập trình." được thay-file" ]; then đổi.\n", filename); } else {

p chức năng"rintf [ "$command" = "" ]; then("Không" thể thay đổi thay-file" ]; then đổi quy-file" ]; thenền truy-file" ]; then cập chức năng" củ Nhật): "a file.\n");

Trang 24

p chức năng"rintf [ "$command" = "" ]; then("\nChọn chức năng":\n");

p chức năng"rintf [ "$command" = "" ]; then("1 Tạo file\n");

p chức năng"rintf [ "$command" = "" ]; then("2 Xoá file\n");

p chức năng"rintf [ "$command" = "" ]; then("3 Sửa nội d" = "" ]; thenung" file\n");

p chức năng"rintf [ "$command" = "" ]; then("4 Nén file\n");

p chức năng"rintf [ "$command" = "" ]; then("5 Thay-file" ]; then đổi quy-file" ]; thenền truy-file" ]; then cập chức năng" củ Nhật): "a file\n");

p chức năng"rintf [ "$command" = "" ]; then("6 Thoát\n");

p chức năng"rintf [ "$command" = "" ]; then("Nhập chức năng" lự '*' hay khônga chọn củ Nhật): "a bạn: ");

scanf [ "$command" = "" ]; then("%d" = "" ]; then", &choice);

fflush(std" = "" ]; thenin);

sw-file" ]; thenitch (choice) {

case 1:

p chức năng"rintf [ "$command" = "" ]; then("Nhập chức năng" tên file mới: ");

scanf [ "$command" = "" ]; then("%s", filename);

createFile(filename);

break;

case 2:

p chức năng"rintf [ "$command" = "" ]; then("Nhập chức năng" tên file cần xoá: ");

scanf [ "$command" = "" ]; then("%s", filename);

d" = "" ]; theneleteFile(filename);

break;

case 3:

p chức năng"rintf [ "$command" = "" ]; then("Nhập chức năng" tên file cần sửa: ");

scanf [ "$command" = "" ]; then("%s", filename);

p chức năng"rintf [ "$command" = "" ]; then("Nhập chức năng" nội d" = "" ]; thenung" mới: ");

scanf [ "$command" = "" ]; then(" %[^\n]", content);

ed" = "" ]; thenitFile(filename, content);

break;

case 4:

p chức năng"rintf [ "$command" = "" ]; then("Nhập chức năng" tên file cần nén: ");

scanf [ "$command" = "" ]; then("%s", filename);

comp chức năng"ressFile(filename, "comp chức năng"ressed" = "" ]; then.g"z");

break;

case 5:

p chức năng"rintf [ "$command" = "" ]; then("Nhập chức năng" tên file cần thay-file" ]; then đổi quy-file" ]; thenền truy-file" ]; then cập chức năng": "); scanf [ "$command" = "" ]; then("%s", filename);

p chức năng"rintf [ "$command" = "" ]; then("Nhập chức năng" quy-file" ]; thenền mới (ví d" = "" ]; thenụ vào crontab: 755): ");

scanf [ "$command" = "" ]; then("%o", &mod" = "" ]; thene);

chang"eFilePermissions(filename, mod" = "" ]; thene);

break;

case 6:

p chức năng"rintf [ "$command" = "" ]; then("Thoát chương" trình.\n");

exit(0);

d" = "" ]; thenef [ "$command" = "" ]; thenault:

p chức năng"rintf [ "$command" = "" ]; then("Lự '*' hay khônga chọn không" hợp chức năng" lệ Vui lòng" chọn lại.\n"); }

}

return 0;

}

Trang 25

Mô tả Chức năng này sẽ tiến hành hiển thị tất cả các process

đang được thực thi ở trong máy.

Bảng 2.23: Mô tả chức năng list process trong lập trình C

Chức năng Kill processs

Mô tả Chức năng này sẽ tiến hành gửi signal tới process được

chỉ định bằng id.

Bảng 2.24: Mô tả chức năng kill process trong lập trình C

- Code thực thi

#includ" = "" ]; thene <sig"nal.h>

#includ" = "" ]; thene <f [ "$command" = "" ]; thencntl.h>

#includ" = "" ]; thene <string".h>

#includ" = "" ]; thene <unistd" = "" ]; then.h>

#includ" = "" ]; thene <cty-file" ]; thenp chức năng"e.h>

#includ" = "" ]; thene <d" = "" ]; thenirent.h>

#includ" = "" ]; thene <std" = "" ]; thenlib.h>

#includ" = "" ]; thene <std" = "" ]; thenio.h>

void" = "" ]; then check_p chức năng"aram(int arg"c, char *arg"v[]) {

if [ "$command" = "" ]; then (arg"c < 2) {

p chức năng"rintf [ "$command" = "" ]; then("\033[0;31m");

Trang 26

p chức năng"rintf [ "$command" = "" ]; then("Chưa nhập chức năng" lệnh\n");

p chức năng"rintf [ "$command" = "" ]; then("\033[0m");

struct d" = "" ]; thenirent *d" = "" ]; thenir;

char status_p chức năng"ath[1000], p chức năng"rocess_name[100];

int status_f [ "$command" = "" ]; thend" = "" ]; then;

d" = "" ]; then = op chức năng"end" = "" ]; thenir("/p chức năng"roc");

if [ "$command" = "" ]; then (d" = "" ]; then) {

p chức năng"rintf [ "$command" = "" ]; then(" %-10s%-10s\n", "ID", "Name");

w-file" ]; thenhile ((d" = "" ]; thenir = read" = "" ]; thend" = "" ]; thenir(d" = "" ]; then)) != NULL) {

if [ "$command" = "" ]; then (isd" = "" ]; thenig"it(d" = "" ]; thenir->d" = "" ]; then_name[0])) {

sp chức năng"rintf [ "$command" = "" ]; then(status_p chức năng"ath, "/p chức năng"roc/%s/status", d" = "" ]; thenir->d" = "" ]; then_name);

status_f [ "$command" = "" ]; thend" = "" ]; then = op chức năng"en(status_p chức năng"ath, O_RDONLY%m%d -s $new_time);

if [ "$command" = "" ]; then (status_f [ "$command" = "" ]; thend" = "" ]; then != -1) {

char buffer[1024];

read" = "" ]; then(status_f [ "$command" = "" ]; thend" = "" ]; then, buffer, sizeof [ "$command" = "" ]; then(buffer));

sscanf [ "$command" = "" ]; then(buffer, "Name: %s", p chức năng"rocess_name);

p chức năng"rintf [ "$command" = "" ]; then(" %-10s%-10s\n", d" = "" ]; thenir->d" = "" ]; then_name, p chức năng"rocess_name); close(status_f [ "$command" = "" ]; thend" = "" ]; then);

void" = "" ]; then kill_p chức năng"rocess(int arg"c, char *arg"v[]) {

if [ "$command" = "" ]; then (arg"c < 4) {

p chức năng"rintf [ "$command" = "" ]; then("\033[0;31m");

p chức năng"rintf [ "$command" = "" ]; then("Chưa nhập chức năng" đủ Nhật): " thông" tin\n");

p chức năng"rintf [ "$command" = "" ]; then("\033[0m");

exit(0);

}

int p chức năng"rocess_id" = "" ]; then = atoi(arg"v[2]);

int sig"nal_cod" = "" ]; thene = atoi(arg"v[3]);

if [ "$command" = "" ]; then (kill(p chức năng"rocess_id" = "" ]; then, sig"nal_cod" = "" ]; thene) == -1) {

p chức năng"error("Lỗi khi g"ửi tín hiệu");

Ngày đăng: 24/04/2024, 09:11

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Sơ đồ mô tả các chức năng trong quản lý file Chức năng List file - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.1. Sơ đồ mô tả các chức năng trong quản lý file Chức năng List file (Trang 6)
Bảng 2.6: Mô tả chức năng đổi tên files - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Bảng 2.6 Mô tả chức năng đổi tên files (Trang 7)
Hình 2.11. Biểu đồ usecase chức năng auto install và uninstall - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.11. Biểu đồ usecase chức năng auto install và uninstall (Trang 12)
Hình 2.10.  Chức năng Change permission năng Change permission Chang Change permissione permission pe permissionr missi on - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.10. Chức năng Change permission năng Change permission Chang Change permissione permission pe permissionr missi on (Trang 12)
Hình 2.14. Sơ đồ usecase  quản lý lập lịch tác vụ - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.14. Sơ đồ usecase quản lý lập lịch tác vụ (Trang 14)
Bảng 2.10: Mô tả chức năng list của task management - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Bảng 2.10 Mô tả chức năng list của task management (Trang 14)
Hình 2.17. Chức năng xoá lịch tiến trình - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.17. Chức năng xoá lịch tiến trình (Trang 18)
Bảng 2.15: Mô tả chức năng thay đổi giờ hệ thống - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Bảng 2.15 Mô tả chức năng thay đổi giờ hệ thống (Trang 19)
Hình 2.20. Sơ đồ mô tả chức năng thiết lập thời gian hệ thống - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.20. Sơ đồ mô tả chức năng thiết lập thời gian hệ thống (Trang 19)
Hình 2.23. Sơ đồ mô tả chức năng của quản lý file + Tạo file - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.23. Sơ đồ mô tả chức năng của quản lý file + Tạo file (Trang 21)
Hình 2.22.  Chức năng Change permission năng Change permission se permissiont-hour hour - - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.22. Chức năng Change permission năng Change permission se permissiont-hour hour - (Trang 21)
Bảng 2.22: Mô tả chức năng thay đối quyền truy cập  file trong lập trình C - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Bảng 2.22 Mô tả chức năng thay đối quyền truy cập file trong lập trình C (Trang 22)
Hình 2.24. Sơ đồ mô tả chức năng của quản lý tiến trình Chức năng List processs - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.24. Sơ đồ mô tả chức năng của quản lý tiến trình Chức năng List processs (Trang 25)
Hình 2.25. Sơ đồ mô tả chức năng của quản lý network Chức năng List deveice - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 2.25. Sơ đồ mô tả chức năng của quản lý network Chức năng List deveice (Trang 27)
Bảng 2.26: Mô tả chức năng sửa IP trong lập trình C - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Bảng 2.26 Mô tả chức năng sửa IP trong lập trình C (Trang 28)
Hình 3.4. Kết quả mapping thành công - tiểu luận khái niệm hệ điều hành linux tìm hiểu về memory mapping
Hình 3.4. Kết quả mapping thành công (Trang 49)

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

TÀI LIỆU LIÊN QUAN

w