2013-05-31 2 views
1

잠시 내 마음에 들었던 질문이 있습니다. C와 같은 언어는 파이썬보다 빠르며 따라서 운영 체제를 작성하는 데 사용된다는 것을 알고 있습니다. 필자는 어딘가에서 파이썬으로 작성된 운영 체제가 매우 느릴 것이라고 읽었습니다. 그래서 제 질문은 다음과 같습니다. 프로세서 속도가 지속적으로 향상됨에 따라 특정 언어의 실행 속도가 운영 체제 개발에 영향을 미치지 않습니까? 앞으로는 C로 작성된 운영 체제와 거의 동일한 속도로 실행되는 Python 전용 운영 체제를 작성할 수 있습니까? 고맙습니다.운영체제 개발에서의 Python의 속도

+1

프로세서 속도를 높이면 C가 더 빨라지지 않습니까? – Dogbert

+1

그건 분명히 그렇습니다. 어셈블리가 C보다 빠르지 만, 어셈블리에 OS를 쓰는 사람은 없습니다. –

답변

4

일반적인 문제

그것은 파이썬 자체 호스팅하지 않기 때문에 혼자 파이썬에서 운영 체제를 작성할 수 없습니다.

gcc와 같은 C 컴파일러에는 운영 체제 개발 (및 기타 관련 작업) 용으로 설계된 특별한 "프리 스탠딩"모드가 있으며 printf과 같은 기능을 사용할 수 없습니다 (어셈블러를 사용하여 직접 구현해야하므로).

print과 같은 파이썬 함수는 내장되어 있으며 제거 만 할 수는 없습니다. 운영 체제가 없다면 어떻게 구현 될까요?

마지막으로, 운영 체제에 의존하는 파이썬의 모든 부분을 비활성화 할 수 있더라도 여전히 CPU를 제어 할 수는 없습니다. 페이징이나 인터럽트 같은 것들을 가능하게하기 위해서는 파이썬이 생성 할 수없는 특별한 어셈블러 명령어가 필요합니다. 또한 메모리에 특정 위치에 물건을 배치해야하며 파이썬에는 원시 포인터가 없습니다.

This page에는 OS 개발을 위해 C 이외의 언어를 사용하는 데 유용한 정보가 많이 있습니다. CPU가 더 빨라질로

속도 당신이 바로 그 파이썬에있어

가 느린 C.보다는 단지 일정한 요인 당신은 OS 개발 동적 언어 이외의 많은 분야에서 것을 볼 수있다는 점점 더 인기를 끌고있다 .

운영 체제 개발은 다르지 않으므로 일반적으로 C로 작성된 운영 체제의 일부를 Python이 대체하는 많은 실제 예제를 찾을 수 있습니다. 예를 들어 fusepy은 Python으로 파일 시스템을 구현할 수있게합니다 .

+0

미안하지만 그게 무슨 뜻입니까? –

+1

@NwaiwuGilbert 이는 Python이 운영 체제 개발을위한 도구를 제공 할 수있는 충분한 수준의 언어가 아니라는 것을 의미합니다. – Patashu

1

아니요 생각해보십시오. 파이썬이 속도 X로 실행되는 프로세서의 C보다 느린 경우, 속도 2X로 실행되는 프로세서의 파이썬과 C의 속도에 대해 어떻게 말할 수 있습니까?

그렇다면 ... 은 동적 언어로 운영 체제를 작성합니다. 사람들도 그렇습니다. 일단 인터프리터를 부트 스트랩합니다. 그러나 이것이 주류가되지는 않을 것입니다. 적어도 언제든지. 왜냐하면 : 주류 운영체제는 이미 ... 음 ... 주류입니다. 사람들은 새 프로세서에서 모든 처리 능력을 사용하여 ... 음 ... 처리하는 것을 원합니다. 토대를 제공하는 것이 아니라 ... 음 ... 처리하는 것.

관련 문제