나는 운영 체제와 관련된 기본적인 작업을 수행하는 매우 기본적인 운영 체제를 만들려고 하지만 낮은 수준의 프로그램에서는 작업하고 싶지 않으므로 C/C++로 작업할 가능성이 있는지 궁금합니다. 운영 체제에 C/C++ 프로그램을 추가하는 데 다른 종류의 프로그래밍이나 절차가 필요한 경우 도움을 주시면 감사하겠습니다.
답변1
이 링크는 다음 사항에 도움이 될 수 있습니다.컴퓨터 운영체제를 만드는 방법
링크의 일부
3 OS에서 수행할 작업을 결정합니다. 그래픽 사용자 인터페이스(GUI)를 갖춘 완전한 기능을 갖춘 OS이든 좀 더 미니멀한 OS이든, 시작하기 전에 어떤 방향으로 가고 있는지 알아야 합니다.
5 처음부터 직접 모든 작업을 수행할 것인지, 아니면 기존 커널을 기반으로 구축할 것인지 결정하십시오. 처음부터 리눅스예를 들어, 자신만의 Linux 배포판을 구축하려는 사람들을 위한 프로젝트입니다. 외부 링크에 대한 팁을 참조하세요.
6 자체 부트로더를 사용할지 GRUB(Grand Unified Bootloader)와 같이 미리 생성된 부트로더를 사용할지 결정합니다. 자신만의 부트로더를 코딩하면 하드웨어와 BIOS에 대한 많은 지식을 얻을 수 있지만 실제 커널을 프로그래밍하는 데 도움이 될 수도 있습니다. 팁을 참조하세요.
7사용할 프로그래밍 언어 결정. Pascal이나 BASIC과 같은 언어로 운영 체제를 만드는 것도 가능하지만 C나 Assembly를 사용하는 것이 더 좋습니다.조립은 꼭 필요합니다, 운영 체제의 일부 중요한 부분에 필요하기 때문입니다. 반면 C++에는 실행하기 위해 완전히 구축된 또 다른 OS가 필요한 키워드가 포함되어 있습니다. C 또는 C++ 코드에서 운영 체제를 컴파일하려면 물론 하나 또는 다른 컴파일러를 사용하게 됩니다. 따라서 소프트웨어와 함께 패키지로 제공되거나 배포자의 웹 사이트에서 제공되는 C/C++ 컴파일러에 대한 사용자 가이드/매뉴얼/문서를 읽어야 합니다. 컴파일러에 대해 많은 복잡한 사항을 알아야 하며, C++ 개발의 경우 컴파일러의 맹글링 체계와 ABI에 대해 알아야 합니다. 다양한 실행 가능 형식(ELF, PE, COFF, 일반 바이너리 등)을 이해하고 Windows 독점 형식인 PE(.exe)가 저작권으로 보호된다는 점을 이해해야 합니다.