Q. 어셈블리 프로그램이 운영 체제를 중단시키는 원인은 무엇입니까?
A. 아무것도 아닙니다.
그러나, 매우 영리한 많은 프로그래머들이 수년 동안 점점 더 어렵게 만들려고 노력했습니다. 불행히도, 모든 영리한 프로그래머에게는 그들 사이에 더 창의적이고 야심적이며 때로는 영리한 사람들보다 운이 좋은 많은 사람들이 많이 있습니다. 영리한 프로그래머는 매번 누구도 무언가를해서는 안되며, 할 수 없거나 할 수 없다고 말합니다. Microsoft Windows (예를 들어)는 거의 35 년 동안 사용되어 왔으며 운영 체제를 중단시킨 지침 인 BSoD (Blue Screens of Death)가 여전히 있습니다.
작은 용어부터 시작하겠습니다. 컴퓨터에서 실행되는 모든 것은 기계 코드에서 수행됩니다. 키 입력을 읽거나 마우스 포인터의 움직임을 나타내는 비트, 디스플레이에서 픽셀의 색상을 변경하거나 파일에서 바이트를 읽는 비트 및 글 머리 기호가 나쁜 사람을 때렸는지 또는 결정하는 비트를 계산하는 비트 신용 카드 신청이 승인되면 모두 일련의 기계 코드 명령으로 실행됩니다. 일부 작업은 너무 일반적이며 너무 자주 수행되므로 작업을 수행하는 데 필요한 지침을 모아 모든 사람이 해당 어셈블리를 사용하도록하는 것이 합리적입니다. 다른 사람이 컴퓨터를 사용하도록 허용하거나 도와주는 이러한 작업은 운영 체제라고하는 경향이 있지만 다른 프로그램과는 본질적으로 다른 점이 없습니다. 그것들은 모두 일련의 기계 코드 명령입니다.
운영 체제를보다 복잡하게 만들고 충돌하는 경향이있는 것은 일반적으로 생각할 필요가없는 것들을 설명해야한다는 것입니다. 가장 간단한 작업을 예로 들어 보겠습니다. 파일 끝에 메시지를 쓰고 싶습니다. 고급 언어에서는 다음과 같이 작성합니다.
with open("myFile.txt", "w+") as f:
# do some really clever things
f.write("Goodbye cruel world!")
물리적 상태에 액세스하고 변경하는 방법 또는 비트 및 바이트로 해석되는 방법 또는 해당 바이트가 메모리 및 CPU와주고받는 방법에 대한 모든 세부 정보를 무시하고 OS가 제공하는 프로그램이 처리하는 모든 것을 신뢰합니다 무대 뒤에서. 파일 끝에 추가하는 방법에 대해서만 생각해 봅시다. 1) 파일의 끝이 어디인지 알아 내십시오. 2) 그 위치에 무언가를 쓰십시오. 무엇이 잘못 될 수 있습니까? 실제로, 꽤 많이. 영리한 일을하는 동안 컴퓨터에서 다른 일이 발생하는지 생각해보십시오. 다른 사람 (운영 체제 자체 포함)이 수행중인 파일이 어떤 식 으로든 작업중인 파일을 변경하면이 간단한 작업이 갑자기 훨씬 더 복잡해집니다. 파일이 더 길고 파일이 더 짧습니다. 파일이 더 이상 존재하지 않습니다. 디스크가 가득 찼습니다.