OS

2665 단어
BIOS 고려 사항
1. BIOS는 어셈블리나 C 언어로 작성된 것이기 때문에 BIOS 프로그램이 제공하는 함수를 조정하려면 CPU가 16비트 모드에서 실행되어야 한다. 우리의 운영체제는 일반적으로 32비트 또는 64비트에서 실행되기 때문에 운영체제 부팅 디스크에서 우리는 16비트 모드에서 BIOS 프로그램의 함수를 호출하여 BIOS를 통해 하드웨어의 매개 변수 정보를 얻어 32비트 또는 64비트 모드로 진입시켜야 한다.
C 언어의 링크 재대화
1. C 언어의 저자가 C 언어를 제작할 때 C 언어를 사용하는 프로그램에만 아직도 많은 한계가 존재한다는 것을 발견했다. 이 문제를 해결하기 위해 C 언어의 작가는 링크를 발명했다. 일부 라이브러리는 어셈블리 언어를 사용하는데 이때 실행 가능한 파일을 연결하면 된다.
2. 링크의 필요성: 원본 코드를 통해 생성된 목표 파일은 독립된 이진 파일이 아니라 링크를 통해 완전한 실행 가능한 파일이 된다.
이미지 파일
1. C 언어로는 불가능한 기능을 통해 어셈블리 언어로 함수를 써서 컴파일할 수 있다.o 파일, C 언어를 연결시킨다. 예를 들어 C는 VRAM에 데이터를 직접 쓸 수 없다(카드 메모리로 모든 데이터를 저장할 수 있지만 이렇게 하면 그의 기능을 손상시킬 수 있다. 이것은 주로 모든 주소에 픽셀을 채우는 데 사용된다), 어셈블리 함수를 작성하여 해결하는 데 사용된다.
2. C 언어 중의char*는AL,short*는AX,int*는EAX,C 언어 중의 바늘 유형의 강제변환은MOV BYTE[0x123],0x3132 중의BYTE에 해당하며 데이터 저장 크기를 지정합니다
시스템 호출(API)은 도대체 어떻게 된 일입니까
  • C 언어의 한계로 인해 일부 어셈블리 언어가 완성할 수 있는 기능을 완성할 수 없다(주로 C 언어에 대응하는 지령이 없다). 그러나 응용 프로그램의 개발자로서 어셈블리 언어 개발을 사용하면 효율이 떨어질 수밖에 없다. 내부 핵 개발자는 어셈블리 언어로 함수 라이브러리를 작성하여 생성한다.o 파일,.s 파일에 라고 쓰여 있습니다printf 함수의 어셈블리 실현 등, 링크기를 통해 링크
  • 어플리케이션이 시스템 API를 호출하고 함수 주소를 알아야 합니다
  • Window2000 운영체제의 인터페이스는 어떻게 만들어집니까
  • 먼저 화면 하단의 바코드는 아이콘이 아니라 C 언어를 통해 어셈블리를 사용하여 작성된 시스템에 연결하여 지정된 메모리의 위치에서 데이터를 써서 생성한 것으로 일반적으로 모두 못생겼다
  • 우리가 본 gtk 등 프레임워크는 도형 인터페이스를 그릴 수 있는데 사실은 첫 번째 부분에서 말한 것처럼 운영체제와 관련된 것이다.o 파일, 안의 코드는 원시적으로 어셈블리 언어로 작성되었고 주로 메모리에 지정된 위치에 데이터를 저장한다
  • C 컴파일러 정보
  • C 언어의 sprintf 함수는 운영체제가 제공하는 것이 아니라 C의 컴파일러가 제공하는 것이다. 커널의 컴파일러는 이 함수를 호출하여 문자열의 인쇄를 실현할 수 있지만 리눅스와 Unix에서 sprintf는 커널 개발자가 직접 쓴 것이다. 시대가 변화하고 있기 때문이다
  • GDT 및 IDT
  • GDT

  • 레지스터에 넣지 않는 이유는 다음과 같습니다.)
  • IDT

  • 프로그래밍 가능한 인터럽트 컨트롤러(Programmable Interrupt Controller)는 PIC라고도 부른다. 마이크로프로세서와 외부 장치 사이의 인터럽트 처리를 위한 다리로서 외부 장치가 보내는 인터럽트 요청은 인터럽트 컨트롤러로 처리해야 한다.
    메모리 관리
  • 1바이트 1바이트의 관리 메모리는 메모리 파편이 조금씩 생기기 쉬워 관리하기 불편하기 때문에 보통 4k비트 단위로 메모리를 관리한다
  • 표준 라이브러리 파일
  • 예를 들어putchar은 플랫폼마다 이 함수에 대한 성명이 있지만 그 내부의 실현은 다르다. 내부는 하나의 시스템 호출이고 어셈블리 언어로 완성되기 때문에 모든 플랫폼의 내용이 다르다.한 마디로 하면 시스템 라이브러리 함수는 시스템 API에 대한 봉인으로 개발자가 사용하기 편리하다
  • 새로운 시작
  • 사실 코어보다 CPU가 더 높은 것 같아요
  •        bootloader ,       GDT,   GDT gdtr    (  CPU    GDT   ,                     ,   CPU      ),   A20   ( CPU  
          4G),   cs     PE    1(0     , 1      ,       CPU   
          4G,               ,     GDT,                   
           GDT   ,         GDT),           CPU    ,             ,        
        
               CPU     ,     ,  CPU       ,       ,       ldtr      ldt   ,            ,                 (          ),      
  • 보호 모드는 32비트, 실제 모드는 16비트, BIOS는 16비트
  • 전재 대상:https://www.cnblogs.com/megachen/p/9555900.html

    좋은 웹페이지 즐겨찾기