Lập trình trên Android - Lập trình C/C++ trên Android - Lập trình Java trên Android - Phát triển ứng dụng thử nghi … Phần 3... Thư vi n liên k t đ ng dll và lập trình API trong Windows X
Trang 1DANH SÁCH CHUYÊN ĐỀ MÔN NGUYÊN LÝ HỆ ĐIỀU HÀNH
Ghi chú:
Các chuyên đề và bài tập dưới đây được sử dụng để đánh giá điểm giữa
kỳ
M i sinh viên ch n th c hi n 1 chuyên đề á cá v u i cu i n
h c
Nên sử dụng c i đ t trên áy V dụ VMWare, Virtual x…)
D
1 C i đ t, sử
dụng h
điều h nh
CentOS
- C i đ t h điều h nh CentOS trên
áy )
- C i đ t các d ch vụ c n c a h điều h nh ng
- C i đ t ph n ề the 3 cách gia
di n đ h a, câu l nh Shell, iên
d ch a e, a e install)
- điều h nh
c i đ t th c t
h c trên áy file age)
- file c i đ t
h điều h nh SO…)
- ph n ề liên quan
- ile w rd á
cá t ng hợp
2 C i đ t, sử
dụng h
điều h nh
Ubuntu
Desktop
- C i đ t h điều h nh Ubuntu Desktop trên áy )
- C i đ t các d ch vụ c n c a h điều h nh es t p Open Office,
g ti ng Vi t, f nt…)
- C i đ t ph n ề the 3 cách gia
di n đ h a, câu l nh Shell, iên
d ch a e, a e install)
3 C i đ t, sử
dụng h
điều h nh
Ubuntu
Server
- C i đ t h điều h nh Ubuntu Server trên áy )
- C i đ t các d ch vụ c n c a h điều h nh ng
- C i đ t ph n ề the 3 cách gia
Trang 2di n đ h a, câu l nh Shell, iên
d ch a e, a e install)
4 C i đ t, sử
dụng h
điều h nh
Fedora
- C i đ t h điều h nh Fedora trên
áy )
- C i đ t các d ch vụ c n c a h điều h nh ng
- C i đ t ph n ề the 3 cách gia
di n đ h a, câu l nh Shell, iên
d ch a e, a e install)
5 C i đ t, sử
dụng h
điều h nh
Hacao
- C i đ t h điều h nh Hacao trên
áy )
- C i đ t các d ch vụ c n c a h điều h nh es t p Open Office,
g ti ng Vi t, f nt…)
- C i đ t ph n ề the 3 cách gia
di n đ h a, câu l nh Shell, iên
d ch a e, a e install)
6 C i đ t, sử
dụng h
điều h nh
Super
Ubuntu
- C i đ t h điều h nh Super Ubuntu trên áy )
- C i đ t các d ch vụ c n c a h điều h nh
- C i đ t ph n ề the 3 cách gia
di n đ h a, câu l nh Shell, iên
d ch a e, a e install)
7 C i đ t, sử
dụng h
điều h nh
Back Track
- C i đ t h điều h nh CentOS trên
áy )
- C i đ t các d ch vụ c n c a h điều h nh ng
- C i đ t ph n ề the 3 cách gia
di n đ h a, câu l nh Shell, iên
d ch a e, a e install)
8 C i đ t, sử
dụng h
- C i đ t h điều h nh Debian trên
áy )
Trang 3điều h nh
Debian
- C i đ t các d ch vụ c n c a h điều h nh ng
- C i đ t ph n ề the 3 cách gia
di n đ h a, câu l nh Shell, iên
d ch a e, a e install)
9 C i đ t, sử
dụng h
điều h nh
Android
- C i đ t h điều h nh Android trên
áy )
- C i đ t các d ch vụ c n c a h điều h nh Android
- C i đ t ph n ề trên Android
10 C i đ t, sử
dụng h
điều h nh
Puppy
- C i đ t h điều h nh Puppy trên
áy )
- C i đ t các d ch vụ c n c a h điều h nh Puppy
- C i đ t ph n ề the 3 cách gia
di n đ h a, câu l nh Shell, iên
d ch a e, a e install)
CÁC CHUYÊN ĐỀ IÊN UAN
(Ph n n y để tha h )
Phần 1 Hệ u hành họ Linux
Yêu cầu:
Phân t ch phư ng pháp, ỹ thuật và mô t các thuật toán sử dụng
Các chuyên đề cụ thể c n ph i phân t ch được mã ngu n (trừ chuyên đề 1)
C
1 T ng quan và sử dụng
- T ng quan về h điều hành Linux
Trang 4- T ng quan về các i trường lập trình trong linux kernel
- Tập l nh Shell
2 Ki n thức t ng quan linux kernel
- Các thành ph n c a kernel
- Kernel modules
- Build và debug linux kernel
3 Qu n lý memory
- Address architect, address space
- Virtual memory, memory mapping
- Paging, switching, caching
4 Qu n lý process
- Process, kernel thread
- Context switch và scheduling
- Interrupts, signals và exceptions
5 Kernel services, timer, Synchronization
- System calls
- Signals and interrupts
- /proc file system
- /sysfs file system
- Kernel timmer, hardware clocks
- IPC (inter-process communication)
6 Linux Filesystems và Networking
- Virtual filesystem (VFS)
- LVM và RAID
- Journaling file system (JFS)
- Linux TCP/IP stack
- Netfilter
7 Linux Security
- User Authentication
- Data encryption:
Disk encrytion và filesystem-lever encryption
Trang 5 dmcrypt + LUKS
Truecrypt
- Network security
- Packet filtering
Packet filtering
Packet filtering trong Linux
Filter table
NAT table
Iptables
Snort
- NSA security-enhanced linux (SE linux)
8 Lập trình an toàn
- T ng quan về các l h ng an ninh trong lập trình
- Các l h ng trong xử lý s nguyên:
Value truncation,
Signed và unsigned mixing
Interger overflow và underflow
- L h ng buffer overflow:
Qu n lý b nhớ c a ti n trình
Stack overflow: ví dụ, các kỹ thuật khai thác
Heap overflow: ví dụ, các kỹ thuật khai thác
- L h ng sử dụng FormatString
Ho t đ ng c a các hàm format string
L h ng
Khai thác
- Các l h ng memory corruption (ngoài l h ng buffer overflow)
- Cách phòng tránh các l h ng
9 Kiểm thử l h ng kernel
- L h ng kernel linux
- Fuzzing
- Các công cụ kiểm thử
- Patch
Trang 6- Lab
10 Nguyên lý và th c nghi m Vi t hóa Ubuntu
- Tìm hiểu về kỹ thuật vi t hóa trong Ubuntu
- Th c nghi m
Phần 2 Hệ u hành Android
11 Cấu trúc, c i đ t, sử dụng H điều hành Android
- Phân tích cấu trúc Android
- C i đ t Android trên mobile ho c trên thi t b mô phỏng
- Các mô-đun v sử dụng như qu n lý ti n trình, qu n lý b nhớ, qu n lý chư ng trình…
12 Biên d ch nhân Android
- Tìm hiểu cấu trúc, phân tích mã ngu n nhân Android (chính là nhân Linux)
- Biên d ch l i nhân Android cho thi t b di đ ng
- Vấn đề n p nhân mới…
13 Lập trình trên Android
- Lập trình C/C++ trên Android
- Lập trình Java trên Android
- Phát triển ứng dụng thử nghi …
Phần 3 Hệ u hành iOS
14 Cấu trúc, c i đ t, sử dụng H điều hành iOS
- Phân tích cấu trúc iOS
- C i đ t iOS trên mobile ho c trên thi t b mô phỏng
- Các mô-đun v sử dụng như qu n lý ti n trình, qu n lý b nhớ, qu n lý chư ng
trình…
15 Lập trình Objective-C trên iOS
- Công cụ v i trường lập trình
- Objective-C trên iOS
- Phát triển ứng dụng thử nghi …
Phần 4 Hệ u hành họ Windows
16 Cấu trúc, c i đ t, sử dụng H điều hành Windows XP
- Phân tích cấu trúc Windows XP
- Các mô-đun v sử dụng như qu n lý ti n trình, qu n lý b nhớ, qu n lý chư ng
Trang 7- Vấn đề backup, restore
- Firewall c a Windows XP
17 Cấu trúc, c i đ t, sử dụng H điều hành Windows 7
- Phân tích cấu trúc Windows 7
- Các mô-đun v sử dụng như qu n lý ti n trình, qu n lý b nhớ, qu n lý chư ng trình…
- Vấn đề backup, restore
- Firewall c a Windows 7
18 Cấu trúc, c i đ t, sử dụng H điều hành Windows 8
- Phân tích cấu trúc Windows 8
- Các mô-đun v sử dụng như qu n lý ti n trình, qu n lý b nhớ, qu n lý chư ng trình…
- Vấn đề backup, restore
- Firewall c a Windows 8
19 Cấu trúc, c i đ t, sử dụng H điều hành WindowsPhone
- Phân tích cấu trúc WindowsPhone
- C i đ t WindowsPhone trên mobile ho c trên thi t b mô phỏng
- Các mô-đun v sử dụng như qu n lý ti n trình, qu n lý b nhớ, qu n lý chư ng trình…
- Backup, restore trong WindowsPhone
20 Lập trình Registry trong windows XP
- Cấu trúc Registry trong WindowsXP
- Vấn đề sửa đ i Registry
- Lập trình can thi p Registry
21 Lập trình Registry trong windows 7
- Cấu trúc Registry trong Windows 7
- Vấn đề sửa đ i Registry
- Lập trình can thi p Registry
22 Lập trình Registry trong windows 8
- Cấu trúc Registry trong Windows 8
- Vấn đề sửa đ i Registry
- Lập trình can thi p Registry
23 Thư vi n liên k t đ ng (dll) và lập trình API trong Windows XP
- Phân tích cấu trúc dll
- Lập trình sử dụng dll thông qua API
- Phát triển ứng dụng thử nghi m
24 Thư vi n liên k t đ ng (dll) và lập trình API trong Windows 7
- Phân tích cấu trúc dll
- Lập trình sử dụng dll thông qua API
- Phát triển ứng dụng thử nghi m
Trang 825 Thư vi n liên k t đ ng (dll) và lập trình API trong Windows 8
- Phân tích cấu trúc dll
- Lập trình sử dụng dll thông qua API
- Phát triển ứng dụng thử nghi m
26 Lập trình trong WindowsPhone
- Công cụ v i trường lập trình
- Ngôn ngữ lập trình
- Phát triển ứng dụng thử nghi m
Phần 5 Các hệ u hành khác
27 điều h nh thời gian th c COs
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
28 điều h nh thời gian th c eCOS
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
29 điều h nh trên thi t di đ ng Sy ian
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
30 điều h nh trên thi t di đ ng P M OS
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
31 Damn Small Linux
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
32 Puppy Linux
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
33 CentOS
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
Trang 934 H điều h nh Đ Meeg trên US
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
35 Windows 8 ch y trên USB
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
36 Prayaya - h điều hành o trên USB
- Cấu trúc, c i đ t và sử dụng
- Các vấn đề: qu n lý ti n trình, qu n lý b nhớ, qu n lý vào ra, vấn đề an toàn
- Phát triển và tích hợp ph n mềm
Trang 10Phần 6 Bài tập lập trình
(Các bài tập lập trình không làm theo nhóm)
Đ u phối ti n trình:
Bài 1 VCT xác đ nh k t qu điều ph i ti n trình & thời gian chờ trung bình theo thuật toán FCFS, với tập ti n trình c n xử lý được mô t tr ng file văn n INPUT.TXT theo
d ng: ti n trình thứ K có thời điểm vào và thời gian xử lý là 2 s nguyên ở dòng K
Ví dụ, nội dung file văn bản là:
0 24
1 3
2 3
thì có 3 tiến trình cần xử lý, trong đó tiến trình P1 có thời điểm vào là 0 & thời gian xử lý là 24, tương tự tiến trình P2 có thời điểm vào là 1 và P3 là
2 – cả hai cùng có thời gian xử lý là 3
Bài 2 VCT xác đ nh k t qu điều ph i ti n trình & thời gian chờ trung bình theo thuật
toán Round Robin, Tập ti n trình c n xử lý được mô t tr ng file văn n INPUT.TXT theo d ng như trên – riêng dòng cu i cùng c a file lưu giá tr quantum
Bài 3 VCT xác đ nh k t qu điều ph i ti n trình & thời gian chờ trung bình theo thuật
t án điều ph i SJ đ c quyền v h ng đ c quyền Tập ti n trình c n xử lý được mô t
tr ng file văn n INPUT.TXT theo d ng như câu 1
Bài 4 VCT xác đ nh k t qu điều ph i ti n trình & thời gian chờ trung bình theo thuật
t án điều ph i với đ ưu tiên đ c quyền với tập ti n trình c n xử lý được mô t trong file văn n INPUT.TXT theo d ng tư ng t câu 1 – nhưng i dòng có 3 con s và
s thứ a l đ ưu tiên c a ti n trình tư ng ứng
Bài 5 Xét 3 ti n trình A, B, C liên tục xuất ra các ký t „ ‟, „ ‟, ‟C‟ t i các dòng 1, 2,
3 (khi xuất tới cu i dòng thì xóa c dòng và xuất l i ở đ u dòng) Hãy xây d ng h
th ng gi lập điều ph i 3 ti n trình theo thuật toán RR, bi t thời điể v tư ng ứng
c a 3 ti n trình là 0, 10, 20 và trong kho ng thời gian quantum s ký t xuất ra được
c a 3 ti n trình tư ng ứng là 1, 2, 3
Trang 11Liên lạc ti n trình:
Bài 6 T ra 2 ti n trình Ti n trình thứ nhất đ c từ file nhiều chu i liên ti p, i
chu i g các phép t án +, -, *, / v hai t án h ng
V dụ tr ng file sẽ lưu các chu i d ng như sau
2 + 3
1 - 2
4 * 6
15 / 3
Sau đó ti n trình thứ nhất truyền các chu i dữ li u n y ch ti n trình thứ hai Ti n trình thứ hai th c hi n t nh t án v tr chu i t qu về l i ch ti n trình đ u tiên để ghi l i v file như sau:
2 + 3 = 5
1 - 2 = -1
4 * 6 = 24
15 / 3 =5
Th c hi n i t án dùng essage queue để giao ti p giứa 2 quá trình
Qu n lý b nhớ:
Bài 7 Xây d ng chư ng trình phỏng tr c quan vi c cấp phát liên ti p với phân
vùng c đ nh sử dụng nhiều h ng đợi S phân vùng, ch thước từng phân vùng t thi t k cho phù hợp; các ti n trình v ch thước tư ng ứng được phát sinh ngẫu nhiên (và thời điểm gi i phóng cũng được random sao cho hợp lý)
Bài 8 Tư ng t bài trên với phân vùng c đ nh sử dụng m t h ng đợi
Bài 9 Tư ng t bài trên với phân vùng đ ng & thuật toán First – fit
Bài 10 Tư ng t bài trên với phân vùng đ ng & thuật toán Best – fit
Đồng b :
(Semaphore)
Bài 11 Vi t chư ng trình gi i quy t bài toán 5 tri t gia ăn t i Chư ng trình ph i t o
ra 5 quá trình con mô phỏng ho t đ ng c a 5 tri t gia ùng se aph re để đ ng b
ho t đ ng c a 5 tri t gia này
Bài 12 Bài toán T o phân tử H2O
Trang 12Đ ng h t đ ng c a t phòng th nghi sử dụng nhiều ti n trình đ ng
h nh sau để t các phân tử 2O:
MakeH() // M i ti n trình Ma e t 1 nguyên tử
{
Make-Hydro();
}
MakeO() // M i ti n trình Ma eO t 1 nguyên tử O
{
Make-Oxy();
}
MakeWater() /* Ti n trình Ma eWater h t đ ng đ ng h nh
với các ti n trình Ma e , Ma eO, chờ có đ 2 v 1 O để t 2O */
{
while (T)
Make-Water ) //T 1 phân tử 2O
}
Bài 13 Bài toán Cây c u cũ
Để tránh sụp đ , người ta chỉ có ch phép t i đa 3 xe lưu th ng đ ng thời qua
t cây c u rất cũ ãy xây d ng th tục ArriveBridge(int direction) và
ExitBridge() iể s át gia th ng trên c u sa ch
T i i thời điể , chỉ ch phép t i đa 3 xe lưu th ng trên c u
T i i thời điể , chỉ ch phép t i đa 3 xe lưuth ng cùng hướng
trên c u
M i chi c xe hi đ n đ u c u sẽ g i ArriveBridge(direction) để iể tra điều
i n lên c u, v hi đã qua c u được sẽ g i ExitBridge() để á hi u t thúc
Gi sử h t đ ng c a i chi c xe được t ằng t ti n trình Car() sau
đây
Car(int direction) /* direction xác đ nh hướng di chuyển c a i chi c
xe.*/
{
RuntoBridge ) // Đi về ph a c u
ArriveBridge(direction);
Pass ridge ) // Qua c u
Exit Bridge();
Runfr ridge ) // Đã qua c u }
Bài 14 Bài toán Qua sông
Để vượt qua s ng, các nhân viên Micr s f v các Linux hac er cùng sử dụng
t n s ng v ph i chia sẻ t s thuyền đ c i t M i chi c thuyền n y chỉ
ch phép chở 1 l n 4 người, v ph i có đ 4 người ới hởi h nh được Để
đ an t n ch c 2 ph a, c n tuân th các luật sau
a Kh ng chấp nhận 3 nhân viên Micr s ft v 1 Linux hac er trên cùng t chi c thuyền
Ngược l i, h ng chấp nhận 3 Linux hac er v 1 nhân viên Micr s ft trên cùng t chi c thuyền