현실도피로 써보는 아무도 관심없을 Mac OS TMI history.
 1. 현생 mac os 의 뿌리는 NeXTSTEP 부터 시작
 
2. NeXTSTEP 의 시작은 apple 에서 쫒겨난 잡스가 만든 회사
 
3. 초기버전은 모토롤라의 cpu 를 사용한 전용 하드웨어용 OS 로 시작
 
4. 이게 얼마나 웃긴 일이냐면.. 초기 버전이 나온 1988 년의 전용 하드웨어는 M68030 은 1987 년에 등장한 cpu 를 사용했음. 물론 NeXTSTEP 은 32bit OS 로 시작. 이 1988 년이라는게.. x86 PC 에서는 한참 AT 가 보급되기 시작했었던 시기(물론 OS 는 16bit 기반의 MS-DOS)
 
5. 초기의 NeXTSTEP 은 Carnegie Mellon(카네기 멜론) 대학에서 만든 microkernel 타입으로 만들어진 mach kernel 을 사용(이후 mach kernel 은 mac os X 로 가기전까지 꾸준히 obj-c 기반으로 유지)
 
6. 이유는 잘 모르겠지만, 개발 언어를 obj-c 로 특정함으로서 전용의 compiler 가 없던 상황에 gcc 를 확장해서 사용하는것으로 결정
 
7. 위의 사유 덕분에 독점으로 가려다가 GPL 덕분에 FSF 에게 발목을 잡혀서 obj-c 관련 코드를 공개하게된다. 이런 기반은 추후 apple 에서 LLVM 을 도입하기 전까지 지속됨.
 
8. 참고로 NeXT 회사의 초기 투자자중 하나가 바로 Canon. 덕분에 NeXT 의 잉크젯과 레이저프린터는 전부 Canon 에서 공급
 
9. 이후 Canon 은 레이저프린터 사업부를 HP 에게 매각. 덕분에 NeXT Laser printer 의 토너는 HP 에 규격이 정확히 호환되는 제품이 존재한다.(적어도 2002년 정도까지는 해당 토너의 신품도 존재...)
 
10. NeXTSTEP 3.0 이 1992 년에 출시되었는데, 이때 다들 신경쓰지 않는 재미있는 사실이 하나 있다. 바로 영화 타이타닉에서 유명해진 renderman 이 OS 에 기본 탑재가 되었다는거. 이때 이미 잡스는 pixar 의 소유자 였으며 pixar 는 1995 년에 toystory 를 renderman 을 이용해서 만들고 있던 중이라는거. pixar 는 처음에 pixar computer 라는 하드웨어 까지 만들었으나 하드웨어는 포기하고 renderman 및 media 제작에 집중. 이러한 renderman 이 OS 에 공짜로 들어가 있다는건 당연히 경쟁력을 가지게 된다. 덕분에 가장 저렴한 workstation 이라는 키워드에 충분히 어울리게 되었다는건 보너스.
 
11. NeXTSTEP 인 1995 년에 3.3 버전을 출시하게 되는데, 이때부터 M68 시리즈 외에 PA-RISC(HP), SPARC(당시에는 SUN) 그리고 intel 의 x86 계열 cpu 버전으로 OS 가 호환되게 된다. 그리고 NeXTSTEP 의 패키지(pkg) 파일에는 fat 바이너리라는 개념이 도입되기 시작하며, 이건 현재의 Mac os X 까지 이어지게 된다.
 
12. NeXTSTEP 에서 gcc 를 사용한 이점을 이때 보게 되는데, gcc 는 현재도 현존하는 가장 많은 cpu 종류는 지원하는 compiler set 이다. 다른 아키텍처로 OS 를 포팅할때 gcc 가 중요했음은 말할 필요도 없는 사실.(하지만 적어도 잡스는 꾸준히 GPL 을 좋아하지 않았다. 별 수 없이 썼을뿐) 이때부터 NeXTSTEP 에는 객체지향 OS 라는, 소프트웨어가 강조되는 방향을 가지게 된다.(이미 M68 하드웨어는 포기할 낌새가 이때부터...)
 
13. NeXTSTEP 에서 사용하는 시스템의 기반 library 는 Foundation Kit 이라고 부른다
 
14. NeXTSTEP 은 OPENSTEP 으로 이름을 바꾸어 1996 년에 출시. 3.3 버전에 비해서 Foundation Kit 의 가장큰 차이라면 root class 를 object 에서 NSObject 로 혼용될 수 있는 상황에서 NSObject 하나로 통일되었다는 점이다.
 
15. OPENSTEP 은 1996 년도에 릴리즈 되는데, 지원 환경및 개념이 살짝 바뀌게 된다. 기존의 PA-RISC, SPARC, m68, x86 외에 OPENSTEP for solaris, OPENSTEP for Yellowbox 라는 소프트웨어 프레임웍을 제공하게 된다. 이때부터 OPENSTEP 이라고 대문자로 쓰면 OS 를 나타내며, OpenStep 이라고 쓰면 OpenStep 규격의 프레임웍을 지칭하는것이 되었다. 이 OpenStep 의 mac os 구현이 Cocoa, 오픈소스 버전이 GNUSTEP 이 된다. (그리고 linux 에는 NEXTSPACE 가 나왔지...)
 
