문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 macOS (문단 편집) == 구조 == [[파일:mac_os_architecture.png]] 32비트와 64비트 커널을 모두 사용할 수 있는 운영체제로[* [[iOS]]는 현재 32비트의 사용을 중단하고 64비트만 사용 중이다. 그리고 macOS도 카탈리나부터 유저랜드 32비트 레이어를 삭제했기 때문에 64비트 환경만 지원된다.] Mach 커널에 BSD 커널을 얹은 [[XNU]] 커널과 그 커널을 베이스로 만들어진 독립형 OS [[Darwin]]을 기반으로 한다.[* Darwin의 많은 부분을 잡스의 전직 [[NeXT]]의 [[NeXTSTEP]]에서 가져왔다.] 그러므로 당연히 [[Unix]] 기반이고 일반적인 사용자라면 쓸 일이 많지 않을 터미널도 기본적으로 가지고 있다. BSD를 기반으로 한 덕택에 sudo를 비롯한 대부분의 Unix 명령어는 터미널 내에서 다 동작하고 Unix 운영체제에서 인기있는 [[셸(컴퓨터)|셸]] 중 하나인 zsh도 기본으로 설정되어 있으며[* 과거에는 FreeBSD와 같은 csh가 기본이었다. 그리고 Bash를 쓰긴 하나 Apple의 병적인 [[GNU 일반 공중 사용 허가서|GPL]] 기피로 인해 GPL로 넘어가기 전의 버전을 사용하고 있으며 보안 취약점에 대해서만 업데이트해주고 있다. 하지만 HomeBrew 패키지 관리자를 이용하면 최신 버전의 Bash로 업데이트할 수 있다. 10.15 카탈리나부터는 zsh이 기본이다.] [[vim]]이나 [[Emacs]] 같은 친숙한(!) 에디터도 이미 설치되어 있어[* 물론 GUI가 아닌 터미널 버전이다.] 기존에 Unix 운영체제에서 터미널 위주로 사용하던 사람들이나 개발자들은 기존에 하던 것과 동일하게 터미널로만 대부분의 작업을 하는 것도 가능하다.[* 단, Unix나 Linux 처럼 GUI 없이 CLI로만 사용하는 기능은 없다.] [[Python]], [[Perl]], [[Ruby]] 등의 인터프리터는 깔려있지만 정작 [[C(프로그래밍 언어)|C]]/[[C++]]/[[Objective-C]]/[[Swift]] 컴파일러는 깔려있지 않아 C 계열 언어의 프로그래밍을 하기 위해선 [[Xcode]]를 설치해야 한다. Xcode 설치를 원하지 않는다면 터미널에서 git 또는 gcc, clang 등의 명령어를 입력하면 해당 개발자 도구들을 설치하는 창이 뜬다.[* Xcode 4의 경우 설치 후 커맨드라인 툴을 사용한다고 체크하면 [[LLVM]]/[[Clang]]을 사용할 수 있다. 원래는 LLVM-GCC 4.2를 함께 제공하다가 결국 Xcode 버전 5를 기점으로 남아있던 LLVM-GCC 4.2마저 제거하고 LLVM/Clang으로 완전히 넘어갔다. 즉, 현재 macOS에서 gcc == clang이다.] [[Java]] 같은 경우도 원래는 깔려있었는데 [[오라클(기업)|오라클]]이 아닌 Apple이 Mac용 Java를 자체적으로 관리하면서 버전 업데이트가 늦어지는 바람에 보안 문제가 한 차례 대두되었고 이 때문에 OS X 10.7 Lion부터는 Java가 설치되어있지 않고 Java 프로그램을 실행하면 그제서야 오라클표 Mac용 Java를 설치하겠냐는 대화 상자가 뜬다. Windows 및 Linux 계열 운영체제와 가장 차별화되는 부분은 커널 위에 얹은 '''쿼츠'''라는 부분이라 할 수 있다. 이 쿼츠는 그래픽을 그리는 부분을 전담하는데 [[PDF]] 기반[* 정확히는 PostScript.][* 덕분에 대부분의 문서를 PDF로 저장할 수 있다.]으로 그래픽 카드의 힘을 빌려 래스터나 벡터 그래픽, 동영상을 렌더링한다.[* 항시 데스크탑이 그래픽 카드와 OpenGL로 가속되어 표시된다고 생각하면 쉽다.] 이 부분에 자원이 많이 소비되었던 것이 초기의 OS X이 형편없었던 큰 이유 중 하나였지만 세월이 흘러 사양이 높아지고 쿼츠는 '''쿼츠 익스트림'''으로 발전하여 [[OpenGL]] 기반이 되면서 해결되었다. 그리하여 강력한 데스크톱 그래픽 표현이 가능해졌다. 그래픽 카드가 쿼츠 익스트림과 코어 이미지를 지원하느냐 하지 않느냐로 해킨토시 성공 여부의 절반 이상이 판가름되니만큼 아주 중요하다고 할 수 있다. [[Microsoft Windows|Windows]]는 십 년이 넘은 레거시 소프트웨어들이 판을 치는 운영체제인지라 이것들을 위한 하위 호환성을 비롯한 여러 가지 문제로 인해서 GDI, GDI+, Direct2D까지 발전해 오면서도 표준 인터페이스를 강제할 수 없었으나 Apple의 경우는 소프트웨어 호환성보다 최신 기술의 적용을 우선하는, 기업 사용자의 안정성을 무시하는 거듭된 마이그레이션과 바이너리 교체 등을 통해 문제를 해결하는 짓을 자주 행했다. ~~[[하위 호환]] [[다리 따위는 장식입니다|따위는 장식입니다]].~~ 사실 레거시 호환에 대해서 Microsoft는 거의 결벽증에 가까운 자세를 보이는데 Mac은 기업이 불편함을 느낄 정도로 레거시 호환에 대해 신경을 안 쓴다면 Microsoft는 개인 사용자가 불편을 느껴도 기업을 위한 레거시를 고집하는 경향이 있다고 볼 수 있다.[* 대표적인 것이 260문자로 제한된 경로명과 문자 인코딩이다. 오늘날 Windows 커널/NTFS 파일 시스템에서는 그보다 훨씬 많은 32767문자까지 지원을 하는데도(이마저도 오늘날 다른 파일 시스템에 비하면 비교적 낮은 편이다.) 레거시 호환 때문에 파일 경로명이 259자가 넘어가면 일부 구형 프로그램에서 애로 사항이 꽃핀다.(그 구형 프로그램에 Windows 기본 파일 매니저가 포함되어 있다는 게 에러지만.)] 사실 Windows 쪽이 레거시 호환을 극단적으로 신경쓸 수밖에 없는 이유가 Apple은 하드웨어를 팔아서 돈을 벌고 주 사용자층도 개인 사용자 쪽이 많은 편이지만 MS는 OS를 팔아야 하고 기업과 관공서 쪽을 많이 공략하는 편인데 대다수의 기업과 관공서들은 레거시 호환이 안 되면 거들떠도 안 보기 때문이다.[* 최근에는 [[월드 와이드 웹]] 같은 산업 표준 플랫폼의 보급률과 퀄리티가 좋아져 특정 OS에 대한 종속을 되도록 피하려고 하는 편이기에 Mac으로도 기업 시스템에 좀 더 수월하게 접근할 수 있게 되었지만 반대로 이러한 웹 앱의 증가는 Apple의 장점인 개인 사용자 특화의 사용자 환경이 사용될 가능성을 줄인다는 점에서 양날의 검이라고 할 수 있다. [[스티브 잡스]]가 상식을 넘어서는 수준으로 신경질적인 반응을 보인 [[iOS]] 네이티브 환경과 이에 진입하려던 [[Adobe Flash]]의 관계와 같다고 보면 된다.] macOS는 어차피 낮은 점유율로 똥배짱을 부릴 수 있는 처지지만 Windows는 전체 시장의 90%에 이르는 점유율로 기존 사용자들을 무시할 수 없는 배경도 작용한다. macOS의 안정성은 Mac 하드웨어가 거의 정형화 되어있다는 점뿐만 아니라 위에서 말한 것과 같이 오랜 역사를 갖는 Mach/BSD 기반이라 [[Unix]]의 안정성을 그대로 물려받았다는 점에서도 기인한다. Unix 오픈소스 자원봉사자들은 클로즈드소스인 macOS에 대해서 부정적이다. 허나, 정작 실력있는 개발자는 대기업 애플에 채용되어 고연봉 개발자로 활동한다.[* 평가가 나쁜 것은 Unix에서 벗어나서라기보다는 자체 개조 부분의 폐쇄 정책과 같은 자의적 라이선스 조항들 때문인데 이는 BSD 인증에 포함되어 있다. 따라서 공개하긴 했는데 구형 커널만 공개한 상태라서 더 욕을 먹는 상황이다.][* 단, 여기서 말하는 Unix 진영의 범위라는 것이 상당히 축소되는데 Unix 중 Solaris나 AIX, HP-UX 등의 오픈 소스에서 거리가 먼 것들의 경우 직접적으로 "진영"으로 얘기되는 일이 별로 없으며 따라서 오픈 소스 계열의 Unix인 [[BSD]]와 [[Linux]]가 말이 많게 된다. 게다가 BSD의 경우 Apple로부터 도움을 상당히 많이 받았고 서로 협력 관계에 있기 때문에 Apple을 비난할 만한 상황이 아니다. 그렇기 때문에 [[macOS]]와 [[Linux]]의 사용자층끼리 서로 사이가 그닥 좋지 않다.] 다만 안정성이 높다는 것을 완전무결하다는 것으로 오해해서는 안 된다. Mac 또한 [[블루스크린]]에 해당하는 '''[[커널 패닉]]'''이라는 것이 존재하고 그 밖의 문제점도 수없이 존재한다.[* 케이머그(KMUG)의 QnA 코너에 가 보면 어느 정도인지 알 수 있다.] Apple은 서버 시장에도 Mac OS X Server라는 이름으로 제품을 출시했었지만 [[듣보잡]]을 면치 못하다가[* 일단 하드웨어와 묶어 파는지라 가격이 안드로메다로 가버리기도 했고 Apple 이미지 자체가 서버 같은 IT 프로용 기기를 만드는 회사가 아니고 이전에 만들어 팔았던 Mac OS 기반의 Apple 워크스테이션들이 워낙 괴악한 물건들이었던지라 신뢰도도 떨어진다.] 2010년 10월에 Xserve라는 1U 서버 제품을 단종시키고야 말았다. 그 대신 Mac Pro에 서버 모델이 새로 생겼는데 이는 그래픽 성능을 버리고 macOS 서버 버전이 기본 설치된 모델.[* 2013,2019년형 Mac Pro는 Server 모델에 대한 이야기가 없다.] 기존의 소규모 서버용으로 판매되던 Mac mini Server는 계속 유지. OS X 10.7 Lion 서버부터는 기존 Mac OS X Server 운영체제에 복잡하게 나눠져 있던 모든 기능들이 응용 프로그램 하나로 묶여서 Mac App Store에 올라와 있다.[* 더불어 완전한 한국어화도 이루어졌다.][* Mac OS X 10.6 Snow Leopard 서버까지는 텍스트 인코딩 방식의 차이 때문에 한국어 [[Windows XP]] 사용자들이 [[FTP]]로 접속하는 경우 파일명이 깨지거나 ㄴㅏㅁㅜㅇㅟㅋㅣ.txt처럼 분해되어서 표시되었다. 왜냐하면 Mac에서는(정확히는 HFS+ 파일 시스템에서는) 유니코드의 정규화 방식 D(NFD)를 사용하였고 Windows에선 정규화 방식 C(NFC)를 사용하였기 때문이다. NFD에 의해 [[Windows Vista]]부터는 Windows의 텍스트 인코딩 방식이 바뀌어서 문제가 없다고 하지만 [[Windows 7]] 이외에는 NFD로 정규화된 첫가끝 방식의 한글을 적절하게 표시할 수 있는 서체가 포함되어 있지 않기 때문에 보내는 파일은 웬만하면 영문으로 보내는 게 낫다.(이 파일명 NFD 정규화는 [[리누스 토르발스]]가 macOS와 HFS+를 [[디스]]하는 원인이 되기도 했다.) 현대 한글 NFC ↔ NFD 변환 테이블은 [[현대 한글 NFC ↔ NFD 변환 테이블]] 문서를 참고할 것. ~~사실 HFS+가 ext4 같은 거에 비하면 좀 구리긴 하다~~ 또한 OS X 10.7 Lion부터는 '''AirDrop'''이 생겼기에 Apple이 GUI 상에서의 FTP 공유 기능을 빼버렸다. 물론 [[http://hints.macworld.com/article.php?story=20110725142848292|터미널에서 켜고 끌 수 있고]] 필요하면 FTP 프로그램을 사용하면 된다.] Apple의 슬로건은 "모두를 위한 서버". 하지만 사용자들 사이에서는 호불호가 나뉘는데 거의 모든 기능이 대폭 간소화되었고 약간의 커스텀이라도 하고 싶으면 거의 다 터미널에서 수작업을 해야 하는 방식이 돼 버렸다.[* 특히 웹 서버 기능을 사용할 경우가 그렇다. 2018년 macOS Server 업데이트로 DNS와 VPN 등의 핵심 기능이 제거되었기 때문에 현 시점에서 비즈니스용 서버 OS로서의 역할은 사실상 유명무실해졌다고 할 수 있다.] Unix를 기반으로 했기 때문에 Linux 서버 관리와 큰 차이는 없지만 Apple이 밀고 있는 사용자 관여의 최소화가 꼭 장점만은 아닌 것이다. 대신 iOS 기기를 사용하는 경우 일정 관리, 메일, 주소록 등을 실시간으로 [[iCloud]]를 통해 동기화할 수 있고 자체적으로 푸시 알림도 보내준다. 서버 운영체제가 아니라 NAS용 시스템이라며 비아냥받기도 하지만 Apple이 구현한 기능'''만''' 사용한다면 NAS만큼 편하다(...). 즉 싱크 서비스 같은 Apple 고유의 서비스를 중점적으로 쓸 이유가 없다면 오픈 소스 소프트웨어로 구축하면 된다. 실제로 오픈 소스 기반의 Mac용 프로그램들을 쉽게 설치할 수 있는 패키지 관리자가 많이 나와 있다. 핑크(Fink), MacPort[* 이는 FreeBSD의 유명한 ports를 Mac으로 옮긴 것.], 홈브루(HomeBrew)가 그것. 핑크는 구버전이지만 가장 안정적인 환경을 구성할 수 있고 MacPort는 최신 버전의 오픈 소스 소프트웨어를 한두 줄 명령으로 설치하는 게 가능하며 홈브루의 경우도 MacPort와 마찬가지로 한두 줄 명령어로 설치 가능하다. 설치할 때 관리자 권한이 필요한 MacPort와 달리 홈브루의 경우 관리자 환경에서 실행하는 걸 권장하지 않는다. 또한 홈브루는 MacPort와 달리 macOS에 이미 있는 기능의 경우 설치를 하지 않아 MacPort보다 더 안정적이라고 볼 수 있다.[* 물론 홈브루의 tab을 추가하여 중복항목을 추가할 수 있다.] 따라서 최근에는 대다수의 오픈 소스 소프트웨어 설치 과정이 홈브루로 통일된 상황이다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기