Darwin có những tính năng nào mà các Unix khác không có, hoặc ngược lại?


19

Darwin có bất kỳ tính năng cụ thể nào không? Các Unixe khác có các tính năng mà Darwin thiếu không?

Câu trả lời:


20

OS X là hệ điều hành duy nhất còn lại dựa trên vi hạt Mach vẫn còn liên quan đến thương mại. Có một vài dự án nghiên cứu và hệ điều hành lỗi thời đang diễn ra mà không nghi ngờ gì vẫn đang được sử dụng trong cài đặt sản xuất trên các máy cũ, nhưng không có gì bạn có thể ra ngoài và mua trên một máy mới ngày hôm nay.

OS X có các loại không tương thích tính năng kernel thông thường mà bất kỳ * ix nào cũng có. Một trong những lớn nhất thời gian gần đây nhất mà tôi đã phải làm việc xung quanh là một thiếu hàng đợi tin nhắn System V . ( msgget(2)và bạn bè.) Chúng tôi đã phải thay thế mã hàng đợi tin nhắn - được viết cho biến thể System V "thực" và sau đó được chuyển sang Linux - bằng TCP / IP để phần mềm của chúng tôi chạy trên OS X. Đối với ứng dụng của chúng tôi, sự khác biệt giữa hai phương thức IPC này có ý nghĩa vào thời điểm chúng tôi đưa ra lựa chọn đi theo hàng đợi tin nhắn, nhưng do những thay đổi kiến ​​trúc sau này, cuối cùng nó không phải là một vấn đề lớn để chuyển sang TCP / IP.


11

Khi nói đến nó, không phải Darwin chỉ là một lớp BSD mỏng trên đỉnh Mach 2.0 sao?

Tôi đã từng sử dụng NeXTStep, tôi không biết MacOSX hiện tại rời khỏi NeXTStep bao nhiêu, nhưng ...

Mach 2.0 cung cấp một bộ trừu tượng khác nhau ở cấp hạt nhân:

  1. Một "tác vụ": đó là một không gian địa chỉ + một tập hợp các "cổng", có thể có một luồng chạy trong đó.
  2. Chủ đề. Đây là đơn vị thực hiện lịch trình. Một tác vụ (không gian địa chỉ) có thể có nhiều hơn 1 hoạt động trong đó. Tôi tin rằng các tệp Mach-O (định dạng tệp thực thi của Mach) có thể chỉ định nhiều luồng trong thời gian chạy quy trình: không có hàm main () nào khởi động nhiều Cthread hơn, HĐH sẽ khởi động một luồng.
  3. Cổng. Chúng không giống như cổng TCP hoặc UDP. Họ đã gõ, ra lệnh các dòng tin nhắn. Khá giống RPC. Bạn đã tạo ra một tệp đặc tả giao thức, sau đó chạy nó thông qua một trình biên dịch để có được các sơ khai phía máy chủ và máy khách, các thói quen sắp xếp theo thứ tự và không sắp xếp, v.v.
  4. Cấp độ bộ nhớ người dùng. Bạn có thể thiết lập một tác vụ + luồng để xử lý phân trang các không gian địa chỉ của các tác vụ khác.

Các CMU Mach ban đầu đã sử dụng các khái niệm trừu tượng này để mô phỏng các quy trình BSD Unix, các quy trình MS-DOS và trong một nhiệm vụ tuyệt vời của các nhiệm vụ VMS. Mỗi tác vụ VMS nhận 2 nhiệm vụ Mach, cộng với nhiều luồng. Ai đó đã từng bán một trình giả lập Mac OS (tiền OSX) cho NeXTStep, sử dụng máy nhắn tin không gian người dùng để có hiệu quả tốt.

Trang ấn phẩm CMU Mach cũ: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/document_top.html

Giấy VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf


2
Mac OS X (và do đó Darwin) sử dụng Mach 3.0.
bahamat

5

Đây không phải là một câu trả lời, nhưng, DTrace là một công cụ gỡ lỗi hệ thống tuyệt vời tồn tại cho Solaris, Darwin / OS X và * BSD, nhưng không phải Linux.


3
Oracle đã chuyển DTrace sang Linux vào năm 2011
MattBianco

1
Kể từ tháng 10 năm 2011, Oracle đã công bố chuyển DTrace từ Solaris sang Linux, nhưng đến ngày 13 tháng 10 năm 2014 thì nó vẫn chính thức không có sẵn. ( Slideshare.net/brendangregg/from-dtrace-to-linux )
scravy

4

Darwin có một bộ các loại hệ thống tệp được hỗ trợ tương đối nhỏ. Ngoài các sản phẩm đặc biệt như devfs và các loại mạng như webdav, danh sách này là:

  • HFS / HFS +
  • UFS / FFS
  • ISO-9660 / UDF / CDDA
  • NTFS
  • MẬP

Trong danh sách này, chỉ có UFS được thiết kế cho Unix, mặc dù HFS + đã được nâng cấp để hỗ trợ tất cả các chức năng Unix cần thiết. Kể từ Mac OS X 10.6, UFS không thể được sử dụng cho phân vùng gốc, mặc dù hạn chế này có thể không áp dụng cho Darwin. Theo mặc định, HFS + không phân biệt chữ hoa chữ thường, mặc dù độ nhạy trường hợp có thể được yêu cầu tại thời điểm tạo. Mặc dù Mac OS X sẽ chạy trên phân vùng phân biệt chữ hoa chữ thường, nhiều ứng dụng Mac cấu hình cao sẽ không (ví dụ: Adobe CS).

