Sử dụng Windows cho các dịch vụ Unix

Bạn có muốn chạy các ứng dụng tốt nhất trên cả hai hệ điều hành Windows và Unix? Trong bài viết này chúng tôi sẽ giới thiệu cho các bạn về một tùy chọn cho công việc này: Thành phần Posix của Microsoft. Nó sẽ khiến các ứng dụng của Unix cho rằng chúng đang sử dụng các ứng dụng Unix nhưng thực sự khi đó chúng đang sử dụng Windows.

Sớm hay muộn thì mỗi người quản trị cũng thấy rằng anh ta muốn một điều là có thể chạy các chương trình ứng dụng bằng nhiều hệ điều hành trên đồng thời một máy và sau đó cố gắng để tìm ra một giải pháp để làm được điều đó.

Có thể bạn thích sử dụng Microsoft Exchange nhưng bạn vẫn muốn có được các công cụ e-mail mã nguồn mở giống như SpamAssassin hay fetchmail. Hoặc có thể bạn đang sử dụng các ứng dụng Unix cho các dịch vụ mạng, nhưng bạn lại thực sự muốn chạy chúng dưới Windows để bạn có thể tích hợp chúng thành toàn bộ mô hình bảo mật mạng của bạn. Trong bất kỳ trường hợp nào bạn cũng mong muốn có thể chạy các chương trình tốt từ các hệ điều hành.

Trong trường hợp của tôi, tôi đã thực hiện giải pháp này khi đang nâng cấp một ứng dụng cũ và tôi đã mắc một lỗi trong việc mua một bo mạch chủ mới của Intel mà vẫn không thích hợp với sự hỗ trợ của driver Linux. Nếu tôi sử dụng hệ thống này thì nó có thể chạy được Windows, nhưng hầu hết các phần mềm của tôi trên hệ thống này chỉ được thiết kế cho Unix.
Giải pháp thông thường với tình trạng này là bắt buộc bản thân bạn phải chọn một platform bằng cả các danh sách chi tiết mang nặng tinh lợi và hại cho mỗi hệ điều hành và cả việc sử dụng các kỹ thuật tiến bộ đã được xác nhận và sau đó phát triển với các công cụ giúp ích có sẵn. Nhưng lý do bạn gặp tình trạng này là bởi vì bạn muốn sử dụng các ứng dụng từ các platform để phát triển hầu hết các ứng dụng luân phiên nghĩa là sử dụng cái nào tốt hơn, là tối ưu.

Một cái nữa ở đây có thể làm được đó là có thể chạy nhiều hệ thống song song hay sử dụng kỹ thuật ảo để chạy nhiều platform trên hệ thống đơn. Có một thuận lợi khi sử dụng phương pháp này là sẽ đem lại giá thành thấp đỡ tốn chi phí cho cả hai loại hệ điều hành. Mặc dù vậy cũng có những vấn đề phát sinh do người dùng sử dụng các phương pháp khác nhau trong các lĩnh vực khác nhau.

Nhưng có một lựa chọn khác mà không phải bất kỳ ai cũng biết đó là để chạy các ứng dụng Unix của bạn dưới Windows bằng việc sử dụng Posix, dịch vụ của Microsoft cho Unix. Theo mô hình này, hệ điều hành hoạt động thực là Windows trong khi hệ thống cung cấp Posix-compliant cho hệ điều hành. Các ứng dụng Unix cho rằng chúng đang sử dụng Unix thông thường, nhưng thực ra chúng đang sử dụng tài nguyên Windows.

Hình vẽ này sẽ giải thích rõ ràng hơn. Nó sẽ rất dài nhưng chỉ cần một đoạn ngắn trên màn hình cũng giúp bạn hiểu nó nghĩa như thế nào.

Trong ví dụ này, một người dùng Windows đã vào được Windows XP thông qua cấu trúc bash cục bộ bằng việc sử dụng Posix trong SFU. Môi trường nhìn trông khá giống với hệ thống Unix nhưng thực tế là Windows XP.

