it-swarm-korea.com

Darwin은 다른 Unix에없는 기능을 가지고 있습니까? 아니면 그 반대의 경우도 마찬가지입니까?

Darwin에 고유 한 기능이 있습니까? 다른 Unixe에 Darwin에없는 기능이 있습니까?

19
Am1rr3zA

OS X는 유일하게 남은 운영 체제입니다 . Mach 마이크로 커널 기반 여전히 상업적으로 관련이 있습니다. 몇 가지 진행중인 연구 프로젝트와 노후화 된 OS가 여전히 오래된 머신의 프로덕션 설정에서 사용되고 있지만 현재 새 머신에서 구매할 수있는 것은 없습니다.

OS X에는 * ix가 가지고있는 일반적인 커널 기능 비 호환성이 있습니다. 내가 가장 최근에 해결해야했던 가장 큰 문제는 System V 메시지 큐 가 없다는 것입니다. (msgget(2) 및 친구들.) "실제"System V 변형을 위해 작성되어 나중에 Linux로 포팅 된 메시지 대기열 코드를 TCP/IP로 교체하여 소프트웨어를 OS에서 실행해야했습니다. X. 우리 애플리케이션의 경우이 두 가지 IPC 메서드의 차이점은 메시지 대기열을 사용하기로 선택했을 때 중요했지만 이후의 아키텍처 변경으로 인해 큰 문제가되지 않았습니다. TCP/IP로 전환합니다.

20
Warren Young

다윈은 Mach 2.0 위에 얇은 BSD 레이어가 아닌가?

NeXTSTEP을 사용했는데 현재 MacOSX가 NeXTSTEP에서 얼마나 많이 출발하는지 모르겠지만 ...

Mach 2.0은 커널 수준에서 다른 추상화 집합을 제공했습니다.

  1. "작업": 그것은 주소 공간 + "포트"의 집합이며 아마도 스레드가 그 안에서 실행될 수 있습니다.
  2. 스레드. 이것은 예약 가능한 실행 단위였습니다. 작업 (주소 공간)에는 둘 이상의 작업이 실행될 수 있습니다. 나는 Mach-O 파일 (Mach의 실행 파일 형식)이 프로세스 런타임에 둘 이상의 스레드를 지정할 수 있다고 생각합니다. 더 많은 Cthread를 시작하는 main () 함수가 없으면 OS가 하나를 시작합니다.
  3. 포트. 이들은 TCP 또는 UDP 포트와 다릅니다. 유형이 지정되고 순서가 지정된 메시지 스트림입니다. 오히려 RPC와 유사합니다. 프로토콜 사양 파일을 만든 다음 컴파일러를 통해 실행하여 서버를 가져옵니다. 클라이언트 측 스텁, 마샬링 및 마샬링 해제 루틴 등.
  4. 사용자 수준 메모리 호출기. 다른 작업의 주소 공간 페이징을 처리하기 위해 작업 + 스레드를 설정할 수 있습니다.

원래의 CMU Mach 사람들은 이러한 추상화를 사용하여 BSD Unix 프로세스, MS-DOS 프로세스 및 VMS 작업에 아주 잘 맞도록 emulate 했습니다. 각 VMS 작업에는 2 개의 Mach 작업과 많은 스레드가 필요했습니다. 누군가가 NeXTSTEP 용 Mac OS (pre-OSX) 에뮬레이터를 판매했는데 사용자 공간 호출기를 사용하여 좋은 효과를 냈습니다.

이전 CMU Mach 출판물 페이지 : http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html

VMS-on-Mach 논문 : http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf

11
Bruce Ediger

이것은 정답은 아니지만 DTrace 는 Solaris, Darwin/OS X 및 * BSD 용으로 존재하지만 Linux에는없는 멋진 시스템 디버깅 도구입니다.

5
kbyrd

Darwin은 지원되는 파일 시스템 유형이 비교적 적습니다. devfs와 같은 특수 기능 및 webdav와 같은 네트워크 유형을 제외하고 목록은 다음과 같습니다.

  • HFS/HFS +
  • UFS/FFS
  • ISO-9660/UDF/CDDA
  • NTFS
  • 지방

이 목록 중 UFS 만 Unix 용으로 설계되었지만 HFS +는 필요한 모든 Unix 기능을 지원하도록 업그레이드되었습니다. Mac OS X 10.6부터 UFS는 루트 파티션에 사용할 수 없지만이 제한은 아마도 Darwin에 적용되지 않을 것입니다. 기본적으로 HFS +는 대소 문자를 구분하지 않지만 생성시 대소 문자 구분을 요청할 수 있습니다. Mac OS X은 대소 문자를 구분하는 파티션에서 실행되지만 많은 유명 Mac 응용 프로그램은 그렇지 않습니다 (예 : Adobe CS).

잠시 동안 Apple HFS를 ZFS 로 대체 할 계획이었고 일부 Mac OS X 버전과 함께 ZFS도 제공했습니다. ,하지만 슬프게도이 실험은 해결할 수없는 라이선스 문제 때문에 결국 실패했습니다.

4
Neil Mayhew

Darwin을 또 다른 NIX의 풍미 로 설명하는 것이 가장 좋습니다. Solaris는 하나입니다. HP/UX는 또 다른 것입니다. 많은 더보기 , 아마도 "높은 프로필"은 아니지만 거기에 있습니다. 그리고 모든 맛에는 고유 한 특성이 있습니다. 그것이 애초에 풍미가있는 이유입니다. 어떤 회사는 그것을 판매하는 데 도움이 될 무언가를 생각하고 (또는 단순히 그것과 함께 일하거나 심지어 그것을 관리하는 것) 그것을 만들고 그것을 만들고 그것의 이름을 부여합니다.

3
reiche

Apple에서 출시 한 Darwin이 더 이상 독립적 인 운영 체제로 작동하지 않는다고 들었다면 가장 큰 차이점은 그 위에있는 OS X입니다. :디

이전 Mac OS, 새로운 Mac OS X 및 NeXT 항목 간의 통합이 때때로 웃기지 만 diskutilhdiutil와 같은 작은 유틸리티는 훌륭합니다. 아마도이 작은 것들을 사용하고 XCode를 좋은 도구로 만든 이들에게 관심을 기울이는 NeXT에서 남겨진 오래된 Mach 커널 설계자 들일 것입니다.

0
Kevin Cantu