gcc 일부 원시 x86 코드 (OS없이 부팅 할 수있는)를 생성하는 방법이 있습니까?gcc에서 ring0에 대한 네이티브 x86 코드를 생성 할 수 있습니까?
0
A
답변
1
질문의 형식이 올바르지 않습니다. 물론 현대 CPU를 처음부터 초기화하는 데 필요한 모든 명령어가 gcc 단독으로 생성 될 수는 없으므로 일부 어셈블리를 사용해야합니다. 그러나 현대의 CPU가 실제로이 모든 것을 문서화하지 않고 대신 하드웨어 제조업체가 펌웨어를 제공하여 해당 작업을 수행 할 것으로 기대하기 때문에 일종의 학술적 사례입니다. 펌웨어를 초기화 한 후, 최신 PC는 구형 16 비트 8086 환경 ("레거시"BIOS) 또는 "EFI Boot Services"라는 환경 (사용자의 특정 하드웨어 플랫폼에 따라 다름)에서 32 또는 64 비트 환경을 유지합니다.
EFI 모드에서의 조작은 모두 C 함수 포인터를 사용하여 수행되며 사실 gcc를 사용하여이 환경을 구축 할 수 있습니다. EFI로 작업하는 훌륭한 예는 gummiboot 부트 로더를 참조하십시오.
+0
좋은 답변 주셔서 감사합니다. –
3
예, Linux 커널은 GCC로 컴파일되고 x86에서는 링 0에서 실행됩니다.
관련 문제
- 1. gcc가 다른 크기의 객체 코드를 생성 할 수 있습니까?
- 2. antlr은 파이썬 코드를 생성 할 수 있습니까?
- 3. x86 CPU에서 OpenGL 코드를 실행할 수 있습니까?
- 4. jOOQ가 오라클 동의어에 대한 코드를 생성 할 수 있습니까?
- 5. x86-64의 스택에 코드를 삽입 할 수 있습니까?
- 6. 브라우저에서 QR 코드를 생성 할 수 있습니까?
- 7. javacc이 자바 코드를 생성 할 수 있습니까?
- 8. 컴파일러의 백엔드로 LLVM을 사용하여 원시 코드를 생성 할 수 있습니까?
- 9. 네이티브 응용 프로그램에서 Java 코드를 호출 할 수 있습니까?
- 10. 모노 터치 C# 라이브러리에서 네이티브 코드를 참조 할 수 있습니까?
- 11. x86 바이너리 코드를 최적화하기위한 라이브러리가 있습니까?
- 12. GCC에서 x86을 컴파일 할 수 없습니다. crunchbang
- 13. gcc에서 생성 된 더미 이동
- 14. C#으로 네이티브 코드로 CIL 코드를 변경
- 15. GCC에서 Var 선언으로 GCC에서 가비지 수집 할 수 없음
- 16. 티타늄에서의 네이티브 코드 생성
- 17. x86 프로세서 용 gcc에서 컴파일러 장벽의 런타임 오버 헤드
- 18. 디버거에서 코드를 생성 할 수있는 도구가 있습니까?
- 19. Linux-x86-64에서 Linux-ARM 용 네이티브 gdb를 빌드 할 수 있습니까?
- 20. 네이티브 코드를 호출 할 때 JVM이 정지합니까?
- 21. x86 타겟을 ABI로 생성
- 22. 안드로이드 네이티브 데이터베이스를 복사 할 수 있습니까?
- 23. 네이티브 스레드와 뮤텍스를 믹싱 할 수 있습니까?
- 24. 의사 코드를 x86 어셈블리로 변환
- 25. 안드로이드으로 System.gc 네이티브 코드를
- 26. x86 용 GCC에서 생성 한 "push % ebp; movl % esp, % ebp"는 무엇입니까? 이 두 명령은 x86 컴퓨터에 대한 GCC에 의해 생성 된 어셈블리 코드에 원인이 어떤 영향을
- 27. GCC에서 std = c99를 기본값으로 설정할 수 있습니까?
- 28. 하스켈 형식 서명이 주어지면 자동으로 코드를 생성 할 수 있습니까?
- 29. Apache Velocity에서 템플릿을 정의하여 Java 코드를 생성 할 수 있습니까?
- 30. 자바 스윙에서 생성 된 코드를 편집 할 수 있습니까?
GCC는 항상 native x86 코드를 생성합니다 ... –
@OliCharlesworth oh .. 정말요? ELF 헤더와 일부 압축 알고리즘이 있습니까? –