물리 메모리 1M이하엔 어떤 것들이 있나요?

rainbird의 이미지

물리 메모리에 직접 억세스를 해야 하며, 커널을 움직이려고 애쓰고있습니다.

1M-8M에 커널이 있다는건 알겠는데 1M이하에 정확히 무엇들이 있는지

파악이 어렵습니다...

괜찮은 사이트나, 정보 아시는게 있으면 가르쳐 주시면 감사하겠습니다.

대충 예상은 각 device들을 mapping시켜 놓은듯 합니다만...

커널 2.6 base면 더 좋겠네요 ^^

좋은 하루 되세요~

hb_kim의 이미지

옛날 PC 메모리/IO 맵이 있지요 - 640kbytes 기본 메모리, 비디오 카드 메모리, PC 바이오스, 그외 ISA 호환 어댑터들의 롬과, IO 영역등.

요샌 누가 ISA 관련해서 뭐 만들려고 하지를 않기 때문에 이런 지식들은 알아봐야 별 쓸모없는 것들이랍니다. 그런데 또 제대로 알려고 하면 시간도 많이 걸리는 것들이구요. 굳이 아시고 싶으시다면, 도서관이나 헌 책방에서 'IBM PC XT/AT architecture' 이런 종류의 책을 찾아서 보시면 되지만...

Necromancer의 이미지

0xa0000 아래와 위로 나뉘는데 0xa0000위는 시스템영역이고, 그 아래는
도스가 쓰는 데이터영역입니다. 소위 도스의 640k 메모리 제한이 여기에서
나온거죠.
(0xa0000은 메모리 절대주소를 말한겁니다. 0xa0000을 10진수로 환산하게
되면 딱 640k가 됩니다.)

대충 알기로는 0xa0000-0xbffff 영역은 비디오램과 대응됩니다. 대응방법은
비디오카드종류나 모드별로 틀리고요. 이거를 생각없이 액세스하게 되면
화면이 깨져 나오죠 :lol:

0xc0000부터가 비디오카드 바이오스
시스템 바이오스는 0xf0000에 위치하는데, 바이오스마다 위치가 다 틀립니다.
나머지 0xd0000 영역은 다른 장치 바이오스나 드라이버들이 위치합니다.
안쓰면 비어있는거고요.
(예전 도스시절에 UMB라고 불리는 영역이었죠. 640k 확보한답시고 여기다
드라이버나 램상주 프로그램들을 올렸었죠. 주로 0xd0000에 집중됐던 거 같은데)

그리고 0xa0000아래 (640k 아래 영역이죠.)중에 바이오스가 쓰는 영역이 있다면
0-0x3ff까지는 int 벡터 테이블이고, 0x400부터는 바이오스 데이터 기록 영역이
있습니다. (크기가 생각 안나네요.) 얘네들 잘못건들면 시스템 크래쉬됩니다.
그리고 바이오스 종류 중 몇가지는 640k 끝부분의 1-2K 정도를 잡아먹는게
있습니다.

640k에서 이들을 제외한 나머지가 실제 쓸 수 있는 영역이 됩니다.

Written By the Black Knight of Destruction

swirlpotato의 이미지

저도 찾아본다하면서 전부터 미루고 있었는데 흑기사님덕에 알게되서 감사합니다.

rainbird의 이미지

먼저, 자세한 답변에 감사합니다. 의외로 그부분에 대한 데이터가 없더라구요 ^^ 정말 감사합니다.

그리고 죄송한데, 추가질문!! ^^;

흠 그럼 그 H/W Reserved 되어 있는 영역에는 실제 물리 메모리가 없는건가요? 아니면 Mapping 되어있는 그런 형식인가요? 만약 mapping 되어 있다면, 커널을 mapping하지 않게 수정하거나 다른영역으로 mapping 하게 한다면 그 부분을 실제로 사용할 수 있을까요?

/ / / // // / /// / / / // // / // // // / / / ////// // /
/ / // // / /// / / / // // / // // // / / / /// // // / /
/ / // // / /// / / / // // / // // // / // //...rainbird

익명 사용자의 이미지

요새는 거의 다 mapping 형식으로 알고 있습니다. 대응되는 영역의 시스템
램은 존재하지만 안쓰는거죠.
하지만 그 부분을 어떻게 구현하는가에 대해서는 정해져 있지 않습니다.
따라서 저장용으로는 안 건드는게 좋죠.

shadow 기능이 있는 바이오스들은 시작시에 자기 자신을 롬에서 시스템
메모리로 복사합니다.

그리고 참조할 만한 문서로는 ralf brown's interrupt list라는게 있습니다.
한번 검색해 보시기 바랍니다. 바이오스를 건들거나 16bit 프로그래밍을 해야 할
경우 반드시 필요한 자료입니다.

단, 이 문서는 도스시절에 쓰였던 각종 interrupt service를 백과사전식으로
나열한 거여서 자료 찾기가 힘들기 때문에 처음 답글 다신 분이 소개한 책을
보셔야 할겁니다.

rainbird의 이미지

답변 달아주신분들 정말 감사합니다 ^^;
좋은하루들 되세요! 많은 도움이 될듯합니다.
애매한 문제들이 조금씩 해결될 기미가 보이네요 ^^
다시한번 감사드립니다.

/ / / // // / /// / / / // // / // // // / / / ////// // /
/ / // // / /// / / / // // / // // // / / / /// // // / /
/ / // // / /// / / / // // / // // // / // //...rainbird

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.