시스템파일과 DLL과의 차이점

이소희의 이미지

제가 생각하고 있는 확장자가 sys인 파일과 dll인 파일의 차이점이 맞는건지 모르겠네요.
갑자기 제대로 모르고 있다는 생각이 들어 글을 올립니다.

___A.sys___
|++++++++| ---- 가)
| Func1()+++| ---- 나)
-----------
이럴경우 가)와 나)에서 A.sys에 접근하여 Func1을 접속하게 되면 하나의 프로그램에서 접속하는 것처럼
사용하는것 처럼 되고, 즉 Func1()을 동시에 사용하게 되는게 아닌가? 하는 생각을 하게 되네요.

그리고 DLL의 경우는
___A.dll___
|++++++++| ---- 가)
| Func1()+++| ---- 나)
-----------
위 그림처럼 가)와 나)가 접근 하게 되면, Func1()함수를 가)와 나)가 각자의 것처럼 사용하게 된다??

이게 맞나요?
+_+

여기저기 웹 찾아보고 책 뒤져봐도 찾질 못하고 여기에 질문 올립니다.

좋은밤 되세요.~!

grassman의 이미지

Windows에서 SYS와 DLL 파일은 파일 구조로 본다면 PE 포맷을 사용하므로
동일합니다. 다만 하는 역할과 내부 함수 구조가 다릅니다.

SYS 파일은 디바이스 드라이버로 동작하며 엔트리 포인트가 DriverEntry로 시작합니다.
그리고 DeviceAttach, DeviceRemove, DeviceIoctl, Read, Write 등의 OS에서 장치를 제어하기
위한 인터페이스 함수를 구현합니다. 그리고 동작이 커널모드에서 수행되므로 모든 프로그램에
대해 동일한 인스턴스만 보입니다. DLL과는 달리 운영체제에서만 접근할 수 있으며 응용프로
그램은 직접 SYS 파일에 Call을 할 수 없습니다.

DLL 파일은 함수들을 동적 라이브러리로 불러와서 사용하기 위한 인터페이스로서 엔트리
포인트는 DllMain입니다. 나머지 함수는 임의로 만들어서 쓸 수 있고 원하는 함수만 export
하여 응용프로그램에서 사용할 수 있습니다. DLL은 유저모드에서 수행되므로 모든 프로그램
에 하나씩의 인스턴스가 생성됩니다.

이소희의 이미지

정말 감사합니다.

행복한 하루 되세요 ^^

내 삶속에 던져진 나.

댓글 달기

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