리눅스에 관한 프로그래밍에 대해서 전문가들의 도움 바랍니다.

yunbs0의 이미지

저는 한경대학교 컴퓨터공학과 3학년에 재학중인 학생입니다.
다름이 아니오라 이번에 졸업 프로젝트를 하려고 합니다.

그래서 안건이 두가지가 있는데, 한가지가 윈도우 탐색기(x윈도가 아닌 ms사의 윈도우 시리즈)에서 리눅스의 파일 시스템을 볼수 있는 프로그램을 만들려고 합니다.

이 프로그램이 있지 않을까 의심이 가서 알아봤더니 ext2 파일 시스템을 보는 것은 2개가 있더군요. 근데, 그 중 하나는 홈 사이트의 다운로드 링크까지 가봤으나 정작 다운로드는 안되더군요. 그리고 하나는 total command를 깔고 플러그 인을 설치하면 된다고 하더군요.
그래서 저희는 ext2, ext3 둘다를 윈도우 탐색기에서 볼 수 있는 프로그램을 만들려고 합니다.
근데, 이것이 너무나도 막연하다고 해서 다른 팀원 4명중 2명이 반대를 하고 있습니다. 끝까지 설득해서, 만약에 다음주 수요일까지 ext2,3 파일 시스템 소스와 어느정도의 소스를 가지고 오면 이걸 채택하겠답니다.

그럼 본론을 말씀드리겠습니다.
1. 이 프로그램이 비주얼 베이직으로 될까요? 안된다면 어떤 언어를 써야 될까요?
2. ext2, ext3 파일 시스템을 만드는 소스를 얻을 순 없을까요?

여러분의 도움을 바랍니다. 부탁드립니다.
그리고 저는 리눅스 생초보입니다. 인스톨 시킨 정도 밖에 안됩니다.

kslee80의 이미지

제가 윈도우 상에서 프로그램을 짤 일이 없어서 윈도우쪽 프로그래밍에 대해서는 잘 모릅니다..
이점을 먼저 밝혀두고요..

본론으로 들어가서..;;
ext2 와 ext3 는 일단 구조가 같습니다.
그리고, 완전히 공개되어 있죠...잘 찾아보신다면 ext2 에 대해서는
완벽한 Documentation 자료까지 구하실수 있습니다.

mkfs.ext2 의 소스 역시나 공개되어 있긴 하지만,
제가 보기에 이 소스는 그리 큰 도움은 되지 못할 것입니다.
차라리 위에서 언급한 Documentation 이 더 도움이 될 것입니다.
왜냐하면, mkfs.ext2 는 ext2 fs 의 Superblock 와 Group Descriptor 를
생성하는 역할을 하는데, 이것들은 Documentation 이 더 자세합니다.
게다가, 정작 탐색기 같은 역할을 위해서 필요한 Inode table 같은 자료의
접근방법에 대해서는 이 소스로는 알기 힘들죠..

그리고, 이런 류의 프로그래밍에서는 상당한 low-level 적 접근이 필요합니다.
가능하면 파티션에 대한 Raw Access 통해서 프로그래밍 하기를 귄합니다.
그렇기에, VB 로는 힘들다고 생각합니다.

Documentation 을 구하기 힘들다면,
임시로 "리눅스 커널의 이해" 라는 책에 나와있는 ext2 에 대한 부분을 보셔도
많은 도움이 될 것입니다.
컴퓨터 공학과라면 아마도 이 책을 보는 사람들이 있을테니,
사는 것보다는 이 책을 가진 사람에게 빌리거나, 해당 부분만을 복사하여
보는 것을 권합니다. 실제로 몇 페이지 되질 않습니다 -.-;;

preisner의 이미지

http://sourceforge.net/projects/ext2fsd
에 windows 용 ext2 드라이버를 개발하고 있군요.
(write도 지원 한답니다.)
Document 도 함께 있으니 참고 하시면 되겠구요.
http://e2fsprogs.sourceforge.net/ext2.html 도 참고 하시면 되겠네요.
그런데 개발 언어가 C, C++로 되어 있네요.
VB 로 될지는 소스를 확인 해 보셔야 겠네요.
ext3 드라이버는 저도 잘 모르겠군요.

제가 만들어 보진 않았지만,
그다지 어려울것 같지는 않네요.
탐색기를 만든다면 파일 시스템 소스까지는 필요 없을겁니다.
실제적인 파일 I/O는 파일시스템 드라이버가 처리 해 줄테니까요.
(가상 파일 시스템이라고 하죠.)
굳이 필요하시다면
리눅스에 있는 mkfs.ext2 소스를 구해다가 분석하시면 될테구요.
리눅스 CD 중에 보면 소스CD 가 있습니다.

도움이 되셨길..
그럼.

owlet의 이미지

저 역시 윈도우쪽 프로그래밍 경험이 없어서 윈도우에서 HDD에 대한 IO는 어떻게 해야 하는지 잘 모르겠습니다만.. 그게 문제가 아니라면 졸업프로젝트로는 충분히 쉬운 프로젝트라 생각되네요..
ext2, 3에 대해서는 소스나 문서 모두 충분하고, 구조 역시 그다지 어렵지 않습니다. 관련 소스는 linux kernel과 mkfs.ext2를 참고하시면 될 듯 합니다.

drost의 이미지

부족한 지식으로 잘못된 답변을 올렸었네요. 죄송합니다.

삭제가 안되어서 내용을 비우는 방법으로 수정합니다.

감사합니다, 좋은하루 되세요~

achrom의 이미지

windows 2k, xp에서 hdd를 LBA단위로 access하는 것은 별도의 driver를 작성하지 않고도 간단히 해결됩니다. (98은 좀 다름) Partition table을 분석하고, ext2 파일 시스템을 분석한다면, driver에 대한 지식이 없어도, application수준에서 ext2 explorer를 만들 수 있습니다.

charsyam의 이미지

bluebayou wrote:
windows 2k, xp에서 hdd를 LBA단위로 access하는 것은 별도의 driver를 작성하지 않고도 간단히 해결됩니다. (98은 좀 다름) Partition table을 분석하고, ext2 파일 시스템을 분석한다면, driver에 대한 지식이 없어도, application수준에서 ext2 explorer를 만들 수 있습니다.

저도 bluebayou 님 말씀에 올인~~~~, 2k, xp 나 win98 계열에서
충분히 하드 디스크 I/O를 통해서 가상 파일 시스템 수준이 아닌
어플 수준에서 해결할 수 있습니다. 쩝, 고운 하루되시길.. .^^

=========================
CharSyam ^^ --- 고운 하루
=========================

saxboy의 이미지

탐색기류의 어플리케이션은 explore2fs, 드라이버류는 ext2fsd나 ext2ifs 를 찾아보세요. 소스도 모두 공개되어 있습니다. 저도 매일같이 사용하는 유용한 놈중 하나지요.

원하시는 프로젝트와 똑같은 내용을 구현한 소스들입니다. moral hazard 는 없기를 바랍니다. 그럴지는 없겠지만요. :D

하지만 졸업프로젝트로 하기에는 내용이 좀 버겁지 않나요?

댓글 달기

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