16. NeXT 의 초기투자자가 Canon 이었던만큼, NeXTSTEP 때부터 일본어 지원은 잘 되던 편이었다. 그래서 3.3j 버전이 별도로 존재한다.
 
17. NeXTSTEP 때부터 adobe 와의 협력에 의헤 DPS 라는 시스템? 이 탑재되었다. display postscript 라는 이 괴기스런 물건은 WYSIWYG 이라는 관점에서 가히 혁명적인 물건이었는데 quark express 로 대표되는 출판/인쇄쪽 입장에서 mac os 조차도 화면용 폰트와 출력용 폰트를 따로 취급했고, 프린터에 postscript 가 탑재되어 있으면 가격에서 큰 차이가 있을만큼 인쇄쪽에서는 고급기술? 이었는데 이걸 OS 에 그냥 내장해버린것. 결과적으로 보이는대로 출력물을 얻을 수 있으며, postscript 처리를 OS 에서 해서 프린터로 보내주기 때문에 NeXTSTEP/OPENSTEP 에서 지원하는 프린터라면 postscript 엔진이 없어도 미려한 출력물을 얻을 수 있고, OS 의 편집기에서도 이렇게 나오겠구나.. 라고 예상하고 편집을 진행할 수 있었다.(하지만 결국 보급에 성공하지 못했.....)
 
18. 이러한 DPS 의 장점을 보고 한국의 "신명시스템"(폰트로 유명한 그 회사 맞다) 이 한글 font 와 한글 입력기를 일본어 버전을 기준으로 사용할 수 있도록 pkg 를 만들고 NeXTSTEP 부터 유통을 시작. 한국의 지방 신문중 하나가 이러한 편집 소프트웨어인 Virtuoso 로 실제 한국에서 사용한적도 있다.(신문사 이름까지는 기억이...)
 
19. 아는 사람만 알지만, 초기의 NeXT workstation 은 흑백모니터를 사용했었다. 덕분인지는 몰라도 NeXTSTEP/OPENSTEP 은 흑백화면이 상당히 예쁘다.
 
20. Apple 과 NeXT 의 딜이 성사되고 mac os 8 및 9 이 이어지는 동안 OPENSTEP 을 얼마나 apple 스럽게 제공할 수 있는지에 대한 실험이 시작되었다. 이 실험의 결과가 바로 rhapsory.
 
21. rhapsody 는 ppc 및 x86 으로 제작되었으며, 눈에 보이는 인터페이스는 mac os 9 의 그것이었으나 내부는 OpenStep 의 Foundation Kit 이었다. 참고로 신명시스템에서 OPENSTEP 4.2j 용으로 제작한 한글입력기의 about 화면에는 "RhapsodyIM" 이라는 로고가 박혀있다...(묵념)
 
22. 우리가 알고있는 aqua 기반의 Mac os X 는 일반 사용자용으로서, 위에서 말한 rhapsody 의 UI 는 Mac os X Server 1.2 까지 지속되었다. 물론 이후의 Mac os X Server 는 aqua 인터페이스로 전환되었더.
 
23. 잡스는 꽤나 gcc 를 싫어했다. 덕분에 꽤 오래전부터 탈 gcc 를 꿈꿔왔는데 LLVM 의 전면적 도입이 결국 잡스의 꿈(?) 이루게 해준셈.
 
24. 사실은 이 말이 적고 싶었던 건데.... 지금의 mac os 는 꽤나 오래전부터 다양한 하드웨어를 지원했던 경험이 있고, 그러한 경험을 바탕으로 배포하는 패키지까지 여러개의 플랫홈을 지원했던 이력을 기반으로 하고있다. 기존에는 여러 플랫폼용 바이너리를 배포하는 수준이었지만 LLVM 의 도입덕에 apple 은 그 이상의 성능을 이끌어 낼 수 있는 기반까지 확보하게 되었다. 게다가 3d 관련된 spec 인 metal 을 만들고 해당되는 spec 에 어울리는 하드웨어를 설계햐서 M1 SOC 에 같이 쑤셔넣었다.... OS 의 성능이 올라간 이유로서는 충분.
 
25. Mac os X 의 사용자버전을 릴리즈 하면서 opensource 인 cups 를 인수하였다. 인수하면서 OS X 라이센스를 GPL 에서 apple license 로 변경했다가 현재는 apache license 를 사용하고 있다. 덕분에 mac os X 에서 사용되는 printer driver 는 약간의 삽질만으로 linux 에서도 사용할 수 있다. 참고로 cups 의 printer driver(?) 포맷은 ppd 인데, 이 파일은 NeXTSTEP 의 레이저 프린터등을 일반 windwos 에서 samba 등으로 사용하려 할때 windows 용 adobe postscript driver 로 사용되던 포맷이다.