Redox FileSystem
- KOBAさん Emacs派
mount()
socket_path: カーネルとおしゃべりするためのソケットscheme: URLのスキーム- ユーザーランドで実装されている
/->file:/の短縮ls :にfileあるがこれは- inodeってなんだ
/に/とか..あるがループバック?
packet作っている
socket.read(&mut packet)
socket.handle(&mut packet)
socket.send(packaet)-
hikalium さん「いい話」
-
Packet in syscall::data - Rust
- 4引数
aにsyscallが入っている
- 4引数
-
templateがある
-
filesystem.tomlに書く- めちゃくちゃ改造されたstdが使える
-
自作redoxfsしてみた
open: fileidは常に1返すread: positionはglobalでfstat: ちゃんと書くcloseでrewind(pos = 0)
-
メンバ名にprefixついている,
-
helloファイルシステム&で立ち上げるhelloScheme使えるようにlsするとfstat走る
-
自作のDBをファイルシステムに組み込める
rellyfs- 当たり前に自作DB持っていて強すぎる
updateとdelete無いのでファイルは作ったきり
- 当たり前に自作DB持っていて強すぎる
-
「GNU Hurdみたい」
-
linuxはfuse経由
-
linuxでディスクイメージを焼く必要があったのでlinux用のfilesystem作った
-
display,shared mem, ドライバも Scheme -
root scheme探す旅
-
UserInner::todo: WaitQueue<Packet>: パケットをためておく- 中は
Mutex<VecDeque>
- 中は
-
root schemeはユーザーランド?
-
Packetの中のポインタは誰が変換しているの?- 書き換えていない?
UserInner.write()でgrantsにVirtualAddress::new(address)しているUserInner::capture_inner()コメント書いてあって喜びstruct VirtualAddress(u32)- grantsなんだ
ContextUserGrantsmap_inactiveで メモリ変換している- ページの中は共有で見えてしまう
- hikaliumさん 「ここにRust-analyserがいるので」
- ファイルシステムから見える分には良い?
println!("{:#p}", &buf),#: 0x-prefixed,p: ptr- rustのビット反転
!,adddr & !0xffffusizeで 12..0 0-ed std::slice::from_raw_parts()rust_analyzerが無いと生きていけないrust_analyzerの言うことを聞くことが出来る- 「かしこい」
- 人間make
- 「かしこい」
- パイプで食べさせると美味しい
- みえてみまった
- さすがに別のページ見ると落ちる?, そうでなかたっらロック
- みえてしまった
- 信用できないfsは入れないようにしよう
- みえてしまった
- さすがに別のページ見ると落ちる?, そうでなかたっらロック
- みえてみまった
- ページの中は共有で見えてしまう
- 書き換えていない?
-
tr -d , < | xxd -r -p -
ACPIドライバー動いてる
-
次回: syscall
-
マウントよくわかっていない
-
FUSE: File System in User Space