Windows, Mac OS X 및 Linux는 어떤 언어로 작성됩니까?
Windows, Mac OS X 및 Linux가 어떤 프로그래밍 언어로 구성되어 있는지, OS의 각 부분에 사용되는 언어(커널, 플러그인 아키텍처, GUI 컴포넌트 등)를 누가 알고 있는지 궁금했을 뿐입니다.
각 언어마다 여러 언어가 있을 것으로 생각되며 Linux 커널은 C로 쓰여져 있습니다.
Mac OS X는 NeXT에서 파생된 Apple의 언어이기 때문에 Objective-C 코드가 많이 포함되어 있다고 생각합니다.
Windows 에는, C, C++, 및 인텔·어셈블리가 포함되어 있는 것으로 알고 있습니다.Linux 또는 Mac OS에 어셈블리 코드가 포함되어 있습니까?
또한 OS 개발자가 OS의 일부를 스크립팅하기 위해 사용하는 Ruby, Python 등의 스크립팅 언어가 있습니까?OS의 어떤 부분이 각 언어로 작성됩니까?
- Windows:C++, 커널은 C에 있습니다.
- Mac: 목표 C, 커널은 C(IO PnP 서브시스템은 임베디드 C++)
- Linux: 대부분의 것이 C에 있고, 많은 유저랜드 앱이 Python에 있으며, KDE는 모두 C++입니다.
모든 커널도 일부 어셈블리 코드를 사용합니다.
Linux: C.조립된 부품도 있습니다.
[...] 대부분 C로 되어 있는데, 대부분의 사람들은 제가 C라고 적는 것을 C라고 부르지 않습니다.386에 대해 가르쳐 주는 프로젝트였기 때문에 386의 모든 기능을 사용하고 있습니다.이미 언급했듯이 페이징(아직 디스크로의 페이징이 아님)과 세그멘테이션 모두에 MMU를 사용합니다.이는 386에 정말로 의존하게 하는 세그먼트화입니다(모든 태스크에는 코드와 데이터에 대해 64Mb 세그먼트가 있습니다.4 Gb에 최대 64개의 태스크가 있습니다).64Mb/태스크가 필요한 사용자 - 어려운 쿠키)[...] 일부 "C" 파일(특히 mm.c)은 C와 거의 같은 어셈블리입니다.[...] minix와 달리 인터럽트는 LIKE 인터럽트도 있기 때문에 인터럽트는 그 이유를 숨기려고 하지 않고 처리됩니다.(출처)
Mac OS X: 코코아는 대부분 Objective-C에 있습니다.커널은 C로 작성되어 있으며, 일부 부품은 어셈블리에 포함되어 있습니다.
커널 계층에서 Mac OS X는 대부분 BSD라고 불리는 오래된 무료 운영 체제입니다(구체적으로는 Darwin, BSD, Mach 및 기타 몇 가지 요소의 하이브리드입니다).거의 완전히 C, 약간의 어셈블러가 삽입되어 있습니다.(출처)
코코아의 대부분은 Objective-C로 구현되어 있습니다.Objective-C는 객체 지향 언어로 컴파일되어 놀라운 속도로 실행되지만, 매우 역동적인 런타임에 의해 고유하게 유연해집니다.Objective-C는 C의 슈퍼셋이기 때문에 C와 C++를 코코아 어플리케이션에 쉽게 혼합할 수 있습니다.(출처)
Windows: C, C++, C#.조립기의 일부 부품.
Windows 에서는, 거의 완전하게 C, C++, 및 C# 를 사용하고 있습니다.코드의 일부 영역은 수동 튜닝/수작업으로 작성된 어셈블리입니다.(출처)
Unix: C.조립 중인 부품도 있습니다.(출처)
Wow!!!9년간의 질문입니다만, Windows 커맨드 라인의 역사에 관한 일련의 사내 기사를 접한 지 얼마 되지 않았습니다.이 질문의 일부는 Windows와 관련이 있다고 생각합니다.
그런 것에 관심이 있는 분들을 위해:많은 사람들이 윈도우가 C로 쓰여져 있는지 C++로 쓰여져 있는지 물어본다.답은 - NT의 객체 기반 설계에도 불구하고 - 대부분의 OS와 마찬가지로 - Windows는 거의 전적으로 'C'로 쓰여져 있습니다. 왜일까요?C++는 메모리 설치 공간과 코드 실행 오버헤드의 측면에서 비용을 발생시킵니다.오늘날에도 C++로 기술된 코드의 숨겨진 비용은 놀랄 만한 일이지만, 1990년대 후반에는 메모리 가격이 MB당 60달러(예: 메가바이트당 60달러!)에 달했을 때는 vtables 등의 숨겨진 메모리 비용이 상당했습니다.또, 가상 방식 콜의 간접 및 오브젝트 회의의 코스트에 의해서, 그 시점에서 C++ 코드의 퍼포먼스와 스케일 패널티가 큰폭으로 발생할 가능성이 있습니다.아직 주의가 필요하지만 최신 컴퓨터에서의 최신 C++의 퍼포먼스 오버헤드는 그다지 중요하지 않습니다.또한 보안, 가독성, 유지보수의 이점을 고려하면 대부분의 경우 적절한 트레이드오프입니다.그렇기 때문에 콘솔의 코드를 최신 C++로 꾸준히 업그레이드하고 있습니다.
Mac OS X는 일부 라이브러리에서 많은 양의 C++를 사용하지만 ABI가 깨질까 봐 노출되지 않습니다.
오래된 투고인 것은 알고 있습니다만, Windows는 C++로 되어 있지 않습니다.많은 C++가 포함되어 있습니다만, operating system으로서 기술적으로 정의되고 있는 것은 C++가 아닙니다.Windows API, Windows 커널(이것들 모두 본질적으로 운영체제의 의미)은 C로 기술되어 있습니다.몇 년 전에 Windows 2000과 Windows XP의 코드가 유출되었습니다.커널이나 API를 컴파일할 수 있을 만큼 코드는 완전하지 않았지만 개별 프로그램과 서비스를 컴파일할 수 있었습니다.예를 들어 메모장을 성공적으로 컴파일할 수 있었습니다.exe, mspaint.exe 및 spoolsv.exe 서비스(프린트 스풀러)가 있습니다.모두 C로 기재되어 있습니다.다시 찾아보지는 않았지만 유출된 코드는 여전히 토렌트 파일로 남아있을 것입니다.
Windows:대부분 C 및 C++, 일부 C#
- 창:C++
- Linux: C
- mac: 목표 C
- 안드로이드: JAVA, C, C++
- Solaris: C, C++
- iOS 7: 목표-C, 스위프트, C, C++
MacOSX의 핵심에 Objective-C가 있습니다.
Windows C++
Linux C
스크립트 언어에 대해서는, 아니요, 꽤 높은 레벨입니다.
Linux 커널은 대부분 C(및 약간의 어셈블리 언어)로 작성되지만 중요한 사용자 공간 유틸리티(프로그램) 중 일부는 Bash 스크립트 언어로 작성된 셸 스크립트입니다.또, 「Linux」를 정의하는 것은 어려운 일입니다.기본적으로 Linux 시스템을 구축하려면 , 필요한 부분이나 조각을 선택해 조합하는 것으로써, 개별의 Linux 유저가 무엇을 필요로 하는지에 따라서는, 거의 모든 언어를 사용할 수 있기 때문입니다.(Paul이 말했듯이 Python과 C++는 중요한 역할을 합니다.)
Mac OS X는 대부분 Objective-C로 작성되어 있으며 커널과 같은 하위 레벨의 부품과 하드웨어 디바이스 드라이버는 C로 작성되어 있다고 합니다.나는 애플이 그들 자신의 Xcode Developer Tools를 사용하여 Mac OS X를 쓴다는 것을 의미한다고 생각한다.GCC(GNU 컴파일러 컬렉션) 컴파일러 링커는 xCode가 대부분의 실행 파일 컴파일 및/또는 링크에 사용한 Unix 명령줄 도구입니다.다른 언어 중에서 GCC는 C, Objective-C, C++ 및 Objective-C++ 언어로 소스 코드를 컴파일합니다.
맥 OS X의 코어에 대한 추가 사항으로서, 파인더는 스노우 레오퍼드 이전에 Objective-C에 쓰여지지 않았습니다.눈표범에는 코코아, Objective-C로 쓰여 있다.
여러 플랫폼에서 실행되는 하나의 운영체제시스템 아래를 참조해 주세요.다음 내용은 다음과 같습니다.
Most of the source code for Windows NT is written in C or C++.
언급URL : https://stackoverflow.com/questions/580292/what-languages-are-windows-mac-os-x-and-linux-written-in
'programing' 카테고리의 다른 글
Swift에서 사전으로 플리스트를 얻으려면 어떻게 해야 하나요? (0) | 2023.04.19 |
---|---|
Bash: 구문 오류: 리디렉션 예기치 않음 (0) | 2023.04.19 |
이 블록에서 자신을 강하게 포착하는 것은 유지 사이클로 이어질 수 있다 (0) | 2023.04.19 |
고유 엔트리가 있는 두 목록 간의 차이점 가져오기 (0) | 2023.04.19 |
목록을 요소 수가 고정된 여러 목록으로 분할 (0) | 2023.04.19 |