Trong một thời gian, Apple đã lên kế hoạch thay thế HFS bằng ZFS và thậm chí đã phát hành ZFS với một số phiên bản của Mac OS X, nhưng đáng buồn là thử nghiệm này cuối cùng đã thất bại vì các vấn đề cấp phép không thể giải quyết .


Tôi tin rằng hỗ trợ ghi NTFS của OS X / macOS được báo cáo là vẫn còn lỗi, vì nó vẫn còn thử nghiệm và chưa bao giờ ổn định, như tôi nhớ.
RandomDSdevel

3

Tôi nghĩ tốt nhất là mô tả Darwin như một hương vị khác của UNIX . Solaris là một. HP / UX là khác. Có nhiều hơn nữa , có thể không phải là "cao cấp" nhưng chúng ở đó. Và với mỗi hương vị đi kèm chi tiết cụ thể của nó. Đó là lý do tại sao có hương vị ở nơi đầu tiên. Một số công ty nghĩ ra thứ gì đó sẽ giúp bán nó (hoặc đơn giản là làm việc với nó hoặc thậm chí quản trị nó) và tạo ra nó và đặt tên riêng cho nó.


2
UNIX (trong tất cả các mũ) là nhãn hiệu đã đăng ký của Nhóm mở tại nhiều quốc gia; đối với một cái gì đó là "UNIX" (trong tất cả các mũ), cần phải có chứng nhận . Darwin không phải là một "hương vị của UNIX" - nhưng Mac OS X 10.10 trên Intel x86-64 được chứng nhận là một UNIX khác.
dùng314104

0

Nếu tôi đã nghe đúng Darwin, do Apple phát hành, không còn hoạt động như một hệ điều hành độc lập, vì vậy tôi chỉ ra rằng sự khác biệt lớn nhất của nó là OS X ở trên nó. : D

Mặc dù sự tích hợp giữa Mac OS cũ, Mac OS X mới và các công cụ NeXT đôi khi rất buồn cười, nhưng các tiện ích nhỏ như Diskutilhdiutil là tuyệt vời. Có thể đó là một số kiến ​​trúc sư hạt nhân Mach cũ còn sót lại từ NeXT, những người sử dụng những điều nhỏ nhặt này và quan tâm đến họ, những người đã đảm bảo XCode cũng là một công cụ tốt.


-1

Darwin dựa trên FreeBSD. Một tính năng thú vị không có trong các hệ điều hành Unix khác (theo kinh nghiệm của tôi) là Bộ lọc gói Berkeley , hay còn gọi là /dev/bpf. Đây là một thiết bị rất linh hoạt mà bạn có thể sử dụng để chụp gói.


1
Darwin không thực sự dựa trên FreeBSD, mặc dù nó mượn một số thứ của người dùng từ nó. Các ý kiến ​​khác ở đây giải thích rằng tốt hơn. bpf (4) không chỉ riêng Darwin và FreeBSD / NetBSD / OpenBSD, và tôi có cảm giác rằng ai đó thậm chí có thể đã triển khai nó cho các nhân Linux trước đó. SCO (in-) nổi tiếng đã có nó trong sản phẩm Unixware của họ.
jrg

-11

Đầu tiên tôi nghĩ đến là tất cả các công cụ mà OSX có trong bảng điều khiển .. có rất nhiều lệnh hữu ích hơn mà unix có. Diskutil giống như ma thuật phân vùng trong shell, công cụ này có rất nhiều tùy chọn cho hoạt động của đĩa mà fdisk thực sự chỉ bằng 10% những gì con thú này có ... btw osx hỗ trợ phần mềm Raid thực sự tuyệt vời mà bạn có thể có cuộc đột kích phần mềm JBOD, Dải và Gương các loại .. thực sự unix có điều này? trong những giấc mơ của bạn!! ; D

SystemProfiler - công cụ tuyệt vời hiển thị tất cả id, tên, mô hình, sn và những thứ tương tự như vậy một cách RẤT thoải mái.

hạt nhân darwin không hoàn toàn trong suốt như trong unix.

darwin có killall produc = P unix không, chỉ có kỹ năng

hệ thống tập tin khác nhau cũng .. HFS, HFS +

có lẽ sau này tôi sẽ nhớ nhiều hơn =)


2
Ý bạn là Darwin có 'killall' và các biến thể Unix khác không? Đo không phải sự thật.
kbyrd

2
Câu trả lời này là nghi ngờ của trolling. Không cần thiết phải quá phỉ báng trong các tuyên bố của bạn về * nix ngoài os X. Ngoài ra, lần trước TÔI ĐÃ SỬ DỤNG * NIX killall hoàn toàn có mặt trong PATH của tôi. Ngoài ra, linux có trình biên dịch hệ thống. Làm bài tập về nhà đi. Đừng là một déuche. chỉnh sửa: Tôi sử dụng và rất thích OS X.
Eli Frey

2
Tôi có killall trên linux, vì vậy nó không phải là duy nhất với darwin
xenoterracide

2
Câu trả lời này rất mơ hồ và không chính xác. Fdisk thiếu những tính năng hữu ích nào? Linux RAID (mdadm) không có sự kết hợp (LINEAR), phân chia (RAID0) và phản chiếu (RAID1), trong số những thứ khác. Linux cũng hỗ trợ cả HFS và HFS +.
Matthew Flaschen

3
BTW: Linux-killall và Solaris-killall khá khác nhau
EricSchaefer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.