다윈에는 다른 유닉스에는 없는 기능이 있고, 그 반대의 경우도 있습니까?

다윈에는 다른 유닉스에는 없는 기능이 있고, 그 반대의 경우도 있습니까?

다윈은 독특한 특징을 갖고 있나요? 다른 Unix에는 Darwin에 없는 기능이 있습니까?

답변1

OS X는 이제 남은 유일한 운영체제다.마하 마이크로커널 기반여전히 사업적으로도 의미가 있습니다. 의심할 여지없이 여전히 구형 기계의 생산에 사용되고 있는 몇 가지 진행 중인 연구 프로젝트와 오래된 운영 체제가 있지만 오늘날 새 기계에서는 아무것도 구입할 수 없습니다.

OS X에는 모든 *ix에 있는 일반적인 커널 기능 비호환성이 있습니다. 최근 제가 겪고 있는 가장 큰 문제는 부족한 부분입니다.시스템 V 메시지 큐. ( msgget(2)친구들과 함께.) 우리 소프트웨어를 OS X에서 실행하려면 메시지 대기열 코드("실제" System V 변형용으로 작성되었고 나중에 Linux로 포팅됨)를 TCP/IP로 바꿔야 했습니다. 우리 응용 프로그램의 경우 메시지 큐를 사용하기로 선택할 때 두 IPC 방법의 차이가 중요했지만 이후 아키텍처 변경으로 인해 궁극적으로 TCP/IP로 전환하는 것은 큰 문제가 되지 않았습니다.

답변2

결국 Darwin은 Mach 2.0 위에 있는 얇은 BSD 계층이 아닌가?

예전에 NeXTStep을 사용했었는데, 현재의 MacOSX가 NeXTStep과 어느 정도 차이가 나는지는 모르겠지만...

Mach 2.0은 커널 수준에서 다양한 추상화 세트를 제공합니다.

  1. "작업": 이것은 스레드가 실행될 수 있는 주소 공간 + "포트" 집합입니다.
  2. 실. 이는 예약 가능한 실행 단위입니다. 하나의 작업(주소 공간)에서 여러 작업을 실행할 수 있습니다. 나는 Mach-O 파일(Mach의 실행 파일 형식)이 프로세스가 실행되는 동안 여러 스레드를 지정할 수 있다고 믿습니다. main() 함수가 더 많은 Cthread를 시작하지 않으면 운영 체제가 하나를 시작합니다.
  3. 포트. 이러한 포트는 TCP 또는 UDP 포트와 다릅니다. 이는 입력되고 순서가 지정된 메시지 스트림입니다. RPC와 더 유사합니다. 프로토콜 사양 파일을 작성한 다음 컴파일러를 통해 해당 파일을 실행하여 서버 및 클라이언트 스텁, 마샬링 및 마샬링 해제 루틴 등을 얻습니다.
  4. 사용자 수준 메모리 호출기. 다른 작업의 주소 공간 페이징을 처리하기 위해 작업 + 스레드를 설정할 수 있습니다.

원래 CMU Mach 사람들은 이러한 추상화를 사용하여시뮬레이션BSD Unix 프로세스, MS-DOS 프로세스 및 매우 이상한 VMS 작업. 각 VMS 작업에는 2개의 Mach 작업과 많은 스레드가 필요합니다. 누군가가 사용자 공간 호출기를 사용하여 좋은 효과를 내는 Mac OS(OSX 이전)용 NeXTStep 에뮬레이터를 판매한 적이 있습니다.

Old Carnegie Mellon University 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

답변3

완전한 답변은 아니지만,DTraceLinux가 아닌 Solaris, Darwin/OS X 및 *BSD를 위한 훌륭한 시스템 디버깅 도구입니다.

답변4

나는 다윈이 다른 사람으로 가장 잘 묘사된다고 생각한다.유닉스 스타일. 솔라리스도 그 중 하나입니다. HP/UX는 또 다른 것입니다. 많이있다, "하이 프로필"은 아닐 수도 있지만 거기에 있습니다. 각 맛에는 고유한 특성이 있습니다. 그래서 애초에 맛이 있는 거죠. 일부 회사에서는 이를 판매하는 데 도움이 되는(또는 그냥 사용하거나 관리하는 데 도움이 되는) 제품을 만든 다음 자체 이름을 지정합니다.

관련 정보