◆Cmaster.z.
■ このスレッドは過去ログ倉庫に格納されています
>>473
あ、ありがとな!(´;ω;`)ノシ
バレンタインとか数年忘れてたわ… 年単位(・・;)かいっ!
男子校だっけ(・・?
ダタらもらうの機会、少ないから忘れちゃう…かも(・・? >>475
そうそう(´・ω・`)
男子校だとバレンタインの事は話題にすらならないからね…… こんばんわ
時間がたつのは早いものですね
今週もなんとか生き延びることができました。
次から次へとやることがつみあがっていく現象なんとかなりませんかね
閑話休題
無駄に難しいことを小学生でも楽しく理解できるカリキュラム作成を目指しているので
細かい話はバンバン飛ばしていきます。
前回作成したFAT12のイメージファイルを前提にすすめます。
file fdd.img
でsectors/FAT 12やFAT (12 bit)の文字があるか確認しましょう。 まずは全体像からいきませう
FATファイルシステムはおおまかに4つに分けることができます
1.ブートセクタ
2.FAT領域
3.ルートディレクトリ領域
4.ファイル領域
名称からなんとなく想像つきますが、
1〜3がファイル管理に利用される領域で、
4がファイルデータが押し込まれています。 最初にやるべきことは、これらの情報を解析することですが、
FS全体の構造情報はブートセクタにBPBとして存在しています。
まずはこのBPB情報を吸い取り各領域の位置を知る必要がありますが、
ここで2つの単位を確認しておきましょう。
ここではおもいっきり簡略化して定義しておきます
1.セクタ=HDDなどブロックデバイスの入出力単位
2.クラスタ=ブロックデバイスの記憶単位
なお、「f(セクタ)=クラスタ」の関係になります MSのマニュアルをみるとグダグダとBPBの各項目の情報がならんでいますが
入出力するために必要なものは限られています。
実際ドライバも無視している情報があります。
とくに今回CHS指定をする必要がないのでさらに必要な情報が限られます。
主に必要なメンバは上から以下のとおり、
char jmpCode[3];
char OEMName[8];
char bytsPerSec[2];
char secPerClus;
char rsvdSecCnt[2];
char numFATs;
char rootEntCnt[2];
char totSec16[2];
char media;
char FATSz16[2];
char secPerTrk[2];
char mumHeads[2];
char hiddSec[4];
char totSec32[4];
イメージファイルの「先頭から」きっちり取りきる必要があるため、
使わないメンバも一応記述しておきませう。
なお、ブートセクタは先頭512バイトなので
512バイト取り切れる集合の構成をかんがえませう。 問題じゃなくて最後まで説明で終わりそうになったんで
無理やり切った感強いが気にするな
要するにイメージファイルからブートセクタ切り取ってメンバにふりわけてちょってこと
もちろんハマりポイントはあるがねw おーこんばんは!!(´・ω・`)ノシ
問題って構造体書いてまんま読み込んじゃえば良いんでないの…? C言語からUSBメモリの読み書きってどうすればいいの(´;ω;`) 操作する機会が無いと知らないもんだなぁ(´・ω・`) あ、ごめんUSBじゃなくてイメージファイルか(´・ω・`)
勝手にUSBだと思い込んでたわ char _buf[512];
FILE* fp=fopen("xxx.img","rb");
fread(_buf,1,512,fp);
これで_bufを構造体にキャストすればいいけど……(´・ω・`)
その構造体どうやって調べたら分かるのか… 先頭からのメンバは>>480にあるとおり
それから後ろにあるのはとりあえず使わないのでダミーで結構 typedef struct tagMBR{
char jmpCode[3];
char OEMName[8];
char bytsPerSec[2];
char secPerClus;
char rsvdSecCnt[2];
char numFATs;
char rootEntCnt[2];
char totSec16[2];
char media;
char FATSz16[2];
char secPerTrk[2];
char mumHeads[2];
char hiddSec[4];
char totSec32[4];
char _buf[512-36];
}MBR;
MBR mbr;
FILE* fp=fopen("xxx.img","wb");
fread(&mbr,sizeof(MBR),1,fp);
これでどうじゃ(´・ω・`)
なんの捻りもないですが… 一応ビルド通る形にしてみてくれる?
んで
seq -s "" 512 > hoge.txt
あたりでテストファイル作って
これを読み込んできちんとオフセットに対応したメンバにはいってたらおk 16ビット整数として扱うものはそのままじゃ使いにくいので、
__uint16_tあたりにして整数で扱えるようにしておこう。
[2]がついてるやつね
ついでに[4]の32ビット整数も__uint32_tにしておこう うーん今テストしてみてるけど合ってるのかよく分からない(;・∀・)
でもこのプログラムで落とし穴になりそうな所は無いし、あってるのでは? エンディアンの問題かな?(´・ω・`)
一括で読み込めば別にcharでやってても問題ない気がするけど 具体的に使いそうなのはこのあたり、
char bytsPerSec[2]; セクタあたりのバイト数
char secPerClus; クラスタあたりのセクタ数
char rsvdSecCnt[2]; 予約領域に使うセクタ数
char numFATs; FAT領域の個数
char rootEntCnt[2]; ルートディレクトリのエントリ数
char totSec16[2]; ボリュームの総セクタ数
char FATSz16[2]; FAT領域の総セクタ数
ちなみにMBRは物理装置の先頭にあるものだから、
ここでは単純にBootSecあたりにしといたほうがええね >>494
じゃあメンバの型を整数型に変えたあとに構造体をsizeofしてみそ。 あーなるほど(´・ω・`)
やらんくても分かった気がする
アラインメントかな char[2]→__uint16_t
char[4]→__uint32_t
今日中にルートファイルを読み込むとこまでいけるつもりだったが無理くさい
やっぱ思ったより重いなw
自分の中ではポイントは5つくらいだからすぐいけると思ったが割りと前提知識いるw >>500
ファイルシステムを解析するプログラムかなんか書いてるの?(´・ω・`) 処理系によっては構造体のメンバがすべてcharとその派生型なら「たまたま」ぴったりになるが
あくまで「たまたま」ね
ちょっとした変化でズレる >>502
ふむふむ(´・ω・`)
世知辛いね…
charで読み込んで後から構造体に割り振ったら良いね >>501
ただ昔に作った課題の使いまわし
おおまかにいうと写像の実体化だから丁度ええかなとおもってさ
加えて昔チミが複雑怪奇なことしとったしw >>503
ダンプして調べてみ
構造体の枠自体が間違ったものになってるから
つまり規格上構造体はバイナリ入出力を想定してない抽象的なものってことがわかる
間違った型枠にキャストしてあてはめても「ズレ」る まぁ一個ずつオフセットをとりサイズで項目をきりキャストしてメンバ毎に代入してもいいが
さすがにメンバ数が多いとダルい
ということでバイナリ情報とメンバ毎にアクセスできるお手軽な方法+
ディスク情報とマップさせるにはどうすべきかということだが。。。 おっと、今日中にCMASがってことね
ファイルシステムの中をファイル名からファイルの実体を吸い出すとこまで
わりと簡単に教授できるかなと思ってたけど結構あれこれ伝えることあんなと思って すまんな色々調べ物してたわ(´・ω・`)
>>504
あの頃か…(´・ω・`)
懐かしい…
>>505-506
なるへそ〜(´・ω・`)
全く思いつかんな >>507
ブフォΣ(゜ω゜)
FATシステムの攻略とか無理ぽ…
構造体のアラインをこっち側で規定できればいいのにね… ま、ここは本題ではないのでさくっとやってしまおう
要するにコンパイラに余計なことすんなってことでpragmaと
共用体使ってやっときゃええってことやねー
#pragma pack(1)
typedef union {
char bytes[SECTORSZ];
struct {
〜
} bpb;
} BootSector;
#pragma pack()
ちなみにMBRは物理装置の物理的にも先頭位置の領域のことだから
一応BootSectorとかBootSecにしとくといいよ、
そのなかのBPBということでインナーもそんな感じで
>>509
正直3時間もあれば概略つかませて
自分仕様のFSを設計&開発できる素地をCMASの中に作る自信あったんだけど
早々に諦めた
明日もし時間つくれるなら明日中にマスターさせてみせる >>510
pragmaとか全く使ったことなかったw(´・ω・`)
ファイルシステムの設計か
それ自体は今でもできそうな気がするな…
特別必要な知識とかあるの? とくにこれといって特別な知識はいらんかな
ファイルシステム自体は抽象論なので
リストと集合と写像くらいかね >>512
そうか(´・ω・`)
適当にセクタで区切ってデータを入れてけばいいイメージw その適当の部分をどう管理するかってだけの話ではあるねw
まぁできそうなら別のやつやるか
いまさらながらMeltdown関係の論文原典調査して
再現試みて実習にとりいれようと頑張ってるが
カーネルメモリの内容をユーザーランドからとるのは簡単なのはわかったけど
それを意味のある一まとまりの情報になるまで取りつづけるの相当時間かかるなこれはw
という印象 >>514
むずい…(;・∀・)
ユーザーランドからアクセスできるんだ…
脆弱性にならないのかな だから年明けに判明したCPUアーキテクチャの脆弱性だってw よしじゃあまとめるか
BPBにて構造が定義されている
そしてルートディレクトリ領域とFAT領域及び
ファイル領域は線形写像の関係にある
糸冬 >>516
あ、あれの事を言ってたのね(;・∀・)
知る由もないw
>>517
数学絡んでんのか((((;´・ω・`)))
複雑そうで恐ろしいお 頑張って人工知能の構想を練っておりますがむずい(´・ω・`) おうい!数学絡めないと社会生活できないぞ?
数オリでアクロバッティブな数学に触れすぎたかw
大学で人工知能研究に触れると気付くと思うが
人間は意識無意識にかかわらず五感を通じた入力と出力から
数理モデルを構築・修正しその数理モデルに基づいて行動してる
これができてないと現生人類はいまだにチンパンジーと一緒にウキウキいってる
AはBであるを集積するだけでは思考は成り立たない >>520
そうだね(´・ω・`)
今はそれの実現方法に注力している
でも果たして数理モデルを構築しているか、といえば疑問
もっと単純にデータを抽象化して他の事例に当てはめてるだけなのでは、という気がする
まぁもう眠いので落ちます… チネなんて思っても口に出しちゃ
ラメ(・χ・`)よっ。 >>525
そうよね…(´・ω・`)
口には出さないけど2ちゃんで言っちゃう 親死ね
http://hebi.5ch.net/test/read.cgi/news4vip/1518945548/
このスレ、愚痴からスタートして自分の意見丸々まとまったので貼る(´・ω・`)
批判が痛烈であるが俺の思っていることに変わりはない >>526
ガーー(・∀・)ーーン。。
この子ったら(´ `;)もぅ! >>530
꜀ (゚∀。) ꜆そ、そう? 好きなことをしていたら時間が経つのはあっとゆう間だよ
(*´∀`)(´∀`*)ネー♪ 何もしてなくてもあっという間だよil||li (っω-`。)il||li 自分の中に悔しさを刻み込んでおこう(´・ω・`)
数オリ本選の結果出たけど落ちてますた おはお(´・ω・`)
最近こっちのスレで活動してない >>540
なんとも言えないお(´;ω;`)
>>541
ようこそお(´・ω・`)ノシ テスト終わって本来休みなはずなのに、係活動で学校行かなきゃいけないお…(´・ω・`)
つらい 係活動って学生らしい
単(・∀・)語!
何係りをしているのかしら?(*^∇^*)んらん。 おっとここに来てなかった(´・ω・`)
係活動の内容は後輩の騎馬戦の面倒を見る事だね
面倒なことばっかだお https://ideone.com/ud8FH4
2310未満の素数の和を2310で割った余りを求めるプログラム(´・ω・`) エラトステネスの篩でない素数プログラム(´・ω・`)
https://ideone.com/rPeXTM スレの長期目標掲げようぜ
とりま素数定理を証明しよう >>552
えー(´・ω・`)
>>553
大学生になったらやるかも!(´・ω・`)
あといらっしゃいですお〜 ますたーくんは数学科受けるん?
それとも進学校の例に漏れず医学科目指してるの? 情報系に行きたいと思ってるよ(´・ω・`)
でも勉強してないから口にするのすらおこがましい… ちなみに原稿用紙20枚分の証明が載っています(´・ω・`) >>557
すげえ・・・すげえよ・・・!
東大理類の問題とかだと三桁点くらい取れたりするの? ますたーくんレベルの人の役に立つかどうかは分からないけど(そもそも数学特化型の予備校だとこれと同レベルの問題集配られてそうだけど)
俺が使ってる受験数学の分野別難問集みたいなの載せとくわ・・・
http://www.aristos-web.com/text/text_math.html >>559
そんな褒められると照れるお(´∩ω∩`*)
実は数3をまともに勉強してないから東大入試は無理だおwww
>>560
ちょっと見たけどかなりレベル高いな(´・ω・`)
東大とか京大志望なのかな
俺は受験勉強独学でいいやと思って去年塾やめちゃった
数学に関してはチャートで大丈夫かなとか思ってたけど、こういうの使った方がいいのかも知れない… >>561
俺は文一落ちのVIPコテやで^ー^
だからぶっちゃけ理系数学のことは知らんやで^ー^
これから一年ちょくちょくここ覗きに来るから
何か面白そうな数学の話とかあったら載せてくれると嬉しい >>562
おー!(´・ω・`)
もしかしたら大学で同じになるかもな
このスレたいして書き込まないけど見てくれるの嬉しいお〜 僕の知り合いの知り合いができた副業情報ドットコム
役に立つかもしれません
ネットで検索するといいかも『蒲原のロロムムセ』
TPPOS スレ見てなくて気づかなかった(´・ω・`)
すまんな はぁ…(´・ω・`)
もっと数オリの勉強しときゃあ良かったな… 1~10000の数字をランダムに選んで素因数分解するプログラムを書いたので(´・ω・`)
https://ideone.com/b45zXd 素数がなんなのかいまだにわから(・・;)ナイ!らんらん(・∀・人)デス。
でも、らんらん
(・∀・)キニシナイ! ■ このスレッドは過去ログ倉庫に格納されています