2008-09-20 00:00 not pine, something like that 2008-09-20 00:00 does the fact linux is x-platform make it harder to write good code, or is that actually a benefit? 2008-09-20 00:00 benefit, but not for the reason you'd think 2008-09-20 00:00 the arch maintainers have autonomy and don't have to listen to linus about what they check in 2008-09-20 00:01 that's a benefit? 2008-09-20 00:01 only thing arch can't touch is core, and there are numerous bypasses 2008-09-20 00:01 it is 2008-09-20 00:01 they can drop some stupidities 2008-09-20 00:01 like they can have kdb in their arch if they want 2008-09-20 00:01 ah 2008-09-20 00:01 doesn't that fragment the kernel though? 2008-09-20 00:02 yes 2008-09-20 00:02 enormous amount of cut and paste sloth across arches 2008-09-20 00:02 if code which is/should be x-platform ends up being arch 2008-09-20 00:02 that's why some interfaces change very slowly 2008-09-20 00:03 somehow I'd assumed arch-code was mostly asm and declarations of macros/support functions for the rest 2008-09-20 00:03 you'd think 2008-09-20 00:03 but now, huge parts of the vm are per-arch 2008-09-20 00:03 things like do_fault 2008-09-20 00:03 which hardly vary 2008-09-20 00:03 but each arch has its own 2008-09-20 00:05 right 2008-09-20 00:06 all arches are forced to follow the x86 page table model by the way, even if their paging does not work that way 2008-09-20 00:07 sometime you need to meet bill irwin 2008-09-20 00:07 far more ascerbic than me 2008-09-20 00:07 kill_litter_super - where does the name come from? 2008-09-20 00:07 litterbug 2008-09-20 00:08 crappiest name ever, almost 2008-09-20 00:09 why? 2008-09-20 00:10 what does a giant cockroach have to do with fs? 2008-09-20 00:10 doesn't say anything? 2008-09-20 00:10 oh 2008-09-20 00:10 litter... leave things lying around 2008-09-20 00:11 oh, maybe, ok 2008-09-20 00:11 as in trash 2008-09-20 00:11 still seems pointless 2008-09-20 00:11 true 2008-09-20 00:14 I think the litter refers to all dentries for the fs have to stay in cache 2008-09-20 00:14 because it has no backing store 2008-09-20 00:14 thus litter memory 2008-09-20 00:14 you'll have to ask viro to know for sure 2008-09-20 00:14 by any measure, one of the worst names ever 2008-09-20 00:15 but shouldn't those no longer be used at the point we unmount? 2008-09-20 00:23 ok, for an unbacked fs like ramfs, the dentries/inodes have to be prevented from disappearing 2008-09-20 00:23 because if they do there is not way to get them back 2008-09-20 00:23 a block backed fs can have them first flushed then evicted 2008-09-20 00:23 so dentry counts can drop to zero 2008-09-20 00:24 unback fs, they have to be forced to zero 2008-09-20 00:24 see d_genocide 2008-09-20 00:24 unbelievably crappy naming 2008-09-20 00:24 and nonexistent documentation 2008-09-20 00:24 take something simple and make it mysterious, it's hacker's job security 2008-09-20 00:28 :-) 2008-09-20 00:30 free_super_unpin would be more informative 2008-09-20 00:30 or 2008-09-20 00:30 unpin_super 2008-09-20 00:33 maze, what's the next move on junkfs? 2008-09-20 00:34 going to be mucking around with the vm or implementing the root directory 2008-09-20 00:34 not sure which, maybe both 2008-09-20 00:35 if you just go with fs/tux3 which has your code in it you get the root directory for free 2008-09-20 00:36 vm doesn't really have much to do with fs 2008-09-20 00:36 right, but I don't learn anything ;-) 2008-09-20 00:36 you just use the interfaces, like cache_alloc etc 2008-09-20 00:36 learn about vma then if you must hurt yourself 2008-09-20 00:36 err 2008-09-20 00:36 dma 2008-09-20 00:37 though vma would not be a bad second chocie 2008-09-20 00:37 choice 2008-09-20 00:37 for hurt 2008-09-20 00:37 heh 2008-09-20 00:37 actually, learning about memory barriers would be useful 2008-09-20 00:37 even to fs work 2008-09-20 00:37 I really want to understand what all the generic implementations do 2008-09-20 00:37 and when and why we would want to not use them 2008-09-20 00:38 sure 2008-09-20 00:38 that's the block IO library 2008-09-20 00:38 try using it as an alternative to what we just did 2008-09-20 00:38 read your superblock via ->readpage 2008-09-20 00:38 hmm? you mean bread and brelse? 2008-09-20 00:38 also doing it sb_bread would be useful 2008-09-20 00:38 easier 2008-09-20 00:38 cruftier 2008-09-20 00:39 create some dentries 2008-09-20 00:39 and inodes 2008-09-20 00:39 link them up properly 2008-09-20 00:39 by hand 2008-09-20 00:39 right 2008-09-20 00:40 well, I'm out all day tomorrow and have work stuff for sunday (yeah, suxorz) so I won't get much done this weekend (end of quarter and all that) 2008-09-20 00:40 read path_walk 2008-09-20 00:40 that will keep you busy 2008-09-20 01:02 first checkin in two days 2008-09-20 01:02 haven't had a two day gap since the start 2008-09-20 01:02 maze's fault for getting me interested in bio hackery 2008-09-20 01:02 lol 2008-09-20 01:02 working on the kernel port I see 2008-09-20 01:02 was 2008-09-20 01:02 maze is going to next 2008-09-20 01:02 how bout you? 2008-09-20 01:02 fun n easy 2008-09-20 01:03 oh still trying to fix out nfs 2008-09-20 01:03 out=our 2008-09-20 01:03 you work 24/7? 2008-09-20 01:03 well, a lot at times 2008-09-20 01:03 isn't child labor illegal? 2008-09-20 01:03 or something like that 2008-09-20 01:03 mostly struggling with various silly road blocks at this time, but I'm happy if it makes some kind of progress 2008-09-20 01:04 send over some of your friends then 2008-09-20 01:04 novell guys can't all be working 16 hours 2008-09-20 01:04 well, I've been watching TV tonight for a good chunk of it 2008-09-20 01:04 but I do work a lot at times 2008-09-20 01:04 need I point out that novell and redhat are both 100% mia for tux3? 2008-09-20 01:04 who is going to win the lamer race? 2008-09-20 01:04 sometimes more focused at various points than others, but I do schedule breaks for myself 2008-09-20 01:05 working on a file system is non-trival 2008-09-20 01:09 most folks in our group are focused on kvm which is a full time deal 2008-09-20 01:09 you know how it works 2008-09-20 01:10 and there's plenty of scheduler work that needs to be done in the general community 2008-09-20 01:10 plenty of design level stuff that needs to be done as well which is also non-trivial 2008-09-20 01:10 hard to find time 2008-09-20 01:11 it tux3 was more complete you might see more effort from various folks at RH or Novell to bug fix, but I think that a lot of folks in the Linux community aren't really interested in solving those probelms since they are happy with ext3 2008-09-20 01:12 but surely somebody in novell 2008-09-20 01:12 can read the code and understand 2008-09-20 01:12 in the entire time I've been there I've yet to talk to a file systems person 2008-09-20 01:12 true 2008-09-20 01:12 at novell 2008-09-20 01:12 can't think of one myself 2008-09-20 01:13 at red hat there's only stephen tweedie, then the gfs2 wan^developers 2008-09-20 01:13 I'm about the closest since I use to work on WAFL which has a completely different set of APIs 2008-09-20 01:13 I should ping sct 2008-09-20 01:13 come to think of it 2008-09-20 01:13 so you folks are on your own for the most part 2008-09-20 01:13 still 2008-09-20 01:13 which is a good and bad thing 2008-09-20 01:13 fs hackers can be made 2008-09-20 01:13 good ;-) 2008-09-20 01:13 it takes a weekend or too 2008-09-20 01:13 two 2008-09-20 01:13 it's a lot harder than that unless you're working on a toy system 2008-09-20 01:13 :) 2008-09-20 01:13 more then that 2008-09-20 01:14 not really 2008-09-20 01:14 hacking ability is more important that fs knowledge 2008-09-20 01:14 logical thinking 2008-09-20 01:14 bug seeing 2008-09-20 01:14 well yeah, but that's true for everything ;-) 2008-09-20 01:14 in hacking,yes 2008-09-20 01:14 well, you know the code really well and have had a lot of experience with file systems, I have some notion of how an enterprise file system should function, but really blank on the implementation details 2008-09-20 01:15 I'd much rather teach a talented python hack to code kernel than an average kernel hack to... do anything 2008-09-20 01:15 like where to go once you've done the b-tree things, atomic logging, etc... 2008-09-20 01:15 I understand 2008-09-20 01:15 it's going to be: extents; atomic commit; kernel 2008-09-20 01:15 with kernel in parallel 2008-09-20 01:15 maze is on it 2008-09-20 01:16 I mean the good thing about this project is the fact that is has some kind of leader, you 2008-09-20 01:16 can't think of a project that doesn't 2008-09-20 01:16 that allows you to guide folks to an implementation, even if I know the fs interfaces and stuff, it wouldn't complete the knowledge base you have with write allocation and stuff 2008-09-20 01:17 you've thought it out carefully and stored that in your head for retrival 2008-09-20 01:17 there's always a part for everybody to work on 2008-09-20 01:17 the fuse thing was sweet 2008-09-20 01:17 flipz: for folks to justify time into tux3, it's got to work on a basic level 2008-09-20 01:18 it does 2008-09-20 01:18 that means in-kernel, atomic commits, snapshots, off-line checker and all of the basic for it to function like a regular file system 2008-09-20 01:18 most of which are still in the future 2008-09-20 01:18 not really 2008-09-20 01:18 working in fuse is working "to a level" 2008-09-20 01:18 don't understand why you'd want an offline checker 2008-09-20 01:19 wouldn't online be better? 2008-09-20 01:19 gh, it doesn't 2008-09-20 01:19 nonsense 2008-09-20 01:19 every filesystem has gotten off the ground before all the stuff was done 2008-09-20 01:19 MaZe: basic checking, online checking is harder 2008-09-20 01:19 zfs still doesn't have a checker 2008-09-20 01:19 yeah, well, zfs is driven by a lot of hyper 2008-09-20 01:19 hype 2008-09-20 01:19 and tons of Sun marketing 2008-09-20 01:20 so there you go 2008-09-20 01:20 zfs is weird 2008-09-20 01:20 MaZe: tell me about it 2008-09-20 01:20 I'd say, yes 2008-09-20 01:20 not that what I'm planning isn't weird... 2008-09-20 01:20 you're planning to reimplment hammer 2008-09-20 01:20 flipz: getting a strong functional implementation is key to getting a lot more developers 2008-09-20 01:20 why not just port hammer? 2008-09-20 01:20 nah 2008-09-20 01:20 bh, I don't want a lot more devs 2008-09-20 01:21 I want a couple more good ones 2008-09-20 01:21 redhat hacks can join the party late, what's new 2008-09-20 01:21 flipz: you have a lot of technical problems still, I can make some suggestions if I see something useful that I can add 2008-09-20 01:21 it's true that what you probably want is a half dozen good devs you can put in one room and have them bounce off of each other 2008-09-20 01:21 cyber room 2008-09-20 01:22 flipz: all of which is a good thing in that it still needs to be solved 2008-09-20 01:22 cyber is good, but real is better 2008-09-20 01:22 tons of intersting work still ahead and discoveries 2008-09-20 01:22 maze, halloween cabal party 2008-09-20 01:22 two locations in venice 2008-09-20 01:22 primary and overflow 2008-09-20 01:22 venice in europe? 2008-09-20 01:22 venice beach 2008-09-20 01:22 in socal 2008-09-20 01:23 oh, in santa monica 2008-09-20 01:23 a little south 2008-09-20 01:23 flipz: unfortunately, I can't help you get it off the ground, I might of help in the future 2008-09-20 01:23 skating distance 2008-09-20 01:23 btw venice, ca on gmaps finds venice, ab, ca 2008-09-20 01:23 hah 2008-09-20 01:23 fix it 2008-09-20 01:23 regarding things like concurrency as you run into scalability problems, etc... 2008-09-20 01:23 354 minles 2008-09-20 01:23 miles 2008-09-20 01:24 just book a trip 2008-09-20 01:24 nah, I'm cheap 2008-09-20 01:24 you don't have to justify, it's a short hop 2008-09-20 01:24 I mean on goog's nickle 2008-09-20 01:24 won't fly 2008-09-20 01:25 santa monica peeps lose touch unless mtv peeps show up from time to time 2008-09-20 01:25 it's mercy travel 2008-09-20 01:25 lol 2008-09-20 01:25 well 2008-09-20 01:25 try this 2008-09-20 01:25 gotta take it private 2008-09-20 01:25 yeah, well I find it hard to even visit a datacenter and that's actually work related 2008-09-20 01:26 flipz: LA is wierd 2008-09-20 01:27 seems ok to me 2008-09-20 01:27 besides I like driving, and don't like flying... 2008-09-20 01:28 LA is weird, but so is SF 2008-09-20 01:28 SF is much better, it's much more diverse 2008-09-20 01:28 you can yourself into and out of trouble in SF 2008-09-20 01:29 I know most of the trouble spots 2008-09-20 01:29 plenty of experience with that 2008-09-20 01:30 only thing is 2008-09-20 01:30 the halloween cabal party is in venice, not sfo 2008-09-20 01:31 anyway it's warmer here 2008-09-20 01:31 better rollerskating 2008-09-20 01:31 more sand 2008-09-20 01:31 you know 2008-09-20 01:31 heh 2008-09-20 01:31 yeah, it's getting cool up north 2008-09-20 01:32 chicks wear less clothing and are on more hippy drugs 2008-09-20 01:32 flipz: a high performance parallelized implementation will be interesting because the Linux kernel itself isn't very scalable in the core fs core 2008-09-20 01:32 code 2008-09-20 01:32 bh, you said it 2008-09-20 01:32 namely posix file locking 2008-09-20 01:33 ugh, posix, 2008-09-20 01:33 I can help you there 2008-09-20 01:33 ugh, posix 2008-09-20 01:33 can't live without it 2008-09-20 01:33 no shit 2008-09-20 01:33 nobody uses it really 2008-09-20 01:33 can't live with it 2008-09-20 01:33 I never saw anybody use it 2008-09-20 01:33 ah 2008-09-20 01:34 so you have some ideas on range locks? 2008-09-20 01:34 yes 2008-09-20 01:34 want to expound? 2008-09-20 01:34 tree? 2008-09-20 01:34 but of course 2008-09-20 01:34 or something smarter? 2008-09-20 01:34 now what kind... 2008-09-20 01:34 maybe it should be done on a per inode basis 2008-09-20 01:34 smarter than a tree? dwimlocks 2008-09-20 01:34 it's in memory 2008-09-20 01:34 so something optimized for in-mem 2008-09-20 01:35 so probably not b-tree 2008-09-20 01:35 use an hball structure 2008-09-20 01:35 a magic 8ball that would be coo 2008-09-20 01:35 l 2008-09-20 01:35 ;-) 2008-09-20 01:35 yah 2008-09-20 01:35 geodesic pointers 2008-09-20 01:36 I think CLR has a red-black tree generalize to interval tree exercise 2008-09-20 01:36 If I remember correctly the generlizement works correctly ... 2008-09-20 01:36 blah 2008-09-20 01:36 no need 2008-09-20 01:36 actually 2008-09-20 01:36 flipz: one of the only places that I've seen lock contention activity is one of the inode locks 2008-09-20 01:36 no need 2008-09-20 01:36 no you do need it 2008-09-20 01:36 bh, which one? 2008-09-20 01:36 I think it's lock during directory traversal or something like that 2008-09-20 01:36 since you can have multi-read-locks, but only one write -lock 2008-09-20 01:37 sure it's not rename? 2008-09-20 01:37 I looked at the problem at there was many places in ext3 that uses this lock in a generic fashion, 2008-09-20 01:37 atomic rename 2008-09-20 01:37 flipz: can't remember 2008-09-20 01:37 the toughest thing to get right, that you absolutely must have 2008-09-20 01:37 it showed up in a "find" load so it's easy to reproduce 2008-09-20 01:37 I implemented the first revision of lockstat for this purpose 2008-09-20 01:38 low impact contention measurements in -rt 2008-09-20 01:38 peterz reimplemented this in lockdep 2008-09-20 01:38 I wonder if an fs could be done with something rcu like 2008-09-20 01:38 so this should definitely show up in trivially reproducable runs 2008-09-20 01:38 bh, let us know when you reproduce 2008-09-20 01:38 MaZe: fine grained locking maybe 2008-09-20 01:39 or per cpu-ification 2008-09-20 01:39 I use to have the runs for it 2008-09-20 01:39 maze, rcu is certainly applicable to fs 2008-09-20 01:39 maze, but its a walk/run situation 2008-09-20 01:39 that won't be easy to get right 2008-09-20 01:39 flipz: just compile in lockdep with stats tracking and cat /proc/lock_stats 2008-09-20 01:39 bh, just tell us ;) 2008-09-20 01:40 we'll do lockdep etc when we get there 2008-09-20 01:40 I have to compile a custom kernel or something like that to figure that out 2008-09-20 01:40 flipz: it'll still be there when you get it into the kernel :) 2008-09-20 01:40 no rush 2008-09-20 01:40 locking is really not the major issue in fs, seek is, and if you mess up, indexing 2008-09-20 01:40 and block allocation 2008-09-20 01:41 that is major 2008-09-20 01:41 blows away locking in actual impact 2008-09-20 01:41 well, what if you have a high performance IO situation ? wouldn't that eventually push things ? 2008-09-20 01:41 probably would need many cpus for it to push 2008-09-20 01:41 if your allocation/seeking suck, which they probably do, you don't care 2008-09-20 01:41 and some sort of wicked raid array to run on 2008-09-20 01:42 what if you have contention against, say, atomic logging 2008-09-20 01:42 fix it when you get there 2008-09-20 01:42 MP atomic logging 2008-09-20 01:42 could be very tricky 2008-09-20 01:42 it's not the logging which is tricky 2008-09-20 01:42 probably isn't 2008-09-20 01:42 it's the mutates 2008-09-20 01:42 just use bio for everything 2008-09-20 01:43 but tux3 isn't there yet so we can't talk about the issues 2008-09-20 01:43 contention will never be in logging 2008-09-20 01:43 inherently async, inherently multi cpu 2008-09-20 01:43 it'll always be on metadata in-mem updates 2008-09-20 01:43 mostly at the dir and up level 2008-09-20 01:43 maze, interesting proposition 2008-09-20 01:43 well, that's still subject to atomic logging right ? 2008-09-20 01:43 yeah, but atomic logging is almost a no-op 2008-09-20 01:43 what if you have a very heavy metadata load ? 2008-09-20 01:44 it's short and sweet and very easy to shard 2008-09-20 01:44 I'd tend to agree 2008-09-20 01:44 the contention is in metadata updates, possibly in block allocation 2008-09-20 01:44 possilby 2008-09-20 01:44 not in the logging, since logging is pretty much just adding a new element to a queue 2008-09-20 01:44 these kind of systems could put a lot of pressure on a single tree data structure, etc... maybe you need to lock for online checking, etc... it's hard to say until you have a fairly complete basic implementation 2008-09-20 01:45 allowing parallel access to the allocation bitmap will be fun 2008-09-20 01:45 right 2008-09-20 01:45 sounds like a pain in the ass kind of problem :) 2008-09-20 01:45 bh, the nice thing about trees is they have subtrees 2008-09-20 01:45 it might be you may end up using a 'usually-works' type of algo 2008-09-20 01:45 flipz: yeah, but the allocation bitmap is a bitch 2008-09-20 01:45 with fallback on collision detection to locking 2008-09-20 01:45 bh, why? 2008-09-20 01:46 the bitch is finding the area to allocate 2008-09-20 01:46 it'll have to be protect in cases where you have heavy write operations, right ? 2008-09-20 01:46 one word: range lock 2008-09-20 01:46 which is inherently a read only op 2008-09-20 01:46 maze, right 2008-09-20 01:46 and the writes are again - quick 2008-09-20 01:46 well, those traversals can be long right ? 2008-09-20 01:46 yes, against cache 2008-09-20 01:46 so basically something rcu-like works 2008-09-20 01:46 spinlock zone 2008-09-20 01:47 although writing the algo with per-cpu 2008-09-20 01:47 when the long traversals get to be the problem, we're winning 2008-09-20 01:47 something like using a hash function with a cpunum parameter 2008-09-20 01:47 then we need a second order map to say where the high/low density areas are 2008-09-20 01:47 shorten the traversal, right 2008-09-20 01:47 rcu might work really well with the bitmap 2008-09-20 01:48 theoretically you could switch allocation strategies based on load and disk fullness 2008-09-20 01:48 simply because tux3 has the notion of logging allocations rather than directoy entering them 2008-09-20 01:48 well 2008-09-20 01:48 hmm 2008-09-20 01:48 hah 2008-09-20 01:48 it also has the notion of keeping the cache blocks up to date 2008-09-20 01:48 right, you'd almost need rcu 2008-09-20 01:48 which conflicts with rcu 2008-09-20 01:48 um 2008-09-20 01:48 it doesn't have to be precise fortunately 2008-09-20 01:48 but 2008-09-20 01:48 don't need rcu 2008-09-20 01:48 why conflicts? 2008-09-20 01:49 can do as well as rcu without it 2008-09-20 01:49 rcu doesn't like changing things 2008-09-20 01:49 that's very slow 2008-09-20 01:49 I'm not even sure a bitmap is the right way to go 2008-09-20 01:49 true 2008-09-20 01:49 you may want something sparser 2008-09-20 01:49 read my writing on that? 2008-09-20 01:49 nope 2008-09-20 01:49 there's a post 2008-09-20 01:49 analyzed in detail 2008-09-20 01:49 thinking of something tree with bitmap leaf like 2008-09-20 01:49 bitmap has 25/2 advantage or something like that in some cases 2008-09-20 01:49 extent tree has just as much or more in others 2008-09-20 01:50 braindead simple solution 2008-09-20 01:50 indeed? 2008-09-20 01:50 use both? 2008-09-20 01:50 in regions where bitmap is better, use a bitmap, otherwise extents 2008-09-20 01:50 in regions where it's a tie you don't care which 2008-09-20 01:50 uh, so tree with bitmap leafs ;-) 2008-09-20 01:50 use whichever is already there 2008-09-20 01:50 simpler 2008-09-20 01:50 sparse bitmap? 2008-09-20 01:50 bitmap stays like it is 2008-09-20 01:51 extent tree can have bitmap regions as leaves instead of extent block 2008-09-20 01:51 just a logical offset in the bitmap 2008-09-20 01:51 exactly what I was thinking 2008-09-20 01:51 instead of a pointer to a leaf block 2008-09-20 01:51 good 2008-09-20 01:51 so you have a tree which can have leaves - either describing the state, or pointing to the right fragment of a sparse bitmap 2008-09-20 01:52 yes 2008-09-20 01:52 use some left over bits in the extent tree for accelleration 2008-09-20 01:52 and you probably allocate space for it just like for any normal file 2008-09-20 01:52 of course 2008-09-20 01:52 in fact both are mapped into normal fiels 2008-09-20 01:52 possibly need to have a few blocks of reserve space to prevent weird cases 2008-09-20 01:53 I showed that's better than direct block pointers 2008-09-20 01:53 there is a weird case 2008-09-20 01:53 very weird 2008-09-20 01:53 when while allocating space the tree and bitmap are full and you need to split and allocate more blocks, etc 2008-09-20 01:53 the bitmap is sparse... so you go set a bit in it, that allocs a block and marks a bit in another block... which might be sparse... 2008-09-20 01:53 yeah, obviously need to either be very careful or do this right 2008-09-20 01:53 "terminate me this" 2008-09-20 01:54 do this right 2008-09-20 01:54 be aware of it 2008-09-20 01:54 think about it clearly 2008-09-20 01:54 the advantage of spare allocation of the bitmap is compelling imho 2008-09-20 01:54 it should terminate if you lean the algos to choosing to non-split blocks 2008-09-20 01:54 I also posted about that 2008-09-20 01:54 same thing for the logging 2008-09-20 01:54 algorithm proposals welcome 2008-09-20 01:54 should also keep the tree from degenerating to a non-sparse bitmap 2008-09-20 01:55 shapor was going to scrape the ml for those posts 2008-09-20 01:55 well 2008-09-20 01:55 it's more important to choose optimal locations 2008-09-20 01:55 I've barely read any of the ml posts... just not enough time 2008-09-20 01:55 than worry about how the bitmap is split 2008-09-20 01:55 ah 2008-09-20 01:55 well let me find one 2008-09-20 01:55 yes ... but no 2008-09-20 01:55 about the bitmaps vs btree 2008-09-20 01:56 8910 flips 2008-09-20 01:56 2885 MaZe 2008-09-20 01:56 1696 shapor 2008-09-20 01:56 1003 bh 2008-09-20 01:56 876 flipz 2008-09-20 01:56 671 konrad 2008-09-20 01:56 418 tim_dimm 2008-09-20 01:56 196 RazvanM 2008-09-20 01:56 133 Bushman 2008-09-20 01:56 latest stats 2008-09-20 01:56 your closing 2008-09-20 01:56 of late it seems flipz has abandoned coding in favour of frivilous chat 2008-09-20 01:57 ;-) 2008-09-20 01:57 or he just likes to talk about interestig problems 2008-09-20 01:58 allocation is a good one 2008-09-20 01:58 oh, you're still here? so what was your idea ;-)? 2008-09-20 01:59 you seemed to disappear right when you were getting to the good part 2008-09-20 01:59 flipz: actually pulled an old trick out of his hat and came up wit a good solution 2008-09-20 01:59 maze, "More about the free tree" 2008-09-20 02:00 http://kerneltrap.org/mailarchive/tux3/2008/8/16/2959334 2008-09-20 02:00 not the one I was thinking of 2008-09-20 02:01 reading 2008-09-20 02:01 "All about the free tree" 2008-09-20 02:01 http://kerneltrap.org/mailarchive/tux3/2008/8/13/2929244 2008-09-20 02:01 right previous one 2008-09-20 02:01 whoever said the fs has to be clean on unmount? 2008-09-20 02:02 just rely on the journal recovery getting memory state consistent 2008-09-20 02:02 problem solved 2008-09-20 02:02 right 2008-09-20 02:02 relating to recursion 2008-09-20 02:02 continuing to parse 2008-09-20 02:02 my point from the first tux3 post 2008-09-20 02:02 breaking new ground it seems 2008-09-20 02:03 hmm? 2008-09-20 02:03 nobody else does it that way 2008-09-20 02:03 oh, yeah, scarredy cats 2008-09-20 02:03 hmm, that's mis-spelt (as is this) I think 2008-09-20 02:03 there are scaredy cats an scarred cats ;) 2008-09-20 02:04 you just have to log all (de-)allocates etc 2008-09-20 02:04 yeah it's a little complex but very satisfying 2008-09-20 02:04 nice we have some kickass bio primitives to log with huh? 2008-09-20 02:05 those ones I did earlier today are really quite nice and general 2008-09-20 02:05 you start the fs with just the journal 2008-09-20 02:05 only thing you might want is alloc flags... but then maybe not even 2008-09-20 02:05 and empty trees and structures 2008-09-20 02:05 no journal 2008-09-20 02:05 then you dump the allocation for the superblock and log into the journal 2008-09-20 02:05 journals are for lamerz -- flipz 2008-09-20 02:06 and you let the kernel module (journal -> forward log) deal with creating the fs 2008-09-20 02:06 no complexity in the mkfs code at all 2008-09-20 02:06 tux3 already creates the fs extremely elegantly 2008-09-20 02:06 hard to improve on, really 2008-09-20 02:06 still parsing ;-) 2008-09-20 02:06 Creating a new Tux3 filesystem requires allocating a number of objects, 2008-09-20 02:06 including objects involved in allocation.  Another nice recursion 2008-09-20 02:06 there: you have to allocate space for objects, but the block allocator 2008-09-20 02:06 is not initialized yet. <- where I am 2008-09-20 02:07 ah 2008-09-20 02:07 right that was fun 2008-09-20 02:07 a few segfaults on the way to sorting it 2008-09-20 02:08 do you mark the superblock as a used block in the alloc tree? 2008-09-20 02:08 superblock(s) 2008-09-20 02:08 yes 2008-09-20 02:08 ok 2008-09-20 02:08 ah, you chickened out at the allocation strategy ;-) 2008-09-20 02:09 that's always where my reasoning breaks down... 2008-09-20 02:09 line 480 "reserve superblock" http://tux3.org/tux3?f=bcfdc76d14a8;file=user/test/inode.c 2008-09-20 02:09 didn't chicken out 2008-09-20 02:09 recognized how big a post it would be and deferred it 2008-09-20 02:09 but there are writings 2008-09-20 02:09 just one? 2008-09-20 02:09 the essential point 2008-09-20 02:09 a farily long one 2008-09-20 02:10 ends with "generating functions" 2008-09-20 02:10 I've been thinking an fs should have to superblocks 2008-09-20 02:10 haven't written that one yet 2008-09-20 02:10 so called bracket-blocks 2008-09-20 02:10 one in front, one at the end 2008-09-20 02:10 you can then support extending a file-system forward and backward 2008-09-20 02:10 http://kerneltrap.org/mailarchive/tux3/2008/8/27/3094404 [Tux3] Spacial correlation between directory entries, inodes and file data 2008-09-20 02:11 if the front or back of the bdev remains unchanged between mounts you can fix up and resize the filesystem on the fly 2008-09-20 02:11 should make resizing easier 2008-09-20 02:11 why do you want to extend forwards? 2008-09-20 02:11 or I'm not sure, backwards? 2008-09-20 02:12 interesting ain't it? 2008-09-20 02:12 not sure 2008-09-20 02:12 because normal fs extend -> 2008-09-20 02:12 so it's natural to want to be able to extend <- 2008-09-20 02:12 to be able to share space between them 2008-09-20 02:12 without having to have lvm in the middle 2008-09-20 02:12 did god intend that? 2008-09-20 02:13 why not have lvm in the middle? 2008-09-20 02:13 an extra layer 2008-09-20 02:13 not really 2008-09-20 02:13 with little apparent benefit 2008-09-20 02:13 provisioning 2008-09-20 02:13 plus it then ends up remapping disk order 2008-09-20 02:13 big benefit 2008-09-20 02:13 so? 2008-09-20 02:13 which breaks space optimizations you might otherwise attempt 2008-09-20 02:13 remap in big chunks 2008-09-20 02:13 seeks across an lvm 2008-09-20 02:13 that fixes that 2008-09-20 02:13 are no longer like seeks across a normal disk 2008-09-20 02:14 no, they're faster 2008-09-20 02:14 across an array 2008-09-20 02:14 yes, true 2008-09-20 02:14 but I still think you want to be able to keep the order of blocks in the fs the same as on disk - even if it gets split across multiple disks and raid5/6ed 2008-09-20 02:15 the cost of lvm is much less than you think, see my bio stacking patches 2008-09-20 02:15 argh, bh disappeared again 2008-09-20 02:15 I'm not thinking of cpu kernel nor stack cost 2008-09-20 02:15 youcan permute in big chunks without loss of performance 2008-09-20 02:15 I'm thinking of cost of the disk no longer being linear 2008-09-20 02:15 that's key 2008-09-20 02:15 that's one of the few things we have going for us 2008-09-20 02:16 but you can't have fluid space allocation between multiple fs 2008-09-20 02:16 you do 2008-09-20 02:16 although I'm not sure having that would be a good thing ;-) 2008-09-20 02:16 just at a coarser granularity than you're thinking 2008-09-20 02:17 I am thinking, the provision granularity will be units of 128 MB 2008-09-20 02:17 oh, I know another reason why I liked this 2008-09-20 02:17 because of dr 2008-09-20 02:17 coincidentally, the number of 4K blocks you can map with one 4K block 2008-09-20 02:17 recovering the fs from a partially damaged disk 2008-09-20 02:18 getting late 2008-09-20 02:18 you basically want to survive in some pseudo decent state a situation in which multi-megabyte pieces of the disk go awol 2008-09-20 02:18 and I only checked in half the code I'd planeed 2008-09-20 02:18 indeed 2008-09-20 02:18 been meaning to say: 2008-09-20 02:18 yes 2008-09-20 02:18 good rule to write into the plan 2008-09-20 02:18 it shall be so 2008-09-20 02:18 signing off and rebooting into mac to finally install spore 2008-09-20 02:18 but have gotten caught up in conversations ;-) 2008-09-20 02:19 heh 2008-09-20 02:19 maybe I have to try that lucasarts demo again 2008-09-20 02:19 have to put on a show for my daughter tomorrow 2008-09-20 02:19 get back from hols 2008-09-20 02:19 I believe it should be possible to write the kernel fs 2008-09-20 02:19 code in such a way that no user space utilities would be required 2008-09-20 02:19 there is no reason why the kernel can't repair the fs 2008-09-20 02:20 oh yeah, especially considering I already did it 2008-09-20 02:20 since the kernel code has to be fault tolerant anyway 2008-09-20 02:20 well there's no fsck 2008-09-20 02:20 but there is mkfs 2008-09-20 02:20 can easily be done on mount 2008-09-20 02:20 -!- pgquiles(~pgquiles@229.Red-83-49-101.dynamicIP.rima-tde.net) has joined #tux3 2008-09-20 02:20 even that could be a couple function in kernel with a mount mkfs option 2008-09-20 02:20 hey pgquiiles ;) 2008-09-20 02:20 since most of the mkfs ends up being inkernel anyways 2008-09-20 02:20 just when we were heading to our consoles 2008-09-20 02:21 there's going to be -omake for tux3 2008-09-20 02:21 huh? 2008-09-20 02:21 oh 2008-09-20 02:21 as in -omkfs? 2008-09-20 02:21 mount -ttux3 -omake /dev/foo /mnt/rulez 2008-09-20 02:21 yep 2008-09-20 02:21 mount -ttux3 -omkfs /dev/foo /mnt/rulez 2008-09-20 02:21 better I guess 2008-09-20 02:22 trivial 2008-09-20 02:22 exactly 2008-09-20 02:22 useful 2008-09-20 02:22 I didn't realize I always wanted that tillyou mentioned it 2008-09-20 02:22 ok... options parsing 2008-09-20 02:22 yeah, and it'll probably share a fair bit of code with the recovery parts of the kernel 2008-09-20 02:22 my ask for next in junkfs 2008-09-20 02:22 ok? 2008-09-20 02:22 ...maybe... 2008-09-20 02:22 ok 2008-09-20 02:23 text strings of course 2008-09-20 02:23 I want to see waht kind of parser you write ;) 2008-09-20 02:23 lol 2008-09-20 02:23 something tells me you're a parser kind of guy 2008-09-20 02:23 the parser doesn't have to be efficient 2008-09-20 02:23 shift reduce is second nature 2008-09-20 02:23 hmm? 2008-09-20 02:23 since it'll be used barely ever 2008-09-20 02:23 hmm? 2008-09-20 02:23 sure 2008-09-20 02:23 shift reduce? 2008-09-20 02:24 lalr-1? 2008-09-20 02:24 context sensitive? 2008-09-20 02:24 well 2008-09-20 02:24 ok, you're going to have fun learning that 2008-09-20 02:24 should take you about a day 2008-09-20 02:24 I think I'm not aware of the terms you're using 2008-09-20 02:25 at least not in English 2008-09-20 02:25 basic parser lingo 2008-09-20 02:25 you're in for a formative experience 2008-09-20 02:25 that's a whole class of algorithmic thoughts you haven't had yet 2008-09-20 02:25 what kind of options do we need to parse anyway? 2008-09-20 02:25 opt=# 2008-09-20 02:25 opt=[on/off] 2008-09-20 02:26 on=[enum] 2008-09-20 02:26 erm opt=[enum] 2008-09-20 02:26 opt=[ip4|ip6|ip4:port...hostname,etc.] 2008-09-20 02:26 -omkfs 2008-09-20 02:26 mostly on/off present/not present and integers it seems 2008-09-20 02:27 case sensitivity? 2008-09-20 02:27 gnu opt syntax would be nice 2008-09-20 02:27 but 2008-09-20 02:27 you don't get to parse the command line 2008-09-20 02:27 just the -o part 2008-09-20 02:27 right 2008-09-20 02:27 it has a set syntax 2008-09-20 02:27 but you do end up getting a single char* 2008-09-20 02:27 every options parser I've seen is sickening 2008-09-20 02:28 what part is sickening? 2008-09-20 02:28 the implementation 2008-09-20 02:28 I meant which part ... what don't you like? 2008-09-20 02:28 ext2/3 used to be even worse than they are 2008-09-20 02:28 cut and paste 2008-09-20 02:28 poor use of tables 2008-09-20 02:28 have to look in 3 places to see what's going on 2008-09-20 02:28 that kind of thing 2008-09-20 02:28 long code 2008-09-20 02:28 mostly fluff 2008-09-20 02:29 hmm 2008-09-20 02:30 { 2008-09-20 02:30 { "uid32", &flag, OP_OR, FLAG_UID32 } 2008-09-20 02:30 that's from? 2008-09-20 02:30 head 2008-09-20 02:30 right 2008-09-20 02:30 good 2008-09-20 02:31 less use of enums is better 2008-09-20 02:31 but hard to avoid entirely 2008-09-20 02:31 but yes, that's the way it should be 2008-09-20 02:31 I'm thinking a parse_options(char *, options_table_t *) 2008-09-20 02:31 and please no destroying the input string ;) 2008-09-20 02:32 sure, most should be handled by directly setting a flag, no special option code to invoke 2008-09-20 02:32 possibly multiple flags 2008-09-20 02:32 and setting clearing 2008-09-20 02:33 with appropriate callback, sure 2008-09-20 02:33 right callbacks 2008-09-20 02:33 also strings can be handled via store length and store pointer to non-asciiz 2008-09-20 02:33 that way we don't modify 2008-09-20 02:33 bonus points for being able to parse binary 2008-09-20 02:33 I _always_ store length 2008-09-20 02:34 right being able to parse 0x000 and 000b and 007 and 23#blah 2008-09-20 02:34 never asciiz except for throwaway 2008-09-20 02:34 although... 2008-09-20 02:34 converting commas to nulls in the input string, might be acceptable... 2008-09-20 02:34 there isn't a unicode requirement 2008-09-20 02:34 fortunately 2008-09-20 02:34 utg8 2008-09-20 02:34 utf8 2008-09-20 02:34 not even 2008-09-20 02:34 should be utf8 clean 2008-09-20 02:35 though 2008-09-20 02:35 command lines are not utf8 2008-09-20 02:35 although that's obvious 2008-09-20 02:35 correct me if I'm wrong 2008-09-20 02:35 there is unfortunately no standard 2008-09-20 02:35 but utf8 is winning 2008-09-20 02:35 and the fs is utf8 2008-09-20 02:35 so they basically are 2008-09-20 02:35 utf8 options... 2008-09-20 02:35 probably not necssary 2008-09-20 02:36 probably also no hurt to support 2008-09-20 02:36 might not even need any code if done right 2008-09-20 02:36 I'm geeking the question 2008-09-20 02:37 hmm? 2008-09-20 02:37 what does that mean 2008-09-20 02:37 geeking? 2008-09-20 02:37 almost like googling 2008-09-20 02:37 well geeking the question 2008-09-20 02:37 oh 2008-09-20 02:37 except geekier 2008-09-20 02:38 so in case of conflicting options 2008-09-20 02:38 last one on the right wins 2008-09-20 02:38 right? 2008-09-20 02:38 or all get computed and accumulated 2008-09-20 02:40 http://developer.apple.com/technotes/tn2002/tn2065.html 2008-09-20 02:40 Q: What does do shell script do with non-ASCII text (accented characters, Japanese, etc.)? 2008-09-20 02:40 useful commentary 2008-09-20 02:40 exit with an error 2008-09-20 02:40 on any option conflict 2008-09-20 02:41 informative error 2008-09-20 02:41 properly formatted 2008-09-20 02:41 saying what conflicted with what 2008-09-20 02:41 give up on first conflict 2008-09-20 02:42 that might be hard to do 2008-09-20 02:42 since what conflicts with what is a problem in and of itsel 2008-09-20 02:42 f 2008-09-20 02:42 if it's not hard you wont' get pheromones from it 2008-09-20 02:44 right 2008-09-20 02:44 the comments above from apple are not quire 2008-09-20 02:44 quite 2008-09-20 02:44 most linux international os'es 2008-09-20 02:44 have LC_ALL=something.utf-8 2008-09-20 02:44 $ locale 2008-09-20 02:44 LANG=en_US.UTF-8 2008-09-20 02:44 LC_CTYPE="en_US.UTF-8" 2008-09-20 02:44 LC_NUMERIC="en_US.UTF-8" 2008-09-20 02:44 LC_TIME="en_US.UTF-8" 2008-09-20 02:44 LC_COLLATE="en_US.UTF-8" 2008-09-20 02:44 LC_MONETARY="en_US.UTF-8" 2008-09-20 02:44 LC_MESSAGES="en_US.UTF-8" 2008-09-20 02:44 LC_PAPER="en_US.UTF-8" 2008-09-20 02:44 LC_NAME="en_US.UTF-8" 2008-09-20 02:44 LC_ADDRESS="en_US.UTF-8" 2008-09-20 02:44 LC_TELEPHONE="en_US.UTF-8" 2008-09-20 02:44 LC_MEASUREMENT="en_US.UTF-8" 2008-09-20 02:44 LC_IDENTIFICATION="en_US.UTF-8" 2008-09-20 02:44 LC_ALL= 2008-09-20 02:45 those that don't are broken ;-) and why your xchat didn't work 2008-09-20 02:45 and since multi-byte encodings (like unicode16 or nicode32) don't work in shell 2008-09-20 02:45 mount options themselves have no unicode impact 2008-09-20 02:45 precisely 2008-09-20 02:45 only possibility is values supplied to options 2008-09-20 02:45 so everything is ascii 2008-09-20 02:45 and I don't know of any of those 2008-09-20 02:46 theoreticaly a mount option could be the directory relative to root fs to mount as root 2008-09-20 02:46 and that might be utf8 2008-09-20 02:46 is there one of those? 2008-09-20 02:46 but really at that point it's just a string of bytes 2008-09-20 02:46 there should be ;-) 2008-09-20 02:47 passphrase 2008-09-20 02:47 that too 2008-09-20 02:47 remote machines hostname 2008-09-20 02:47 when using international domains 2008-09-20 02:47 passphrase in cleartext on the mount command would be really lame ;) 2008-09-20 02:47 let's not do that 2008-09-20 02:47 well 2008-09-20 02:47 anyway, it's not so much a matter of support, but non-breaking it 2008-09-20 02:47 I suppose it's ok if nobody can see it (secret fstab) 2008-09-20 02:48 nah, not the right spot for passwords 2008-09-20 02:48 and tux3 shouldn't do crypto anyway, not really 2008-09-20 02:49 that's something you should definitely rely on dm-crypt or whatever to do 2008-09-20 02:49 it may end up doing some namespace stuff 2008-09-20 02:49 that only the filesystem can do 2008-09-20 02:49 oh, had an idea 2008-09-20 02:49 for pipe files 2008-09-20 02:50 data is a pipe, with appropriate flags, do cause reading/writing it to launch a zcat/gzip to data.gz 2008-09-20 02:50 userspace compression ;-) 2008-09-20 02:50 the pipe ends up being not seekable though 2008-09-20 02:50 ah, overload the file semantics 2008-09-20 02:50 but maybe it'd be of some use 2008-09-20 02:50 so you can plug a filter in front of a file 2008-09-20 02:50 right 2008-09-20 02:51 and remember that on the fs 2008-09-20 02:51 exactly 2008-09-20 02:51 should be fun to write up 2008-09-20 02:51 always wanted that 2008-09-20 02:51 but I didn't think it should be within the fs 2008-09-20 02:51 more a vfs thing 2008-09-20 02:51 like a per-file mount 2008-09-20 02:51 but then how do you make it persistent? 2008-09-20 02:51 that's why the fs has to support storing it 2008-09-20 02:52 that's were the must-be-in-fs might come in 2008-09-20 02:52 and where once again xattr options could come in useful 2008-09-20 02:52 xattr has the nice benefit that archival utilities already support storing them 2008-09-20 02:52 trick is to come if with a mechanism-not-policy on that 2008-09-20 02:52 and have it be a nice mechanism and not totally single purpsoe 2008-09-20 02:53 yeah, the above is just a rough concept 2008-09-20 02:53 wow I let this vino stand on end too long 2008-09-20 02:53 corks resisting 2008-09-20 02:53 theoretically the command to run on read/write could be a xattr option 2008-09-20 02:53 maybe fifo better than pipe 2008-09-20 02:54 unsure 2008-09-20 02:54 maybe a fifo that becomes a pipe on read or write access 2008-09-20 02:54 that sounds better 2008-09-20 02:54 since I don't think unix support pipe on fs 2008-09-20 02:54 maybe there's a new syscall that associates 2008-09-20 02:54 unix does support pipe on fs 2008-09-20 02:54 where have you been? 2008-09-20 02:55 oh it does? 2008-09-20 02:55 use it heavily in zumastor 2008-09-20 02:55 almost never use pipes and fifos (except pipes in shell via | ) 2008-09-20 02:55 named pipes 2008-09-20 02:55 bash daemons ;) 2008-09-20 02:56 wow, that was tight 2008-09-20 02:56 probably the semantics are wrong though... or can you open the same pipe multiple times for write and /or read and not have conflicts? 2008-09-20 02:56 the cork? 2008-09-20 02:56 it's 3am 2008-09-20 02:56 bash semantics for pipes are slightly odd 2008-09-20 02:56 since it can't hold them open 2008-09-20 02:57 there also needs to be a way to store metadata associated with a file with information on when to invalidate it 2008-09-20 02:57 it relies on the fringe behavior 2008-09-20 02:57 what happens before the other side opens and after it closes 2008-09-20 02:57 or some very powerful way to keep track of file state 2008-09-20 02:57 well 2008-09-20 02:57 hold that thought ;) 2008-09-20 02:57 bash can keep em open 2008-09-20 02:57 till after the junkfs option parser 2008-09-20 02:57 use exec to redirect 2008-09-20 02:58 right, option parser first ;-) 2008-09-20 02:58 oh, sick 2008-09-20 02:58 I need to improve my demented index 2008-09-20 02:58 huh? 2008-09-20 02:58 redirecting a pipe in bash 2008-09-20 02:58 to keep it open 2008-09-20 02:58 sick 2008-09-20 02:58 huh 2008-09-20 02:58 why? 2008-09-20 02:59 it's how I do tcp connections in bash 2008-09-20 02:59 bash can keep em open <- just commenting 2008-09-20 02:59 well for our app that would be way sick 2008-09-20 03:00 why? 2008-09-20 03:00 here let me find some code 2008-09-20 03:01 I know what you're talking about 2008-09-20 03:01 you don't know how we use pipes 2008-09-20 03:01 CR=`echo -en "\r"` 2008-09-20 03:01 open3() { 2008-09-20 03:01 exec 3<>/dev/tcp/$HOSTNAME/$HOSTPORT 2008-09-20 03:01 } 2008-09-20 03:01 if you did you wouldn't have to ask about the sick 2008-09-20 03:01 close3() { 2008-09-20 03:01 exec 3<&- 2008-09-20 03:01 } 2008-09-20 03:01 get() { 2008-09-20 03:01 open3 || { sleep 1; exit; } 2008-09-20 03:01 echo -en "GET $1 HTTP/1.0\r\n\r\n" >&3 2008-09-20 03:01 cat <&3 2008-09-20 03:01 close3 2008-09-20 03:01 } 2008-09-20 03:01 getfile() { 2008-09-20 03:01 get "$1" | while read line; do 2008-09-20 03:01 if [ "$line" == "" -o "$line" == "$CR" ]; then cat; exit; fi 2008-09-20 03:01 done 2008-09-20 03:01 } 2008-09-20 03:01 there 2008-09-20 03:01 wget 2008-09-20 03:01 heh 2008-09-20 03:01 ok 2008-09-20 03:01 that is sick 2008-09-20 03:01 really 2008-09-20 03:01 shapor needs to see it 2008-09-20 03:01 works wonders 2008-09-20 03:02 putfile() { 2008-09-20 03:02 open3 2008-09-20 03:02 cat > $TMPDIR/post-$$ 2008-09-20 03:02 LEN=`wc -c < $TMPDIR/post-$$` 2008-09-20 03:02 echo -en "POST $1 HTTP/1.0\r\n" >&3 2008-09-20 03:02 echo -en "Content-Length: $LEN\r\n" >&3 2008-09-20 03:02 echo -en "\r\n" >&3 2008-09-20 03:02 cat $TMPDIR/post-$$ >&3 2008-09-20 03:02 rm -f $TMPDIR/post-$$ 2008-09-20 03:02 close3 2008-09-20 03:02 } 2008-09-20 03:02 why in bash may I ask? 2008-09-20 03:02 even does post 2008-09-20 03:02 because this was for a disk-less system 2008-09-20 03:02 and the entire thing ran in bash basically 2008-09-20 03:03 sick^2 2008-09-20 03:03 nope 2008-09-20 03:03 this is where it gets sick: 2008-09-20 03:03 open3pr() { 2008-09-20 03:03 exec 3<>/dev/tcp/$IPPNAME/$IPPPORT 2008-09-20 03:03 } 2008-09-20 03:03 agreed 2008-09-20 03:03 putchar() { 2008-09-20 03:03 echo -en "\x"`printf "%02X" $1` 2008-09-20 03:03 } 2008-09-20 03:03 ippstr() { 2008-09-20 03:03 SIZE=`echo -en "$*" | wc -c` 2008-09-20 03:03 putchar $[$SIZE/256] 2008-09-20 03:03 putchar $[$SIZE%256] 2008-09-20 03:03 echo -en "$*" 2008-09-20 03:03 } 2008-09-20 03:03 ippstr3() { 2008-09-20 03:03 echo -en "$1" 2008-09-20 03:03 ippstr "$2" 2008-09-20 03:03 ippstr "$3" 2008-09-20 03:03 } 2008-09-20 03:03 print_header() { 2008-09-20 03:03 PRINTJOB=$[$PRINTJOB+1] 2008-09-20 03:03 echo -en "\1\1\0\2\0\0\0\1" 2008-09-20 03:03 echo -en "\1" 2008-09-20 03:03 ippstr3 "G" "attributes-charset" "iso-8859-1" 2008-09-20 03:03 ippstr3 "H" "attributes-natural-language" "en-us" 2008-09-20 03:03 ippstr3 "E" "printer-uri" "ipp://$IPPNAME:$IPPPORT/printers/$PRINTER" 2008-09-20 03:04 ippstr3 "B" "requesting-user-name" "root" 2008-09-20 03:04 ippstr3 "B" "job-name" "judge-job-$PRINTJOB-$1" 2008-09-20 03:04 ippstr3 "I" "document-format" "application/octet-stream" 2008-09-20 03:04 echo -en "\2" 2008-09-20 03:04 ippstr3 "B" "job-sheets" "none" 2008-09-20 03:04 ippstr3 "B" "" "none" 2008-09-20 03:04 echo -en "\3" 2008-09-20 03:04 } 2008-09-20 03:04 print() { 2008-09-20 03:04 open3pr 2008-09-20 03:04 TEMPFILE="$TMPDIR/header-$$" 2008-09-20 03:04 print_header "$1" >"$TEMPFILE" 2008-09-20 03:04 cat >> "$TEMPFILE" 2008-09-20 03:04 LENGTH=`wc -c<"$TEMPFILE"` 2008-09-20 03:04 echo -en "POST /printers/$PRINTER HTTP/1.1\r\n" >&3 2008-09-20 03:04 echo -en "Content-Length: $LENGTH\r\n" >&3 2008-09-20 03:04 echo -en "Content-Type: application/ipp\r\n" >&3 2008-09-20 03:04 echo -en "Host: $IPPNAME\r\n" >&3 2008-09-20 03:04 echo -en "\r\n" >&3 2008-09-20 03:04 cat "$TEMPFILE" >&3 2008-09-20 03:04 rm -f "$TEMPFILE" 2008-09-20 03:04 LENGTH=5 2008-09-20 03:04 #cat <&3 2008-09-20 03:04 while read line <&3; do 2008-09-20 03:04 if [ "$line" == "" -o "$line" == "$CR" ]; then break; fi 2008-09-20 03:04 case "$line" in 2008-09-20 03:04 "Content-Length: "*) 2008-09-20 03:04 LENGTH=`echo "$line" | sed "s/^Content-Length: //;s/\r\\$//"` 2008-09-20 03:04 ;; 2008-09-20 03:04 esac 2008-09-20 03:04 echo "$line" 2008-09-20 03:04 done 2008-09-20 03:04 dd bs=1 count=$LENGTH 2>/dev/null <&3 | xxd 2008-09-20 03:04 close3 2008-09-20 03:04 } 2008-09-20 03:04 and you have printing to an ipp print spool 2008-09-20 03:04 no bash-that-writes-bash? 2008-09-20 03:05 oh, let me find another snipper 2008-09-20 03:05 heh 2008-09-20 03:05 pastie please 2008-09-20 03:05 the /dev/tcp trick is disabled in bash on ubuntu/debian 2008-09-20 03:05 so we are hacking routers? 2008-09-20 03:05 dsl router or something? 2008-09-20 03:05 print server? 2008-09-20 03:05 no online contest judge system 2008-09-20 03:06 for programming contest 2008-09-20 03:06 ah 2008-09-20 03:06 basically my MSc thesis 2008-09-20 03:06 uses diskless nodes to perform testing of untrusted code 2008-09-20 03:06 your msc thesis was a contest? 2008-09-20 03:06 I see 2008-09-20 03:06 contest is the algorithm 2008-09-20 03:06 the code to support the national eliminations for ICPC 2008-09-20 03:06 called AMPPZ 2008-09-20 03:07 in Poland 2008-09-20 03:07 (ACM ICPC) 2008-09-20 03:07 so you wrote the judge script for it and got a msc for it? 2008-09-20 03:07 no, a lot more 2008-09-20 03:08 the rootfs file system, the stripped down compilers 2008-09-20 03:08 the judging server 2008-09-20 03:08 the scripting 2008-09-20 03:08 the firewall rules 2008-09-20 03:08 etc 2008-09-20 03:08 the entire system 2008-09-20 03:08 the whole infrastructure 2008-09-20 03:08 sandbox 2008-09-20 03:08 right 2008-09-20 03:08 yup 2008-09-20 03:08 still in active use for student coursework 2008-09-20 03:08 fun 2008-09-20 03:08 I was so much more boring as a student 2008-09-20 03:08 makes'em write code that actually runs and works on frickin' wickedly selected tests 2008-09-20 03:09 writing compilers and such 2008-09-20 03:09 ...still searching... 2008-09-20 03:10 $ cat rpc.sh 2008-09-20 03:10 #!/bin/echo You must include this file: 2008-09-20 03:10 escape() { 2008-09-20 03:10 local arg 2008-09-20 03:10 local ch 2008-09-20 03:10 for arg in "$@"; do 2008-09-20 03:10 echo -n " \$'" 2008-09-20 03:10 echo -n "${arg}" \ 2008-09-20 03:10 | while IFS= read -n 1 -r ch; do 2008-09-20 03:10 echo -n "\\x$(xxd -ps -l1 <<< "${ch}")" 2008-09-20 03:10 done 2008-09-20 03:10 echo -n "'" 2008-09-20 03:10 done 2008-09-20 03:10 echo 2008-09-20 03:10 } 2008-09-20 03:10 rpc() { 2008-09-20 03:10 local HOST="$1" 2008-09-20 03:10 shift 2008-09-20 03:10 local PROC="$1" 2008-09-20 03:10 shift 2008-09-20 03:10 local FUNC=$(type "${PROC}" | sed -rn '2,$p') 2008-09-20 03:10 # echo "rpc HOST[${HOST}] PROC[${PROC}] FUNC[${FUNC}] ARGS[$*]" 2008-09-20 03:10 local ARGS=`escape "$@"` 2008-09-20 03:10 ssh -ax "root@${HOST}" "${FUNC}; ${PROC}${ARGS}" } 2008-09-20 03:11 usage: 2008-09-20 03:11 rpc hostname shell_function parameters... 2008-09-20 03:11 executes shell_function on remote machine 2008-09-20 03:11 using a ssh-based rpc scheme 2008-09-20 03:11 yup 2008-09-20 03:12 crazy eh? 2008-09-20 03:12 well I was going to say, you out leeted the zumastor script, but then... did you write daemons in bash? 2008-09-20 03:12 local FUNC=$(type "${PROC}" | sed -rn '2,$p') 2008-09-20 03:12 this line is the kicker 2008-09-20 03:12 I have a web server running in bash, yes 2008-09-20 03:13 ok 2008-09-20 03:13 we're officially outleeted 2008-09-20 03:13 although it cheats and uses xinetd to launch itself 2008-09-20 03:13 since I can't figure out how to do listens in pure bash 2008-09-20 03:13 our daemons listen on pipes, but of course you need socks 2008-09-20 03:14 I can listen on a nc pipe 2008-09-20 03:14 they do spawn other daemons 2008-09-20 03:14 but that makes it single threaded 2008-09-20 03:14 so only one outstanding request 2008-09-20 03:14 right 2008-09-20 03:14 that was a pain 2008-09-20 03:14 oh, I also had a proxy running in bash 2008-09-20 03:14 somebody wrote a little bit of c to do nonblocking read 2008-09-20 03:14 I felt that was cheating 2008-09-20 03:15 yup 2008-09-20 03:15 anyway my proxy is 4K bash code 2008-09-20 03:15 I need to test the code 2008-09-20 03:15 before I sleep 2008-09-20 03:15 mostly debug and strings really 2008-09-20 03:15 test this dleaf walker 2008-09-20 03:15 it's been kind of a block for me 2008-09-20 03:15 unfun 2008-09-20 03:15 okay, I'm going to bed, since I have to get up at 9 2008-09-20 03:15 needs to be done 2008-09-20 03:15 is in the way of finishing extents 2008-09-20 03:15 you enjoy your testing... 2008-09-20 03:16 I won't, but the chat was fun 2008-09-20 03:16 and bh didn't share his idea with us ;-( 2008-09-20 03:16 maybe next time 2008-09-20 03:17 8910 flips 2008-09-20 03:17 3261 MaZe 2008-09-20 03:17 I think those cut'n'pastes should classify as cheating 2008-09-20 03:17 your ratio is catching up 2008-09-20 03:17 oh yeah 2008-09-20 03:17 well most of my chat is cut and paste too 2008-09-20 03:17 I've said this all before ;) 2008-09-20 03:18 you switched to another username to let me catch up 2008-09-20 03:18 oh right 2008-09-20 03:18 you just hit 10K 2008-09-20 03:19 anyway, enough is enough... 2008-09-20 03:19 good night and good testing 2008-09-20 03:19 good night 2008-09-20 03:22 ah! 2008-09-20 03:22 brilliance 2008-09-20 03:23 the OP_OR will actually be the name of a function 2008-09-20 03:23 it will simply be a callback 2008-09-20 03:23 find 2008-09-20 03:23 fine 2008-09-20 03:23 anyway back to bed ;-) 2008-09-20 03:23 heh 2008-09-20 03:23 just like me 2008-09-20 03:24 dleaf probe seems to be working 2008-09-20 03:24 wish I'd tested it earlier 2008-09-20 03:24 could have moved on 2008-09-20 03:25 whoops, nope 2008-09-20 07:07 -!- amey(~amey@116.73.35.180) has joined #tux3 2008-09-20 07:10 -!- amey(~amey@116.73.35.180) has left #tux3 2008-09-20 09:29 -!- BSD(~bandan@38.117.250.152) has joined #tux3 2008-09-20 11:19 -!- RazvanM(~RazvanM@dazzler.isi.jhu.edu) has joined #tux3 2008-09-20 12:01 I copied over the patches from Daniel's tree. Until he fixes cloning, feel free to clone it from here: git clone git://makefile.in/tux3fs 2008-09-20 12:02 I will update it with patches from his tree regularly 2008-09-20 14:19 folks 2008-09-20 14:33 bsd, thanks 2008-09-20 14:38 flipz: np 2008-09-20 14:38 ACTION found a nice weekend to look around the tux3fs code 2008-09-20 15:50 BSD: yeah me too, I'm finally getting a chance to look at the lowlevel fuse api 2008-09-20 15:51 it is a nice weekend indeed 2008-09-20 15:51 i got sidetracked with a memory leak in inodetest last night 2008-09-20 15:51 and then fell asleep 2008-09-20 15:52 its strange if i put the main return right after make_tux3 it leaks even more memory 2008-09-20 15:52 someone else can chew on that one 2008-09-20 15:52 it's a known behavior of valgrind 2008-09-20 15:53 oh? 2008-09-20 15:53 has something to do with c library cleanup 2008-09-20 15:53 so not a bug? 2008-09-20 15:53 whether or not _exit gets called or something 2008-09-20 15:53 not sure 2008-09-20 15:53 yeah i didnt find anything 2008-09-20 15:53 maybe not a bug 2008-09-20 15:53 I used to know and I forgot 2008-09-20 15:54 vtable inode was getting detected as leaked 2008-09-20 15:54 ah 2008-09-20 15:54 but if i comment initialized it, other shit get detected 2008-09-20 15:54 (the next malloc) 2008-09-20 15:54 hmm 2008-09-20 15:54 maybe its because of some memmove or something 2008-09-20 15:54 confusing valgrind 2008-09-20 15:55 nice to know how valgrind works 2008-09-20 15:55 vtable is the only inode that doesn't actually get used 2008-09-20 15:55 I should remove it 2008-09-20 15:55 yeah thats why i figured just comment it out 2008-09-20 15:55 but it didnt help ;) 2008-09-20 15:55 it's out of the design already 2008-09-20 15:55 posted a nice troll to lkml over that and nobody bit 2008-09-20 15:56 yeah i was notcing we still have a version.c or something too 2008-09-20 15:56 i dont buy your argument 2008-09-20 15:56 wanted to get a discussion going re whether that stuff should be in the filesystem or the volume manager 2008-09-20 15:56 well 2008-09-20 15:56 discuss or shut up ;) 2008-09-20 15:56 er i mean volume.c 2008-09-20 15:56 you see a use for subvolumes? 2008-09-20 15:56 I don't any more 2008-09-20 15:57 funny, we started from the opposite positions 2008-09-20 15:57 sharing free space? 2008-09-20 15:57 right 2008-09-20 15:57 useless 2008-09-20 15:57 super useful 2008-09-20 15:57 they should share volume free space 2008-09-20 15:57 only 2008-09-20 15:57 it allows you to compartmentalize 2008-09-20 15:57 you can do the same with volumes 2008-09-20 15:58 share free space? 2008-09-20 15:58 yes 2008-09-20 15:58 lvm3 2008-09-20 15:58 lvm2 even, though lame 2008-09-20 15:59 so your solution is to punt to the block layer 2008-09-20 15:59 yes 2008-09-20 16:00 layering 2008-09-20 16:00 there's no compelling argument to do otherwise 2008-09-20 16:00 the strongest argument is, perhaps you could get finer grained free space sharing within the fs 2008-09-20 16:00 but that's bad for performance 2008-09-20 16:00 see the fsync story 2008-09-20 16:00 also matt's comments 2008-09-20 16:00 yeah 2008-09-20 16:00 hmm 2008-09-20 16:00 his granularity is 128 MB, ours should be too 2008-09-20 16:01 since zfs has such lame quota support what people do is create one volume per user for example 2008-09-20 16:01 /home/user is a volume 2008-09-20 16:01 and let them all share free space 2008-09-20 16:02 lets do quots right then 2008-09-20 16:02 so if you only had a /home volume 2008-09-20 16:02 all the users would share free space anyway i suppose 2008-09-20 16:03 let's do per directory quota, with hardlinks between them disabled 2008-09-20 16:03 hm 2008-09-20 16:03 the rule is: a directory with quota may not have hard links into it 2008-09-20 16:03 just can't do that boz 2008-09-20 16:04 sounds reasonable 2008-09-20 16:04 you mean out of it 2008-09-20 16:05 the direction is ambiguous 2008-09-20 16:05 not in or out 2008-09-20 16:05 just like a home directory 2008-09-20 16:05 well 2008-09-20 16:05 are there any hardlinked things in home directories? 2008-09-20 16:05 not usually. 2008-09-20 16:05 lets see 2008-09-20 16:06 is there a way to perl that? 2008-09-20 16:06 maybe with the help of locate? 2008-09-20 16:06 challenge 2008-09-20 16:07 find 2008-09-20 16:07 ? 2008-09-20 16:07 find -links 2 ! -type d 2008-09-20 16:07 how do you reject internal links? 2008-09-20 16:08 cant 2008-09-20 16:08 would be -links +1 i think 2008-09-20 16:08 "more than 1 link" 2008-09-20 16:08 hard to find those hard links 2008-09-20 16:08 needs help from the indexer 2008-09-20 16:08 locate 2008-09-20 16:08 somehow 2008-09-20 16:09 hmm 2008-09-20 16:09 no 2008-09-20 16:09 i'm not even finding any internal links 2008-09-20 16:09 it's much harder 2008-09-20 16:09 have to list by inode 2008-09-20 16:09 and check everything outside by inode 2008-09-20 16:10 I don't know of any common use for hardlinks across home dir boundaries 2008-09-20 16:10 no its not hard 2008-09-20 16:10 you certainly can't have them if the home dir is a separate volume like zfs 2008-09-20 16:10 just print out nlinks and inode number 2008-09-20 16:10 well hrm 2008-09-20 16:11 you can ls the inodes inside and outside and intersect 2008-09-20 16:11 well 2008-09-20 16:11 the intersection has to be empty 2008-09-20 16:11 translate into simple bash ;) 2008-09-20 16:12 there is a way 2008-09-20 16:14 find, excluding the home dir, recursive list all inodes 2008-09-20 16:14 then recursive list the inodes of the dir 2008-09-20 16:14 find -links +1 ! -type d -printf "%i %n\n" | sort | uniq -c | awk '($1!=$3) {print}' 2008-09-20 16:14 no inode in the second is allowed to be in the first 2008-09-20 16:14 onliner boo yeah 2008-09-20 16:14 oneliner* 2008-09-20 16:14 it works? 2008-09-20 16:14 duh 2008-09-20 16:14 i wrote it 2008-09-20 16:15 of course it does 2008-09-20 16:15 but does it work the way we hope 2008-09-20 16:15 it only finds files which are externally linked 2008-09-20 16:15 or link to external files 2008-09-20 16:15 same thing really 2008-09-20 16:15 yes 2008-09-20 16:15 symmetric 2008-09-20 16:15 it only prints the inode number unfortunately 2008-09-20 16:16 did it find any? 2008-09-20 16:16 so you have to do another pass and find which file is the offender 2008-09-20 16:17 why won't it find hardlinks within a directory? 2008-09-20 16:19 find -links +1 ! -type d -printf "%i %n\n" | sort | uniq -c | awk '($1!=$3) {print $2}' | xargs --no-run-if-empty -n 1 find -inum 2008-09-20 16:19 that does the pass to translate inodes to filenames 2008-09-20 16:19 why won't it find hardlinks within a directory? <- still wondering 2008-09-20 16:19 ok 2008-09-20 16:20 for the first find 2008-09-20 16:20 it prints out the inode number and nlinks 2008-09-20 16:20 for each file with more than 1 link 2008-09-20 16:20 then the sort | uniq -c 2008-09-20 16:20 counts how many times each occurs 2008-09-20 16:20 oh right 2008-09-20 16:20 yes 2008-09-20 16:20 good 2008-09-20 16:20 nice 2008-09-20 16:20 then the awk compares 2008-09-20 16:20 and prints out the inode number if they dont match 2008-09-20 16:20 i tested it it works 2008-09-20 16:20 wait 2008-09-20 16:21 it will still pick up hardlinks strictly within the dir 2008-09-20 16:21 no 2008-09-20 16:21 it will not 2008-09-20 16:21 oh right 2008-09-20 16:24 got it 2008-09-20 16:24 you look for number of hard links greater than number of occurances within the dir 2008-09-20 16:25 sweet 2008-09-20 16:25 or != 2008-09-20 16:25 no, can't be < 2008-09-20 16:25 but you check for less anyway ;) 2008-09-20 16:25 hoping to find disk corrpution I assume 2008-09-20 16:31 getting close to sk8 oclock 2008-09-20 16:40 i skated this morning 2008-09-20 16:41 and? 2008-09-20 16:41 so no more for me 2008-09-20 16:41 lamer 2008-09-20 16:41 got other stuff to do 2008-09-20 16:41 like... figure out the fuse stuff 2008-09-20 16:41 they all say that 2008-09-20 16:41 oh right 2008-09-20 17:40 so what's the difference between volumes and subvolumes? i'm thinking subvolumes might be helpful for some security partitioning 2008-09-20 17:43 bushman, a subvolume shares nothing but the allocation space with another subvolume 2008-09-20 17:43 since it can share allocation space, it goes in the opposite direction of security partitioning 2008-09-20 17:44 what you want are real volumes 2008-09-20 17:44 which is another reason I real it is right to drop subvolumes 2008-09-20 17:44 so to have separate partitions for data with different labels, we'd just have regular volumes, or use traditional partitions? 2008-09-20 17:45 yes 2008-09-20 17:45 any drawback? 2008-09-20 17:45 well wait 2008-09-20 17:45 we're going to be able to separate the allocation space for data within the same namespace 2008-09-20 17:46 and we're going to be able to separate namespaces 2008-09-20 17:46 now a multimillion dollar question: could i make them transparent? as in if i'm a user with two levels, can i see both partitions/volumes on top of each other? 2008-09-20 17:46 just not using the subvolume idea 2008-09-20 17:46 yes 2008-09-20 17:46 that's the plan 2008-09-20 17:46 do you know where i'm going with this? i want polyinstantinated directories 2008-09-20 17:47 try again with words of one syllable 2008-09-20 17:47 that might be more namespacing tricks tho, i'm not sure how you'd design it 2008-09-20 17:47 with namespacing tricks 2008-09-20 17:47 I'm working on it 2008-09-20 17:48 heirarchically inherited namespaces to be exact 2008-09-20 17:48 much like the versioning model 2008-09-20 17:48 except its not versions, it's namespaces 2008-09-20 17:49 I suspect that amounts to polyinstantinated directories 2008-09-20 17:49 they look different depending on who you are 2008-09-20 17:49 i basically want a /home/marcin directory, and if i got lets' say S and TS labels then i see both sets of files inside my home dir, but let's say i've been naughty and they pulled my TS, and I should be seeing only S files. however the rest of my files shouldnt delete, just sit there for someone with a security dominating mine to pick them up or whatever 2008-09-20 17:50 yes 2008-09-20 17:50 you put it much more succintly 2008-09-20 17:50 correct, that's the plan 2008-09-20 17:50 you put it in terms that don't require leaps of logic 2008-09-20 17:51 awesome, as long as the files are stored of different physical disks or paritions 2008-09-20 17:51 right 2008-09-20 17:51 namespace partitioning is one of two forms of partitioning we have in mind 2008-09-20 17:51 the other is physical data 2008-09-20 17:51 there's a lot of discussion lately if one disk with different encryptions should be treated as equivalent to multiple disks 2008-09-20 17:52 partitioned onto different volumes according to the class of data, and the filesystem amalgamates those volumes into a... filesystem 2008-09-20 17:52 to be more precise, the volume manager amalgamates those volumes, but the filesystem knows the layout 2008-09-20 17:53 and does data allocation accordingly 2008-09-20 17:53 this differs somewhat from the zfs model 2008-09-20 17:53 which takes the task of amalgamation into itself 2008-09-20 17:54 tux3 sitting on lvm3 will just want to look at the lvm's mapping table 2008-09-20 17:54 and be able to specify how the lvm should change that table 2008-09-20 17:55 so that it can provision itself with as much of the different kinds of storage as it needs, in the places it wants it 2008-09-20 17:55 so you guys wanna utilize the lvm underneath? i thought the whole idea of zumastore is to eliminate it? 2008-09-20 17:55 rewrite the lvm 2008-09-20 17:55 that will be lvm3 2008-09-20 17:55 but we can get by with lvm2 2008-09-20 17:55 it just sucks for adminning 2008-09-20 17:55 everything manual 2008-09-20 17:55 we want automatic 2008-09-20 17:56 sounds great 2008-09-20 17:56 that's what we think :) 2008-09-20 17:56 it's one of those itches 2008-09-20 17:56 multi year itch 2008-09-20 17:56 if i can demo any of this, in however raw form, i will definitely get some raised eyebrows 2008-09-20 17:57 I think we can get an early demo, yes 2008-09-20 17:57 we'll do the provisioning manually, using the existing lvm 2008-09-20 17:57 and the fs will proceed to partition data as promised 2008-09-20 17:57 partitioning namespace requires more effort 2008-09-20 17:57 we'd have to find a way of bootstrapping that project wise 2008-09-20 18:00 so how would you deal with union'ed namespaces? 2008-09-20 18:00 if i got /home/marcin/attackatdawn(TS) and another one at (S), how would it show? 2008-09-20 18:01 and more importantly, how does a user pick which one they're dealing with? 2008-09-20 18:02 when you have high security clearance you have the option of covering up a lower clearance file by creating one of the same name 2008-09-20 18:02 would it internally be stored as /home/marcin/TS/file and /home/marcin/S/file or something wackier than that? 2008-09-20 18:03 a tag goes on to the beginning of the filename internally 2008-09-20 18:03 define 'covering up' 2008-09-20 18:03 and is part of the namespace lookup 2008-09-20 18:03 covering up means: by default you will get EXIST, but you can override that and create a new entry that overrides the old one 2008-09-20 18:04 obviously, it is best not to cover up a lower security file 2008-09-20 18:04 override as in delete the old one? 2008-09-20 18:04 but you can if you want 2008-09-20 18:04 no, as in both exist 2008-09-20 18:04 override as in cover up the old one. It will reappear if you delete yours 2008-09-20 18:04 but only highest security you have access to can be read 2008-09-20 18:04 so i cannot access both at the same time? 2008-09-20 18:04 right 2008-09-20 18:04 no 2008-09-20 18:04 you could access the S if the TS privs were dropped 2008-09-20 18:04 if you want that, log in as two people or don't make the names collide 2008-09-20 18:05 you'd usually be doing this anyway to store junk misdirecting data at a lowe sec level 2008-09-20 18:05 if i wanted to have multiple users for multiple levels of security, i'd just stick to regular systems, not building MLS one 2008-09-20 18:05 bushman, we could fiddle around with the idea and make both visible through some messed up name syntax, it's hard to see why that would be better though 2008-09-20 18:06 agreed 2008-09-20 18:06 If you're going to access it via diff names 2008-09-20 18:06 why not give it diff names to begin with? 2008-09-20 18:06 i need to be able to access all versions if my security dominates labeles on multiple files 2008-09-20 18:06 rename TS 2008-09-20 18:06 access S 2008-09-20 18:06 tha'ts why it's polyinstantiated 2008-09-20 18:06 rename TS back to old name 2008-09-20 18:06 yes 2008-09-20 18:07 Bushman: you're making this sound like resource forks... 2008-09-20 18:07 bushman, the problem is, you start drifting away from unix semantics 2008-09-20 18:07 no, the idea is to have multiple files with same name at different levels and access them all as long as i'm cleared 2008-09-20 18:07 but if they have the same name.. 2008-09-20 18:07 bushman, ok, could you show an example of accessing two of them? 2008-09-20 18:08 what command would you write? 2008-09-20 18:08 oh i know, that's why i came to you guys with this, it's out there stuff 2008-09-20 18:08 I guess you could suffix the filenames with somthing like /path/file#S to override access to /path/file (TS) into /path/file (S) 2008-09-20 18:08 but we'd need to waste a character 2008-09-20 18:08 for the # symbol 2008-09-20 18:08 that's not unix though 2008-09-20 18:08 ok, let's make a user marcin with labels of s0,s1 2008-09-20 18:08 agreed 2008-09-20 18:09 bushman, we can apply the versioned symlink idea 2008-09-20 18:09 that lets you access files from different versions, on the same version 2008-09-20 18:09 so in this case, you'd have a priviledged symlink to the directory you're in 2008-09-20 18:10 i need to have files /supersecretcrap (s0) and /supersecretcrap (s1), and i should be able to pick either one to work on 2008-09-20 18:10 when you read the directory through the symlink, you see one view, and a different view if you read it directly 2008-09-20 18:10 so why not call them /s0_supersecretcrap and /s1_supersecretcrap? 2008-09-20 18:10 privileged symlink? what's that? 2008-09-20 18:10 bushman, new invention 2008-09-20 18:10 just now 2008-09-20 18:10 based on the idea of versioned symlink I have written about 2008-09-20 18:11 Maciek, that's not my call, that's what the bigwigs in bunkers want ;) 2008-09-20 18:11 only works if the symlink is parsed at the sub-vfs layer - or if we muck around with the vfs 2008-09-20 18:11 maze, that is the plan 2008-09-20 18:11 sub-vfs 2008-09-20 18:11 we will need to extent some syscalls 2008-09-20 18:11 extend 2008-09-20 18:11 so to apps, does it look like a ymlink? 2008-09-20 18:11 one syscall, actually, ln 2008-09-20 18:12 it looks like a symlink yes 2008-09-20 18:12 why extend the syscall? can't we make the data stored in a symlink (it's binary remember) suffice? 2008-09-20 18:12 oh so you want a file /secretcrap with multiple symlinks to it called s0, or s1? 2008-09-20 18:12 no, to the entire directory 2008-09-20 18:12 ln needs to know how to create one, until it does we provide our own utility 2008-09-20 18:12 to create one of these 2008-09-20 18:13 bushman, yes 2008-09-20 18:13 ln -s 'binary_blob' filename 2008-09-20 18:13 including no symlink 2008-09-20 18:13 maze, possibly ;) 2008-09-20 18:13 I don't like this 2008-09-20 18:13 it's dirty 2008-09-20 18:13 that'd work, cuz you can still work on it as a normal file...hmm 2008-09-20 18:13 make, your idea? 2008-09-20 18:13 versioned symlinks is clean 2008-09-20 18:13 what's the problem? 2008-09-20 18:14 it's fine for versioning 2008-09-20 18:14 I'm not sure I like it for this s* crap 2008-09-20 18:14 don't have to use it 2008-09-20 18:14 with versioning you get a view from the past that's not mutatable 2008-09-20 18:14 flips, one question: would the links be created dynamically when requesting info on a file, or would they actually be laying around at all times for people to use? 2008-09-20 18:14 maze, not so 2008-09-20 18:14 versions are all rw 2008-09-20 18:15 oh, right 2008-09-20 18:15 bushman, they'd be lying around, or you'd create them if you have the right clearance 2008-09-20 18:15 sun is getting lower 2008-09-20 18:16 I need to hustle out if I'm going to get to the strand before nightfall 2008-09-20 18:17 so would a regular user see /file /filesecret /filetopsecret with the last two being links, or the real /file would be not visible, only the links would be visible? 2008-09-20 18:18 I believe a regular user would not see anything 2008-09-20 18:18 since he'd have no clearance 2008-09-20 18:18 the regular users would only see /file 2008-09-20 18:18 well 2008-09-20 18:18 i'm trying to prevent mistakes from mindlessly pickign a wrong link/file, we all know how unaware of ownership/permissions most people are 2008-09-20 18:18 if file is low clearance 2008-09-20 18:18 no no, regular user i meant not root ;) 2008-09-20 18:19 you don't even see the links unless they exist at or below your level 2008-09-20 18:19 not a user that's cleared only to unclass 2008-09-20 18:19 same with the files 2008-09-20 18:19 I believe unclass user would see zlich 2008-09-20 18:19 yes 2008-09-20 18:19 secret user would see file and filesecret 2008-09-20 18:19 topsecret would see all 3 2008-09-20 18:19 yes 2008-09-20 18:19 if you see filesecret or/and filetopsecret it's a symlink 2008-09-20 18:19 maze, I think /file is supposed to be unsecret 2008-09-20 18:20 oh, I don't know, and that's one of the reasons I don't like this 2008-09-20 18:20 yea, that's just standard domination/lattice based security scheme, SElinux does it for you behind the scenes 2008-09-20 18:20 wait till i throw in compartments into TS ;) 2008-09-20 18:21 bushman, it would not make sense to create a security link for a high clearance level, so that a low clearance person can see it 2008-09-20 18:21 they're just their for the convenience of the supersecret spooks 2008-09-20 18:21 so nobody less secret has to see them 2008-09-20 18:21 yes of course 2008-09-20 18:22 i dunno if shap talked to you about the whole gaugin-messenger non-interference model yet 2008-09-20 18:22 i spent like 2hrs talking him through the subtleties of that and general 'need to know' stuff 2008-09-20 18:23 bushman, you know what is really cool about this? it all happens far away from the vfs, which never gets to see it 2008-09-20 18:23 which makes it harder to subvert 2008-09-20 18:23 that's the goal 2008-09-20 18:24 otoh 2008-09-20 18:24 this is precisely what the vfs should be dealing with... 2008-09-20 18:24 you mean the 'visibility' issues? 2008-09-20 18:24 yes, all of it 2008-09-20 18:25 there is no benefit to doing this below the vfs, except for code duplication across fs'es 2008-09-20 18:25 and multiple opportunities to screw it up 2008-09-20 18:25 and If someone compromises the vfs, they've got your kernel and your fs drivers as well 2008-09-20 18:25 other than political reasons of people saying 'no' simply because noone else but tux using these features 2008-09-20 18:25 [unless we're not talking about linux here] 2008-09-20 18:26 i know Daniel got a lot of pull, but i dunno how much we can force down these people's throats for the sake for esoteric security features 2008-09-20 18:26 ah, yes, politics... 2008-09-20 18:27 so for political reasons we might have to smuggle this shit under tux's branch so the rest of people dont have any say in it 2008-09-20 18:27 thing is this should be done with xattr and something selinux like 2008-09-20 18:28 yes, SElinux does it all on xattr, that's how we get all the functionality i need 2008-09-20 18:28 so what are you missing? 2008-09-20 18:28 multiple clearance levels for diff files with the same name? 2008-09-20 18:28 maze, I don't know if this belongs in vfs 2008-09-20 18:29 maze, maybe in ten years 2008-09-20 18:29 polyinstantiation is the huge goal to get Linux to be a true MLS system 2008-09-20 18:29 yes, and we can do it at the filesystem level so we should 2008-09-20 18:29 cut out as much bs as possible 2008-09-20 18:29 there is no existing model 2008-09-20 18:29 if we have this, govt/mil wont even look at solaris trusted extensions anymore 2008-09-20 18:29 why is polyinstantiation such a big feature? 2008-09-20 18:30 versioning is already a kind of polyinstantiation 2008-09-20 18:30 yes, true 2008-09-20 18:31 that's a fair point that we get it almost for free... 2008-09-20 18:31 nearly 2008-09-20 18:31 except for storing different sec levels on different back end devices 2008-09-20 18:31 it's the buliding block of MultiLevelSecurity, which ends up giving you a higher classification of a system, so we'll be applicable to go into crazier installations like subs, planes, and other deep dark holes 2008-09-20 18:31 linux in subs? 2008-09-20 18:31 my god 2008-09-20 18:31 maze, that's where we just give them the xattrs 2008-09-20 18:31 that's almost reason enough to not do this 2008-09-20 18:31 HAVE YOU SEEN THE CODE? 2008-09-20 18:31 ;-) 2008-09-20 18:31 bushman, ooh 2008-09-20 18:31 not yet, that's why we're pushing for more functionality ;) 2008-09-20 18:32 ok I'm going to actually read the wikipedia article now 2008-09-20 18:32 but after skating 2008-09-20 18:32 sun is getting critically low 2008-09-20 18:32 oh you wont find much on this on the internet 2008-09-20 18:32 the linux code base sucks, I wouldn't want it anywhere near anything life-critical or nuclear 2008-09-20 18:32 well at least the unclass portion of the internet ;) 2008-09-20 18:33 the classified portions of the internet are predominantly porn and warez ;-) 2008-09-20 18:33 what do you want instead? trusted solaris 8? 2008-09-20 18:33 maze, so you want something worse there? 2008-09-20 18:34 I'd always thought the military had something home-grown, and tiny for the really important stuff 2008-09-20 18:34 this quickly becomes a question of lesser evils 2008-09-20 18:34 maze, teehee 2008-09-20 18:34 you know sucky performance, runs on well bug-cleared 486 cores 2008-09-20 18:34 bwahaha, i went to military gradschool with a bunch of officers, with very few exceptions they couldnt code their way out of a paper bag 2008-09-20 18:35 maze, from my skydiving years I remember when the miltary gave up deveoping and just bought sport chutes 2008-09-20 18:35 but has been gone through with a fine comb once a quarter for two dozen years 2008-09-20 18:35 that's disappointing 2008-09-20 18:35 this is what i'm trying to push, if we give them one big important piece, they should get off their ass and sponser massive code audits on the rest of linux 2008-09-20 18:35 I'm not aware of any commercial code that isn't bug-ridden 2008-09-20 18:36 hmm, I see 2008-09-20 18:36 now - that - seems like a worthwhile goal 2008-09-20 18:36 have they done that on solaris? 2008-09-20 18:37 here's the problem with 'secure' development: you end up hiregin people that have proper clearances, instead of people with mad skillz. but since it's all done behind well guarded doors, noone ever will know how much it sucks 2008-09-20 18:37 I wonder if the US is the only country doing anything serious in this area... I mean there's so many other countries, and I don't buy them all buying off of the us... 2008-09-20 18:37 clearances are a very good way to hide incompetence :/ 2008-09-20 18:37 I'm clear of clearances ;-) 2008-09-20 18:37 and none of these people will ever share 2008-09-20 18:37 cuz it's national security 2008-09-20 18:37 national insecurity rather 2008-09-20 18:38 clearances are a good way into a depression 2008-09-20 18:38 tell me about it :/ 2008-09-20 18:38 the more you learn, the more surprised you are you're (we're) still alive 2008-09-20 18:38 you ever seen dr. strangelove? 2008-09-20 18:39 might have, don't recall 2008-09-20 18:39 was that a bond movie? 2008-09-20 18:39 old 60s movie from Kubric, about atomic bomb and the doomsday device 2008-09-20 18:39 no don't recall 2008-09-20 18:40 then my jokes wouldnt mean much ;) 2008-09-20 18:40 ah 2008-09-20 18:40 well, the worst part is none of what you've written sounds like a joke... 2008-09-20 18:41 but in general it's a very strange environment, that's why i'm here, so we can bridge some of the well audited/tested code into domains that are usually very very separated from the rest of the world 2008-09-20 18:41 i was about to crack a joke, but realized it'd sound very goofy and out of place unless you know dr strangelove 2008-09-20 18:41 go ahead 2008-09-20 18:41 anyway 2008-09-20 18:42 nah, doesnt matter 2008-09-20 18:42 I'm assuming this means your a civilian contractor with necessary clearances working for some military/defense whatever arm of the us gov? 2008-09-20 18:43 not a contractor, actual govt worker 2008-09-20 18:43 Do the true military guys treat civilians like sh*t? 2008-09-20 18:43 some 2008-09-20 18:43 ah 2008-09-20 18:43 in gradschool we got a lot of it, cuz it was 300 military officers and 10 civillians 2008-09-20 18:43 so it's got all that (and more) beautiful politics to live with 2008-09-20 18:44 so why civilian then and not military? 2008-09-20 18:44 who, me? 2008-09-20 18:44 in general, if almost everybody is military, why the pslit? 2008-09-20 18:44 ah, whatever, disregard... 2008-09-20 18:45 I'm not sure I even want to know how it all works ;-) 2008-09-20 18:45 or whether it works 2008-09-20 18:45 you dont, it's depressing shit 2008-09-20 18:45 so, Marcin - Polish roots? 2008-09-20 18:46 100% 2008-09-20 18:46 heh 2008-09-20 18:46 that's more than me then (unless I treat my roots as adding up to > 100) 2008-09-20 18:46 i thought you had a site from UJ 2008-09-20 18:47 I do 2008-09-20 18:47 but you know... standard story: 2008-09-20 18:47 oh that's weird 2008-09-20 18:47 conceived in France, born in Britain, grew up in Poland, kindergarten - grade 8 in Canada, high school and university in Poland, now working in California... 2008-09-20 18:48 weird stuff ;-) 2008-09-20 18:48 but, yeah, my Family's Polish, just done a lot of travelling. 2008-09-20 18:48 no wonder you end up working with shap, most of his friends in chicago were pollacks ;) 2008-09-20 18:49 Shap's in Santa Monica though, I'm in Mountain View 2008-09-20 18:49 well, work as in on tux 2008-09-20 18:49 I don't think I've ever actually met Shapor 2008-09-20 18:49 he's a fantastic character, love him dearly 2008-09-20 18:49 scary smart but without ego, which is strange 2008-09-20 18:50 this is growing to be a great crew 2008-09-20 18:50 yeah, way better than the other way round (ego without smarts) 2008-09-20 18:50 i wish i could code anywhere near what's needed here 2008-09-20 18:50 coding isn't actually the problem 2008-09-20 18:50 coding is trivial 2008-09-20 18:51 not to me, i'm a codeing retard 2008-09-20 18:51 the real problems are figuring out what the interfaces of the rest of the kernel are and how to obey them 2008-09-20 18:51 and what algos and data structures to use for what purpose 2008-09-20 18:51 and where 2008-09-20 18:51 yea that's a problem trying to merge yourself into a huge prexisting infrastructure 2008-09-20 18:52 there is actually very little coding and code involved ;-) 2008-09-20 18:52 i did little kernel coding in minix in gradschool, but that's it, what you guys are talking about gives me a headache 2008-09-20 18:53 the real problem for me at least - is the terrible lack of any documentation 2008-09-20 18:53 i'm just trying to steer it in the right direction, i'm more of a lobbyst/fanclub ;) 2008-09-20 18:53 and the documentation that is present is often either wrong or partial or outdated 2008-09-20 18:53 for the interfaces you mean? 2008-09-20 18:53 yeah 2008-09-20 18:54 i'm setting up lxr for us 2008-09-20 18:54 cool 2008-09-20 18:54 trying to do some support work 2008-09-20 18:54 you're somewhere in south carolina right? 2008-09-20 18:54 it's mostly set up, but i did it wtihout the free text searches, and Daniel wanted it, so i gotta redo a big chunk 2008-09-20 18:54 yea, near Charleston 2008-09-20 18:54 oh, sad. 2008-09-20 18:55 eh no problem, gotta refresh myself on linux sysadmining, i'm kinda rusty, school and new job took me out of commision for 3yrs 2008-09-20 18:55 let's look up Charleston on the map 2008-09-20 18:55 look where civilisation ends, and it's right on the border ;) 2008-09-20 18:56 that's true 2008-09-20 18:56 it's on the coast ;-) 2008-09-20 18:56 right next to hollywood 2008-09-20 18:56 I'll be passing through hollywood on halloween 2008-09-20 18:57 hollywood? 2008-09-20 18:57 the one with movies or some other one? 2008-09-20 18:57 the one in LA 2008-09-20 18:58 yea, i gotta go bug shap again, we need to stage a gettogether 2008-09-20 18:58 man, SC is weird 2008-09-20 18:58 'NO SHIT 2008-09-20 18:58 there doesn't seem to be anything there judging from the map 2008-09-20 18:58 swamps with aligators providing free security around military basis 2008-09-20 18:58 lol 2008-09-20 18:58 and ghettos with poor people 2008-09-20 18:59 been to Atlanta, hated the wather 2008-09-20 18:59 weather 2008-09-20 18:59 i aint kidding, my base has a pet aligator named Charlie, he's like 14ft ;) 2008-09-20 18:59 oh, 2008-09-20 18:59 you have your own base? 2008-09-20 18:59 wow, you're high up ;-) 2008-09-20 19:00 not my personal one ;) 2008-09-20 19:00 oh, is it just one of your holdings? 2008-09-20 19:00 oh yea, i'm big pimpin it ;) 2008-09-20 19:01 eh, every time I look at a map of the east coast of the US, I realize how I bloody don't know what the hell it's like 2008-09-20 19:01 the west coast is so easy: 2008-09-20 19:01 seattle, portland, san francisco, los angeles, san diego 2008-09-20 19:01 me neither, i've lived in chicago and cali, east coast is uncharted territory to me 2008-09-20 19:01 and you're done ;-) 2008-09-20 19:02 which also happens to be the 5 states: 2008-09-20 19:02 washington, oregon, north california, south california and mexico 2008-09-20 19:02 oh, ok, maybe a little off there ;-) 2008-09-20 19:03 and you should probably start with Vancouver... 2008-09-20 19:06 so how did you pick up this systems stuff? i read logs from last night, and your bash foo is out there 2008-09-20 19:07 mostly self taught 2008-09-20 19:07 really 2008-09-20 19:08 people coming out of european universities know a lot more than most american counterparts 2008-09-20 19:08 not having a life really helps ;-) 2008-09-20 19:08 here college is so common to do, it's more of an extension of highschool 2008-09-20 19:08 yeah, but most of my skills are stuff I picked up on my own 2008-09-20 19:08 indeed I have a MSc in Physics 2008-09-20 19:09 but I actually dropped out of univ, and then got back in and took 7 years to do it 2008-09-20 19:09 oh i'm back to not having a life, i had a life and it got too dramatic, thus new school/job 2008-09-20 19:09 because CS and running my own ISP was more fun and challenging and interesting 2008-09-20 19:09 (before you ask - mini-ISP for like 300 people) 2008-09-20 19:10 hehe, a friend of mine in poland did UJ too, molecular chemistry or something, took like 6yrs 2008-09-20 19:10 here if you're smart you get out in 3yrs, shap did it, i did like 3.5 2008-09-20 19:10 kinda a joke 2008-09-20 19:11 didnt learn shit about computers in college, that was mostly about hacking my way into coeds panties 2008-09-20 19:11 hey, that is at least worthwhile ;-) 2008-09-20 19:11 not in a long run 2008-09-20 19:12 I know 2008-09-20 19:12 i learned more by hanging out with shap hacking shit till 4am 2008-09-20 19:12 ah, so the two of you went to the same uni? 2008-09-20 19:13 no, different highschools, universities, just kept hanging out 2008-09-20 19:13 ah 2008-09-20 19:13 I think a lot of the truth here is that people finish college 2008-09-20 19:13 not university 2008-09-20 19:13 we met cuz he was running a bbs in the neighbourhood (which mattered back in the day of cost being distance dependent) 2008-09-20 19:13 and they end up with bachelors, not masters 2008-09-20 19:13 there's a big difference 2008-09-20 19:13 -!- konrad(~konrad@D-128-208-53-208.dhcp4.washington.edu) has joined #tux3 2008-09-20 19:14 in US the difference between college and university is very blurry 2008-09-20 19:14 doesnt really mean much 2008-09-20 19:14 degrees do matter, sometimes quite a bit 2008-09-20 19:14 a lot of the colleges etc are really just lame local schools 2008-09-20 19:15 that's 2yr degrees 2008-09-20 19:15 more different stuff 2008-09-20 19:15 we have the same thing in Poland - most higher ed schools suck, but then they're mostly not called univseristies, and most good ones are. 2008-09-20 19:15 i was talking about 4yr degree 2008-09-20 19:15 bachelor's is 2 years? since when? I thought bachelors was 3-4 2008-09-20 19:15 no no 2008-09-20 19:15 with masters being another 2 on top of that 2008-09-20 19:16 associates is 2yrs 2008-09-20 19:16 bachelor is 4yrs 2008-09-20 19:16 masters is another 2 on top of that 2008-09-20 19:16 depends on program/school, etc 2008-09-20 19:16 but that's the general rundown 2008-09-20 19:16 so associates is ike worthless right? 2008-09-20 19:16 associates is worthless, that's like something you want if you want to be a cop 2008-09-20 19:17 bachelor is the normal 4yr degree 2008-09-20 19:17 cops aren't worthless though :-) 2008-09-20 19:17 oh yea, they're my favorite people 2008-09-20 19:18 was actually talking about cops and how hard a job they have at work yesterday 2008-09-20 19:18 some people do the 2yr associates and then transfer to 4yr programs to save money cuz the local 'community colleges' are usually very very cheap 2008-09-20 19:18 so doing the 2 in local comm col? 2008-09-20 19:18 yea, 2here and 2there 2008-09-20 19:19 you end up with a normal 4yr bachelor degree 2008-09-20 19:19 yeah, why education (higher) is so expensive in the US is something I never understood 2008-09-20 19:19 college can be very expensive so it's a viable technique if you dont want to bury yourself in debt 2008-09-20 19:19 oh i worked at a private university for 5yrs, i can explain that one ;) 2008-09-20 19:20 yeah, a car per year in expenses - cute for someone who isn't working... 2008-09-20 19:20 yea, my housemate is a smart dude, very hard working too, but comes from a poorass family, even with scholarships he racked up like 50+k in debt for undergrad 2008-09-20 19:21 but at least it's a possibility, if you got talent but no cash, it's still doable 2008-09-20 19:21 right 2008-09-20 19:21 it takes a long time to pay that off afterwards 2008-09-20 19:22 unless you end up landing an awesome job 2008-09-20 19:22 these days most colleges are 30k/yr+, which is insane, you start life at -$100,000 2008-09-20 19:22 true, but... 2008-09-20 19:22 you should also be earning an extra 20/30k per year because of them 2008-09-20 19:22 over the course of your entire life it adds up 2008-09-20 19:22 still sucks of course 2008-09-20 19:23 eh, college loans are relatively low interest, i know people who are 40yrs old and multimillionare, but still pay off their school loans to earn good credit ;) 2008-09-20 19:23 lol 2008-09-20 19:24 eh, some people i went to undergrad with got 2-3 degrees and sell cellphones for a living 2008-09-20 19:24 geeks have it made comparing to others 2008-09-20 19:25 in what sense? 2008-09-20 19:25 income after college? 2008-09-20 19:25 it's hard for us to be unemployed 2008-09-20 19:25 true 2008-09-20 19:25 if you really got little talent and just wanna do basic IT work you still can make 40-50k/yr easily 2008-09-20 19:26 if you got any sort of brains you get to 70k/yr quickly 2008-09-20 19:26 I'm assuming you're talking about east coast here 2008-09-20 19:26 first year as a high school teacher in good district in chicago payed like 28k 2008-09-20 19:27 yea, cali is a bit different 2008-09-20 19:27 we start higher, and go up easily 2008-09-20 19:28 and it's difficult to be unemplyed 2008-09-20 19:28 I spend something like 15K+ a year just to rent a studio... 2008-09-20 19:28 and then add utilities on top of that. 2008-09-20 19:28 heh, move to SC, you can buy a new house for 130k ;) 2008-09-20 19:29 I can buy half a studio in a sh*tty area for that 2008-09-20 19:29 oh i know, i lived in monterey for 2yrs, a shed on my block sold for 570k 2008-09-20 19:29 it was an old house the side of my current living room 2008-09-20 19:30 s/side/size/ 2008-09-20 19:30 right 2008-09-20 19:30 the california fixer upper for just slightly less than a million 2008-09-20 19:30 me and shap were thinking of moving to cali at the end of 2000, just before the market exploded 2008-09-20 19:31 imploded 2008-09-20 19:31 looked at prices of houses, median price was like 890k 2008-09-20 19:31 but the weather's nice ;-) 2008-09-20 19:31 and there's lots of job opportunities 2008-09-20 19:31 and interesting ones at that 2008-09-20 19:31 i'm a geek, i live in rooms in AC so there's no condensation on servers ;) 2008-09-20 19:32 the weather outside is irrelevant unless it's a hurricane 2008-09-20 19:32 I have an AC - haven't turned it on in 2+ years I've lived here 2008-09-20 19:32 truthfully didn't turn the heater on last winter either 2008-09-20 19:33 i havent turn OFF AC since march, it's 100F and 100% humidity at all times 2008-09-20 19:33 sh*tty gas stove, more trouble than it's worth 2008-09-20 19:33 south sucks weatherwise 2008-09-20 19:33 yep 2008-09-20 19:33 i understand now why they had slavery here, noone's gonna volunteer their ass to be outside 2008-09-20 19:34 lol... 2008-09-20 19:34 it's ahorrible joke, but it's true 2008-09-20 19:34 yeah 2008-09-20 19:34 the non-white folks are probably more used to the heat... 2008-09-20 19:35 and can thus better deal with it 2008-09-20 19:35 i have to mow my lawn at 8am, cuz by 9:30am it's too hot for my pasty white ass not to get scorched 2008-09-20 19:48 hm that hasn't happened in a while X was chewing up half my ram even after closing firefox 2008-09-20 20:44 hrm does readdir work for anyone using tux3fuse ? 2008-09-20 20:44 (not tux3fs) 2008-09-20 21:38 folks 2008-09-20 23:55 -!- RazvanM(~RazvanM@pool-151-196-118-156.balt.east.verizon.net) has joined #tux3