세그멘테이션, 페이징...

익명 사용자의 이미지

이건 좀.. 어려운 질문일 수 있는데요...

인텔 CPU 구조 매뉴얼에 보면
세그멘테이션과 페이징이 나오잖아요...

그래서 리눅스에서는 세그멘테이션과 페이징이
어떻게 구현되어 있는지 확인해 보려고 하는데요..

어디에 붙어 있는지 알 길이 없네요..

소스의 어느 부분에서 이것이 일어나는지 알 수 있을 까요???

파일 명이나 함수명이라도 가르쳐 주시면 고맙겠습니다.
아니면 논문 비스무리한것이라도 좋습니다....

익명 사용자의 이미지

세그먼테이션...x86구닥다리모드일때 동작하는데 CS/DS레지스터를 조작하
여 주소를 생성함. 이런 방식으로는 가상 메모리를 구현할 수 없으므로 리
눅스 메모리 관리에는 논외로 함

페이징...가상 메모리를 사용하는 운영체제를 지원하기 위한 기능으로써
CPU내의 MMU(메모리 관리 유닛)에서 하드웨어 레벨에서 자동으로 처리되
는 부분임. 소프트웨어로 구현하는 것이 아님.

예를들어 Paging Fault Error가 발생하는 것은 소프트웨어적인 검사가 아
니라 MMU에서 하드웨어적인 검사(테이블 매칭)에 의해 에러를 알려주는 것
임. 소프트웨어적으로 허용된 메모리 영역에 접근하는지 검사하는 방법은
너무나 느리므로 활용되기 힘듬.

익명 사용자의 이미지

http//www.ezdoum.com/stories.php?story=02/05/10/5990080
음.. 리눅스의 메모리관리 와 테스크관리 에 대해 간략히 적어놓은
글입니다.

익명 사용자의 이미지

커널소스중에 문서 폴더를 보면 kernel-docs.txt이란 파일이 있습니다.

그 문서에 첫번째로 등장하는 책이 바로 아래의 책입니다.
온라인에 공개된 책인데, 커널을 처음 접하는 사람들이
커널이 어떻게 생겼나 공부하기 좋은 책이지요..

돌도끼란 커널 분석 모임에서 한글로 번역도 해놓아서..
안성맞춤이 아닐까 싶습니다.

한글 번역판에 보면 그 내용에 해당하는 소스 파일이
주석으로 처리되어 있습니다. 다만 분석된 소스 파일의
기준이 2.0.39던가 그렇습니다. 그러나 큰 틀을 이해하는데는
무리가 없습니다.

help me님께 조언을 하자면, 한 부분이 잘 이해가 안된다고
그곳에 너무 연연해서, 흥미를 잃지 마세요..
커널을 이해 한다는게 너무 방대한 지식이 필요로 해서
이것을 한방에 이해 한다는 것은 거의 불가능이 아닐까
싶네요..
(요 몇일 사이 메모리 관리에 관련된 글을 많이 올리셔서
드리는 말씀입니다)
메모리 관리를 바탕으로 커널의 각 부분이 연동되어서 돌아가니
다른 부분을 보면서 아하 그래서 커널의 메모리 관리가
이런 구조를 가지게 되었구나.. 하시게 될껍니다..

* Title "The Linux Kernel"
Author David A. Rusling.
URL http//www.tldp.org/LDP/tlk/tlk.html
번역판 http//www.ezdoum.com/upload/TheLinuxKernel.pdf

Keywords everything!, book.
Description On line, 200 pages book describing most aspects of
the Linux Kernel. Probably, the first reference for beginners.
Lots of illustrations explaining data structures use and
relationships in the purest Richard W. Stevens' style. Contents
"1.-Hardware Basics, 2.-Software Basics, 3.-Memory Management,
4.-Processes, 5.-Interprocess Communication Mechanisms, 6.-PCI,
7.-Interrupts and Interrupt Handling, 8.-Device Drivers, 9.-The
File system, 10.-Networks, 11.-Kernel Mechanisms, 12.-Modules,
13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The
Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU
General Public License, Glossary".

댓글 달기

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