2M Byte Ram에 적용할만한 파일시스템이 있을까요?

killerwizard의 이미지

안녕하세요.
임베디드 장비의 RAM에 일정한 정보를 저장, 삭제, 추가 하는 일을 하고 있씁니다.
주 프로세스는 80186계열이고 사용하는 RTOS는 Nucleus입니다.
물론 Nucleus에서 제공되는 파일 시스템을 쓰면 좋겠지만...
비싸서 회사에서 사지는 못했습니다.( ㅡㅡ)
지금까지는 그냥 최대한 많이 저장하기 위해서 빈공간 없이 데이터를 끼워
넣었는데..
자주 데이터가 깨져서 소실되는 경우가 발생합니다.
위의 사실은 치명적으로 장비가 운용되기 힘듭니다.
그래서 그런데... linux나 fat 같은 파일 시스템 말고 적용할 수 있는
파일 시스템이 있을까요?
혹 있다면 그 파일 시스템에 데이터를 저장시 압축해서 넣을 수 있는...
압축 라이브러리는 혹 없을까요?
빠르고 압축률이 높으면 좋겠죠..( 좋은 것만 찾는 군요 ㅡ,ㅡ)

너무 황당한 질문만 드려 죄송합니다.
감기 조심하세요.

dondek의 이미지

압축 파일 시스템을 사용하신다면 cramfs 를 사용하세요.

그리고 추가적으로 cramfs를 묶어서 사용할 수 있는 packcramfs 도 한번 사용해보시기 바랍니다. packcramfs는 midori project에서 사용하기 위해 만든 간단한 유틸리티입니다.

-------------------
앗. linux의 filesystem을 말하는 것이 아니었군요. :)

진리를 나의 수준으로 끌어내리지 마라.
나를 진리의 수준으로 끌어올려라. - 배꼽 중에서

kyong의 이미지

read only 압축 -> cramfs
NAND flash -> jffs
NOR flash -> yaffs

linux에서는 이렇게들 많이 쓰고 있는 것으로 알고 있습니다.
2MB는 좀 작군요.

dreamer의 이미지

일단 램에 저장한다는 말이 무슨뜻인지? flash 나 sram인가요?
flash에 저장 하는 파일시스템은 jffs2, yaffs등이 대표적인데.
jffs2는 압축을 지원 합니다, yaffs는 nand 플레시에만 가능 하고요...
그런데 이 파일시스템들은 리눅스 커널의 mtd라는 것을 사용하기때문에, os
가 달라지면 실제로 적용하기가 상당히 힘듭니다.
파일 시스템의 인터페이스와 커널 하드웨어 어플이 모두 고려가 되야 하니까요.

사족을 달면, 전원이 갑자기 꺼졌을때등에서 데이타를 보존하기위해서,
저널링이라는 개념이 도입되는데, 이 것을 지원 하는 파일시스템은 jffs2와 yaffss등이 있고요, ext2, fat등은 지원 하지 않는 것으로 알고 있습니다.
그리고 이러한 파일시스템은 기본적으로 파일 하나를 저정 할때, 512byte 혹은
4kbyte등의 사이즈를 차지 하기 때문에, 2M의 작은 용량에서는 사용 하기가 좀
어려울 듯 십습니다.
2M라는 사이즈는 너무 작기때문에, os에서 제공하는 파일시스템을 구매 하던가, 아니면 지금 사용 하는 방식을 더 안전하게 만드는 방법이 나을 듯 합니다.

익명 사용자의 이미지

그정도 작다면..... FAT죠.....

kyong의 이미지

kyong wrote:

NAND flash -> jffs
NOR flash -> yaffs

NOR flash -> jffs
NAND flash -> yaffs
바꿔 주세요.
kyong의 이미지

dreamer wrote:
이러한 파일시스템은 기본적으로 파일 하나를 저정 할때, 512byte 혹은 4kbyte등의 사이즈를 차지 하기 때문에, 2M의 작은 용량에서는 사용 하기가 좀 어려울 듯 십습니다.

NOR flash 에서는 보통 128K죠?
kyong의 이미지

dreamer wrote:
yaffs는 nand 플레시에만 가능 하고요...

NOR flash, RAM도 지원합니다.

근데 요즘 NOR flash는 64K Block 보다 더 작은 사이즈를 지원하는지 모르겠네요. 전 예전에 MTD Partition 나누고 Block 사이즈 64K로 조정하고 했던 기억이 나네요.

naisr00t의 이미지

killerwizard
파일시스템 해결 하셨는지요?
저희 회사도 약간은 비슷한 환경에 걸려서 그러는데, 해결했는지 궁금합니다.

댓글 달기

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