터보 버튼…

머나먼 옛날 옛적에 있던 버튼…

(사실 이런 거 쓸 생각 없었는데….)

나도 터보 버튼이 있던 컴퓨터를 어~~릴 적에 쓴 적이 있다. 근데 나야 뭐 그런 게 있어도 잘 몰랐으니 건드리진 않았고… 나중에 운영체제랑 시스템을 좀 제대로 공부할 때 “아 이런 게 있었구나”라고 하면서 대~충 넘어갔었다.

근데 오늘 트위터에 올라온 것 때문에 참…

 

내가 아는 거랑 뭐 더 다른 게 있나 해서 찾아보니 확실히 이상한 소리 있었다. 게다가 공감수가 장난이 아니다. 진짜로 이상한 글들 많아서…. 좀 정리해 보려고 한다.

터보 버튼은 말 그대로 성능을 올리는 버튼입니다. 근데 올리는 성능이 하드웨어만의 성능이 아닙니다. XT~486 시대까지 개발될 때에는, 프로세서 제조사들에 따라서 클럭 수가 다르게 나오는 프로세서들이 많았습니다. XT의 경우, IBM XT의 주력은 8MHz인데(8088), 이때에 같은 아키텍쳐의 다른 설계를 가진 프로세서들이 더 클럭수가 높은 프로세서들을 내놓기도 했습니다. 어디는 9, 12, 15, 16… 이런 식으로 클럭 수가 다른 프로세서들이 나와줬는데, 이걸 표준으로 맞춰서 처리해주도록 클럭을 제어해주던 녀석이 터보 버튼입니다. 이렇게 보면 클럭을 오히려 되려 낮춰주는 거 아니야? 하는데 초기에 저 정도의 클럭도 못따라가던 녀석들은 되려 클럭이 올라가기도 했습니다. 근데 대부분의 경우에는 클럭을 낮춰줬죠. 특히 기준이 되던 프로세서가 있으면 다른 고성능 프로세서 장착 컴퓨터들이 기준 프로세서에 맞추는 용도였습니다.

이 후에 나오는 프로세서들은 의미도 없지만 그냥 관행상 붙이고 다녔습니다. 그러다가 아예 없어졌죠.

근데 이 때에 컴퓨터를 이용하던 지금의 젊은(?) 사람들은 그 당시 게임 돌리기 바쁜 사람들이었기 때문에 이거 왜 있어 그러다가 터보 모드로 실행하면 되던 게임 안되고 해서 이거 뭐야 그러다보니 별 이상한 이야기들을 믿고 있는 경우가 있습니다. 그래서 좀 이해가 안되는 이상한 이야기들도 많고요…

그나마 좀 정상적인 이야기도 반 좀 넘게 있어서 다행입니다만….ㅠㅠ

근데 제조사들은 왜 이런 짓을 했을까요?

결론부터 말하면, 운영체제 및 프로그래밍 언어의 개발 부진이 당시의 원인입니다.

운영체제는 여러 하드웨어를 지원하지만, 초창기의 운영체제들은 기술들의 표준이 되는 시스템에 맞춰서 운영체제를 개발하였었습니다. 그래서 당시 주류였던 8MHz 시스템에 맞춰서 운영체제를 개발하였고, 해당 클럭 동작에 따라 시간을 재고 시간 처리를 하는 타이머 기능을 만들고 했던 여러 기능들이 그대로 C 언어의 라이브러리에 내장되어 있던 시절이 있었습니다. (지금은 안쓰입니다. 시스템의 시간에 관련된 기능은 이젠 표준화 되었기 때문에 쉽게 이용할 수 있습니다.)

이와 관련되어서는 다음과 같은 걸로 확인 가능합니다.

도스박스의 에뮬레이터에 보면 시스템 클락을 설정할 수 있는데, 이 부분 설정을 바꾸면 특정 프로그램 혹은 게임에서는 시간이 실제 시간과 다르게 동작하는 일부 프로그램을 볼 수 있는데, 이 프로그램들의 정체가 바로 특정 컴퓨터의 환경에서만 맞춰서 만들어진 프로그램들입니다. 그래서 타임 함수처리를 해도 클럭 차이가 나서 시간 차이가 생깁니다. 이때 당시의 프로그램들 중에는 이런 프로그램들이 상당히 많습니다. C 라이브러리를 어떤 걸 쓰느냐에 따라서도 여러 C가 존재했기 때문에, 그 언어들에 따라서도 라이브러리 내부 구현이 다른 것도 한 몫을 하죠.

요즘은 거의 신경 쓸 일도 아니기 때문에 그냥 넘어가는 경우가 많은데, 아직도 저사양 환경용 특수 목적 운영체제 개발하는 사람들은 클럭 컨트롤에 관해서 예전에 여러모로 있었던 일들이기 때문에 은근 민감하게 반응하는 편입니다. 그래서 터보모드라는 것이 은근 골때리게 알려진 것들도 많고, 이상하게 이해하는 것도 많죠.

오래전 컴퓨터들이 CPU 속도 조절과 관련되어 어떤 작업 형식을 이용하고 했는지는 오래된 운영체제 개발 문서들을 찾아보면 많이 나와있는 편입니다. The Linux Kernel의 맨 초창기 버전, 즉 리눅스 0.1 시절의 문서만 보더라도 이에 해당하는 이야기가 나와있는 편이므로 이해하는 데 있어서 어려움은 없을 것으로 보입니다. 근데 그정도 시절의 문서면 지금은 안쓰인다는 거죠.

게다가 이게 386, 486 때에는 그냥 관행적으로 넣은 기술이기 때문에 그닥 영향 자체가 있나를 물으면 미묘한 시기였고, 그 당시 업데이트 된 운영체제들은 클럭수가 무어의 법칙에 따라서 열심히 미친듯이 오르던 시기를 겪어야 했기 때문에 어느 정도의 대응을 하여 라이브러리들을 새로 짜서 썼기 때문에 “아, 이렇게 업데이트 되었구나” 까지만 알아도 좋을 꺼라고 생각됩니다.

다들 열공하죠. ㅇㅅㅇ/