Linux 0.01 소스 코드에서 포인터 알아보기

Linux 0.01 소스 코드에서 포인터 알아보기

저는 실제 C 프로그래밍과 Linux 개념을 배우려고 노력하고 있습니다. 그래서 Linux 커널 버전 0.01 소스 코드를 살펴봐야겠다고 생각했습니다.

제가 이해한 바에 따르면 많은 항목에 대한 스크래치 수준 구현을 찾을 수 있지만 주석은 거의 없습니다. 예를 들어:

void rs_init(void)
{
    set_intr_gate(0x24,rs1_interrupt);
    set_intr_gate(0x23,rs2_interrupt);
    init(tty_table[1].read_q.data);
    init(tty_table[2].read_q.data);
    outb(inb_p(0x21)&0xE7,0x21);
}

레지스터나 함수에 대한 설명은 없는 것 같습니다.
구현이 몇 가지 아이디어를 제공할 것이라는 것을 알고 있지만 값과 이름이 더 나은 의미와 이해를 제공할 수 있도록 일부 참조를 유지해야 하는지 궁금합니다.

몇 가지 조언을 제공해주십시오.

답변1

Minix가 조사할 가치가 있는 운영 체제로 제안된 반면, 다른 하나는 Unix 버전 6입니다.라이온스클럽 의견.

Unix의 6판은 오늘날의 기준으로 볼 때 매우 작으며 이에 대한 Lions의 리뷰는 Unix 운영 체제 학습에 대한 최고의 참고서 중 하나로 간주됩니다. 오랫동안 이 책은 다세대 사본으로만 구할 수 있었지만 다행히도 재인쇄되었으며 좋아하는 온라인 서점에서 구입하실 수 있습니다.

답변2

요청에 따라 의견을 바탕으로 다시 작성했습니다.

나는 Linux 0.01이 C 프로그래밍 개념의 특히 좋은 소스가 될 것이라고 생각하지 않습니다 :-)

미닉스를 사용해 보세요. Minix는 운영 체제 설계를 가르치는 데 사용되므로 이런 종류의 학습에 더 좋은 소스입니다.

http://www.minix3.org

http://wiki.minix3.org/en/DevelopersGuide

답변3

프로그래밍 언어를 배우는 가장 좋은 방법은 자신이 갖고 있지 않은 문제를 다른 사람이 어떻게 해결했는지 알아보기보다는 문제를 해결하는 것입니다.

흥미를 끄는 오픈 소스 Linux 프로젝트를 찾고 일부 공개 버그를 살펴보고 수정 가능한지 확인하세요. 물론 어려운 일이지만 특정한 문제가 있는 경우 언어를 배우고 배운 내용을 적용하여 문제를 해결할 수 있습니다. 이는 이전 코드에서 학습하는 것보다 훨씬 쉽습니다.

때때로 버그에는 이러한 사항에 대한 좋은 이해가 필요하므로 희망 목록에 있는 일부 기능이 있는 오픈 소스 프로젝트를 찾아서 그 중 하나를 통합하는 작업을 수행할 수도 있습니다.

오픈 소스 팀은 항상 수정 사항이나 개선 사항이 포함된 버그 보고서를 찾고 있습니다. 이는 오픈 소스 커뮤니티에 대해 배우고 보람을 느끼는 데 도움이 될 것입니다.

관련 정보