Posix cho Windows đã có trong một thời gian ngắn. Kỹ thuật này được gọi là Interix và được phát triển bởi công ty Softway Solutions đã sử dụng cùng với Windows NT. Microsoft có được công ty này vào mùa thu năm 1999 và sau đó kết hợp Interix với vài NFS khác và kỹ thuật NIS vào gói bán lẻ được gọi là các dịch vụ cho Unix 2.0 (cũng được biết đến như SFU). Bây giờ nó đã phát triển thành SFU v3.0 và SFU v3.5có thể download miễn phí (bạn có thể download tại đây).

Microsoft đang chuyển tiếp lại sản phẩm này bằng việc tích hợp nó vào Windows. Với thành phần Posix được đặt tên lại là Subsystem cho Unix Applications (SUA). Sự chuyển tiếp này bắt đầu với Windows Server R2 nhưng nó cũng là chiến lược đang hướng đến cho Vista. Việc ghi nhãn hiệu mới cũng biểu thị rằng SUA là bản viết lại của Posix – bao gồm sự hỗ trợ 64-bit platform, các giao diện Open Database Connectivity (ODBC), và sự tích hợp hơn với Microsoft Visual Studio. Nhưng với các ứng dụng user-space thì nó vẫn là Interix.

Về cơ bản, Posix ánh xạ các tài nguyên Windows vào môi trường Unix bằng việc cung cấp một sự lựa chọn “cá nhân” trong Windows thông qua một thiết lập các APIs và các tuyên bố giống Unix. Ví dụ, các account người dùng không được lưu trong file /etc/passwd truyền thống mà thay vì đó được truy cập thông qua các thư viện gọi giống như getpwnam và getpwuid. Sau đó Posix ánh xạ đến hệ thống xác nhận Windows thông qua SAM database API đã có.

Mô hình này cho phép sự xác nhận Windows lưu công việc liền mạch, không quan tâm đến lưu bản thân nó là một dữ liệu nhóm và người dùng cục bộ, một NT domain đã có, hay một Active Directory domain. Mặt xấu của vấn đề này là dữ liệu tài khoản người dùng bị giới hạn để có thể lưu những gì trong SAM database. Thành phần NIC server của SFU cung cấp cho Posix là có thể mở rộng cho Active Directory, nhưng những thuộc tính này lại không được sử dụng bởi vì Posix chỉ có thể làm việc được với SAM database API.

Tương tự như vậy, hệ thống file Posix khá đơn giản cho các file hệ thống của Windows, nó có thể chỉ sử dụng những gì mà Windows có thể cung cấp. Đường dẫn của các hệ thống file Unix được ánh xạ đến C:\SFU một cách mặc định mặc dù các thành phần khác của hệ thống file Windows có thể được truy cập thông qua biệt hiệu thiết bị. (ví dụ, đường dẫn của ổ C có thể được truy cập thông qua /dev/fs/C ).

Khi không có các định vị được gắn để thi hành thì chỉ có cách truy cập vào các hệ thống file từ xa bằng Posix là thiết lập một kết nối trong Windows. Ví dụ, nếu bạn cần sử dụng một chia sẻ SMB từ xa cho một thư mục gốc của người dùng thì bạn cần bảo đảm rằng tài nguyên phải được ánh xạ đến kí tự ổ đĩa bởi Windows trong suốt quá trình login cả bằng các thiết lập profile của người dùng và cả bằng việc sử dụng một kịch bản login. (Điều này bạn có thể xem trên hình đã cho ở trên. Nó thể hiện thư mục gốc của người dùng ánh xạ đến Z: hoặc /dev/fs/Z trong Posix). Đây cũng có thể là các yếu điểm khác của sự tích hợp trong một vài trường hợp bởi vì thuộc tính thư mục gốc của người dùng cũng được sử dụng cho thư mục gốc Posix của người dùng. Bạn mắc kẹt với UNC và các đường dẫn kĩ tự ổ đĩa cho thư mục gốc SFU trong khi các hệ thống từ xa có thể sử dụng các điểm và các đường dẫn NFS.

Xem tiếp

Thứ Ba, 12/09/2006 08:55
31 👨 588
0 Bình luận
Sắp xếp theo