Thảo luận Bài 3
+89
NguyenCongVinh(102C)
tranleanhngoc88(i11c)
LeMInhTien(I11C)
HuynhVanNhut (I11C)
NGUYENDINHNGHIA-I11C
NguyenThiThanhThuy(I11C)
ngocquynh2091(i11C)
NguyenTrongHuy(I11C)
LeThiThuyDuong (I11C)
PhamAnhKhoa(I11C)
lamhuubinh(I91C)
Nguyenminhduc (I11C)
Tranvancanh(I11C)
NgoDucTuan (I11C)
TranVuThuyVan_(I11C)
nguyenthingocloan (I11C)
nguyenquoctruong (I11C)
TranMinh (I11C)
TranThanhHoang(I91C)
LE DUY NHAT AN (I91C)
NguyenDoTu (I11C)
KimHue36 (I11C)
PhamHuyHoang (I11C)
truongsi93(I11C)
NguyenNgocMyTien(I11C)
TangHuynhThanhThanh I11C
TruongHanhPhuc (I11C)
TruongThiThuyPhi(I11C)
HoangNgocQuynh(I11C)
DuongTrungTinh(I11C)
NguyenVanNam(I11C)
BuiVanHoc(I11C)
chauchanduong (I11C)
NguyenVietThuan11
DoThuyTien16 (I11C)
NgoThiCamNhung47 (I11C)
HoiHoangHongVu I11C
dongocthien (I11C)
lengocthuthao89 (i11c)
DaoVanHoang (I11C)
caotanthanh(i11c)
08H1010052
nguyenthikieu(I11C)
ledinhngankhanh (i11c)
DuongKimLong(I111C)
nguyenduc_gia.18(I11c)
n.t.tuyet.trinh90 (I11C)
LeMinhDuc (I11C)
XuanThai_I11C
DangNgocMinh(I11C)
HuynhPhuong (I11C)
BuiHuuThanhLuan(I11C)
VOTHANHTRUNG(I11C)
tannamthanh(I11C)
hongthuanphong (I11C)
TrinhThiPhuongThaoI11C
TranVanDucHieu I11c
PhamDuyPhuong87(I11C)
LUUDINHTOAN(I11C)
tranphanhieu36_i11c
nguyenthanhphuong(I11C)
chauthanhvy146(I11C)
LeTanDat (I11C)
NguyThiGai (I11C)
TranTrungTinh(I11C)
hoangquocduy.i11c
DangMinhQuang(I11C)
PhanThiThanhNguyen_72I11C
phamdieptuan (I11C)
BuiHoangTuan.131.I11C
DoThiNgocNuong (I11C)
nguyenhoangthinh (I11C)
nguyenminhlai.(I11C)
phamngoctan095 (I11C)
ToThiThuyTrang (I11C)
tranvantoan83(I11c)
ThanhThao04(I11C)
NguyenTienPhong083 (I11C)
NguyenHuuHung(I11C)
TranHaDucHuy (I11c)
VoMinhHoang (I11C)
TranThiMyTien18(i11c)
DaoQuangSieu (I11C)
nguyenthithuylinh (I11C)
NgoLeYen48(I11C)
vohongcong(I111C)
VanTanVu(I11c)
tranvanhai_21(I11c)
Admin
93 posters
Trang 1 trong tổng số 8 trang
Trang 1 trong tổng số 8 trang • 1, 2, 3, 4, 5, 6, 7, 8
Sơ lược về cấu trúc hệ điều hành
Các thành phần hệ thống
Chúng ta có thể tạo ra một hệ thống lớn và phức tạp như hệ điều hành chỉ khi phân chia hệ điều hành thành những phần nhỏ hơn. Mỗi phần nên là một thành phần được mô tả rõ ràng của hệ thống, với xuất, nhập và các chức năng được định nghĩa cẩn thận. Tuy nhiên, nhiều hệ thống hiện đại chia sẻ mục tiêu hỗ trợ các thành phần hệ thống được liệt kê sau đây:
* Quản lý tiến trình
Một chương trình không làm gì trừ khi các chỉ thị của nó được thực thi bởi một CPU. Một quá trình có thể được xem như một chương đang thực thi, nhưng định nghĩa của nó sẽ mở rộng khi chúng ta khám phá chi tiết hơn. Một chương trình người dùng được chia thời chẳng hạn như một trình biên dịch là một quá trình. Một chương trình xử lý văn bản đang được thực thi bởi một người dùng trên một PC cũng là một quá trình. Một tác vụ hệ thống, như gởi dữ liệu xuất ra máy in cũng được xem là một quá trình. Bây giờ chúng ta có thể xem xét một quá trình là một công việc hay chương trình chia thời, nhưng chúng ta sẽ nghiên cứu khái niệm này tổng quát hơn trong các chương sau.Một quá trình cần các tài nguyên xác định-gồm thời gian CPU, bộ nhớ, tập tin, các thiết bị xuất/nhập-để hoàn thành tác vụ của nó. Các tài nguyên này được cấp cho quá trình khi nó được tạo ra, hay được cấp phát tới nó khi nó đang chạy. Ngoài ra, các tài nguyên vật lý và luận lý khác nhau mà quá trình nhận được khi nó được tạo, dữ liệu khởi tạo khác nhau (hay nhập) có thể được truyền qua. Thí dụ, xem xét một quá trình có chức năng hiển thị trạng thái của một tập tin trên màn hình của một thiết bị đầu cuối. Quá trình này sẽ được cho dữ liệu vào là tên của tập tin, và sẽ thực thi các chỉ thị thích hợp và các lời gọi hệ thống đạt được và xuất trên thiết bị cuối thông tin mong muốn. Khi quá trình này kết thúc, hệ điều hành sẽ đòi lại bất cứ tài nguyên nào có thể dùng lại.Chúng ta nhấn mạnh một chương trình chính nó không phải là một quá trình; một chương trình là một thực thể thụ động, như là nội dung của tập tin được lưu trên đĩa, trái lại một quá trình là một thực thể hoạt động, với một bộ đếm chương trình xác định chỉ thị kế tiếp để thực thi. Việc thực thi của quá trình phải là tuần tự. CPU thực thi một chỉ thị của quá trình sau khi đã thực thi một chỉ thực trước đó cho đến khi quá trình hoàn thành. Ngoài ra, tại bất kỳ thời điểm nào, tối đa một chỉ thị được thực thi cho quá trình. Do đó, mặc dù hai quá trình có thể được liên kết với cùng một quá trình, vì thế chúng được xem như hai chuỗi thực thi riêng. Thông thường có một chương trình sinh ra nhiều quá trình khi nó thực thi.Một quá trình là một đơn vị công việc trong hệ thống. Một hệ thống chứa tập các quá trình, một vài quá trình này là các quá trình hệ điều hành (thực thi mã hệ thống) và các quá trình còn lại là các quá trình người dùng (chúng thực thi mã người dùng). Tất cả các quá trình này có tiềm năng thực thi đồng hành bằng cách đa hợp CPU giữa các quá trình.
Hệ điều hành có nhiệm vụ cho các hoạt động sau khi đề cập đến chức năng quản lý quá trình:
- Tạo và xoá các quá trình người dùng và hệ thống
- Tạm dừng và thực thi tiếp quá trình
- Cung cấp các cơ chế đồng bộ hoá quá trình
- Cung cấp các cơ chế giao tiếp quá trình
- Cung cấp cơ chế quản lý deadlock
* Quản lý bộ nhớ chính
Bộ nhớ chính là trung tâm điều hành của một máy tính hiện đại. Bộ nhớ chính là một mảng các từ (words) hay bytes có kích thước lớn từ hàng trăm ngàn tới hàng tỉ. Mỗi từ hay byte có địa chỉ riêng. Bộ nhớ chính là một kho chứa dữ liệu có khả năng truy xuất nhanh được chia sẻ bởi CPU và các thiết bị xuất/nhập. Bộ xử lý trung tâm đọc các chỉ thị từ bộ nhớ trong chu kỳ lấy chỉ thị, nó đọc và viết dữ liệu từ bộ nhớ chính trong chu kỳ lấy dữ liệu. Bộ nhớ chính thường là thiết bị lưu trữ lớn mà CPU có thể định địa chỉ và truy xuất trực tiếp. Thí dụ, đối với CPU xử lý dữ liệu từ đĩa, dữ liệu trước tiên được chuyển tới bộ nhớ chính bởi lời gọi xuất/nhập được sinh ra bởi CPU. Tương tự, các chỉ thị phải ở trong bộ nhớ cho CPU thực thi chúng.Đối với một chương trình được thực thi, nó phải được ánh xạ các địa chỉ và được nạp vào bộ nhớ. Khi chương trình thực thi, nó truy xuất các chỉ thị chương trình và dữ liệu từ bộ nhớ bằng cách tạo ra các địa chỉ tuyệt đối này. Cuối cùng, chương trình kết thúc, không gian bộ nhớ của nó được khai báo sẳn, và chương trình có thể được nạp và thực thi.Để cải tiến việc sử dụng CPU và tốc độ đáp ứng của máy tính cho người dùng, chúng ta phải giữ nhiều chương trình vào bộ nhớ. Nhiều cơ chế quản lý bộ nhớ khác nhau được dùng và tính hiệu quả của các giải thuật phụ thuộc vào từng trường hợp cụ thể. Chọn một cơ chế quản lý bộ nhớ cho một hệ thống xác định phụ thuộc vào nhiều yếu tố-đặc biệt trên thiết kế phần cứng của hệ thống. Mỗi giải thuật đòi hỏi sự hỗ trợ phần cứng của nó.Hệ điều hành có nhiệm vụ cho các hoạt động sau khi đề cập tới việc quản lý bộ nhớGiữ vết về phần nào của bộ nhớ hiện đang được dùng và quá trình nào đang dùng. Quyết định quá trình nào được nạp vào bộ nhớ khi không gian bộ nhớ trở nên sẳn dùng. Cấp phát và thu hồi không gian bộ nhớ khi được yêu cầu.
* Quản lý tập tin
Quản lý tập tin là một trong những thành phần có thể nhìn thấy nhất của hệ điều hành. Máy tính có thể lưu thông tin trên nhiều loại phương tiện lưu trữ vật lý khác nhau. Băng từ, đĩa từ, đĩa quang là những phương tiện thông dụng nhất. Mỗi phương tiện này có đặc điểm và tổ chức riêng. Mỗi phương tiện được điều khiển bởi một thiết bị, như một ổ đĩa hay ổ băng từ. Các thuộc tính này bao gồm tốc độ truy xuất, dung lượng, tốc độ truyền dữ liệu và phương pháp truy xuất (tuần tự hay ngẫu nhiên).Nhờ vào việc sử dụng thuận lợi hệ thống máy tính, hệ điều hành cung cấp tầm nhìn luận lý của việc lưu trữ thông tin đồng nhất. Hệ điều hành trừu tượng hoá các thuộc tính vật lý của các thiết bị lưu trữ để định nghĩa một đơn vị lưu trữ luận lý là tập tin. Hệ điều hành ánh xạ các tập tin trên các thiết bị lưu trữ vật lý, và truy xuất các tập tin này bằng các thiết bị lưu trữ.Tập tin là tập hợp thông tin có quan hệ được định nghĩa bởi người tạo. Thông thường, các tập tin biểu diễn chương trình và dữ liệu. Các tập tin dữ liệu có thể là số, chữ cái, chữ số. Các tập tin có dạng bất kỳ (thí dụ, các tập tin văn bản) hay có thể được định dạng có cấu trúc (thí dụ, các trường cố định). Một tập tin chứa một chuỗi các bits, bytes, các dòng hay các mẫu tin mà ý nghĩa của nó được định nghĩa bởi người tạo. Khái niệm tập tin là một khái niệm cực kỳ thông dụng.Hệ điều hành cài đặt một khái niệm trừu tượng của tập tin bằng cách quản lý phương tiện lưu trữ như đĩa, băng từ và các thiết bị điều khiển chúng. Các tập tin cũng thường được tổ chức trong các thư mục để dễ dàng sử dụng chúng. Cuối cùng, khi nhiều người dùng truy xuất tập tin, chúng ta muốn kiểm soát ai và trong cách gì (thí dụ: đọc, viết, chèn,..) các tập tin có thể được truy xuất.Hệ điều hành có nhiệm vụ thực hiện các hoạt động trong việc quản lý hệ thống tập tin:Tạo và xoá tập tin Tạo và xoá thư mục Hỗ trợ các hàm nguyên thuỷ để thao tác tập tin và thư mục Ánh xạ các tập tin trên các thiết bị lưu trữ phụ Sao lưu dự phòng tập tin trên các phương tiện lưu trữ ổ định
* Quản lý hệ thống xuất/nhập
Một trong những mục đích của hệ điều hành là che giấu sự khác biệt của các thiết bị phần cứng từ người dùng. Thí dụ, trong UNIX sự khác biệt của các thiết bị xuất/nhập bị che giấu từ phần chính của hệ điều hành bởi các hệ thống con xuất/nhập. Hệ thống con xuất/nhập chứa:Thành phần quản lý bộ nhớ chứa vùng đệm (buffering), lưu trữ (caching) và spooling (vùng chứa). Giao diện trình điều khiển thiết bị chung. Trình điều khiển cho các thiết bị xác định.Chỉ trình điều khiển thiết bị biết sự khác biệt của các thiết bị xác định mà nó được gán
* Quản lý việc lưu trữ phụ
Mục đích chính của một hệ thống máy tính là thực thi các chương trình. Những chương trình này với dữ liệu chúng truy xuất phải nằm trong bộ nhớ chính hay lưu trữ chính trong quá trình thực thi. Vì bộ nhớ chính quá nhỏ để lưu tất cả dữ liệu và chương trình và vì dữ liệu quản lý bị mất khi mất điện, hệ thống máy tính phải cung cấp việc lưu trữ phụ để lưu dự phòng bộ nhớ chính. Hầu hết các hệ thống máy tính hiện đại dùng đĩa như phương tiện lưu trữ trực tuyến cho cả chương trình và dữ liệu. Hầu hết các chương trình – gồm trình biên dịch, trình dịch hợp ngữ, thủ tục sắp xếp, trình soạn thảo và trình định dạng – được lưu trên đĩa cho tới khi được nạp vào trong bộ nhớ và sau đó dùng đĩa khi cả hai nguồn và đích của việc xử lý. Do đó, quản lý hợp lý việc lưu trữ đĩa có vai trò quan trọng đối với một hệ thống máy tính.Hệ điều hành có nhiệm vụ thực hiện các hoạt động sau trong việc quản lý đĩa:Quản lý không gian trống Cấp phát lưu trữ Định thời đĩaVì lưu trữ phụ được dùng thường xuyên nên nó phải được dùng một cách hiệu quả. Tốc độ toàn bộ của các thao tác của máy tính có thể xoay quanh tốc độ hệ thống con đĩa và các giải thuật thao tác trên hệ thống con đó.
* Mạng
Hệ phân tán là tập hợp các bộ xử lý, chúng không chia sẻ bộ nhớ, các thiết bị ngoại vi hay đồng hồ. Thay vào đó mỗi bộ xử lý có bộ nhớ, đồng hồ và các bộ xử lý giao tiếp với nhau thông qua các đường giao tiếp như bus tốc độ cao hay mạng. Các bộ xử lý trong hệ thống phân tán khác nhau về kích thước và chức năng. Chúng có thể chứa các bộ vi xử lý, trạm làm việc, máy vi tính và các hệ thống máy tính thông thường.Các bộ xử lý trong hệ thống được nối với nhau thông qua mạng truyền thông có thể được cấu hình trong nhiều cách khác nhau. Mạng có thể được nối kết một phần hay toàn bộ. Thiết kế mạng truyền thông phải xem xét vạch đường thông điệp và các chiến lược nối kết, và các vấn đề cạnh tranh hay bảo mật.Hệ thống phân tán tập hợp những hệ thống vật lý riêng rẻ, có thể có kiến trúc không đồng nhất thành một hệ thống chặt chẻ, cung cấp người dùng với truy xuất tới các tài nguyên khác nhau mà hệ thống duy trì. Truy xuất tới các tài nguyên chia sẻ cho phép tăng tốc độ tính toán, chức năng, khả năng sẳn dùng của dữ liệu, khả năng tin cậy. Hệ điều hành thường tổng quát hoá việc truy xuất mạng như một dạng truy xuất tập tin, với những chi tiết mạng được chứa trong trình điều khiển thiết bị của giao diện mạng. Các giao thức tạo một hệ thống phân tán có thể có một ảnh hưởng to lớn trên tiện ích và tính phổ biến của hệ thống đó. Sự đổi mới của World Wide Web đã tạo ra một phương pháp truy xuất mới cho thông tin chia sẻ. Nó đã cải tiến giao thức truyền tập tin (File Transfer Protocol-FTP) và hệ thống tập tin mạng (Network File System-NFS) đã có bằng cách xoá yêu cầu cho một người dùng đăng nhập trước khi người dùng đó được phép dùng tài nguyên ở xa. Định nghĩa một giao thức mới, giao thức truyền siêu văn bản (hypertext transfer protocol-http), dùng trong giao tiếp giữa một trình phục vụ web và trình duyệt web. Trình duyệt web chỉ cần gởi yêu cầu thông tin tới một trình phục vụ web của máy ở xa, thông tin (văn bản, đồ hoạ, liên kết tới những thông tin khác) được trả về.
* Hệ thống bảo vệ
Nếu một hệ thống máy tính có nhiều người dùng và cho phép thực thi đồng hành của nhiều quá trình, thì các quá trình khác nhau phải được bảo vệ từ các hoạt động của quá trình khác. Cho mục đích này, các cơ chế đảm bảo rằng các tập tin, phân đoạn bộ nhớ, CPU, và các tài nguyên khác có thể được điều hành chỉ bởi các quá trình có quyền phù hợp từ hệ điều hành.Thí dụ, phần cứng định địa chỉ bộ nhớ đảm bảo rằng một quá trình có thể thực thi chỉ trong không gian địa chỉ của chính nó. Bộ định thời đảm bảo rằng không có quá trình nào có thể đạt được điều khiển của CPU mà cuối cùng không trả lại điều khiển. Các thanh ghi điều khiển thiết bị không thể truy xuất tới người dùng vì thế tính đúng đắn của các thiết bị ngoại vi khác nhau được bảo vệ.Bảo vệ là một cơ chế để điều khiển truy xuất của các chương trình, quá trình hay người dùng tới tài nguyên được định nghĩa bởi một hệ thống máy tính. Cơ chế này phải cung cấp phương tiện để đặc tả các điều khiển được áp đặt và phương tiện cho việc ép buộc.Bảo vệ có thể cải tiến khả năng tin cậy bằng cách phát hiện các lỗi tiềm tàng tại các giao diện giữa các hệ thống con thành phần. Phát hiện các lỗi giao diện sớm thường có thể ngăn chặn nguy cơ ảnh hưởng tới hệ thống con bởi một hệ thống con khác. Tài nguyên không được bảo vệ không thể ngăn chặn việc sử dụng bởi người dùng không có quyền. Hệ thống hướng bảo vệ (protection-oriented system) cung cấp một phương tiện để phân biệt giữa việc dùng có quyền và không có quyền.
* Hệ thống thông dịch lệnh
Một trong những chương trình hệ thống quan trọng nhất đối với hệ điều hành là trình thông dịch lệnh. Nó là giao diện giữa người dùng và hệ điều hành. Một vài hệ điều hành chứa trình thông dịch lệnh trong nhân (kernel). Các hệ điều hành khác nhau như MS-DOS và UNIX xem trình thông dịch lệnh như một chương trình đặc biệt đang chạy khi một công việc được khởi tạo hay khi người dùng đăng nhập lần đầu tiên (trên các hệ thống chia thời).Nhiều lệnh (commands) được cung cấp tới hệ điều hành bởi các lệnh điều khiển (control statements). Khi một công việc mới được bắt đầu trong hệ thống bó, hay khi một người dùng đăng nhập tới hệ thống chia thời, một chương trình đọc và thông dịch các câu lệnh điều khiển được thực thi tự động. Chương trình này còn được gọi trình thông dịch thẻ điều khiển (control-card interpreter) hay trình thông dịch dòng lệnh và thường được biết như shell. Chức năng của nó đơn giản là: lấy câu lệnh tiếp theo và thực thi nó.Các hệ điều hành thường khác nhau trong vùng shell, với một trình thông dịch lệnh thân thiện với người dùng làm cho hệ thống có thể chấp nhập nhiều hơn đối với người dùng. Một dạng giao diện thân thiện người dùng là hệ thống trình đơn-cửa sổ trên cơ sở chuột (mouse-based window-and-menu system) được dùng trong Macintosh và Microsoft Windows. Chuột được di chuyển tới vị trí con trỏ chuột trên ảnh hay biểu tượng trên màn hình biểu diễn các chương trình, tập tin, và các hàm hệ thống. Phụ thuộc vào vị trí con trỏ chuột, nhấn một nút trên chuột có thể nạp một chương trình, chọn một tập tin hay thư mục hay kéo xuống một trình đơn chứa các câu lệnh. Các shell mạnh hơn, phức tạp hơn và khó học hơn được đánh giá cao bởi một số người dùng khác. Trong những shell này, các lệnh được đánh vào từ bàn phím được hiển thị trên màn hình hay in ra thiết bị đầu cuối, với phím enter (hay return) chỉ rằng một lệnh hoàn thành và sẳn sàng được thực thi. Shell của MS-DOS và UNIX điều hành theo cách này.Các câu lệnh giải quyết việc tạo và quản lý quá trình, quản lý xuất/nhập, quản lý việc lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin, bảo vệ và mạng.
* Các dịch vụ hệ điều hành
Hệ điều hành cung cấp một môi trường cho việc thực thi các chương trình. Nó cung cấp các dịch vụ xác định tới chương trình và tới người dùng của các chương trình đó. Dĩ nhiên, các dịch vụ được cung cấp khác nhau từ hệ điều hành này với hệ điều hành kia nhưng chúng có thể xác định các lớp chung. Các dịch vụ hệ điều hành được cung cấp sự tiện dụng cho người lập trình để thực hiện tác vụ lập trình dễ dàng.Thực thi chương trình: hệ thống phải có thể nạp chương trình vào bộ nhớ và chạy chương trình đó. Chương trình phải có thể kết thúc việc thực thi của nó bình thường hay không bình thường (hiển thị lỗi). Thao tác xuất/nhập: một chương trình đang chạy có thể yêu cầu xuất/nhập. Xuất/nhập này có thể liên quan tới tập tin hay thiết bị xuất/nhập. Đối với các thiết bị cụ thể, các chức năng đặc biệt có thể được mong muốn (như quay lại từ đầu một ổ băng từ, hay xoá màn hình). Đối với tính hiệu quả và tính bảo vệ, người dùng thường không thể điều khiển các thiết bị xuất/nhập trực tiếp. Do đó, hệ điều hành phải cung cấp một phương tiện để thực hiện xuất/nhập.. Thao tác hệ thống tập tin: hệ thống tập tin có sự quan tâm đặc biệt. Các chương trình cần đọc từ và viết tới các tập tin. Chương trình cũng cần tạo và xoá tập tin bằng tên. Giao tiếp: trong nhiều trường hợp, một quá trình cần trao đổi thông tin với các quá trình khác. Giao tiếp như thế có thể xảy ra trong hai cách chính. Cách đầu tiên xảy ra giữa các quá trình được thực thi trên cùng máy tính; cách thứ hai xảy ra giữa hai quá trình đang được thực thi trên các máy tính khác nhau được kết nối với nhau bởi một mạng máy tính. Các giao tiếp có thể được thực hiện bằng bộ nhớ được chia sẻ, hay bằng kỹ thuật truyền thông điệp, trong đó các gói tin được di chuyển giữa các quá trình bởi hệ điều hành. Phát hiện lỗi: hệ điều hành liên tục yêu cầu nhận biết các lỗi có thể phát sinh. Các lỗi có thể xảy ra trong CPU và phần cứng bộ nhớ (như lỗi bộ nhớ hay lỗi về điện), trong các thiết bị xuất/nhập (như lỗi chẳn lẻ trên băng từ, lỗi nối kết mạng, hết giấy in) và trong chương trình người dùng (như tràn số học, cố gắng truy xuất một vị trí bộ nhớ không hợp lệ, dùng quá nhiều thời gian CPU). Đối với mỗi loại lỗi, hệ điều hành nên thực hiện một hoạt động hợp lý để đảm bảo tính toán đúng và không đổi.Ngoài ra, một tập chức năng khác của hệ điều hành tồn tại không giúp người dùng, nhưng đảm bảo các điều hành hữu hiệu của chính hệ thống. Các hệ thống với nhiều người dùng có thể đạt tính hữu hiệu bằng cách chia sẻ tài nguyên máy tính giữa các người dùng.Cấp phát tài nguyên: khi nhiều người dùng đăng nhập vào hệ thống hay nhiều công việc đang chạy cùng lúc, tài nguyên phải được cấp tới mỗi người dùng. Nhiều loại tài nguyên khác nhau được quản lý bởi hệ điều hành. Một số tài nguyên (như chu kỳ CPU, bộ nhớ chính, lưu trữ tập tin) có mã cấp phát đặt biệt, trái lại các tài nguyên khác (như thiết bị xuất/nhập) có mã yêu cầu và giải phóng thường hơn. Thí dụ, xác định cách tốt nhất để dùng CPU, hệ điều hành có các thủ tục định thời biểu CPU. Các thủ tục này xem xét tốc độ CPU, các công việc phải được thực thi, số thanh ghi sẳn dùng và các yếu tố khác. Cũng có các thủ tục cấp phát ổ băng từ để dùng cho một công việc. Một thủ tục như thế định vị ổ băng từ chưa được dùng và đánh dấu một bảng bên trong để ghi người dùng mới của ổ băng từ. Một thủ tục khác được dùng để xoá bảng đó. Các thủ tục này cũng có thể cấp phát các máy vẽ, modem, các thiết bị ngoại vi khác. Tính toán: chúng ta muốn giữ vết người dùng nào sử dụng bao nhiêu và loại tài nguyên máy tính nào. Giữ vết này có thể được dùng để tính toán (tính tiền người dùng) hay đơn giản thống kê sử dụng. Thống kê sử dụng có thể là công cụ có giá trị cho người nghiên cứu muốn cấu hình lại hệ thống để cải tiến các dịch vụ tính toán. Bảo vệ: người sở hữu thông tin được lưu trong hệ thống máy tính đa người dùng muốn điều khiển thông tin này. Khi nhiều quá trình riêng rẻ thực thi đồng hành, không thể cho một quá trình can thiệp tới các quá trình khác hay tới chính hệ điều hành. Bảo vệ đảm bảo rằng tất cả truy xuất tài nguyên của hệ thống được kiểm soát. An toàn hệ thống từ người dùng bên ngoài cũng là vấn đề quan trọng. An toàn bắt đầu với mỗi người dùng có quyền đối với hệ thống, thường bằng mật khẩu để được phép truy xuất tài nguyên. Mở rộng việc bảo vệ đối với các thiết bị xuất/nhập bên ngoài, bao gồm modem, card mạng từ những truy xuất không hợp lệ, và ghi lại các nối kết để phát hiện đột nhập vào hệ thống. Nếu hệ thống bảo vệ và bảo mật, những cảnh báo phải được thiết lập xuyên suốt.
* Các chương trình hệ thống
Một khía cạnh khác của hệ thống hiện đại là tập hợp các chương trình hệ thống. Xem lại hình I.1, nó minh họa cấu trúc phân cấp máy tính luận lý. Tại cấp thấp nhất là phần cứng. Kế đến là hệ điều hành, sau đó các chương trình hệ thống và cuối cùng là các chương trình ứng dụng. Các chương trình hệ thống cung cấp môi trường thuận lợi cho việc phát triển và thực thi chương trình. Vài trong chúng là các giao diện người dùng đơn giản cho các lời gọi hệ thống; các hệ thống còn lại được xem xét phức tạp hơn. Chúng có thể được chia thành các loại sau:Quản lý tập tin: các chương trình tạo, xóa, chép, đổi tên, in, kết xuất, liệt kê, và các thao tác tập tin thư mục thông thường. Thông tin trạng thái: một vài chương trình đơn giản yêu cầu hệ thống ngày, giờ, lượng bộ nhớ hay đĩa sẳn dùng, số lượng người dùng, hay thông tin trạng thái tương tự. Sau đó, thông tin được định dạng và được in tới thiết bị đầu cuối hay thiết bị xuất khác hoặc tập tin. Thay đổi tập tin: nhiều trình soạn thảo văn bản có thể sẳn dùng để tạo và thay đổi nội dung của tập tin được lưu trên đĩa hay băng từ. Hỗ trợ ngôn ngữ lập trình: trình biên dịch, trình hợp ngữ và trình thông dịch cho các ngôn ngữ lập trình thông dụng (như C, C++, Java, Visual Basic và PERL) thường được cung cấp tới người dùng với hệ điều hành. Hiện nay, một vài chương trình này được cung cấp riêng và có giá cả riêng. Nạp và thực thi chương trình: một khi chương trình được tập hợp hay được biên dịch, nó phải được nạp vào bộ nhớ để được thực thi. Hệ thống có thể cung cấp bộ nạp tuyệt đối, bộ nạp có thể tái định vị, bộ soạn thảo liên kết và bộ nạp phủ lắp. Các hệ thống gỡ rối cho các ngôn ngữ cấp cao hay ngôn ngữ máy cũng được yêu cầu. Giao tiếp: các chương trình này cung cấp cơ chế tạo các nối kết ảo giữa các quá trình, người dùng, các hệ thống máy tính khác. Chúng cho phép người dùng gởi các thông điệp tới màn hình của người dùng khác, hiển thị các trang web, gởi thư điện tử, đăng nhập từ xa hay để chuyển các tập tin từ máy tính này tới máy tính khác.Nhiều hệ điều hành được cung cấp với các chương trình giải quyết các vấn đề giao tiếp thông thường hay thực hiện các thao tác phổ biến. Những chương trình như thế gồm các trình duyệt Web, bộ xử lý văn bản và bộ định dạng văn bản, hệ cơ sở dữ liệu, trình biên dịch, các gói phần mềm đồ họa và phân tích thống kê, trò chơi,..Những chương trình này được gọi là các tiện ích hệ thống hay chương trình ứng dụng.Hầu hết người dùng nhìn hệ điều hành như các chương trình hệ thống hơn các lời gọi hệ thống thực sự. Nghĩ về việc sử dụng một PC. Khi máy tính của chúng ta chạy hệ điều hành Microsoft Windows, chúng ta có thể thấy một trình thông dịch dòng lệnh MS-DOS hay giao diện cửa sổ và trình đơn đồ họa. Cả hai sử dụng cùng một tập lời gọi hệ thống như lời gọi hệ thống trông rất khác và hoạt động trong các cách khác nhau. Do đó, tầm nhìn của chúng ta về thực chất có thể bị tách rời với cấu trúc hệ thống thực sự. Vì thế, thiết kế một giao diện tiện dụng và thân thiện không là một chức năng trực tiếp của hệ điều hành. Trong giáo trình này chúng ta sẽ tập trung các vấn đề cơ bản của việc cung cấp dịch vụ đầy đủ cho các chương trình người dùng. Từ quan điểm hệ điều hành, chúng ta không phân biệt sự khác nhau giữa các chương trình người dùng và các chương trình hệ thống.
* Tóm tắt
Hệ điều hành cung cấp một số dịch vụ. Tại cấp thấp nhất, lời gọi hệ thống cho phép một chương trình đang chạy thực hiện yêu cầu trực tiếp từ hệ thống. Tại cấp cao hơn, trình thông dịch cung cấp cơ chế cho người dùng đưa ra yêu cầu mà không viết chương trình. Các lệnh có thể xuất phát từ tập tin trong suốt thời gian thực thi theo chế độ xử lý theo lô, hay trực tiếp từ bàn phím trong chế độ tương tác hay chia sẻ thời gian. Các chương trình hệ thống được cung cấp để thoả mãn nhiều yêu cầu thông thường của người dùng.Các loại yêu cầu khác nhau dựa theo cấp yêu cầu. Cấp gọi hệ thống phải cung cấp các chức năng cơ bản, như điều khiển quá trình, quản lý tập tin và thiết bị. Các yêu cầu cấp cao hơn được thoả mãn bởi trình thông dịch lệnh và chương trình hệ thống được dịch vào một chuỗi các lời gọi hệ thống. Các dịch vụ hệ thống có thể được phân cấp thành nhiều loại: điều khiển chương trình, yêu cầu trạng thái, yêu cầu nhập/xuất. Lỗi chương trình được xem xét các yêu cầu ẩn cho dịch vụ.Một khi dịch vụ hệ thống được định nghĩa, cấu trúc của hệ điều hành được phát triển. Các bảng khác nhau cần được ghi thông tin định nghĩa trạng thái của hệ thống máy tính và trạng thái của công việc hệ thống.Thiết kế một hệ điều hành mới là công việc rất quan trọng. Thiết kế hệ thống như thứ tự của các tầng hay sử dụng vi nhân được xem là một kỹ thuật tốt. Khái niệm máy ảo thực hiện tiếp cận phân tầng và xem nhân của hệ điều hành và phần cứng như là phần cứng của nó. Các hệ điều hành khác có thể được nạp trên đỉnh của máy ảo.
Chúng ta có thể tạo ra một hệ thống lớn và phức tạp như hệ điều hành chỉ khi phân chia hệ điều hành thành những phần nhỏ hơn. Mỗi phần nên là một thành phần được mô tả rõ ràng của hệ thống, với xuất, nhập và các chức năng được định nghĩa cẩn thận. Tuy nhiên, nhiều hệ thống hiện đại chia sẻ mục tiêu hỗ trợ các thành phần hệ thống được liệt kê sau đây:
* Quản lý tiến trình
Một chương trình không làm gì trừ khi các chỉ thị của nó được thực thi bởi một CPU. Một quá trình có thể được xem như một chương đang thực thi, nhưng định nghĩa của nó sẽ mở rộng khi chúng ta khám phá chi tiết hơn. Một chương trình người dùng được chia thời chẳng hạn như một trình biên dịch là một quá trình. Một chương trình xử lý văn bản đang được thực thi bởi một người dùng trên một PC cũng là một quá trình. Một tác vụ hệ thống, như gởi dữ liệu xuất ra máy in cũng được xem là một quá trình. Bây giờ chúng ta có thể xem xét một quá trình là một công việc hay chương trình chia thời, nhưng chúng ta sẽ nghiên cứu khái niệm này tổng quát hơn trong các chương sau.Một quá trình cần các tài nguyên xác định-gồm thời gian CPU, bộ nhớ, tập tin, các thiết bị xuất/nhập-để hoàn thành tác vụ của nó. Các tài nguyên này được cấp cho quá trình khi nó được tạo ra, hay được cấp phát tới nó khi nó đang chạy. Ngoài ra, các tài nguyên vật lý và luận lý khác nhau mà quá trình nhận được khi nó được tạo, dữ liệu khởi tạo khác nhau (hay nhập) có thể được truyền qua. Thí dụ, xem xét một quá trình có chức năng hiển thị trạng thái của một tập tin trên màn hình của một thiết bị đầu cuối. Quá trình này sẽ được cho dữ liệu vào là tên của tập tin, và sẽ thực thi các chỉ thị thích hợp và các lời gọi hệ thống đạt được và xuất trên thiết bị cuối thông tin mong muốn. Khi quá trình này kết thúc, hệ điều hành sẽ đòi lại bất cứ tài nguyên nào có thể dùng lại.Chúng ta nhấn mạnh một chương trình chính nó không phải là một quá trình; một chương trình là một thực thể thụ động, như là nội dung của tập tin được lưu trên đĩa, trái lại một quá trình là một thực thể hoạt động, với một bộ đếm chương trình xác định chỉ thị kế tiếp để thực thi. Việc thực thi của quá trình phải là tuần tự. CPU thực thi một chỉ thị của quá trình sau khi đã thực thi một chỉ thực trước đó cho đến khi quá trình hoàn thành. Ngoài ra, tại bất kỳ thời điểm nào, tối đa một chỉ thị được thực thi cho quá trình. Do đó, mặc dù hai quá trình có thể được liên kết với cùng một quá trình, vì thế chúng được xem như hai chuỗi thực thi riêng. Thông thường có một chương trình sinh ra nhiều quá trình khi nó thực thi.Một quá trình là một đơn vị công việc trong hệ thống. Một hệ thống chứa tập các quá trình, một vài quá trình này là các quá trình hệ điều hành (thực thi mã hệ thống) và các quá trình còn lại là các quá trình người dùng (chúng thực thi mã người dùng). Tất cả các quá trình này có tiềm năng thực thi đồng hành bằng cách đa hợp CPU giữa các quá trình.
Hệ điều hành có nhiệm vụ cho các hoạt động sau khi đề cập đến chức năng quản lý quá trình:
- Tạo và xoá các quá trình người dùng và hệ thống
- Tạm dừng và thực thi tiếp quá trình
- Cung cấp các cơ chế đồng bộ hoá quá trình
- Cung cấp các cơ chế giao tiếp quá trình
- Cung cấp cơ chế quản lý deadlock
* Quản lý bộ nhớ chính
Bộ nhớ chính là trung tâm điều hành của một máy tính hiện đại. Bộ nhớ chính là một mảng các từ (words) hay bytes có kích thước lớn từ hàng trăm ngàn tới hàng tỉ. Mỗi từ hay byte có địa chỉ riêng. Bộ nhớ chính là một kho chứa dữ liệu có khả năng truy xuất nhanh được chia sẻ bởi CPU và các thiết bị xuất/nhập. Bộ xử lý trung tâm đọc các chỉ thị từ bộ nhớ trong chu kỳ lấy chỉ thị, nó đọc và viết dữ liệu từ bộ nhớ chính trong chu kỳ lấy dữ liệu. Bộ nhớ chính thường là thiết bị lưu trữ lớn mà CPU có thể định địa chỉ và truy xuất trực tiếp. Thí dụ, đối với CPU xử lý dữ liệu từ đĩa, dữ liệu trước tiên được chuyển tới bộ nhớ chính bởi lời gọi xuất/nhập được sinh ra bởi CPU. Tương tự, các chỉ thị phải ở trong bộ nhớ cho CPU thực thi chúng.Đối với một chương trình được thực thi, nó phải được ánh xạ các địa chỉ và được nạp vào bộ nhớ. Khi chương trình thực thi, nó truy xuất các chỉ thị chương trình và dữ liệu từ bộ nhớ bằng cách tạo ra các địa chỉ tuyệt đối này. Cuối cùng, chương trình kết thúc, không gian bộ nhớ của nó được khai báo sẳn, và chương trình có thể được nạp và thực thi.Để cải tiến việc sử dụng CPU và tốc độ đáp ứng của máy tính cho người dùng, chúng ta phải giữ nhiều chương trình vào bộ nhớ. Nhiều cơ chế quản lý bộ nhớ khác nhau được dùng và tính hiệu quả của các giải thuật phụ thuộc vào từng trường hợp cụ thể. Chọn một cơ chế quản lý bộ nhớ cho một hệ thống xác định phụ thuộc vào nhiều yếu tố-đặc biệt trên thiết kế phần cứng của hệ thống. Mỗi giải thuật đòi hỏi sự hỗ trợ phần cứng của nó.Hệ điều hành có nhiệm vụ cho các hoạt động sau khi đề cập tới việc quản lý bộ nhớGiữ vết về phần nào của bộ nhớ hiện đang được dùng và quá trình nào đang dùng. Quyết định quá trình nào được nạp vào bộ nhớ khi không gian bộ nhớ trở nên sẳn dùng. Cấp phát và thu hồi không gian bộ nhớ khi được yêu cầu.
* Quản lý tập tin
Quản lý tập tin là một trong những thành phần có thể nhìn thấy nhất của hệ điều hành. Máy tính có thể lưu thông tin trên nhiều loại phương tiện lưu trữ vật lý khác nhau. Băng từ, đĩa từ, đĩa quang là những phương tiện thông dụng nhất. Mỗi phương tiện này có đặc điểm và tổ chức riêng. Mỗi phương tiện được điều khiển bởi một thiết bị, như một ổ đĩa hay ổ băng từ. Các thuộc tính này bao gồm tốc độ truy xuất, dung lượng, tốc độ truyền dữ liệu và phương pháp truy xuất (tuần tự hay ngẫu nhiên).Nhờ vào việc sử dụng thuận lợi hệ thống máy tính, hệ điều hành cung cấp tầm nhìn luận lý của việc lưu trữ thông tin đồng nhất. Hệ điều hành trừu tượng hoá các thuộc tính vật lý của các thiết bị lưu trữ để định nghĩa một đơn vị lưu trữ luận lý là tập tin. Hệ điều hành ánh xạ các tập tin trên các thiết bị lưu trữ vật lý, và truy xuất các tập tin này bằng các thiết bị lưu trữ.Tập tin là tập hợp thông tin có quan hệ được định nghĩa bởi người tạo. Thông thường, các tập tin biểu diễn chương trình và dữ liệu. Các tập tin dữ liệu có thể là số, chữ cái, chữ số. Các tập tin có dạng bất kỳ (thí dụ, các tập tin văn bản) hay có thể được định dạng có cấu trúc (thí dụ, các trường cố định). Một tập tin chứa một chuỗi các bits, bytes, các dòng hay các mẫu tin mà ý nghĩa của nó được định nghĩa bởi người tạo. Khái niệm tập tin là một khái niệm cực kỳ thông dụng.Hệ điều hành cài đặt một khái niệm trừu tượng của tập tin bằng cách quản lý phương tiện lưu trữ như đĩa, băng từ và các thiết bị điều khiển chúng. Các tập tin cũng thường được tổ chức trong các thư mục để dễ dàng sử dụng chúng. Cuối cùng, khi nhiều người dùng truy xuất tập tin, chúng ta muốn kiểm soát ai và trong cách gì (thí dụ: đọc, viết, chèn,..) các tập tin có thể được truy xuất.Hệ điều hành có nhiệm vụ thực hiện các hoạt động trong việc quản lý hệ thống tập tin:Tạo và xoá tập tin Tạo và xoá thư mục Hỗ trợ các hàm nguyên thuỷ để thao tác tập tin và thư mục Ánh xạ các tập tin trên các thiết bị lưu trữ phụ Sao lưu dự phòng tập tin trên các phương tiện lưu trữ ổ định
* Quản lý hệ thống xuất/nhập
Một trong những mục đích của hệ điều hành là che giấu sự khác biệt của các thiết bị phần cứng từ người dùng. Thí dụ, trong UNIX sự khác biệt của các thiết bị xuất/nhập bị che giấu từ phần chính của hệ điều hành bởi các hệ thống con xuất/nhập. Hệ thống con xuất/nhập chứa:Thành phần quản lý bộ nhớ chứa vùng đệm (buffering), lưu trữ (caching) và spooling (vùng chứa). Giao diện trình điều khiển thiết bị chung. Trình điều khiển cho các thiết bị xác định.Chỉ trình điều khiển thiết bị biết sự khác biệt của các thiết bị xác định mà nó được gán
* Quản lý việc lưu trữ phụ
Mục đích chính của một hệ thống máy tính là thực thi các chương trình. Những chương trình này với dữ liệu chúng truy xuất phải nằm trong bộ nhớ chính hay lưu trữ chính trong quá trình thực thi. Vì bộ nhớ chính quá nhỏ để lưu tất cả dữ liệu và chương trình và vì dữ liệu quản lý bị mất khi mất điện, hệ thống máy tính phải cung cấp việc lưu trữ phụ để lưu dự phòng bộ nhớ chính. Hầu hết các hệ thống máy tính hiện đại dùng đĩa như phương tiện lưu trữ trực tuyến cho cả chương trình và dữ liệu. Hầu hết các chương trình – gồm trình biên dịch, trình dịch hợp ngữ, thủ tục sắp xếp, trình soạn thảo và trình định dạng – được lưu trên đĩa cho tới khi được nạp vào trong bộ nhớ và sau đó dùng đĩa khi cả hai nguồn và đích của việc xử lý. Do đó, quản lý hợp lý việc lưu trữ đĩa có vai trò quan trọng đối với một hệ thống máy tính.Hệ điều hành có nhiệm vụ thực hiện các hoạt động sau trong việc quản lý đĩa:Quản lý không gian trống Cấp phát lưu trữ Định thời đĩaVì lưu trữ phụ được dùng thường xuyên nên nó phải được dùng một cách hiệu quả. Tốc độ toàn bộ của các thao tác của máy tính có thể xoay quanh tốc độ hệ thống con đĩa và các giải thuật thao tác trên hệ thống con đó.
* Mạng
Hệ phân tán là tập hợp các bộ xử lý, chúng không chia sẻ bộ nhớ, các thiết bị ngoại vi hay đồng hồ. Thay vào đó mỗi bộ xử lý có bộ nhớ, đồng hồ và các bộ xử lý giao tiếp với nhau thông qua các đường giao tiếp như bus tốc độ cao hay mạng. Các bộ xử lý trong hệ thống phân tán khác nhau về kích thước và chức năng. Chúng có thể chứa các bộ vi xử lý, trạm làm việc, máy vi tính và các hệ thống máy tính thông thường.Các bộ xử lý trong hệ thống được nối với nhau thông qua mạng truyền thông có thể được cấu hình trong nhiều cách khác nhau. Mạng có thể được nối kết một phần hay toàn bộ. Thiết kế mạng truyền thông phải xem xét vạch đường thông điệp và các chiến lược nối kết, và các vấn đề cạnh tranh hay bảo mật.Hệ thống phân tán tập hợp những hệ thống vật lý riêng rẻ, có thể có kiến trúc không đồng nhất thành một hệ thống chặt chẻ, cung cấp người dùng với truy xuất tới các tài nguyên khác nhau mà hệ thống duy trì. Truy xuất tới các tài nguyên chia sẻ cho phép tăng tốc độ tính toán, chức năng, khả năng sẳn dùng của dữ liệu, khả năng tin cậy. Hệ điều hành thường tổng quát hoá việc truy xuất mạng như một dạng truy xuất tập tin, với những chi tiết mạng được chứa trong trình điều khiển thiết bị của giao diện mạng. Các giao thức tạo một hệ thống phân tán có thể có một ảnh hưởng to lớn trên tiện ích và tính phổ biến của hệ thống đó. Sự đổi mới của World Wide Web đã tạo ra một phương pháp truy xuất mới cho thông tin chia sẻ. Nó đã cải tiến giao thức truyền tập tin (File Transfer Protocol-FTP) và hệ thống tập tin mạng (Network File System-NFS) đã có bằng cách xoá yêu cầu cho một người dùng đăng nhập trước khi người dùng đó được phép dùng tài nguyên ở xa. Định nghĩa một giao thức mới, giao thức truyền siêu văn bản (hypertext transfer protocol-http), dùng trong giao tiếp giữa một trình phục vụ web và trình duyệt web. Trình duyệt web chỉ cần gởi yêu cầu thông tin tới một trình phục vụ web của máy ở xa, thông tin (văn bản, đồ hoạ, liên kết tới những thông tin khác) được trả về.
* Hệ thống bảo vệ
Nếu một hệ thống máy tính có nhiều người dùng và cho phép thực thi đồng hành của nhiều quá trình, thì các quá trình khác nhau phải được bảo vệ từ các hoạt động của quá trình khác. Cho mục đích này, các cơ chế đảm bảo rằng các tập tin, phân đoạn bộ nhớ, CPU, và các tài nguyên khác có thể được điều hành chỉ bởi các quá trình có quyền phù hợp từ hệ điều hành.Thí dụ, phần cứng định địa chỉ bộ nhớ đảm bảo rằng một quá trình có thể thực thi chỉ trong không gian địa chỉ của chính nó. Bộ định thời đảm bảo rằng không có quá trình nào có thể đạt được điều khiển của CPU mà cuối cùng không trả lại điều khiển. Các thanh ghi điều khiển thiết bị không thể truy xuất tới người dùng vì thế tính đúng đắn của các thiết bị ngoại vi khác nhau được bảo vệ.Bảo vệ là một cơ chế để điều khiển truy xuất của các chương trình, quá trình hay người dùng tới tài nguyên được định nghĩa bởi một hệ thống máy tính. Cơ chế này phải cung cấp phương tiện để đặc tả các điều khiển được áp đặt và phương tiện cho việc ép buộc.Bảo vệ có thể cải tiến khả năng tin cậy bằng cách phát hiện các lỗi tiềm tàng tại các giao diện giữa các hệ thống con thành phần. Phát hiện các lỗi giao diện sớm thường có thể ngăn chặn nguy cơ ảnh hưởng tới hệ thống con bởi một hệ thống con khác. Tài nguyên không được bảo vệ không thể ngăn chặn việc sử dụng bởi người dùng không có quyền. Hệ thống hướng bảo vệ (protection-oriented system) cung cấp một phương tiện để phân biệt giữa việc dùng có quyền và không có quyền.
* Hệ thống thông dịch lệnh
Một trong những chương trình hệ thống quan trọng nhất đối với hệ điều hành là trình thông dịch lệnh. Nó là giao diện giữa người dùng và hệ điều hành. Một vài hệ điều hành chứa trình thông dịch lệnh trong nhân (kernel). Các hệ điều hành khác nhau như MS-DOS và UNIX xem trình thông dịch lệnh như một chương trình đặc biệt đang chạy khi một công việc được khởi tạo hay khi người dùng đăng nhập lần đầu tiên (trên các hệ thống chia thời).Nhiều lệnh (commands) được cung cấp tới hệ điều hành bởi các lệnh điều khiển (control statements). Khi một công việc mới được bắt đầu trong hệ thống bó, hay khi một người dùng đăng nhập tới hệ thống chia thời, một chương trình đọc và thông dịch các câu lệnh điều khiển được thực thi tự động. Chương trình này còn được gọi trình thông dịch thẻ điều khiển (control-card interpreter) hay trình thông dịch dòng lệnh và thường được biết như shell. Chức năng của nó đơn giản là: lấy câu lệnh tiếp theo và thực thi nó.Các hệ điều hành thường khác nhau trong vùng shell, với một trình thông dịch lệnh thân thiện với người dùng làm cho hệ thống có thể chấp nhập nhiều hơn đối với người dùng. Một dạng giao diện thân thiện người dùng là hệ thống trình đơn-cửa sổ trên cơ sở chuột (mouse-based window-and-menu system) được dùng trong Macintosh và Microsoft Windows. Chuột được di chuyển tới vị trí con trỏ chuột trên ảnh hay biểu tượng trên màn hình biểu diễn các chương trình, tập tin, và các hàm hệ thống. Phụ thuộc vào vị trí con trỏ chuột, nhấn một nút trên chuột có thể nạp một chương trình, chọn một tập tin hay thư mục hay kéo xuống một trình đơn chứa các câu lệnh. Các shell mạnh hơn, phức tạp hơn và khó học hơn được đánh giá cao bởi một số người dùng khác. Trong những shell này, các lệnh được đánh vào từ bàn phím được hiển thị trên màn hình hay in ra thiết bị đầu cuối, với phím enter (hay return) chỉ rằng một lệnh hoàn thành và sẳn sàng được thực thi. Shell của MS-DOS và UNIX điều hành theo cách này.Các câu lệnh giải quyết việc tạo và quản lý quá trình, quản lý xuất/nhập, quản lý việc lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin, bảo vệ và mạng.
* Các dịch vụ hệ điều hành
Hệ điều hành cung cấp một môi trường cho việc thực thi các chương trình. Nó cung cấp các dịch vụ xác định tới chương trình và tới người dùng của các chương trình đó. Dĩ nhiên, các dịch vụ được cung cấp khác nhau từ hệ điều hành này với hệ điều hành kia nhưng chúng có thể xác định các lớp chung. Các dịch vụ hệ điều hành được cung cấp sự tiện dụng cho người lập trình để thực hiện tác vụ lập trình dễ dàng.Thực thi chương trình: hệ thống phải có thể nạp chương trình vào bộ nhớ và chạy chương trình đó. Chương trình phải có thể kết thúc việc thực thi của nó bình thường hay không bình thường (hiển thị lỗi). Thao tác xuất/nhập: một chương trình đang chạy có thể yêu cầu xuất/nhập. Xuất/nhập này có thể liên quan tới tập tin hay thiết bị xuất/nhập. Đối với các thiết bị cụ thể, các chức năng đặc biệt có thể được mong muốn (như quay lại từ đầu một ổ băng từ, hay xoá màn hình). Đối với tính hiệu quả và tính bảo vệ, người dùng thường không thể điều khiển các thiết bị xuất/nhập trực tiếp. Do đó, hệ điều hành phải cung cấp một phương tiện để thực hiện xuất/nhập.. Thao tác hệ thống tập tin: hệ thống tập tin có sự quan tâm đặc biệt. Các chương trình cần đọc từ và viết tới các tập tin. Chương trình cũng cần tạo và xoá tập tin bằng tên. Giao tiếp: trong nhiều trường hợp, một quá trình cần trao đổi thông tin với các quá trình khác. Giao tiếp như thế có thể xảy ra trong hai cách chính. Cách đầu tiên xảy ra giữa các quá trình được thực thi trên cùng máy tính; cách thứ hai xảy ra giữa hai quá trình đang được thực thi trên các máy tính khác nhau được kết nối với nhau bởi một mạng máy tính. Các giao tiếp có thể được thực hiện bằng bộ nhớ được chia sẻ, hay bằng kỹ thuật truyền thông điệp, trong đó các gói tin được di chuyển giữa các quá trình bởi hệ điều hành. Phát hiện lỗi: hệ điều hành liên tục yêu cầu nhận biết các lỗi có thể phát sinh. Các lỗi có thể xảy ra trong CPU và phần cứng bộ nhớ (như lỗi bộ nhớ hay lỗi về điện), trong các thiết bị xuất/nhập (như lỗi chẳn lẻ trên băng từ, lỗi nối kết mạng, hết giấy in) và trong chương trình người dùng (như tràn số học, cố gắng truy xuất một vị trí bộ nhớ không hợp lệ, dùng quá nhiều thời gian CPU). Đối với mỗi loại lỗi, hệ điều hành nên thực hiện một hoạt động hợp lý để đảm bảo tính toán đúng và không đổi.Ngoài ra, một tập chức năng khác của hệ điều hành tồn tại không giúp người dùng, nhưng đảm bảo các điều hành hữu hiệu của chính hệ thống. Các hệ thống với nhiều người dùng có thể đạt tính hữu hiệu bằng cách chia sẻ tài nguyên máy tính giữa các người dùng.Cấp phát tài nguyên: khi nhiều người dùng đăng nhập vào hệ thống hay nhiều công việc đang chạy cùng lúc, tài nguyên phải được cấp tới mỗi người dùng. Nhiều loại tài nguyên khác nhau được quản lý bởi hệ điều hành. Một số tài nguyên (như chu kỳ CPU, bộ nhớ chính, lưu trữ tập tin) có mã cấp phát đặt biệt, trái lại các tài nguyên khác (như thiết bị xuất/nhập) có mã yêu cầu và giải phóng thường hơn. Thí dụ, xác định cách tốt nhất để dùng CPU, hệ điều hành có các thủ tục định thời biểu CPU. Các thủ tục này xem xét tốc độ CPU, các công việc phải được thực thi, số thanh ghi sẳn dùng và các yếu tố khác. Cũng có các thủ tục cấp phát ổ băng từ để dùng cho một công việc. Một thủ tục như thế định vị ổ băng từ chưa được dùng và đánh dấu một bảng bên trong để ghi người dùng mới của ổ băng từ. Một thủ tục khác được dùng để xoá bảng đó. Các thủ tục này cũng có thể cấp phát các máy vẽ, modem, các thiết bị ngoại vi khác. Tính toán: chúng ta muốn giữ vết người dùng nào sử dụng bao nhiêu và loại tài nguyên máy tính nào. Giữ vết này có thể được dùng để tính toán (tính tiền người dùng) hay đơn giản thống kê sử dụng. Thống kê sử dụng có thể là công cụ có giá trị cho người nghiên cứu muốn cấu hình lại hệ thống để cải tiến các dịch vụ tính toán. Bảo vệ: người sở hữu thông tin được lưu trong hệ thống máy tính đa người dùng muốn điều khiển thông tin này. Khi nhiều quá trình riêng rẻ thực thi đồng hành, không thể cho một quá trình can thiệp tới các quá trình khác hay tới chính hệ điều hành. Bảo vệ đảm bảo rằng tất cả truy xuất tài nguyên của hệ thống được kiểm soát. An toàn hệ thống từ người dùng bên ngoài cũng là vấn đề quan trọng. An toàn bắt đầu với mỗi người dùng có quyền đối với hệ thống, thường bằng mật khẩu để được phép truy xuất tài nguyên. Mở rộng việc bảo vệ đối với các thiết bị xuất/nhập bên ngoài, bao gồm modem, card mạng từ những truy xuất không hợp lệ, và ghi lại các nối kết để phát hiện đột nhập vào hệ thống. Nếu hệ thống bảo vệ và bảo mật, những cảnh báo phải được thiết lập xuyên suốt.
* Các chương trình hệ thống
Một khía cạnh khác của hệ thống hiện đại là tập hợp các chương trình hệ thống. Xem lại hình I.1, nó minh họa cấu trúc phân cấp máy tính luận lý. Tại cấp thấp nhất là phần cứng. Kế đến là hệ điều hành, sau đó các chương trình hệ thống và cuối cùng là các chương trình ứng dụng. Các chương trình hệ thống cung cấp môi trường thuận lợi cho việc phát triển và thực thi chương trình. Vài trong chúng là các giao diện người dùng đơn giản cho các lời gọi hệ thống; các hệ thống còn lại được xem xét phức tạp hơn. Chúng có thể được chia thành các loại sau:Quản lý tập tin: các chương trình tạo, xóa, chép, đổi tên, in, kết xuất, liệt kê, và các thao tác tập tin thư mục thông thường. Thông tin trạng thái: một vài chương trình đơn giản yêu cầu hệ thống ngày, giờ, lượng bộ nhớ hay đĩa sẳn dùng, số lượng người dùng, hay thông tin trạng thái tương tự. Sau đó, thông tin được định dạng và được in tới thiết bị đầu cuối hay thiết bị xuất khác hoặc tập tin. Thay đổi tập tin: nhiều trình soạn thảo văn bản có thể sẳn dùng để tạo và thay đổi nội dung của tập tin được lưu trên đĩa hay băng từ. Hỗ trợ ngôn ngữ lập trình: trình biên dịch, trình hợp ngữ và trình thông dịch cho các ngôn ngữ lập trình thông dụng (như C, C++, Java, Visual Basic và PERL) thường được cung cấp tới người dùng với hệ điều hành. Hiện nay, một vài chương trình này được cung cấp riêng và có giá cả riêng. Nạp và thực thi chương trình: một khi chương trình được tập hợp hay được biên dịch, nó phải được nạp vào bộ nhớ để được thực thi. Hệ thống có thể cung cấp bộ nạp tuyệt đối, bộ nạp có thể tái định vị, bộ soạn thảo liên kết và bộ nạp phủ lắp. Các hệ thống gỡ rối cho các ngôn ngữ cấp cao hay ngôn ngữ máy cũng được yêu cầu. Giao tiếp: các chương trình này cung cấp cơ chế tạo các nối kết ảo giữa các quá trình, người dùng, các hệ thống máy tính khác. Chúng cho phép người dùng gởi các thông điệp tới màn hình của người dùng khác, hiển thị các trang web, gởi thư điện tử, đăng nhập từ xa hay để chuyển các tập tin từ máy tính này tới máy tính khác.Nhiều hệ điều hành được cung cấp với các chương trình giải quyết các vấn đề giao tiếp thông thường hay thực hiện các thao tác phổ biến. Những chương trình như thế gồm các trình duyệt Web, bộ xử lý văn bản và bộ định dạng văn bản, hệ cơ sở dữ liệu, trình biên dịch, các gói phần mềm đồ họa và phân tích thống kê, trò chơi,..Những chương trình này được gọi là các tiện ích hệ thống hay chương trình ứng dụng.Hầu hết người dùng nhìn hệ điều hành như các chương trình hệ thống hơn các lời gọi hệ thống thực sự. Nghĩ về việc sử dụng một PC. Khi máy tính của chúng ta chạy hệ điều hành Microsoft Windows, chúng ta có thể thấy một trình thông dịch dòng lệnh MS-DOS hay giao diện cửa sổ và trình đơn đồ họa. Cả hai sử dụng cùng một tập lời gọi hệ thống như lời gọi hệ thống trông rất khác và hoạt động trong các cách khác nhau. Do đó, tầm nhìn của chúng ta về thực chất có thể bị tách rời với cấu trúc hệ thống thực sự. Vì thế, thiết kế một giao diện tiện dụng và thân thiện không là một chức năng trực tiếp của hệ điều hành. Trong giáo trình này chúng ta sẽ tập trung các vấn đề cơ bản của việc cung cấp dịch vụ đầy đủ cho các chương trình người dùng. Từ quan điểm hệ điều hành, chúng ta không phân biệt sự khác nhau giữa các chương trình người dùng và các chương trình hệ thống.
* Tóm tắt
Hệ điều hành cung cấp một số dịch vụ. Tại cấp thấp nhất, lời gọi hệ thống cho phép một chương trình đang chạy thực hiện yêu cầu trực tiếp từ hệ thống. Tại cấp cao hơn, trình thông dịch cung cấp cơ chế cho người dùng đưa ra yêu cầu mà không viết chương trình. Các lệnh có thể xuất phát từ tập tin trong suốt thời gian thực thi theo chế độ xử lý theo lô, hay trực tiếp từ bàn phím trong chế độ tương tác hay chia sẻ thời gian. Các chương trình hệ thống được cung cấp để thoả mãn nhiều yêu cầu thông thường của người dùng.Các loại yêu cầu khác nhau dựa theo cấp yêu cầu. Cấp gọi hệ thống phải cung cấp các chức năng cơ bản, như điều khiển quá trình, quản lý tập tin và thiết bị. Các yêu cầu cấp cao hơn được thoả mãn bởi trình thông dịch lệnh và chương trình hệ thống được dịch vào một chuỗi các lời gọi hệ thống. Các dịch vụ hệ thống có thể được phân cấp thành nhiều loại: điều khiển chương trình, yêu cầu trạng thái, yêu cầu nhập/xuất. Lỗi chương trình được xem xét các yêu cầu ẩn cho dịch vụ.Một khi dịch vụ hệ thống được định nghĩa, cấu trúc của hệ điều hành được phát triển. Các bảng khác nhau cần được ghi thông tin định nghĩa trạng thái của hệ thống máy tính và trạng thái của công việc hệ thống.Thiết kế một hệ điều hành mới là công việc rất quan trọng. Thiết kế hệ thống như thứ tự của các tầng hay sử dụng vi nhân được xem là một kỹ thuật tốt. Khái niệm máy ảo thực hiện tiếp cận phân tầng và xem nhân của hệ điều hành và phần cứng như là phần cứng của nó. Các hệ điều hành khác có thể được nạp trên đỉnh của máy ảo.
tranvanhai_21(I11c)- Tổng số bài gửi : 47
Join date : 25/08/2011
Age : 40
Đến từ : Đồng Nai
Phân biệt giữa Interpretion(thông dịch) và Compilation(biên dịch)
Thông dịch(Interpretion) còn gọi là sự thông dịch, còn trình thông dịch (Interpretor) là một trình thông dịch ngôn ngữ. Trong thông dịch thì mã nguồn không được dịch trước thành ngôn ngữ máy mà mỗi lần cần chạy chương trình thì mã nguồn mới được dịch để thực thi từng dòng 1 (line by line). Tất cả các ngôn ngữ không biện dịch ra mã máy điều phải sử dụng trình thông dịch (PHP, WScripts, Perl, Linux Shell, Python....). Các ngôn ngữ theo trình thông dịch thường được gọi là script (kịch bản)
Ưu điểm
- Phát triển nhanh chóng
- Có thể chỉnh sửa mã nguồn bất kỳ khi nào
- Mạnh xử lý cú pháp
- Uyển chuyển mềm dẻo, ràng kiểu dữ liệu không chặc chẽ
- Có thể chạy trên mọi nền tảng (flatform, hệ điều hành) nếu có trình thông dịch tương ứng, tại vì không phải là ngôn ngữ máy(chỉ là file văn bản) nên không bị phụ thuộc vào HDH. tiêu biểu là Perl, PHP, Python
Nhược điểm
- Tại vì do là ngôn ngữ thông dịch chạy line by line nên nên ngôn ngữ thông dịch không hỗ trợ đa luồn (multi thread), giao dịch (transaction).... nên ngôn ngữ trình thông dịch chủ yếu là dùng ở mức độ font-end (muốn biết font-end là gì thì google đi)
- Cũng do chạy line by line nên tốc độ thực thi không nhanh bằng các chương trình viết bằng ngôn ngữ biên dịch (C, C++, VB...) đã chuyên trực tiếp ra ngôn ngữ máy.
Biên dịch(Compilation). Chương trình được viết được biên dịch ra thành ngôn ngữ máy trên một HDH xác định trước và chỉ chạy trên HDH đó (C++ -> .exe chỉ chạy trên Win, C++ -> .o chạy trên Unix/Linux .....)
Ưu điểm
- Ràng buộc chặc chẽ về kiểu trong ngôn ngữ.
- Hỗ trợ các tính năng đa tuyến, transtion ...
- Do đã biên dịch phụ thuộc vào hệ điều hành nên ct có thể tận dụng toàn bộ các tính năng đặc trưng của hdh
- Tốc độ thực thi tốt
- Bảo mật tốt (không thể xâm phạm mã nguồn làm thay đổi chức năng của chương trình)
- ....
Nhược điểm
- Sau khi biên dịch ra ngôn ngữ máy thì chỉ có thể chạy trên một HDH xác định.
P/S: Các bạn có thể thắc mắt tại sao Java cũng là ngôn ngữ biên dịch mà có thể chạy mọi HDH, chúng ta cần chú ý rằng: Java không biên dịch ra ngôn ngữ máy mà biên dịch ra bytecode, và bytecode đó phải chạy trên JVM (Java Virtual Machine) là một máy ảo trong đó có hệ điều hành ảo (java)
Ưu điểm
- Phát triển nhanh chóng
- Có thể chỉnh sửa mã nguồn bất kỳ khi nào
- Mạnh xử lý cú pháp
- Uyển chuyển mềm dẻo, ràng kiểu dữ liệu không chặc chẽ
- Có thể chạy trên mọi nền tảng (flatform, hệ điều hành) nếu có trình thông dịch tương ứng, tại vì không phải là ngôn ngữ máy(chỉ là file văn bản) nên không bị phụ thuộc vào HDH. tiêu biểu là Perl, PHP, Python
Nhược điểm
- Tại vì do là ngôn ngữ thông dịch chạy line by line nên nên ngôn ngữ thông dịch không hỗ trợ đa luồn (multi thread), giao dịch (transaction).... nên ngôn ngữ trình thông dịch chủ yếu là dùng ở mức độ font-end (muốn biết font-end là gì thì google đi)
- Cũng do chạy line by line nên tốc độ thực thi không nhanh bằng các chương trình viết bằng ngôn ngữ biên dịch (C, C++, VB...) đã chuyên trực tiếp ra ngôn ngữ máy.
Biên dịch(Compilation). Chương trình được viết được biên dịch ra thành ngôn ngữ máy trên một HDH xác định trước và chỉ chạy trên HDH đó (C++ -> .exe chỉ chạy trên Win, C++ -> .o chạy trên Unix/Linux .....)
Ưu điểm
- Ràng buộc chặc chẽ về kiểu trong ngôn ngữ.
- Hỗ trợ các tính năng đa tuyến, transtion ...
- Do đã biên dịch phụ thuộc vào hệ điều hành nên ct có thể tận dụng toàn bộ các tính năng đặc trưng của hdh
- Tốc độ thực thi tốt
- Bảo mật tốt (không thể xâm phạm mã nguồn làm thay đổi chức năng của chương trình)
- ....
Nhược điểm
- Sau khi biên dịch ra ngôn ngữ máy thì chỉ có thể chạy trên một HDH xác định.
P/S: Các bạn có thể thắc mắt tại sao Java cũng là ngôn ngữ biên dịch mà có thể chạy mọi HDH, chúng ta cần chú ý rằng: Java không biên dịch ra ngôn ngữ máy mà biên dịch ra bytecode, và bytecode đó phải chạy trên JVM (Java Virtual Machine) là một máy ảo trong đó có hệ điều hành ảo (java)
VanTanVu(I11c)- Tổng số bài gửi : 13
Join date : 31/08/2011
Age : 37
Đến từ : TP.HCM
ĐỊNH NGHĨA TIẾN TRÌNH , SO SÁNH TIẾN TRÌNH VỚI CHƯƠNG TRÌNH !
Tiến trình (process) : là chương trình trong thời gian thực hiện(đặt dưới sự quản lý của hệ điều hành) .
So sánh tiến trình với chương trình:
Bản than tiến trình không là chương trình vì là thực thể thụ động , trong khi tiến trình là thực thể hoạt động với nhiều thôn g tin về trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành .
- Nhiều tiến trình có thể liên quan đến một chương trình và là các thực thể khác nhau khi vận hành .
- Mỗi tiến trình có thể sinh ra nhiều tiến trình con khác khi vận hành.
- Tiến trình cần các tài nguyên ( CPU , Memory,tâp tin, thiết bị I/O) để hoàn thành công việc .
- Tài nguyên cấp cho tiến trinh ngay từ đầu (khi tiến trình được tạo lập) hoặc trong thời gian vận hành và được thu hồi hết khi tiến trình kết thúc .
- Tiến trình là thực thể hoạt động , chương trình là thực thể thụ động , tiến trình có thông – Điểm khác nhau giữa tiến trình và chương trình : tiến trình có thông tin trạng thái để phản ánh tiến trình đang ở trạng thái nào
So sánh tiến trình với chương trình:
Bản than tiến trình không là chương trình vì là thực thể thụ động , trong khi tiến trình là thực thể hoạt động với nhiều thôn g tin về trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành .
- Nhiều tiến trình có thể liên quan đến một chương trình và là các thực thể khác nhau khi vận hành .
- Mỗi tiến trình có thể sinh ra nhiều tiến trình con khác khi vận hành.
- Tiến trình cần các tài nguyên ( CPU , Memory,tâp tin, thiết bị I/O) để hoàn thành công việc .
- Tài nguyên cấp cho tiến trinh ngay từ đầu (khi tiến trình được tạo lập) hoặc trong thời gian vận hành và được thu hồi hết khi tiến trình kết thúc .
- Tiến trình là thực thể hoạt động , chương trình là thực thể thụ động , tiến trình có thông – Điểm khác nhau giữa tiến trình và chương trình : tiến trình có thông tin trạng thái để phản ánh tiến trình đang ở trạng thái nào
VanTanVu(I11c)- Tổng số bài gửi : 13
Join date : 31/08/2011
Age : 37
Đến từ : TP.HCM
Khái niệm về Bộ đệm, hiện tượng tràn bộ nhớ đệm và tình trạng thắt cổ chai
Khái niệm về Bộ đệm
A. Bộ đệm (BUFFER) hay bộ nhớ đệm là vùng nhớ tạm trong khi chờ đến lượt vì CPU và các thiết bị khác không làm việc cùng tốc độ, HDH thì xử lý các tiến trình có chia thời gian. Do đó cần có bộ đệm để chứa tạm thời. Bộ đệm hoạt động theo cơ chế FIFO.
VD: 1. Khi ghi dữ liệu lên ổ cứng hoặc đọc dữ liệu từ ổ cứng cũng cần Buffer.
2. Khi hai máy tính truyền dữ liệu cũng cần Buffer…
B. Lỗi tràn bộ đệm là một điều kiện bất thường khi một tiến trình lưu dữ liệu vượt ra ngoài biên của một bộ nhớ đệm có chiều dài cố định. Kết quả là dữ liệu đó sẽ đè lên các vị trí bộ nhớ liền kề. Dữ liệu bị ghi đè có thể bao gồm các bộ nhớ đệm khác, các biến và dữ liệu điều khiển luồng chạy của chương trình (program flow control).
Hiện tượng tràn bộ nhớ đệm và tình trạng thắt cổ chai
Hiện tượng tràn bộ đệm xảy ra khi ta copy một xâu (char[]) dài vào một xâu được khai báo với kích thước nhỏ, trong chương trình C/C++, và sử dụng các hàm copy xâu không kiểm tra biên như strcpy(), gets()... Khi đó toàn bộ xâu nguồn với kích thước lớn sẽ được ghi đè lên xâu đích kích thước nhỏ, tràn qua phần bộ nhớ được cấp phát cho xâu đích và ghi đè lên các giá trị khác đang được lưu trong stack như biến nội bộ, địa chỉ trả về của chương trình hiện tại (Return address)...
Ví dụ về một chương trình có thể bị tràn bộ đệm:
... void f(char * source) { int i = 1; char buffer[16]; strcpy(buffer, source); } ... f(a_very_big_string); ...
Tuỳ theo độ dài và nội dung của xâu nguồn mà hậu quả của việc tràn bộ đệm buffer[16] ở trên có thể là:
-biến i bị thay đổi giá trị.
-return address cua f() bi thay đổi giá trị, do dó, khi f chạy xong, thay vì quay về chương trình đã gọi f(), chương trình lại nhảy đến địa chỉ là giá trị mới của return address, coi đó là mã chương trình và chạy. Kết quả là chương trình bị crash hoặc có những biểu hiện không bình thường.
Thông thường, hacker đưa một đoạn mã máy (gọi là shellcode) vào đầu xâu a_very_big_string, cuối xâu là địa chỉ của xâu đó trong bộ nhớ chương trình. Mục đích là để khi hiện tượng tràn bộ đệm xảy ra, return address của f() sẽ bị ghi đè bởi địa chỉ của shellcode. Kết quả là sau khi f() kết thúc, shellcode sẽ được chạy. Shellcode chính là đoạn mã máy chứa các lệnh phá hoại, hoặc lệnh tạo ra một command shell trong Unix/Linux.
Nếu bạn muốn tìm hiểu thêm, bạn có thể tham khảo các tài liệu sau đây:
(1) - (dành cho người đọc không cần chuyên sâu lắm)
McGraw Gary and John Viega, Make Your Software Behave: Learning the Basics of Buffer Overflows - Get Reaquainted with the Single Biggest Threat to Software Security, http://www-4.ibm.com/software/developer/library/overflows/
(2) - How to write Buffer Overflows
http://www.zone-h.org/files/4/bof-stack7.txt
(3) - (tài liệu kinh điển dành cho các bạn muốn tìm hiểu sâu)
Smashing The Stack For Fun And Profit
http://www.phrack.org/show.php?p=49&a=14
Chúc bạn thành công.
A. Bộ đệm (BUFFER) hay bộ nhớ đệm là vùng nhớ tạm trong khi chờ đến lượt vì CPU và các thiết bị khác không làm việc cùng tốc độ, HDH thì xử lý các tiến trình có chia thời gian. Do đó cần có bộ đệm để chứa tạm thời. Bộ đệm hoạt động theo cơ chế FIFO.
VD: 1. Khi ghi dữ liệu lên ổ cứng hoặc đọc dữ liệu từ ổ cứng cũng cần Buffer.
2. Khi hai máy tính truyền dữ liệu cũng cần Buffer…
B. Lỗi tràn bộ đệm là một điều kiện bất thường khi một tiến trình lưu dữ liệu vượt ra ngoài biên của một bộ nhớ đệm có chiều dài cố định. Kết quả là dữ liệu đó sẽ đè lên các vị trí bộ nhớ liền kề. Dữ liệu bị ghi đè có thể bao gồm các bộ nhớ đệm khác, các biến và dữ liệu điều khiển luồng chạy của chương trình (program flow control).
Hiện tượng tràn bộ nhớ đệm và tình trạng thắt cổ chai
Hiện tượng tràn bộ đệm xảy ra khi ta copy một xâu (char[]) dài vào một xâu được khai báo với kích thước nhỏ, trong chương trình C/C++, và sử dụng các hàm copy xâu không kiểm tra biên như strcpy(), gets()... Khi đó toàn bộ xâu nguồn với kích thước lớn sẽ được ghi đè lên xâu đích kích thước nhỏ, tràn qua phần bộ nhớ được cấp phát cho xâu đích và ghi đè lên các giá trị khác đang được lưu trong stack như biến nội bộ, địa chỉ trả về của chương trình hiện tại (Return address)...
Ví dụ về một chương trình có thể bị tràn bộ đệm:
... void f(char * source) { int i = 1; char buffer[16]; strcpy(buffer, source); } ... f(a_very_big_string); ...
Tuỳ theo độ dài và nội dung của xâu nguồn mà hậu quả của việc tràn bộ đệm buffer[16] ở trên có thể là:
-biến i bị thay đổi giá trị.
-return address cua f() bi thay đổi giá trị, do dó, khi f chạy xong, thay vì quay về chương trình đã gọi f(), chương trình lại nhảy đến địa chỉ là giá trị mới của return address, coi đó là mã chương trình và chạy. Kết quả là chương trình bị crash hoặc có những biểu hiện không bình thường.
Thông thường, hacker đưa một đoạn mã máy (gọi là shellcode) vào đầu xâu a_very_big_string, cuối xâu là địa chỉ của xâu đó trong bộ nhớ chương trình. Mục đích là để khi hiện tượng tràn bộ đệm xảy ra, return address của f() sẽ bị ghi đè bởi địa chỉ của shellcode. Kết quả là sau khi f() kết thúc, shellcode sẽ được chạy. Shellcode chính là đoạn mã máy chứa các lệnh phá hoại, hoặc lệnh tạo ra một command shell trong Unix/Linux.
Nếu bạn muốn tìm hiểu thêm, bạn có thể tham khảo các tài liệu sau đây:
(1) - (dành cho người đọc không cần chuyên sâu lắm)
McGraw Gary and John Viega, Make Your Software Behave: Learning the Basics of Buffer Overflows - Get Reaquainted with the Single Biggest Threat to Software Security, http://www-4.ibm.com/software/developer/library/overflows/
(2) - How to write Buffer Overflows
http://www.zone-h.org/files/4/bof-stack7.txt
(3) - (tài liệu kinh điển dành cho các bạn muốn tìm hiểu sâu)
Smashing The Stack For Fun And Profit
http://www.phrack.org/show.php?p=49&a=14
Chúc bạn thành công.
VanTanVu(I11c)- Tổng số bài gửi : 13
Join date : 31/08/2011
Age : 37
Đến từ : TP.HCM
Tại sao môi trường đồ họa thân thiện lại kết hợp với Javasript
Môi trường đồ họa thân thiện ngoài việc giúp người dùng có cái nhìn dễ chịu và dễ dàng sự dụng.Nhưng sử dụng ở đây là phải trực quan sinh động nên cần phải kết hợp với javasript để tương tác tốt hơn.
Vậy Javasript là gì?
Javascript là một ngôn ngữ lập trình phía trình duyệt xử lý có động cơ được nhúng vào trong các trình duyệt web như Internet Explorer, Netscape, trình duyệt Firefox, vv Điều này cho phép xử lý các động cơ để đọc và lĩnh hội các trang web có chứa các mã javascript khi duyệt qua.
Javascript invented đã được thêm vào nhiều tính năng thú vị để các trang HTML. HTML trên nó trên là khá boring và nó có thể không phải làm nhiều ngoài việc hiển thị một trang web. Javascript lập trình, mặt khác, có thể cung cấp một máy chủ của các tính năng hấp dẫn như thực hiện các phép tính, cho phép người sử dụng tương tác với các trang web, thực hiện các hình thức validations, yếu tố thao tác trên một trang web, cung cấp các hiệu ứng thị giác tuyệt vời, năng động, cho phép chức năng và còn nhiều hơn nữa.
Vậy Javasript là gì?
Javascript là một ngôn ngữ lập trình phía trình duyệt xử lý có động cơ được nhúng vào trong các trình duyệt web như Internet Explorer, Netscape, trình duyệt Firefox, vv Điều này cho phép xử lý các động cơ để đọc và lĩnh hội các trang web có chứa các mã javascript khi duyệt qua.
Javascript invented đã được thêm vào nhiều tính năng thú vị để các trang HTML. HTML trên nó trên là khá boring và nó có thể không phải làm nhiều ngoài việc hiển thị một trang web. Javascript lập trình, mặt khác, có thể cung cấp một máy chủ của các tính năng hấp dẫn như thực hiện các phép tính, cho phép người sử dụng tương tác với các trang web, thực hiện các hình thức validations, yếu tố thao tác trên một trang web, cung cấp các hiệu ứng thị giác tuyệt vời, năng động, cho phép chức năng và còn nhiều hơn nữa.
Ví dụ đời thường giữa thông dịch và phiên dịch
Ví dụ thông dịch : Khi ngoại giao giữa cơ quan nhà nước với người nước ngoài ta cần một thông dịch viên để dịch những câu của nước ngoài nói chuyện với ta.Đó gọi là thông dịch.
Ví dụ về biên dịch: ta dịch một cuốn sách tiếng nước ngoài sang tiếng việt thì gọi đó là biên dịch
Ví dụ về biên dịch: ta dịch một cuốn sách tiếng nước ngoài sang tiếng việt thì gọi đó là biên dịch
Trình bày vai trò và chức năng của hệ thông dịch lệnh (Command-Intepreter) trong hệ điều hành.
@ Bộ thông dịch lệnh:
- Giao diện dòng lệnh là một phương thức giao tiếp giữa User và HĐH.
- Một số HĐH coi Command-Interpreter là bộ phận của hạt nhân trong khi MS-DOS và UNIX chỉ coi là chương trình đặc biệt.
- Giao diện do Command-Intepreter hỗ trợ được gọi là Shell.
- Một trong những "vỏ" thân thiện đầu tiên xuất hiện trong HĐH Mac OS cho máy tính Macintosh.
- Giao diện dòng lệnh là một phương thức giao tiếp giữa User và HĐH.
- Một số HĐH coi Command-Interpreter là bộ phận của hạt nhân trong khi MS-DOS và UNIX chỉ coi là chương trình đặc biệt.
- Giao diện do Command-Intepreter hỗ trợ được gọi là Shell.
- Một trong những "vỏ" thân thiện đầu tiên xuất hiện trong HĐH Mac OS cho máy tính Macintosh.
NgoLeYen48(I11C)- Tổng số bài gửi : 34
Join date : 26/08/2011
Kỷ thuật máy ảo ( Virtual Machines ) với những ưu điểm và nhược điểm
* Máy tính ảo:
- Là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách điều phối CPU và kỹ thuật bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý, bộ nhớ và các thiết bị của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
VD: Trên nền CPU loại PowerPC, Motorola, Alpha,… có thể giả lập máy tính ảo Intel chạy HĐH windows và ngược lại. Khi đó các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
* Ích lợi của máy tính ảo:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy tính ảo có thiết bị ảo (ví dụ, ổ đĩa ảo). Có thể lấy từ Internet về một chương trình lạ và thử chạy trên máy ảo mà không sợ bị ảnh hưởng (VD như virut) vì nếu có sao thì cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp,cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành phát triển hệ thống trên một máy ảo thay vì làm trên máy thực. Thành công rồi mới chuyển nhanh sang máy thực (máy vật lý).
VD:1 số phần mềm như VMWare, Virtual PC, VirtualBox .
* Nhược điểm của máy tính ảo:
Vấn đề bảo mật và lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
- Là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách điều phối CPU và kỹ thuật bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý, bộ nhớ và các thiết bị của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
VD: Trên nền CPU loại PowerPC, Motorola, Alpha,… có thể giả lập máy tính ảo Intel chạy HĐH windows và ngược lại. Khi đó các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
* Ích lợi của máy tính ảo:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy tính ảo có thiết bị ảo (ví dụ, ổ đĩa ảo). Có thể lấy từ Internet về một chương trình lạ và thử chạy trên máy ảo mà không sợ bị ảnh hưởng (VD như virut) vì nếu có sao thì cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp,cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành phát triển hệ thống trên một máy ảo thay vì làm trên máy thực. Thành công rồi mới chuyển nhanh sang máy thực (máy vật lý).
VD:1 số phần mềm như VMWare, Virtual PC, VirtualBox .
* Nhược điểm của máy tính ảo:
Vấn đề bảo mật và lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
nguyenthithuylinh (I11C)- Tổng số bài gửi : 23
Join date : 26/08/2011
Re: Thảo luận Bài 3
vohongcong(I111C) đã viết:Ví dụ thông dịch : Khi ngoại giao giữa cơ quan nhà nước với người nước ngoài ta cần một thông dịch viên để dịch những câu của nước ngoài nói chuyện với ta.Đó gọi là thông dịch.
Ví dụ về biên dịch: ta dịch một cuốn sách tiếng nước ngoài sang tiếng việt thì gọi đó là biên dịch
Mình cũng đóng góp một cái VD về thông dịch và biên dịch.
VD:
*Thông dịch:khi ta dùng “google dịch” thì ta đánh vào từ nào nó sẽ dịch ra cho ta từ đó luôn,ta không cần phải nhấn nút “dịch”.
* Biên dịch:khi ta viết chương trình trên Visual C++ sau khi viết xong ta phải nhấn phím F5 thì chương trình mới chạy.
nguyenthithuylinh (I11C)- Tổng số bài gửi : 23
Join date : 26/08/2011
REMOTE DESKTOP
Remote Desktop cung cấp truy cập cho việc truy cập từ một máy tính nội hạt chạy hệ điều hành Windows XP cho đến bất cứ một máy tính ở xa . Remote Desktop trong Windows XP là phiên bãn mở rộng của Terminal Service Windows 2000 . Remote Desktop trên Windows XP thực hiện việc truy cập từ xa từ một máy tính nội hạt đến máy tính ở xa ở bất kỳ nơi nào trên thế giới . Sử dụng Remote Desktop bạn có thể kết nối đến mạng máy tính văn phòng và truy cập đến tất cã các ứng dụng của bạn . Remote Desktop là nền tảng của Terminal Service .
Remote Desktop bao gồm các phần sau :
- Giao thức Remote Desktop
- Phần mềm Client : Remote Desktop Connection và Remote Desktop Web Connection
Tóm lại khi sử dụng Remote Desktop bạn phải làm như sau :
- Bật Remote Desktop trong Windows XP Professional
- Kích hoạt người dùng để kết nối với máy tính ở xa chạy hệ điều hành Windows XP Professional .
- Cài đặt phần mềm Remote Desktop Connection cho máy tính Client
- Cài đặt Remote Desktopm Web Connection (nếu máy tính Client không chạy hệ điều hành Windows XP)
Bật Remote Desktop trong Windows XP Professional
Khi bạn cài đặt Windows XP , Remote Desktop mặc định được vô hiệu hóa (tắt) . Bạn cần bật Remote Desktop trước khi bạn có thể sử dụng nó để kết nối máy tính từ xa .
Đăng nhập vào quyền Administrator
Nhấn chuột phải vào MyComputer chọn Properties . Trong System Properties bạn chọn thanh Remote chọn mục Allow users to connect remotely to this computer . Logoff hoặc khởi động lại máy tính .
Cho phép người dùng kết nối đến máy tính chạy Windows XP Professional
Để truy cập từ xa máy tính Windows XP của bạn , bạn phải là thành viên của nhóm Administrator hoặc nhóm Remote Desktop Users . Trong Windows XP bạn có thể thêm một hay nhiều người dùng đến nhóm Remote Desktop Users . Thêm người dùng vào nhóm Remote Desktop Users
Đăng nhập vào máy tính Windows XP với quyền Administrator .
Nhấn chuột phải vào MyComputer chọn Properties . Trong System Properties chọn Properties . chọn tiếp Remote . Chọn Select Remote Users .
Trong hộp thoại Remote Desktop Users nhấn Add . trong hộp thoại Select Users , ở mục Name bạn nhập User mà bạn muốn thêm vào
Chọn một người dùng nào đó mà bạn muốn thêm vào và nhấn OK .
Cài đặt phần mềm cho Client . Để thiết lập Remote Desktop Client việc đầu tiên cần cài đặt Remote Desktop Connection (hoặc Terminal Services Client) . Máy tính của bạn có thể kết nối với máy tính từ xa bằng mạng LAN , WAN , kết nối dialup hoặc kết nối Internet .
Remote Desktop bao gồm các phần sau :
- Giao thức Remote Desktop
- Phần mềm Client : Remote Desktop Connection và Remote Desktop Web Connection
Tóm lại khi sử dụng Remote Desktop bạn phải làm như sau :
- Bật Remote Desktop trong Windows XP Professional
- Kích hoạt người dùng để kết nối với máy tính ở xa chạy hệ điều hành Windows XP Professional .
- Cài đặt phần mềm Remote Desktop Connection cho máy tính Client
- Cài đặt Remote Desktopm Web Connection (nếu máy tính Client không chạy hệ điều hành Windows XP)
Bật Remote Desktop trong Windows XP Professional
Khi bạn cài đặt Windows XP , Remote Desktop mặc định được vô hiệu hóa (tắt) . Bạn cần bật Remote Desktop trước khi bạn có thể sử dụng nó để kết nối máy tính từ xa .
Đăng nhập vào quyền Administrator
Nhấn chuột phải vào MyComputer chọn Properties . Trong System Properties bạn chọn thanh Remote chọn mục Allow users to connect remotely to this computer . Logoff hoặc khởi động lại máy tính .
Cho phép người dùng kết nối đến máy tính chạy Windows XP Professional
Để truy cập từ xa máy tính Windows XP của bạn , bạn phải là thành viên của nhóm Administrator hoặc nhóm Remote Desktop Users . Trong Windows XP bạn có thể thêm một hay nhiều người dùng đến nhóm Remote Desktop Users . Thêm người dùng vào nhóm Remote Desktop Users
Đăng nhập vào máy tính Windows XP với quyền Administrator .
Nhấn chuột phải vào MyComputer chọn Properties . Trong System Properties chọn Properties . chọn tiếp Remote . Chọn Select Remote Users .
Trong hộp thoại Remote Desktop Users nhấn Add . trong hộp thoại Select Users , ở mục Name bạn nhập User mà bạn muốn thêm vào
Chọn một người dùng nào đó mà bạn muốn thêm vào và nhấn OK .
Cài đặt phần mềm cho Client . Để thiết lập Remote Desktop Client việc đầu tiên cần cài đặt Remote Desktop Connection (hoặc Terminal Services Client) . Máy tính của bạn có thể kết nối với máy tính từ xa bằng mạng LAN , WAN , kết nối dialup hoặc kết nối Internet .
DaoQuangSieu (I11C)- Tổng số bài gửi : 29
Join date : 26/08/2011
Remote DeskTop và Teamvier
Windows Remote Desktop- một ứng dụng điều khiển máy tính từ xa mặc định khi cài Windows vẫn là công cụ đáp ứng tốt nhu cầu của người dùng Windows với đầy đủ các tính năng của một trình điều khiển PC từ xa. Để sử dụng được Windows Remote Destop, bạn cần phải bật công cụ này lên trong Windows. Điểm hạn chế của trình ứng dụng này là không hỗ trợ khả năng kết nối giữa các hệ điều hành với nhau.
Gần đây có không ít hãng phần mềm đã đưa công nghệ vốn chỉ dành cho người hỗ trợ của các hãng phần cứng sử dụng để trợ giúp cho người sử dụng. Nó trở thành một công nghệ đơn giản và an toàn để người dùng có thể giúp đỡ lẫn nhau ở vấn đề mà họ biết. Điển hình của sự đơn giản hóa trình Remote Desktop này có thể kể đến như TeamViewer, ShowMyPC…
Theo mình nên sử dụng Remote Desktop có tính bảo mật cao và nhanh hơn vì nó kết nối điểm với điểm không qua trung gian như Teamvier.Như vậy tính bảo mật ko còn đảm bảo nữa.
Gần đây có không ít hãng phần mềm đã đưa công nghệ vốn chỉ dành cho người hỗ trợ của các hãng phần cứng sử dụng để trợ giúp cho người sử dụng. Nó trở thành một công nghệ đơn giản và an toàn để người dùng có thể giúp đỡ lẫn nhau ở vấn đề mà họ biết. Điển hình của sự đơn giản hóa trình Remote Desktop này có thể kể đến như TeamViewer, ShowMyPC…
Theo mình nên sử dụng Remote Desktop có tính bảo mật cao và nhanh hơn vì nó kết nối điểm với điểm không qua trung gian như Teamvier.Như vậy tính bảo mật ko còn đảm bảo nữa.
Tiện ích Remote Desktop
- 1. Bạn phải bật chức năng remote desktop để máy tính của bạn chấp nhận kết nối từ máy khác đến. Mở Control Panel, bấm vào System. Nếu bạn đang sử dụng Windows XP hay chọn tab Remote và sau đó kick vào Allow users to connect remotely to this computer. Nếu bạn đang sử dụng Windows Server 2003 thì sẽ hơi khác 1 chút ở cái tên: chọn tab Remote và sau đó kick vào ô Enable Remote Desktop on this computer. Sau đó bấm Ok.
2.Để sử dụng RDC, bạn mở hộp thoại Remote Desktop Connection: Bấm vào Start >> Programs (hoặc All Programs) >> Accessories >> Remote Desktop Connection
Bây giờ bạn có thể gõ tên miền hoặc địa chỉ IPcủa máy bạn định kết nối tới.
Có 3 lựa chọn:
- Don’t allow connection to this computer: sẽ cấm bất cứ ai định kết nối đến máy bạn sử dụng chức năng Remote Desktop.
-Allow connections from computers running any version of Remote Desktop: cho phép mọi người kết nối đến máy bạn.
-Allow connection only from computers running Remote Desktop with Network Level Authentication: chỉ cho phép những máy có sử dụng phiên bản Remote Desktop có chức năng NLA có thể kết nối đến. Vì vậy để đảm bảo tính bảo mật, tốt nhất bạn nên sử dụng phiên bản Windows mới nhất để tận dụng tính năng mới.
hoặc Bấm vào Start >> Run và gõ vào mstsc.
----------------------------------------------------------------------------------------------------------------------
- ưu điểm của Remote desktop
- Bảo mật cao và nhanh, dể sử dụng vì nó có sẵn trên và tích hợp trên windows và chúng ta chỉ cận bật tính năng nó là sử dụng thôi.
- thuận lợi cho việc sử dụng trong mạng nội bộ của môt công ty hoặc cơ quan.
- Hacker không thể tấn công được.
-----------------------------------------------------------------------------------------------------------------------
ngoài ra hiện nay có những phần mềm hỗ trợ nhưng kém bảo mật hơn nhưng chức năng vẫn tương tự đó teamviewer.
2.Để sử dụng RDC, bạn mở hộp thoại Remote Desktop Connection: Bấm vào Start >> Programs (hoặc All Programs) >> Accessories >> Remote Desktop Connection
Bây giờ bạn có thể gõ tên miền hoặc địa chỉ IPcủa máy bạn định kết nối tới.
Có 3 lựa chọn:
- Don’t allow connection to this computer: sẽ cấm bất cứ ai định kết nối đến máy bạn sử dụng chức năng Remote Desktop.
-Allow connections from computers running any version of Remote Desktop: cho phép mọi người kết nối đến máy bạn.
-Allow connection only from computers running Remote Desktop with Network Level Authentication: chỉ cho phép những máy có sử dụng phiên bản Remote Desktop có chức năng NLA có thể kết nối đến. Vì vậy để đảm bảo tính bảo mật, tốt nhất bạn nên sử dụng phiên bản Windows mới nhất để tận dụng tính năng mới.
hoặc Bấm vào Start >> Run và gõ vào mstsc.
----------------------------------------------------------------------------------------------------------------------
- ưu điểm của Remote desktop
- Bảo mật cao và nhanh, dể sử dụng vì nó có sẵn trên và tích hợp trên windows và chúng ta chỉ cận bật tính năng nó là sử dụng thôi.
- thuận lợi cho việc sử dụng trong mạng nội bộ của môt công ty hoặc cơ quan.
- Hacker không thể tấn công được.
-----------------------------------------------------------------------------------------------------------------------
ngoài ra hiện nay có những phần mềm hỗ trợ nhưng kém bảo mật hơn nhưng chức năng vẫn tương tự đó teamviewer.
tranvanhai_21(I11c)- Tổng số bài gửi : 47
Join date : 25/08/2011
Age : 40
Đến từ : Đồng Nai
Trình bày và so sánh 2 mô hình liên lạc giữa các tiến trình.
- Liên lạc giữa các tiến trình: Bằng thông điệp(Messages) và qua Vùng nhớ chung.Trao đổi thông tin giữa các tiến trình trên một máy/giữa các máy khác nhau trong mạng.
-Liên lạc giữa các tiến trình:
+ Mỗi máy tính trong mạng có HostName và IP Address. Các tên này được HĐH chuyển đổi thành một số nguyên gọi là HostID.
+ Mỗi tiến trình có ProcessName và ProcessID.
+ Cặp số (HostID, ProcessID) xác định duy nhất tiến trình trong mạng và được dùng để mở/đóng kết nối với tiến trình đó.
+ Các lời gọi hệ thống kiểu Open,Close,Read,Write,Wait để thao tác với tiến trình.
- Truyền thông điệp: Tiến trình A sẽ truyền dữ liệu thông qua hệ thống, Tiếntrình B sẽ nhận dữ liệu từ hệ thống.
- Dùng bộ nhớ chung: Tiến trình A sẽ truyền dữ liệu vào bộ nhớ chia sẻ (dùng chung), Tiến trình B sẽ lấy dữ liệu tù bộ nhớ chia sẻ này. Dùng bộ nhớ chung phải thực hiện đồng bộ hóa để đảm bảo dữ liệu sau không chồng lên dữ liệu trước.
NgoLeYen48(I11C)- Tổng số bài gửi : 34
Join date : 26/08/2011
3. Kỷ thuật máy ảo ( Virtual Machines ) với những ưu điểm và nhược điểm
Máy tính ảo:
- Là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách điều phối CPU và kỹ thuật bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý, bộ nhớ và các thiết bị của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
VD: Trên nền CPU loại PowerPC, Motorola, Alpha,… có thể giả lập máy tính ảo Intel chạy HĐH windows và ngược lại. Khi đó các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
* Ích lợi của máy tính ảo:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy tính ảo có thiết bị ảo (ví dụ, ổ đĩa ảo). Có thể lấy từ Internet về một chương trình lạ và thử chạy trên máy ảo mà không sợ bị ảnh hưởng (VD như virut) vì nếu có sao thì cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp,cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành phát triển hệ thống trên một máy ảo thay vì làm trên máy thực. Thành công rồi mới chuyển nhanh sang máy thực (máy vật lý).
VD:1 số phần mềm như VMWare, Virtual PC, VirtualBox .
* Nhược điểm của máy tính ảo:
Vấn đề bảo mật và lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
- Là sự phát triển lô-gic của kiến trúc phân lớp.
- Bằng cách điều phối CPU và kỹ thuật bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý, bộ nhớ và các thiết bị của riêng mình.
- Nói cách khác: Máy tính ảo của người dùng được giả lập trên nền máy tính vật lý.
VD: Trên nền CPU loại PowerPC, Motorola, Alpha,… có thể giả lập máy tính ảo Intel chạy HĐH windows và ngược lại. Khi đó các lệnh của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
* Ích lợi của máy tính ảo:
- Tính bảo mật cao do các máy ảo độc lập với nhau. Các tài nguyên của máy vật lý được bảo vệ hoàn toàn vì các máy tính ảo có thiết bị ảo (ví dụ, ổ đĩa ảo). Có thể lấy từ Internet về một chương trình lạ và thử chạy trên máy ảo mà không sợ bị ảnh hưởng (VD như virut) vì nếu có sao thì cũng chỉ hỏng máy ảo.
- Dễ phát triển hệ thống (System Development) mà không sợ làm ảnh hưởng đến công việc toàn hệ máy đang vận hành. HĐH là chương trình phức tạp,cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp. Có thể tiến hành phát triển hệ thống trên một máy ảo thay vì làm trên máy thực. Thành công rồi mới chuyển nhanh sang máy thực (máy vật lý).
VD:1 số phần mềm như VMWare, Virtual PC, VirtualBox .
* Nhược điểm của máy tính ảo:
Vấn đề bảo mật và lưu trữ vật lý. Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo. Do đó nếu bị mất tập tin này xem như mất tất cả.
Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình máy ảo, máy sẽ chậm và ảnh hưởng đến các chương trình khác.
Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo.
Ở góc dộ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó.
TranThiMyTien18(i11c)- Tổng số bài gửi : 20
Join date : 26/08/2011
Virtualization - Ảo hóa là gì?
Ảo hóa là một công nghệ được thiết kế để tạo ra một tầng trung gian giữa hệ thống phần cứng máy tính và phần mềm chạy trên nó.
Bằng cách đưa ra một khái niệm logic về tài nguyên máy tính hơn là một khái niệm vật lí, các giải pháp ảo hóa có thể thực hiện rất nhiều việc có ích.
Về cơ bản, chúng cho phép bạn đánh lừa hệ điều hành rằng một nhóm máy chủ chỉ là nguồn tài nguyên đơn lẻ.
Và giải pháp ảo hóa cũng cho phép bạn chạy nhiều hệ điều hành cùng lúc trên một máy tính.
Dựa trên khái niệm ảo hóa này, nhiều công nghệ ảo hóa đã được ra đời và ứng dụng rộng rãi trong nhiều lĩnh vực
Bằng cách đưa ra một khái niệm logic về tài nguyên máy tính hơn là một khái niệm vật lí, các giải pháp ảo hóa có thể thực hiện rất nhiều việc có ích.
Về cơ bản, chúng cho phép bạn đánh lừa hệ điều hành rằng một nhóm máy chủ chỉ là nguồn tài nguyên đơn lẻ.
Và giải pháp ảo hóa cũng cho phép bạn chạy nhiều hệ điều hành cùng lúc trên một máy tính.
Dựa trên khái niệm ảo hóa này, nhiều công nghệ ảo hóa đã được ra đời và ứng dụng rộng rãi trong nhiều lĩnh vực
Sơ lược về TeamViewer(RemoteDesktop)
TeamViewer là một ứng dụng điều khiển máy tính từ xa an toàn, đơn giản và nhanh chóng. Các bạn có thể sử dụng TeamViewer cho các mục đích sau:
- Hỗ trợ cho bạn bè, đồng nghiệp, người thân hoặc khách hàng từ xa
- Thuyết trình hoặc chia sẻ màn hình trực tuyến
- Chỉnh sửa các thiết lập của máy tính khách từ xa.
TeamViewer có thể truy cập thông qua bức tường lửa và proxies mà không cần các cấu hình đặc biệt
Ngoài ra, Team Viewer còn hỗ trợ một số tính năng như:
- Chia sẻ các tập tin dễ dàng cho máy tính khách
- Chia sẻ hình ảnh bằng Webcam
- Chức năng đàm thoại trực tiếp (VoIP – Voice over IP)
- Tạo ghi chú nhanh trên màn hình với chức năng Whiteboard
- Kiểm soát các phiên kết nối máy tính từ xa với thanh công cụ mới
- Đồng bộ và quản lý danh sách tài khoản của những người kết nối từ xa
- …
Có 2 cách sử dụng TeamViewer đó là:
- Sử dụng trực tiếp trên trình duyệt Internet.
- Sử dụng bằng chương trình của TeamViewer.
- Hỗ trợ cho bạn bè, đồng nghiệp, người thân hoặc khách hàng từ xa
- Thuyết trình hoặc chia sẻ màn hình trực tuyến
- Chỉnh sửa các thiết lập của máy tính khách từ xa.
TeamViewer có thể truy cập thông qua bức tường lửa và proxies mà không cần các cấu hình đặc biệt
Ngoài ra, Team Viewer còn hỗ trợ một số tính năng như:
- Chia sẻ các tập tin dễ dàng cho máy tính khách
- Chia sẻ hình ảnh bằng Webcam
- Chức năng đàm thoại trực tiếp (VoIP – Voice over IP)
- Tạo ghi chú nhanh trên màn hình với chức năng Whiteboard
- Kiểm soát các phiên kết nối máy tính từ xa với thanh công cụ mới
- Đồng bộ và quản lý danh sách tài khoản của những người kết nối từ xa
- …
Có 2 cách sử dụng TeamViewer đó là:
- Sử dụng trực tiếp trên trình duyệt Internet.
- Sử dụng bằng chương trình của TeamViewer.
DaoQuangSieu (I11C)- Tổng số bài gửi : 29
Join date : 26/08/2011
ích lợi của máy ảo
- Tính bảo mật cao do các máy ảo độc lập với nhau.Các tài nguyên vật lý được bảo vệ hoàn toàn vì các máy ảo có thiết bị ảo (một ổ đĩa ảo, thậm chí toàn bộ máy ảo thực tế chỉ là một tập tin của máy ảo vật lý).Có thể lấy từ internet về một chương trình lạ và thử vận hành trên máy ảo mà không sợ bị ảnh hưởng
(ví dụ: do virus)vì nếu có sao cũng chỉ hỏng máy ảo.
- dể phát triển hệ thống (system development) mà không sợ làm ảnh hưởng đến công việc toàn hệ thống máy đang vận hành.HĐh là chương trình phức tạp cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp.Có thể tiến hành phát triển hệ thống trên một máy ảo thay vì làm trên máy thực.
- Ví dụ: Khi ta download một chương trình nào trên Internet vể ta cho cài đặt và cảm thấy an toàn sau đó ta mới tiến hành cài đặt chương trình đó trên máy tính vật lý.
ví dụ 2: khi một chương trình nào có bản quyền có thời hạn sau khi hết hạn sử dụng phần mềm đó mà không cho ta cài lại phần mềm đó mà buột phải cài lại windows như vậy ta tiến hành cài chương trình phần mềm này trên máy ảo, nếu nó hết hạn thì ta sử dụng lại windows mới mà không cần phải setup lại mất thời gian.
Ví dụ 3: Khi ta tiến hành nâng cấp hệ điều hành thì ta tiến hành nâng cấp thử nghiệm trên máy ảo trước sau đó nếu thấy khả thi thì sau đó ta mới tiến hành nâng cấp windows trên máy thật.
(ví dụ: do virus)vì nếu có sao cũng chỉ hỏng máy ảo.
- dể phát triển hệ thống (system development) mà không sợ làm ảnh hưởng đến công việc toàn hệ thống máy đang vận hành.HĐh là chương trình phức tạp cần liên tục thử nghiệm, tinh chỉnh, hoàn thiện và nâng cấp.Có thể tiến hành phát triển hệ thống trên một máy ảo thay vì làm trên máy thực.
- Ví dụ: Khi ta download một chương trình nào trên Internet vể ta cho cài đặt và cảm thấy an toàn sau đó ta mới tiến hành cài đặt chương trình đó trên máy tính vật lý.
ví dụ 2: khi một chương trình nào có bản quyền có thời hạn sau khi hết hạn sử dụng phần mềm đó mà không cho ta cài lại phần mềm đó mà buột phải cài lại windows như vậy ta tiến hành cài chương trình phần mềm này trên máy ảo, nếu nó hết hạn thì ta sử dụng lại windows mới mà không cần phải setup lại mất thời gian.
Ví dụ 3: Khi ta tiến hành nâng cấp hệ điều hành thì ta tiến hành nâng cấp thử nghiệm trên máy ảo trước sau đó nếu thấy khả thi thì sau đó ta mới tiến hành nâng cấp windows trên máy thật.
tranvanhai_21(I11c)- Tổng số bài gửi : 47
Join date : 25/08/2011
Age : 40
Đến từ : Đồng Nai
Re: Thảo luận Bài 3
nguyenthithuylinh (I11C) đã viết:vohongcong(I111C) đã viết:Ví dụ thông dịch : Khi ngoại giao giữa cơ quan nhà nước với người nước ngoài ta cần một thông dịch viên để dịch những câu của nước ngoài nói chuyện với ta.Đó gọi là thông dịch.
Ví dụ về biên dịch: ta dịch một cuốn sách tiếng nước ngoài sang tiếng việt thì gọi đó là biên dịch
Mình cũng đóng góp một cái VD về thông dịch và biên dịch.
VD:
*Thông dịch:khi ta dùng “google dịch” thì ta đánh vào từ nào nó sẽ dịch ra cho ta từ đó luôn,ta không cần phải nhấn nút “dịch”.
* Biên dịch:khi ta viết chương trình trên Visual C++ sau khi viết xong ta phải nhấn phím F5 thì chương trình mới chạy.
Ý kiến của bạn nguyenthithuylinh chưa hẳn là "google dịch" là chính xác.
* Thông dịch: làm tới đâu sẽ có kết quả tới đó (chậm mà chắc), có sai sót thì sẽ sửa lỗi ngay còn Biên Dịch đôi lúc làm xong hết thì chương trình mới thực thi.
* VD: một số ta nhận đc 1 đoạn script mà thực thi thì vô tình đoạn script đó là mã độc thì máy tính ta sẽ bị VIRUS tấn công.
Nói tóm lại BIên dịch có ưu điểm nhưng ngược lại là dễ bị Virus.
VoMinhHoang (I11C)- Tổng số bài gửi : 26
Join date : 08/09/2011
Age : 39
Đến từ : Tp Tan An - Long An
Bổ sung về 'ảo hóa' !!!
Có ba kiểu ảo hóa cơ bản:
-Ảo hóa lưu trữ gộp ổ lưu trữ thực từ nhiều thiết bị lưu trữ mạng để chúng xuất hiện như là một ổ lư trữ duy nhất.
- Ảo hóa mạng kết hợp tài nguyên máy tính trong một mạng bằng cách phân đôi dải thông thành những kênh độc lập mà có thể gán cho một máy chủ hay một thiết bị cụ thể trong thời gian thực.
-Ảo hóa máy chủ ẩn thuộc tính vật lý của tài nguyên máy chủ, bao gồm con số và nhận dạng của máy chủ cá nhân, bộ xử lí và hệ điều hành từ những phần mềm chạy trên chúng.
Kiểu cuối cùng rất khác các ứng dụng công nghệ này phổ biến nhất hiện nay và nó được coi như một sản phẩm cơ bản thị trường. Khi mọi người dùng thuật ngữ “ảo hóa” nghĩa là họ đang chắc chắn nói đến ảo hóa máy chủ.
-Ảo hóa lưu trữ gộp ổ lưu trữ thực từ nhiều thiết bị lưu trữ mạng để chúng xuất hiện như là một ổ lư trữ duy nhất.
- Ảo hóa mạng kết hợp tài nguyên máy tính trong một mạng bằng cách phân đôi dải thông thành những kênh độc lập mà có thể gán cho một máy chủ hay một thiết bị cụ thể trong thời gian thực.
-Ảo hóa máy chủ ẩn thuộc tính vật lý của tài nguyên máy chủ, bao gồm con số và nhận dạng của máy chủ cá nhân, bộ xử lí và hệ điều hành từ những phần mềm chạy trên chúng.
Kiểu cuối cùng rất khác các ứng dụng công nghệ này phổ biến nhất hiện nay và nó được coi như một sản phẩm cơ bản thị trường. Khi mọi người dùng thuật ngữ “ảo hóa” nghĩa là họ đang chắc chắn nói đến ảo hóa máy chủ.
DaoQuangSieu (I11C)- Tổng số bài gửi : 29
Join date : 26/08/2011
Re: Thảo luận Bài 3
vohongcong(I111C) đã viết:Ảo hóa là một công nghệ được thiết kế để tạo ra một tầng trung gian giữa hệ thống phần cứng máy tính và phần mềm chạy trên nó.
Bằng cách đưa ra một khái niệm logic về tài nguyên máy tính hơn là một khái niệm vật lí, các giải pháp ảo hóa có thể thực hiện rất nhiều việc có ích.
Về cơ bản, chúng cho phép bạn đánh lừa hệ điều hành rằng một nhóm máy chủ chỉ là nguồn tài nguyên đơn lẻ.
Và giải pháp ảo hóa cũng cho phép bạn chạy nhiều hệ điều hành cùng lúc trên một máy tính.
Dựa trên khái niệm ảo hóa này, nhiều công nghệ ảo hóa đã được ra đời và ứng dụng rộng rãi trong nhiều lĩnh vực
************************************************************************************
Ảo là Thật và Thật là Ảo ++++ đôi lúc trong cuộc sống ta phải cần có hư hư ảo ảo
HIện tại mình đang sống cũng chưa hẵn là thật, chi khi nào ta chết đi mới là THật
VoMinhHoang (I11C)- Tổng số bài gửi : 26
Join date : 08/09/2011
Age : 39
Đến từ : Tp Tan An - Long An
Tại sao Hệ Điều Hành cung cấp 1 khung nhìn logic nhất quán ?
Máy tính có thể lưu trữ thông tin trong nhiều dạng thiết bị vật lý khác nhau : băng từ, đĩa từ, đĩa quang, ... Mỗi dạng có những đặc thù riêng về mặt tổ chức vật lý. Mỗi thiết bị có một bộ kiểm soát như bộ điều khiển đĩa (disk driver) và có những tính chất riêng. Những tính chất này là tốc độ, khả năng lưu trữ, tốc độ truyền dữ liệu và cách truy xuất.
Để cho việc sử dụng hệ thống máy tính thuận tiện, hệ điều hành cung cấp một cái nhìn logic đồng nhất về hệ thống lưu trữ thông tin. Hệ điều hành định nghĩa một đơn vị lưu trữ logic là tập tin. Hệ điều hành tạo một ánh xạ từ tập tin đến vùng thông tin trên đĩa và truy xuất những tập tin này thông qua thiết bị lưu trữ.
Một tập tin là một tập hợp những thông tin do người tạo ra nó xác định. Thông thường một tập tin đại diện cho một chương trình và dữ liệu. Dữ liệu của tập tin có thể là số, là ký tự, hay ký số.
Vai trò của hệ điều hành trong việc quản lý tập tin :
- Tạo và xoá một tập tin.
- Tạo và xoá một thư mục.
- Hỗ trợ các thao tác trên tập tin và thư mục.
- Ánh xạ tập tin trên hệ thống lưu trữ phụ.
- Sao lưu dự phòng các tập tin trên các thiết bị lưu trữ.
Để cho việc sử dụng hệ thống máy tính thuận tiện, hệ điều hành cung cấp một cái nhìn logic đồng nhất về hệ thống lưu trữ thông tin. Hệ điều hành định nghĩa một đơn vị lưu trữ logic là tập tin. Hệ điều hành tạo một ánh xạ từ tập tin đến vùng thông tin trên đĩa và truy xuất những tập tin này thông qua thiết bị lưu trữ.
Một tập tin là một tập hợp những thông tin do người tạo ra nó xác định. Thông thường một tập tin đại diện cho một chương trình và dữ liệu. Dữ liệu của tập tin có thể là số, là ký tự, hay ký số.
Vai trò của hệ điều hành trong việc quản lý tập tin :
- Tạo và xoá một tập tin.
- Tạo và xoá một thư mục.
- Hỗ trợ các thao tác trên tập tin và thư mục.
- Ánh xạ tập tin trên hệ thống lưu trữ phụ.
- Sao lưu dự phòng các tập tin trên các thiết bị lưu trữ.
TranHaDucHuy (I11c)- Tổng số bài gửi : 10
Join date : 02/09/2011
Remote Desktop Connection
Chào bạn!DaoQuangSieu (I11C) đã viết:Remote Desktop cung cấp truy cập cho việc truy cập từ một máy tính nội hạt chạy hệ điều hành Windows XP cho đến bất cứ một máy tính ở xa . Remote Desktop trong Windows XP là phiên bãn mở rộng của Terminal Service Windows 2000 . Remote Desktop trên Windows XP thực hiện việc truy cập từ xa từ một máy tính nội hạt đến máy tính ở xa ở bất kỳ nơi nào trên thế giới . Sử dụng Remote Desktop bạn có thể kết nối đến mạng máy tính văn phòng và truy cập đến tất cã các ứng dụng của bạn . Remote Desktop là nền tảng của Terminal Service .
Remote Desktop bao gồm các phần sau :
- Giao thức Remote Desktop
- Phần mềm Client : Remote Desktop Connection và Remote Desktop Web Connection
Tóm lại khi sử dụng Remote Desktop bạn phải làm như sau :
- Bật Remote Desktop trong Windows XP Professional
- Kích hoạt người dùng để kết nối với máy tính ở xa chạy hệ điều hành Windows XP Professional .
- Cài đặt phần mềm Remote Desktop Connection cho máy tính Client
- Cài đặt Remote Desktopm Web Connection (nếu máy tính Client không chạy hệ điều hành Windows XP)
Bật Remote Desktop trong Windows XP Professional
Khi bạn cài đặt Windows XP , Remote Desktop mặc định được vô hiệu hóa (tắt) . Bạn cần bật Remote Desktop trước khi bạn có thể sử dụng nó để kết nối máy tính từ xa .
Đăng nhập vào quyền Administrator
Nhấn chuột phải vào MyComputer chọn Properties . Trong System Properties bạn chọn thanh Remote chọn mục Allow users to connect remotely to this computer . Logoff hoặc khởi động lại máy tính .
Cho phép người dùng kết nối đến máy tính chạy Windows XP Professional
Để truy cập từ xa máy tính Windows XP của bạn , bạn phải là thành viên của nhóm Administrator hoặc nhóm Remote Desktop Users . Trong Windows XP bạn có thể thêm một hay nhiều người dùng đến nhóm Remote Desktop Users . Thêm người dùng vào nhóm Remote Desktop Users
Đăng nhập vào máy tính Windows XP với quyền Administrator .
Nhấn chuột phải vào MyComputer chọn Properties . Trong System Properties chọn Properties . chọn tiếp Remote . Chọn Select Remote Users .
Trong hộp thoại Remote Desktop Users nhấn Add . trong hộp thoại Select Users , ở mục Name bạn nhập User mà bạn muốn thêm vào
Chọn một người dùng nào đó mà bạn muốn thêm vào và nhấn OK .
Cài đặt phần mềm cho Client . Để thiết lập Remote Desktop Client việc đầu tiên cần cài đặt Remote Desktop Connection (hoặc Terminal Services Client) . Máy tính của bạn có thể kết nối với máy tính từ xa bằng mạng LAN , WAN , kết nối dialup hoặc kết nối Internet .
Đọc suốt cả bài của bạn tôi không thấy bạn nói đến phương thức mở port (cổng) cho remote desktop trên Modem (hoặc router) do đó mặc định bạn chỉ có thể connect Remote desktop qua LAN, còn qua WAN thì chưa được.
Thứ hai, cái chỗ tôi bôi đậm trên bài viết của bạn mà tôi Quote lại đó, không biết bạn xài phần mềm remote gì, nhưng mặc định windows xp, windows server 2003, windows 7 đã cài đặt sẵn Remote desktop connection trên windows, không phải cài thêm phần mềm gì cho Client nữa nhé.
NguyenHuuHung(I11C)- Tổng số bài gửi : 16
Join date : 27/08/2011
Age : 39
Re: Thảo luận Bài 3
Các thành phần cơ bản với những chức năng chính của Hệ Điều Hành
1.Quản lý tiến trình (Process Management)
Tiến trình (Process) là chương trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH)
Một chương trình không thực hiện được gì cả nếu như nó không được CPU thi hành. Một tiến trình là một chương trình đang được thi hành, nhưng ý nghĩa của nó còn rộng hơn. Một công việc theo lô là một tiến trình. Một chương trình người dùng chia xẻ thời gian là một tiến trình, một công việc của hệ thống như soopling xuất ra máy in cũng là một tiến trình.
Một tiến trình phải sử dụng tài nguyên như thời gian sử dụng CPU, bộ nhớ, tập tin, các thiết bị nhập xuất để hoàn tất công việc của nó. Các tài nguyên này được cung cấp khi tiến trình được tạo hay trong quá trình thi hành. Khi tiến trình được tạo, nó sử dụng rất nhiều tài nguyên vật lý và luận lý.cũng như một số khởi tạo dữ liệu nhập. Ví dụ , khảo sát tiến trình hiển thị trạng thái của tập tin lên màn hình. Đầu vào của tiến trình là tên tập tin, và tiến trình sẽ thực hiện những chỉ thị thích hợp, thực hiện lời gọi hệ thống để nhận được những thông tin mong muốn và hiển thị nó lên màn hình. Khi tiến trình kết thúc, hệ điềûu hành sẽ tái tạo lại các tài nguyên có thể được dùng lại..
Một tiến trình là hoạt động (active) hoàn toàn-ngược lại với một tập tin trên đĩa là thụ động (passive)-với một bộ đếm chương trình cho biết lệnh kế tiếp được thi hành.Việc thi hành được thực hiện theo cơ chế tuần tự , CPU sẽ thi hành từ lệnh đầu đến lệnh cuối.
Một tiến trình được coi là một đơn vị làm việc của hệ thống. Một hệ thống có thể có nhiều tiến trình cùng lúc , trong đó một số tiến trình là của hệ điều hành, một số tiến trình là của người sử dụng. các tiến trình này có thể diễn ra đồng thời.
Vai trò của hệ điều hành trong việc quản lý tiến trình là :
Tạo và hủy các tiến trình của người sử dụng và của hệ thống.
Ngưng và thực hiện lại một tiến trình.
Cung cấp cơ chế đồng bộ tiến trình.
Cung cấp cách thông tin giữa các tiến trình.
Cung cấp cơ chế kiểm soát deadlock(khái niệm này sẽ được trình bày trong chương II).
2.Quản lý bộ nhớ chính (Main - Memory management) :
Bộ nhớ chính là thiết bị mà CPU có thể truy cập trực tiếp tới thành phần bên trong (Byte, Word).
Trong hệ thống máy tính hiện đại, bộ nhớ chính là trung tâm của các thao tác, xử lý. Bộ nhớ chính có thể xem như một mảng kiểu byte hay kiểu word. Mỗi phần tử đều có địa chỉ. đây là nơi lưu dữ liệu được CPU truy xuất một cách nhanh chóng so với các thiết bị nhập/xuất. CPU đọc những chỉ thị từ bộ nhớ chính. Các thiết bị nhập/xuất cài đặt cơ chế DMA(xem chương IV) cũng đọc và ghi dữ liệu trong bộ nhớ chính. Thông thường bộ nhớ chính chứa các thiết bị mà CPU có thể định vị trực tiếp. Ví dụ CPU truy xuất dữ liệu từ đĩa, những dữ liệu này được chuyển vào bộ nhớ qua lời gọi hệ thống nhập/xuất.
Một chương trình muốn thi hành trước hết phải được ánh xạ thành địa chỉ tuyệt đối và nạp vào bộ nhớ chính.Khi chương trình thi hành, hệ thống truy xuất các chỉ thị và dữ liệu của chương trình trong bộ nhớ chính. Ngay cả khi tiến trình kết thúc , dữ liệu vẫn còn trong bộ nhớ cho đến khi một tiến trình khác được ghi chồng lên.
Để tối ưu hóa quá trình hoạt động của CPU và tốc độ của máy tính, một số tiến trình được lưu giữ trong bộ nhớ. Có rất nhiều kế hoạch quản trị bộ nhớ do có nhiều ứng dụng bộ nhớ khác nhau và hiệu quả của các thuật toán phụ thuộc vào tùy tình huống cụ thể. Lựa chọn một thuật toán cho một hệ thống được mô tả trước phụ thuộc vào nhiều yếu tố, đặc biệt là phần cứng của hệ thống.
Hệ điều hành có những vai trò như sau trong việc quản lý bộ nhớ chính :
Lưu giữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và ai sử dụng.
Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dùng được.
Cấp phát và thu hồi bộ nhớ khi cần thiết.
3.Quản lý bộ nhớ phụ :
Mục tiêu chính của hệ thống máy tính là thi hành chương trình. Những chương trình với dữ liệu truy xuất của chúng phải được đặt trong bộ nhớ chính trong suốt quá trình thi hành. Nhưng bộ nhớ chính quá nhỏ để có thể lưu giữ mọi dữ liệu và chương trình, ngoài ra dữ liệu sẽ mất khi không còn được cung cấp năng lượng. Hệ thống máy tính ngày nay cung cấp hệ thống lưu trữ phụ. Đa số các máy tính đều dùng đĩa để lưu trữ cả chương trình và dữ liệu. Hầu như tất cả chương trình : chương trình dịch, hợp ngữ, thủ tục, trình soạn thảo, định dạng... đều được lưu trữ trên đĩa cho tới khi nó được thực hiện, nạp vào trong bộ nhớ chính và cũng sử dụng đĩa để chứa dữ liệu và kết quả xử lý. Vì vậy một bộ quản lý hệ thống đĩa rất quan trọng cho hệ thống máy tính.
Vai trò của hệ điều hành trong việc quản lý đĩa :
Quản lý vùng trống trên đĩa.
Định vị lưu trữ.
Lập lịch cho đĩa.
Vì hệ thống đĩa được sử dụng thường xuyên, nên nó phải được dùng hiệu quả.Tốc độ của toàn bộ hệ thống tuỳ thuộc rất nhiều vào tốc độ truy xuất đĩa.
4.Quản lý hệ thống nhập xuất (I/O Management) :
Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của các thiết bị phần cứng đối với người sử dụng thay vào đó là một lớp thân thiện hơn, người sử dụng dể thao tác hơn. Một hệ thống nhập/xuất bao gồm :
Hệ thống buffer caching.
Giao tiếp điều khiển thiết bị (device drivers) tổng quát
Bộ điều khiển cho các thiết bị phần cứng.
Chỉ có device driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả.
5.Quản lý hệ thống tập tin (File Management ):
Hệ thống quản lý tập tin là thành phần rõ ràng nhất trong hệ điều hành. Máy tính có thể lưu trữ thông tin trong nhiều dạng thiết bị vật lý khác nhau : băng từ, đĩa từ, , đĩa quang, ... Mỗi dạng có những đặc thù riêng về mặt tổ chức vật lý. Mỗi thiết bị có một bộ kiểm soát như bộ điều khiển đĩa (disk driver) và có những tính chất riêng. Những tính chất này là tốc độ, khả năng lưu trữ, tốc độ truyền dữ liệu và cách truy xuất.
Để cho việc sử dụng hệ thống máy tính thuận tiện, hệ điều hành cung cấp một cái nhìn logic đồng nhất về hệ thống lưu trữ thông tin. Hệ điều hành định nghĩa một đơn vị lưu trữ logic là tập tin. Hệ điều hành tạo một ánh xạ từ tập tin đến vùng thông tin trên đĩa và truy xuất những tập tin này thông qua thiết bị lưu trữ.
Một tập tin là một tập hợp những thông tin do người tạo ra nó xác định. Thông thường một tập tin đại diện cho một chương trình và dữ liệu. Dữ liệu của tập tin có thể là số, là ký tự, hay ký số. Tập tin thường có dạng tự do, như tập tin văn bản, nhị phân...(là tập tin chứa dãy các bit). (Xem bài VIII)
Vai trò của hệ điều hành trong việc quản lý tập tin :
Tạo và xoá một tập tin.
Tạo và xoá một thư mục.
Hỗ trợ các thao tác trên tập tin và thư mục.
Ánh xạ tập tin trên hệ thống lưu trữ phụ.
Backup tập tin trên các thiết bị lưu trữ.
6.Hệ thống bảo vệ (Protection Management) :
Trong một hệ thống nhiều người sử dụng và cho phép nhiều tiến trình diễn ra đồng thời, các tiến trình phải được bảo vệ đối với những hoạt động khác.Do đó, hệ thống cung cấp cơ chế để đảm bảo rằng tập tin, bộ nhớ, CPU, và những tài nguyên khác chỉ được truy xuất bởi những tiến trình có quyền. Ví dụ, bộ nhớ đảm bảo rằng tiến trình chỉ được thi hành trong phạm vi địa chỉ của nó. Bộ thời gian đảm bảo rằng không có tiến trình nào độc chiếm CPU. Cuối cùng các thiết bị ngoại vi cũng được bảo vệ.
Hệ thống bảo vệ là một cơ chế kiểm soát quá trình truy xuất của chương trình, tiến trình, hoặc người sử dụng với tài nguyên của hệ thống. Cơ chế này cũng cung cấp cách thức để mô tả lại mức độ kiểm soát.
Hệ thống bảo vệ cũng làm tăng độ an toàn khi kiểm tra lỗi trong giao tiếp giữa những hệ thống nhỏ bên trong.
7. Hệ thống cơ chế dòng lệnh :
Một trong những phần quan trọng của chương trình hệ thống trong một hệ điều hành là cơ chế dòng lệnh, đó là giao tiếp giữa người sử dụng và hệ điều hành. Một số hệ điều hành đặt cơ chế dòng lệnh bên trong hạt nhân, số khác như MS-DOS và UNIX thì xem hệ điều hành như là một chương trình đặt biệt, được thi hành khi các công việc bắt đầu hoặc khi người sử dụng login lần đầu tiên.
Các lệnh đưa vào hệ điều hành thông qua bộ điều khiển lệnh. Trong các hệ thống chia xẻ thời gian một chương trình có thể đọc và thông dịch các lệnh điều khiển được thực hiện một cách tự động. Chương trình này thường được gọi là bộ thông dịch điều khiển card, cơ chế dòng lệnh hoặc Shell. Chức năng của nó rất đơn giản đó là lấy lệnh kế tiếp và thi hành.
Mỗi hệ điều hành sẽ có những giao tiếp khác nhau, dạng đơn giản theo cơ chế dòng lệnh, dạng thân thiện với người sử dụng như giao diện của Macintosh có các biểu tượng, cửa sổ thao tác dùng chuột.
Các lệnh có quan hệ với việc tạo và quản lý các tiến trình, kiểm soát nhập xuất, quản lý bộ lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin và cơ chế bảo vệ.
1.Quản lý tiến trình (Process Management)
Tiến trình (Process) là chương trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH)
Một chương trình không thực hiện được gì cả nếu như nó không được CPU thi hành. Một tiến trình là một chương trình đang được thi hành, nhưng ý nghĩa của nó còn rộng hơn. Một công việc theo lô là một tiến trình. Một chương trình người dùng chia xẻ thời gian là một tiến trình, một công việc của hệ thống như soopling xuất ra máy in cũng là một tiến trình.
Một tiến trình phải sử dụng tài nguyên như thời gian sử dụng CPU, bộ nhớ, tập tin, các thiết bị nhập xuất để hoàn tất công việc của nó. Các tài nguyên này được cung cấp khi tiến trình được tạo hay trong quá trình thi hành. Khi tiến trình được tạo, nó sử dụng rất nhiều tài nguyên vật lý và luận lý.cũng như một số khởi tạo dữ liệu nhập. Ví dụ , khảo sát tiến trình hiển thị trạng thái của tập tin lên màn hình. Đầu vào của tiến trình là tên tập tin, và tiến trình sẽ thực hiện những chỉ thị thích hợp, thực hiện lời gọi hệ thống để nhận được những thông tin mong muốn và hiển thị nó lên màn hình. Khi tiến trình kết thúc, hệ điềûu hành sẽ tái tạo lại các tài nguyên có thể được dùng lại..
Một tiến trình là hoạt động (active) hoàn toàn-ngược lại với một tập tin trên đĩa là thụ động (passive)-với một bộ đếm chương trình cho biết lệnh kế tiếp được thi hành.Việc thi hành được thực hiện theo cơ chế tuần tự , CPU sẽ thi hành từ lệnh đầu đến lệnh cuối.
Một tiến trình được coi là một đơn vị làm việc của hệ thống. Một hệ thống có thể có nhiều tiến trình cùng lúc , trong đó một số tiến trình là của hệ điều hành, một số tiến trình là của người sử dụng. các tiến trình này có thể diễn ra đồng thời.
Vai trò của hệ điều hành trong việc quản lý tiến trình là :
Tạo và hủy các tiến trình của người sử dụng và của hệ thống.
Ngưng và thực hiện lại một tiến trình.
Cung cấp cơ chế đồng bộ tiến trình.
Cung cấp cách thông tin giữa các tiến trình.
Cung cấp cơ chế kiểm soát deadlock(khái niệm này sẽ được trình bày trong chương II).
2.Quản lý bộ nhớ chính (Main - Memory management) :
Bộ nhớ chính là thiết bị mà CPU có thể truy cập trực tiếp tới thành phần bên trong (Byte, Word).
Trong hệ thống máy tính hiện đại, bộ nhớ chính là trung tâm của các thao tác, xử lý. Bộ nhớ chính có thể xem như một mảng kiểu byte hay kiểu word. Mỗi phần tử đều có địa chỉ. đây là nơi lưu dữ liệu được CPU truy xuất một cách nhanh chóng so với các thiết bị nhập/xuất. CPU đọc những chỉ thị từ bộ nhớ chính. Các thiết bị nhập/xuất cài đặt cơ chế DMA(xem chương IV) cũng đọc và ghi dữ liệu trong bộ nhớ chính. Thông thường bộ nhớ chính chứa các thiết bị mà CPU có thể định vị trực tiếp. Ví dụ CPU truy xuất dữ liệu từ đĩa, những dữ liệu này được chuyển vào bộ nhớ qua lời gọi hệ thống nhập/xuất.
Một chương trình muốn thi hành trước hết phải được ánh xạ thành địa chỉ tuyệt đối và nạp vào bộ nhớ chính.Khi chương trình thi hành, hệ thống truy xuất các chỉ thị và dữ liệu của chương trình trong bộ nhớ chính. Ngay cả khi tiến trình kết thúc , dữ liệu vẫn còn trong bộ nhớ cho đến khi một tiến trình khác được ghi chồng lên.
Để tối ưu hóa quá trình hoạt động của CPU và tốc độ của máy tính, một số tiến trình được lưu giữ trong bộ nhớ. Có rất nhiều kế hoạch quản trị bộ nhớ do có nhiều ứng dụng bộ nhớ khác nhau và hiệu quả của các thuật toán phụ thuộc vào tùy tình huống cụ thể. Lựa chọn một thuật toán cho một hệ thống được mô tả trước phụ thuộc vào nhiều yếu tố, đặc biệt là phần cứng của hệ thống.
Hệ điều hành có những vai trò như sau trong việc quản lý bộ nhớ chính :
Lưu giữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và ai sử dụng.
Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dùng được.
Cấp phát và thu hồi bộ nhớ khi cần thiết.
3.Quản lý bộ nhớ phụ :
Mục tiêu chính của hệ thống máy tính là thi hành chương trình. Những chương trình với dữ liệu truy xuất của chúng phải được đặt trong bộ nhớ chính trong suốt quá trình thi hành. Nhưng bộ nhớ chính quá nhỏ để có thể lưu giữ mọi dữ liệu và chương trình, ngoài ra dữ liệu sẽ mất khi không còn được cung cấp năng lượng. Hệ thống máy tính ngày nay cung cấp hệ thống lưu trữ phụ. Đa số các máy tính đều dùng đĩa để lưu trữ cả chương trình và dữ liệu. Hầu như tất cả chương trình : chương trình dịch, hợp ngữ, thủ tục, trình soạn thảo, định dạng... đều được lưu trữ trên đĩa cho tới khi nó được thực hiện, nạp vào trong bộ nhớ chính và cũng sử dụng đĩa để chứa dữ liệu và kết quả xử lý. Vì vậy một bộ quản lý hệ thống đĩa rất quan trọng cho hệ thống máy tính.
Vai trò của hệ điều hành trong việc quản lý đĩa :
Quản lý vùng trống trên đĩa.
Định vị lưu trữ.
Lập lịch cho đĩa.
Vì hệ thống đĩa được sử dụng thường xuyên, nên nó phải được dùng hiệu quả.Tốc độ của toàn bộ hệ thống tuỳ thuộc rất nhiều vào tốc độ truy xuất đĩa.
4.Quản lý hệ thống nhập xuất (I/O Management) :
Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của các thiết bị phần cứng đối với người sử dụng thay vào đó là một lớp thân thiện hơn, người sử dụng dể thao tác hơn. Một hệ thống nhập/xuất bao gồm :
Hệ thống buffer caching.
Giao tiếp điều khiển thiết bị (device drivers) tổng quát
Bộ điều khiển cho các thiết bị phần cứng.
Chỉ có device driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả.
5.Quản lý hệ thống tập tin (File Management ):
Hệ thống quản lý tập tin là thành phần rõ ràng nhất trong hệ điều hành. Máy tính có thể lưu trữ thông tin trong nhiều dạng thiết bị vật lý khác nhau : băng từ, đĩa từ, , đĩa quang, ... Mỗi dạng có những đặc thù riêng về mặt tổ chức vật lý. Mỗi thiết bị có một bộ kiểm soát như bộ điều khiển đĩa (disk driver) và có những tính chất riêng. Những tính chất này là tốc độ, khả năng lưu trữ, tốc độ truyền dữ liệu và cách truy xuất.
Để cho việc sử dụng hệ thống máy tính thuận tiện, hệ điều hành cung cấp một cái nhìn logic đồng nhất về hệ thống lưu trữ thông tin. Hệ điều hành định nghĩa một đơn vị lưu trữ logic là tập tin. Hệ điều hành tạo một ánh xạ từ tập tin đến vùng thông tin trên đĩa và truy xuất những tập tin này thông qua thiết bị lưu trữ.
Một tập tin là một tập hợp những thông tin do người tạo ra nó xác định. Thông thường một tập tin đại diện cho một chương trình và dữ liệu. Dữ liệu của tập tin có thể là số, là ký tự, hay ký số. Tập tin thường có dạng tự do, như tập tin văn bản, nhị phân...(là tập tin chứa dãy các bit). (Xem bài VIII)
Vai trò của hệ điều hành trong việc quản lý tập tin :
Tạo và xoá một tập tin.
Tạo và xoá một thư mục.
Hỗ trợ các thao tác trên tập tin và thư mục.
Ánh xạ tập tin trên hệ thống lưu trữ phụ.
Backup tập tin trên các thiết bị lưu trữ.
6.Hệ thống bảo vệ (Protection Management) :
Trong một hệ thống nhiều người sử dụng và cho phép nhiều tiến trình diễn ra đồng thời, các tiến trình phải được bảo vệ đối với những hoạt động khác.Do đó, hệ thống cung cấp cơ chế để đảm bảo rằng tập tin, bộ nhớ, CPU, và những tài nguyên khác chỉ được truy xuất bởi những tiến trình có quyền. Ví dụ, bộ nhớ đảm bảo rằng tiến trình chỉ được thi hành trong phạm vi địa chỉ của nó. Bộ thời gian đảm bảo rằng không có tiến trình nào độc chiếm CPU. Cuối cùng các thiết bị ngoại vi cũng được bảo vệ.
Hệ thống bảo vệ là một cơ chế kiểm soát quá trình truy xuất của chương trình, tiến trình, hoặc người sử dụng với tài nguyên của hệ thống. Cơ chế này cũng cung cấp cách thức để mô tả lại mức độ kiểm soát.
Hệ thống bảo vệ cũng làm tăng độ an toàn khi kiểm tra lỗi trong giao tiếp giữa những hệ thống nhỏ bên trong.
7. Hệ thống cơ chế dòng lệnh :
Một trong những phần quan trọng của chương trình hệ thống trong một hệ điều hành là cơ chế dòng lệnh, đó là giao tiếp giữa người sử dụng và hệ điều hành. Một số hệ điều hành đặt cơ chế dòng lệnh bên trong hạt nhân, số khác như MS-DOS và UNIX thì xem hệ điều hành như là một chương trình đặt biệt, được thi hành khi các công việc bắt đầu hoặc khi người sử dụng login lần đầu tiên.
Các lệnh đưa vào hệ điều hành thông qua bộ điều khiển lệnh. Trong các hệ thống chia xẻ thời gian một chương trình có thể đọc và thông dịch các lệnh điều khiển được thực hiện một cách tự động. Chương trình này thường được gọi là bộ thông dịch điều khiển card, cơ chế dòng lệnh hoặc Shell. Chức năng của nó rất đơn giản đó là lấy lệnh kế tiếp và thi hành.
Mỗi hệ điều hành sẽ có những giao tiếp khác nhau, dạng đơn giản theo cơ chế dòng lệnh, dạng thân thiện với người sử dụng như giao diện của Macintosh có các biểu tượng, cửa sổ thao tác dùng chuột.
Các lệnh có quan hệ với việc tạo và quản lý các tiến trình, kiểm soát nhập xuất, quản lý bộ lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin và cơ chế bảo vệ.
Được sửa bởi NguyenTienPhong083 (I11C) ngày 8/9/2011, 23:34; sửa lần 1.
NguyenTienPhong083 (I11C)- Tổng số bài gửi : 37
Join date : 26/08/2011
Age : 36
Thế giới ảo là gì ?
Thế giới ảo nói theo một cách đơn giản đó là thế giới không có thật. Trên thực tế, những gì mình mắt thấy tai nghe đều là ảo ảnh.
Lấy ví dụ như bạn quan sát một viên đá. Nó là một thể rắn, bạn có thể cầm nó. Nêú bạn đặt nó nằm yên trên mặt đất, bạn sẽ thấy nó nằm yên trên mặt đất nhưng thực tế không phải vậy. Mình sẽ nói là viên đá vẫn chuyển động. Vì sao ? Trên thực tế thì mọi vật chất đều được cấu tạo từ nguyên tử và phân tử. Viên đá cũng vậy. Nguyên tử và phân tử luôn chuyển động nhưng những chuyển động đó mắt thường không nhìn thấy được.Vì vậy bạn sẽ thấy viên đá đứng yên.
Lấy ví dụ như bạn quan sát một viên đá. Nó là một thể rắn, bạn có thể cầm nó. Nêú bạn đặt nó nằm yên trên mặt đất, bạn sẽ thấy nó nằm yên trên mặt đất nhưng thực tế không phải vậy. Mình sẽ nói là viên đá vẫn chuyển động. Vì sao ? Trên thực tế thì mọi vật chất đều được cấu tạo từ nguyên tử và phân tử. Viên đá cũng vậy. Nguyên tử và phân tử luôn chuyển động nhưng những chuyển động đó mắt thường không nhìn thấy được.Vì vậy bạn sẽ thấy viên đá đứng yên.
TranHaDucHuy (I11c)- Tổng số bài gửi : 10
Join date : 02/09/2011
Trang 1 trong tổng số 8 trang • 1, 2, 3, 4, 5, 6, 7, 8
Trang 1 trong tổng số 8 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết