링커스크립트 한글 매뉴얼 있나요?

otherside7의 이미지

커널 소스를 분석하는데 pg0이라는 변수의 값을 알려고 하니

링커 스크립트를 알아야 하네요.

영문 매뉴얼을 봐도 모르겠네요.

한글 매뉴얼 없나요. 여러군데 돌아다니면서 찾아봤는데 못찾겠네요.

유영창씨가 쓰신 강의에 여기에 자세한 문서가 있다고 했는데

링커와 로더라는 문서에 조금 언급이 돼있을뿐이네요.

반나절 지나도록 pg0 위치 계산 못하고 있네요.

도움 요청합니다.

pastime의 이미지

링커와 어셈블러 매뉴얼을 다 참조하셔야 할듯 하네요..
예전에 GNU Korea 에 번역된 매뉴얼이 있던거 같았는데
요즘은 열리지가 않아서 볼수가 없더군요.. 쩝

arch/i386/kernel/head.S 파일에 보면 다음과 같은 부분이 있습니다.

380 .org 0x1000
381 ENTRY(swapper_pg_dir)
382         .long 0x00102007
383         .long 0x00103007
384         .fill BOOT_USER_PGD_PTRS-2,4,0
385         /* default: 766 entries */
386         .long 0x00102007
387         .long 0x00103007
388         /* default: 254 entries */
389         .fill BOOT_KERNEL_PGD_PTRS-2,4,0
390 
391 /*
392  * The page tables are initialized to only 8MB here - the final page
393  * tables are set up later depending on memory size.
394  */
395 .org 0x2000
396 ENTRY(pg0)

여기서 swapper_pg_dir 에서 처음과 768 번째 (0xC0000000) 엔트리로 설정하는 것이 pg0 의 주소가 됩니다.
아직은 리얼 모드이기 때문에 0부터 시작하는 선형주소의 4MB 부분과
나중에 보호 모드에서 페이징을 이용하여 접근할 0xC0000000 부터 시작하는 4MB의 선형주소 부분을 모두 pg0 로 설정합니다.

커널은 물리 주소의 1MB 영역 (0x00100000) 부터 시작하고 pg0 는 0x2000 에 위치하므로 결국 0x00102000 이 되는 것입니다.
마지막의 7은 아마도 페이지 테이블의 속성을 나타내는 플래그 값이었던 걸로 기억합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.