Windows, Mac OS X 및 Linux의 프로그래밍 언어와 OS의 각 부분에 사용되는 언어 (예 : 커널, 플러그인 아키텍처, GUI 구성 요소 등)를 아는 사람이 궁금합니다.
나는 각각에 대해 여러 언어가 있다고 가정하고 분명히 Linux 커널이 C로 작성되었음을 알고 있습니다.
Mac OS X에는 NeXT에서 파생 된 Apple의 언어이므로 많은 Objective-C 코드가 포함되어 있다고 생각합니다.
Windows에는 C, C ++ 및 Intel Assembly가 포함되어 있다고 들었습니다. Linux 또는 Mac OS에 어셈블리 코드가 포함되어 있습니까?
또한 OS 개발자가 OS의 일부를 스크립팅하는 데 사용하는 Ruby, Python 등의 스크립팅 언어가 있습니까? 각 언어로 OS의 어떤 부분이 작성됩니까?
답변
- Windows : C ++, 커널은 C
- Mac : 목표 C, 커널이 C에 있음 (IO PnP 하위 시스템은 Embedded C ++ 임)
- 리눅스 : 대부분 C에 있고, 많은 유저 랜드 앱은 파이썬에 있고, KDE는 모두 C ++에 있습니다
모든 커널은 일부 어셈블리 코드도 사용합니다.
답변
Linux : C. 어셈블리의 일부 부품.
[…] 대부분 C 언어이지만 대부분의 사람들은 내가 C라고 부르지 않을 것입니다. 그것은 386에 대해 가르쳐주는 프로젝트 였기 때문에 찾을 수있는 386의 모든 가능한 기능을 사용합니다. 페이징 (아직 디스크 아님) 및 세그먼트 화에 MMU를 사용합니다. 그것은 386에 의존하게 만드는 세분화입니다 (모든 작업에는 코드 및 데이터에 대한 64Mb 세그먼트가 있습니다-4Gb에서 최대 64 개의 작업. 64Mb / 작업 이상-힘든 쿠키가 필요한 사람). […] 내 “C”파일 중 일부 (특히 mm.c)는 거의 C만큼 어셈블러입니다. […] 미닉스와 달리 인터럽트와 마찬가지로 발생하므로 인터럽트를 숨기지 않고 처리합니다. 그들 뒤에 이유. (출처)
Mac OS X : 대부분 Objective-C의 코코아. C로 작성된 커널, 어셈블리의 일부.
커널 계층에서 Mac OS X은 주로 BSD라는 오래된 무료 운영 체제입니다 (특히, BSD, Mach 및 기타 몇 가지 하이브리드 인 Darwin입니다). 던져진 어셈블러. (소스)
Cocoa의 대부분은 놀라운 속도로 실행되도록 컴파일 된 객체 지향 언어 인 Objective-C로 구현되었지만, 매우 동적으로 런타임을 사용하여 고유하게 유연합니다. Objective-C는 C의 상위 집합이므로 C와 C ++를 Cocoa 응용 프로그램에 쉽게 혼합 할 수 있습니다.
(출처)
Windows : C, C ++, C # 어셈블러의 일부 부품.
우리는 거의 전적으로 C, C ++ 및 C # for Windows를 사용합니다. 일부 코드 영역은 수동 조정 / 수동 작성 어셈블리입니다. (출처)
유닉스 : C. 어셈블리의 일부 부품. (출처)
답변
Mac OS X은 일부 라이브러리에서 많은 양의 C ++을 사용하지만 ABI 중단을 두려워하므로 노출되지 않습니다.
답변
이 게시물은 오래된 게시물이지만 Windows는 C ++로 작성되지 않았습니다. 많은 C ++이 있지만 운영 체제로 기술적으로 정의한 것은 C ++에 없습니다. Windows 커널 인 Windows 커널 (둘 다 운영 체제가 무엇인지)은 C로 작성되었습니다. 몇 년 전에 Windows 2000과 Windows XP 모두에 대해 유출 된 코드가있었습니다. 코드는 커널이나 API를 컴파일하기에 충분하지 않았지만 개별 프로그램과 서비스를 컴파일 할 수있었습니다. 예를 들어 Notepad.exe, mspaint.exe 및 spoolsv.exe 서비스 (인쇄 스풀러)를 성공적으로 컴파일 할 수있었습니다. 모두 C로 작성되었습니다. 나는 다시 보지 않았지만 유출 된 코드가 여전히 사용 가능한 토런트 파일로 여전히 살아남을 것이라고 확신합니다.
답변
Windows : 대부분 C 및 C ++, 일부 C #
답변
- 창 : C ++
- 리눅스 : C
- 맥 : 목표 C
- 안드로이드 : 자바, C, C ++
- 솔라리스 : C, C ++
- iOS 7 : 오브젝티브 -C, 스위프트, C, C ++
답변
와!!! 9 년 동안의 질문이지만 Windows 명령 줄 기록에 대한 일련의 내부 기사 를 보았 으며 그중 일부는 Windows의 관련 질문 일 수 있습니다.
그러한 것들에 관심이있는 사람들을 위해 : 많은 사람들이 Windows가 C 또는 C ++로 작성되었는지 물었습니다. 대답은 NT의 객체 기반 설계에도 불구하고 대부분의 OS와 마찬가지로 Windows는 거의 모두 ‘C’로 작성되었다는 것입니다. 왜? C ++은 메모리 풋 프린트 및 코드 실행 오버 헤드 측면에서 비용을 발생시킵니다. 오늘날에도 C ++로 작성된 숨겨진 코드 비용은 놀라 울 수 있지만 메모리 비용이 ~ $ 60 / MB (예 : MEGABYTE 당 $ 60) 인 1990 년대 후반으로 거슬러 올라갑니다 .), vtables 등의 숨겨진 메모리 비용이 상당했습니다. 또한 가상 메서드 호출 간접 및 개체 역 참조의 비용으로 인해 C ++ 코드에 대한 성능 및 규모가 크게 저하 될 수 있습니다. 여전히주의해야 할 필요가 있지만 최신 컴퓨터에서 최신 C ++의 성능 오버 헤드는 훨씬 덜 중요하며 보안, 가독성 및 유지 보수 이점을 고려할 때 종종 허용되는 절충입니다 … 우리가 이유입니다. 꾸준히 콘솔 코드를 최신 C ++로 업그레이드합니다.