4.3.1.Tìm hiểu các phần mềm mã nguồn mở (Linux, Việt Key Linux...).
Linux đã có hàng ngàn ứng dụng, từ các chƣơng trình bảng tính điện tử, quản trị cơ sở dữ liệu, xử lý văn bản đến các chƣơng trình phát triển phần mềm cho nhiều ngôn ngữ, chƣa kể nhiều phần mềm viễn thông trọn gói.
A.1. Linux cộng sinh với Windows
Về nguyên tắc, tất cả các phần mềm đang chạy trên DOS hoặc Windows sẽ không chạy trực tiếp với Linux, nhƣng 3 hệ điều hành này có thể cộng sinh trên cùng một máy PC, dĩ nhiên mỗi lúc chỉ chạy đƣợc một hệ điều hành thôi. Ta cũng có thể cài thêm một chƣơng trình đặc biệt tên là “VMWARE” để phỏng tạo một hay nhiều hệ điều hành khác nhau chạy đồng thời trên cùng một máy với điều kiện máy phải có cấu hình thích hợp và đủ mạnh.
A.2. Thƣơng mại hóa Linux
Linux chƣa thể khắc phục hết ngay những bất tiện và sai sót. Nhƣng càng ngày càng có thêm công ty mới đầu tƣ cho Linux và đƣa ra các giải pháp có tính thƣơng mại với giá rẻ. Chẳng hạn là RedHat và Caldera.
Cả hai công ty này đều trợ giúp kỹ thuật qua e-mail, fax và qua mạng cho những ngƣời đã mua các phiên bản Linux và sản phẩm của họ mà không dành cho những ngƣời sao chép các bản miễn phí.
Vì tính kinh tế, Linux và các chƣơng trình kèm theo thƣờng đƣợc chạy trên mạng nội bộ của nhiều doanh nghiệp, chẳng hạn làm các dịch vụ Web, tên miền
142
(DNS), định tuyến (routing) và tƣờng lửa. Nhiều nhà cung cấp dịch vụ Internet (ISP) cũng dùng Linux làm hệ điều hành chính.
A. 4. Kiến trúc của Linux
Mục tiêu: Trình bày các thành phần chính cấu thành hệ điều hành Linux và chức năng chính của mỗi thành phần trong cấu trúc.
Linux gồm 3 thành phần chính: kernel, shell và cấu trúc tệp.
Kernel là chƣơng trình nhân, chạy các chƣơng trình và quản lý các thiết bị phần cứng nhƣ đĩa và máy in.
Shell (môi trƣờng) cung cấp giao diện cho ngƣời sử dụng, còn đƣợc mô tả nhƣ một bộ biên dịch. Shell nhận các câu lệnh từ ngƣời sử dụng và gửi các câu lệnh đó cho nhân thực hiện. Nhiều shell đƣợc phát triển. Linux cung cấp một số shell nhƣ: desktops, windows manager, và môi trƣờng dòng lệnh. Hiện nay chủ yếu tồn tại 3 shell: Bourne, Korn và C shell. Bourne đƣợc phát triển tại phòng thí nghiệm Bell, C shell đƣợc phát triển cho phiên bản BSD của UNIX, Korn shell là phiên bản cải tiến của Bourne shell. Những phiên bản hiện nay của Unix, bao gồm cả Linux, tích hợp cả 3 shell trên.
Cấu trúc tệp quy định cách lƣu trữ các tệp trên đĩa. Tệp đƣợc nhóm trong các thƣ mục. Mỗi thƣ mục có thể chứa tệp và các thƣ mục con khác. Ngƣời dùng có thể tạo các tệp/thƣ mục của riêng mình cũng nhƣ dịch chuyển các tệp giữa các thƣ mục đó. Hơn nữa, với Linux ngƣời dùng có thể thiết lập quyền truy nhập tệp/thƣ mục, cho phép hay hạn chế một ngƣời dùng hoặc một nhóm truy nhập tệp. Các thƣ mục trong Linux đƣợc tổ chức theo cấu trúc cây, bắt đầu bằng một thƣ mục gốc (root). Các thƣ mục khác đƣợc phân nhánh từ thƣ mục này.
Kernel, shell và cấu trúc tệp cấu thành cấu trúc hệ điều hành. Với những thành phần trên ngƣời dùng có thể chạy chƣơng trình, quản lý tệp và tƣơng tác với hệ thống.
5. Các đặc tính cơ bản
Mục tiêu: So với các hệ điều hành khác, Linux mang một số đặc điểm chính được liệt kê sau. Đây là các đặc điểm cơ bản giúp người dùng định hướng lựa chọn sử dụng.
Một số đặc điểm cơ bản của Linux:
B.1. Đa tiến trình
Là đặc tính cho phép ngƣời dùng thực hiện nhiều tiến trình đồng thời. Máy tính sử dụng chỉ một CPU nhƣng xử lý đồng thời nhiều tiến trình cùng lúc.
143
B.2. Tốc độ cao
Hệ điều hành Linux đƣợc biết đến nhƣ một hệ điều hành có tốc độ xử lý cao, bởi vì nó thao tác rất hiệu quả đến tài nguyên nhƣ: bộ nhớ, đĩa…
B.3. Bộ nhớ ảo
Khi hệ thống sử dụng quá nhiều chƣơng trình lớn dẫn đến không đủ bộ nhớ chính (RAM) để hoạt động, Linux dùng bộ nhớ từ đĩa là partition swap. Hệ thống sẽ đƣa các chƣơng trình hoặc dữ liệu nào chƣa có yêu cầu truy xuất xuống vùng swap này, khi có nhu cầu thì hệ thống chuỵển lên bộ nhớ chính.
B.4. Sử dụng chung thƣ viện
Hệ thống Linux có rất nhiều thƣ viện dùng chung cho nhiều ứng dụng. Điều này sẽ giúp hệ thống tiết kiệm đƣợc tài nguyên và thời gian xử lý.
B.5. Sử dụng các chƣơng trình xử lý văn bản
Chƣơng trình xử lý văn bản là một trong nhƣng chƣơng trình rất cần thiết đối với ngƣời sử dụng. Linux cung cấp nhiều chƣơng trình cho phép ngƣời dùng thao tác với văn bản nhƣ vi, emacs, nroff,…
B.6. Sử dụng giao diện cửa sổ
Giao diện cửa sổ dùng Hệ thống X Window, có giao diện nhƣ hệ điều hành Windows. Với hệ thống này ngƣời dùng rất thuận tiện khi làm việc trên hệ thống. X Window System hay còn gọi tắt là X đƣợc phát triển tại viện Massachusetts Institute of Technology. Nó đƣợc phát triển để tạo ra môi trƣờng làm việc không phụ thuộc phần cứng. X chạy dƣới dạng client –server. Hệ thống X Window hoạt động qua hai bộ phận:
- Phần server còn gọi là X server
- Phần client đƣợc gọi là X Window manager hay desktop environment.
X server sử dụng trong hầu hết các bản phân phối của Linux là Xfree86. Client sử dụng thƣờng là KDE (K Desktop Environment) và GNOME (GNU Network Object Model Environment).
B.7. Network Information Service (NIS)
Dịch vụ NIS cho phép chia xẻ các tập tin password và group trên mạng. NIS là một hệ thống cơ sở dữ liệu dạng client-server, chứa các thông tin của ngƣời dùng và dùng để chứng thực ngƣời dùng. NIS xuất phát từ hãng Sun Microsystems với tên là Yellow Pages.
B.8. Lập lịch hoạt động chƣơng trình, ứng dụng
Chƣơng trình lập lịch trong Linux xác định các ứng dụng, script thực thi theo một sự sắp xếp của ngƣời dùng nhƣ: at, cron, batch.
144
B.9. Các tiện ích sao lƣu dữ liệu
Linux cung cấp các tiện ích nhƣ tar, cpio và dd để sao lƣu và backup dữ liệu. RedHat Linux còn cung cấp tiện ích Backup and Restore System Unix (BRU) cho phép tự động backup dữ liệu theo lịch.
B.10. Hỗ trợ nhiều ngôn ngữ lập trình
Linux cung cấp một môi trƣờng lập trình Unix đầy đủ bao gồm các thƣ viện chuẩn, các công cụ lập trình, trình biên dịch, chƣơng trình debug. Ngôn ngữ chủ yếu sử dụng trong các hệ điều hành Unix là C và C++. Linux dùng trình biên dịch cho C và C++ là gcc, chƣơng trình biên dịch này rất mạnh, hỗ trợ nhiều tính năng. Ngoài C, Linux cũng cung cấp các trình biên dịch, thông dịch cho các ngôn ngữ khác nhƣ Pascal, Fortran, Java…
4.3.2Tìm hiểu và tiếp cận các hệ quản trị cơ sở dữ liệu lớn nhƣ (Oracle, DB2, SQL Server, MySQL...)
SQL là ngôn ngữ cơ sở dữ liệu quan hệ
Mục tiêu: Hiểu đƣợc ngôn ngữ SQL là gì.
SQL, viết tắt của Structured Query Language (ngôn ngữ hỏi có cấu trúc), là công cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu đuợc lƣu trữ trong các cơ sở dữ liệu. SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tƣơng tác với cơ sở dữ liệu quan hệ.
Tên gọi ngôn ngữ hỏi có cấu trúc phần nào làm chúng ta liên tƣởng đến một công cụ (ngôn ngữ) dùng để truy xuất dữ liệu trong các cơ sở dữ liệu. Thực sự mà nói, khả năng của SQL vƣợt xa so với một công cụ truy xuất dữ liệu, mặc dù đây là mục đích ban đầu khi SQL đƣợc xây dựng nên và truy xuất dữ liệu vẫn còn là một trong những chức năng quan trọng của nó. SQL đƣợc sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho ngƣời dùng bao gồm:
• Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu, các cấu trúc lƣu trữ và tổ chức dữ liệu cũng nhƣ mối quan hệ giữa các thành phần dữ liệu.
• Truy xuất và thao tác dữ liệu: Với SQL, ngƣời dùng có thể dễ dàng thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu.
• Điều khiển truy cập: SQL có thể đƣợc sử dụng để cấp phát và kiểm soát các thao tác của ngƣời sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu
• Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trƣớc các thao tác cập nhật cũng nhƣ các lỗi của hệ thống.
145
Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ đƣợc Codd đề xuất năm 1970 và đến nay trở thành mô hình đƣợc sử dụng phổ biến trong các hệ quản trị cơ sở dữ liệu thƣơng mại. Nói một cách đơn giản, một cơ sở dữ liệu quan hệ là một cơ sở dữ liệu trong đó tất cả dữ liệu đƣợc tổ chức trong các bảng có mối quan hệ với nhau. Mỗi một bảng bao gồm các dòng và các cột: mỗi một dòng đƣợc gọi là một bản ghi (bộ) và mỗi một cột là một trƣờng (thuộc tính).
Bảng (Table)
Nhƣ đã nói ở trên, trong cơ sở dữ liệu quan hệ, bảng là đối tƣợng đƣợc sử dụng để tổ chức và lƣu trữ dữ liệu. Một cơ sở dữ liệu bao gồm nhiều bảng và mỗi bảng đƣợc xác định duy nhất bởi tên bảng. Một bảng bao gồm một tập các dòng và các cột: mỗi một dòng trong bảng biểu diễn cho một thực thể. (mỗi một dòng trong bảng SINHVIEN tƣơng ứng với một sinh viên); và mỗi một cột biểu diễn cho một tính chất của thực thể (chẳn hạn cột TENKHOA trong bảng KHOA biểu diễn cho tên của các khoa đƣợc lƣu trữ trong bảng).
Nhƣ vậy, liên quan đến mỗi một bảng bao gồm các yếu tố sau:
• Tên của bảng: đƣợc sử dụng để xác định duy nhất mỗi bảng trong cơ sở dữ liệu.
• Cấu trúc của bảng: Tập các cột trong bảng. Mỗi một cột trong bảng đƣợc xác định bởi một tên cột và phải có một kiểu dữ liệu nào đó (chẳng hạn TENKHOA trong bảng KHOA ở hình 1.1 có kiểu là CHAR). Kiểu dữ liệu của mỗi cột qui định giá trị dữ liệu có thể đƣợc chấp nhận trên cột đó.
• Dữ liệu của bảng: Tập các dòng (bản ghi) hiện có trong bảng.
Khoá của bảng
Trong một cơ sở dữ liệu đƣợc thiết kế tốt, mỗi một bảng phải có một hoặc một tập các cột mà giá trị dữ liệu của nó xác định duy nhất một dòng trong một tập các dòng của bảng. Tập một hoặc nhiều cột có tính chất này đƣợc gọi là khoá của bảng.
146
Việc chọn khoá của bảng có vai trò quan trọng trong việc thiết kế và cài đặt các cơ sở dữ liệu quan hệ. Các dòng dữ liệu trong một bảng phải có giá trị khác nhau trên khoá. Bảng MONHOC trong hình dƣới đây có khoá là cột MAMONHOC
Một bảng có thể có nhiều tập các cột khác nhau có tính chất của khoá (tức là giá trị của nó xác định duy nhất một dòng dữ liệu trong bảng). Trong trƣờng hợp này, khoá đƣợc chọn cho bảng đƣợc gọi là khoá chính (primary key) và những khoá còn lại đƣợc gọi là khoá phụ hay là khoá dự tuyển (candidate key/unique key).
Mối quan hệ và khoá ngoài
Các bảng trong một cơ sở dữ liệu không tồn tại độc lập mà có mối quan hệ mật thiết với nhau về mặt dữ liệu. Mối quan hệ này đƣợc thể hiện thông qua ràng buộc giá trị dữ liệu xuất hiện ở bảng này phải có xuất hiện trƣớc trong một bảng khác. Mối quan hệ giữa các bảng trong cơ sở dữ liệu nhằm đàm bảo đƣợc tính đúng đắn và hợp lệ của dữ liệu trong cơ sở dữ liệu.
Hình 1.2 Quan hệ 2 bảng trong một cơ sở dữ liệu
Mối quan hệ giữa các bảng trong một cơ sở dữ liệu thể hiện đúng mối quan hệ giữa các thực thể trong thế giới thực, mối quan hệ giữa hai bảng LOP và KHOA không cho phép một lớp nào đó tồn tại mà lại thuộc vào một khoa không có thật.
4.3.3.Tìm hiểu các công nghệ nhƣ XML, UML... Công nghệ Xml
Khái niệm về Công nghệ XML
- Thuộc loại công nghệ biểu diễn thông tin
- Hình thành từ nhu cầu và vấn đề cần giải quyết của việc trao đổi thông tin - Có phạm vi nghiên cứu và ứng dụng trên tất cả mô hình biểu diễn của công nghệ biểu diễn thông tin
- Có hƣớng nghiên cứu cho phép ứng dụng một mô hình xử lý thông tin mới thuộc về công nghệ xử lý thông tin
147
1. Trao đổi thông tin nội bô bên trong hệ thống tin học
Sự phát triển về qui mô, độ phức tạp, phạm vi sử dụng của các hệ thống tin học dẫn đến sự phân rả hệ thống cần xây dựng thành các hệ thống con ( kiến trúc đa tầng là một ví dụ điễn hình về sự phân rả nhƣ thể)
=== > Nhu cầu về trao đổi thông tin bên trong các hệ thống con 2. Trao đỗi thông tin giữa các hệ thống tin học
- Sự phát triển của Internet và các ứng dụng trên Web , đặc biệt là các ứng dụng trong lĩnh vực thƣơng mại điện tử
==== > Nhu cầu về trao đổi thông tin giửa các ứng dụng này
- Các yêu cầu cao về chất lƣợng phần mềm ( Tiện dụng, Tƣơng thích, Bảo mật, v.v…) khả năng đáp ứng cao, chuyên biệt của một số hệ thống sẳn có (WebBrowser, Excel, Word, Fax, v.v…)
==== > Nhu cầu về trao đổi thông tin giữa hệ thống đang xây dựng và các hệ thống có sẳn
* Mô hình trao đổi thông tin
Mô hình trao đổi thông tin trƣớc khi XMl ra đời chủ yếu dựa trên công nghệ về luồng dữ liệu (Data Stream ) với 2 dạng chính
- Dạng nhị phân : Dữ liệu trao đổi là chuỗi các byte theo một cấu trúc và ngữ nghĩa riêng biệt của từng ứng dụng
- Dạng văn bản : Dữ liệu trao đổi là chuỗi các ký tự theo cách mã hóa chung nhƣng cấu trúc và ngữ nghĩa vẫn là riêng biệt cho từng ứng dụng
Cả 2 dạng trao đổi trên đều không thích hợp với các nhu cầu phía trên với cùng khuyết điểm :
"Thông tin cần trao đổi có cấu trúc và ngữ nghĩa riêng biệt theo từng ứng dụng " Nhu cầu về một định chuẩn chung khi trao đổi thông tin
* Sự ra đời của Công nghệ XML
Công nghệ XML ra đời là kết quả của các nghiên cứu về dạng biểu diễn thông tin khi cần trao đổi giữa các hệ thống tin học. Dạng biểu diễn cần thỏa mản các yêu cầu sau
1) Cho phép trao đổi trên phạm vi rộng ( Internet)
2) Dễ dàng trong việc kết xuất và tiếp nhận khi trao đổi
3) Tuân theo một định chuẩn chung đƣợc chấp nhận và hổ trợ của nhiều môi trƣờng phát triễn phần mềm
Công nghệ XML đã ra đời và đề xuất một dạng biểu diễn thích hợp cho các yêu cầu trên ( tài liệu XML). Tuy nhiên với bản chất hình thành của mình, phạm vi ứng dụng của các tài liệu XML không chỉ dừng ở việc trao đổi thông tin mà bao
148
hàm cả các vần đề biểu diển thông tin khác nhƣ : Lƣu trữ thông tin , cấu trúc dữ liệu , thể hiện thông tin , v.v.. ( chi tiết trong phần ứng dụng của XML)
2. Một số ứng dụng của công nghệ Xml
Trao đổi thông tin Lưu trữ thông tin Cấu trúc dữ liệu
XML có thể đƣợc sử dụng để
- Trao đổi thông tin giữa các tầng của một ứng dụng đuợc thiết kế theo mô hình kiến trúc đa tầng
- Trao đổi thông giữa một tấng với hệ thống khác bên ngoài
4.4.Tham gia nghiên cứu lý lụân một trong các lĩnh vực sau: 4.4.1. Kỹ thuật máy tính
4.4.2. Mạng máy tính và truyền thông 4.4.3. Bảo trì hệ thống mạng 4.4.3. Bảo trì hệ thống mạng
4.4.4. Triển khai hệ thống mạng công nghệ thông tin4.4.5. Bảo mật và an toàn cho một hệ thống mạng