00:00:00 --- log: started forth/04.05.18 00:00:01 kc5: I apologize, either way. 00:00:10 synova: I agree with your principles mostly 00:00:26 but your method just got kc defensive. 00:00:33 and I started doing it with you for a little while 00:01:15 defensive means I'm touching nerves 00:01:21 I know I'm not heeding my own advice real well right now, but I don't know how else to say this. 00:01:25 that's what happened to me 00:01:27 it had a negative efect 00:01:44 we should find a better way to share our knowledge 00:01:46 I can accept that 00:02:01 --- quit: rO| ("maintenance bbl") 00:02:13 and it's not just with the personal growth stuff 00:02:37 I've wasted lots of hours trying to convince people of things or change their attitudes about programming and lots of stuff 00:03:00 and in the end all I did was piss them off and waste lots of time 00:03:15 I don't feel like I wasted my time here. 00:03:20 granted, I did piss people off. 00:03:22 I know this doesn't work and I'm trying to learn a better way 00:03:25 but, definitely I did not waste time. 00:03:42 synova: what have you accomplished or gotten out of this conversation? 00:04:16 well, I can't honestly state that. 00:04:18 what kc5tja heard was the same old @#$% that he's gotten from a list of other people. 00:04:29 but frankly, I feel like it was a lot. 00:04:30 and he got pissed and left 00:04:34 even if I cannot put it into words. 00:04:51 are you thinking you helped others? or that you learned something? 00:04:59 I learned something for myself. 00:05:03 I don't know if I helped others. 00:05:04 bonus! 00:05:07 I'm content with that. 00:05:14 it is all I can do. 00:05:34 what did you learn? 00:05:41 at least, with my framework as I know how to use it at this point in time. 00:05:46 maybe I could benifit from this. I've been a jackass here today too :) 00:06:02 herk: you have not been a jackass. 00:06:09 that was my job =) 00:06:16 :) 00:06:32 I'm afraid it is too early to express what I got out of this 00:07:18 sure I have. first I contributed to alienating kc5tja, then I was being a hypocrite by tell you that you were doing it wrong, and that you should go around telling people that their way is bad. 00:07:29 at the very least, it saw what I used to bathe in every day with others 00:07:36 the phenomenal negativity 00:07:51 the "world constantly getting worse" with "no place for me in it" 00:07:54 day in day out 00:07:57 justifying yourself all the time 00:08:09 finding a way to "substantiate" yourself, just living on the earth 00:08:14 its absurd! 00:08:21 :) 00:08:46 yeah, I have some friends that live in very dramatic worlds 00:09:15 Bedtime for me. 00:09:22 kc5: likewise 00:09:25 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 00:09:42 he's got the chat logs 00:09:44 I hope he mails me 00:09:50 even if he doesn't like the book. 00:09:53 he won't 00:10:02 well, I won't tell anyone if he does. =) 00:10:14 I guess that is one positive thing about channel loggers. 00:10:29 what? 00:10:48 this message/chat hopefully nailed for posterity 00:11:09 the whole point of channel loggers is so you can go back later and find something you only partially remember. 00:11:18 or so you can tell others to read it 00:11:29 for posterity 00:11:30 herk: I guess surveillance does have its small benefits. 00:11:31 as you say 00:11:34 yeah :D 00:11:40 it's not intended as surveillance 00:11:47 this is a channel for discussing programming 00:12:01 the logs contain a wealth of programming knowledge 00:12:33 anyhow, I'm thankful for both you and kc5's time. 00:12:35 I mean that 00:13:02 I've stayed up way past my bedtime. 00:13:03 (and a lot of political, psychological, mechanical, medical, etc rantings/arguments/discussions like ours) 00:13:14 herk: always a good thing. 00:13:43 have a pleasant night 00:13:58 (or day, depending on your location.) 00:13:59 I don't like logs for personal channels (except maybe just for the last day or something in case you got disconnected and wanted to say the end of a conversation) 00:14:07 but for technical info they are very very useful 00:14:20 synova: you too. goodnight 00:14:32 thank you. take care. 00:14:37 --- quit: synova ("...") 00:35:12 --- join: crc (~Charles_C@0-1pool176-7.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 01:00:16 --- join: rO| (rO|@pD9EE1D96.dip.t-dialin.net) joined #forth 01:00:44 how is it goin warpzero? 01:07:58 just 10 seconds ago got a kernel to boot 01:09:03 is there any good initrd-making tools 01:09:23 congrats ;-) good timing :-) 01:09:33 yeah now i just need to make an initrd 01:13:28 --- join: fridge (~Jim@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 01:13:55 --- quit: fridge (Read error: 54 (Connection reset by peer)) 01:18:59 warpzero: why do you want netboot? 01:22:35 --- quit: crc ("ChatZilla 0.9.61 [Mozilla rv:1.7b/20040316]") 01:24:37 Herkamire: netboot is cool for via epic mobos eg. 01:26:24 via epic mobo is 15x15cm 1ghz incl graphic, silent no fan and even relatively cheap 01:26:59 a sweetie 01:29:14 Herkamire: bcuz i am moving to a single-filesystem server->diskless setup 01:32:37 --- join: fridge (~Jim@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 01:50:25 rO|: very cool 01:54:51 Herkamire: :-) you mean the mobo? 01:56:50 yeah. how much do they cost? 01:57:06 what kind of processor? 02:05:30 via's intel clones. prize 100/100+ depends 02:05:38 --- join: Serg (~z@212.34.52.140) joined #forth 02:05:57 Herkamire: sorry, no ppc ;-) 02:06:06 :-P 02:06:48 --- quit: Herkamire ("ok, bedtime") 02:26:41 --- quit: SDO (Read error: 54 (Connection reset by peer)) 02:35:12 --- quit: madwork_ (Read error: 104 (Connection reset by peer)) 02:36:47 --- join: madwork_ (~madgarden@204.138.110.15) joined #forth 02:42:15 --- quit: fridge (Remote closed the connection) 02:43:18 --- join: fridge (~Jim@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 02:51:16 hmm 02:51:20 init won't start 02:59:29 ah fuck 03:01:34 sometimes channel looks like radio in a battle ;) 03:02:07 pieces of curses and screams, "A-a-ah! I'm hit ! Guns jammed..." 03:06:55 --- quit: madwork_ (Read error: 54 (Connection reset by peer)) 03:14:55 Serg, it's a mental battle 03:15:09 sometimes you get defeated by the problem =( 03:15:35 problem is victor! we lie in the corner, swearing to ourselves 03:37:00 nice said ! 04:32:49 --- join: qFox (~C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 04:47:17 --- quit: warpzero (Read error: 113 (No route to host)) 04:48:22 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 06:23:13 --- join: madwork_ (~madgarden@derby.metrics.com) joined #forth 06:44:13 --- join: madwork__ (~madgarden@derby.metrics.com) joined #forth 06:45:12 --- quit: madwork_ (Read error: 104 (Connection reset by peer)) 06:45:20 --- nick: madwork__ -> madwork 06:54:57 --- quit: fridge ("Leaving") 07:01:12 --- quit: I440r_ (Read error: 54 (Connection reset by peer)) 07:09:50 --- quit: Serg () 07:10:03 --- quit: warpzero (Read error: 110 (Connection timed out)) 07:10:43 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 07:42:07 --- join: I440r (~mark4@168-215-246-243.gen.twtelecom.net) joined #forth 07:42:07 --- quit: I440r (Client Quit) 07:42:11 --- join: I440r (~mark4@168-215-246-243.gen.twtelecom.net) joined #forth 08:11:18 --- join: proteusguy (~proteusgu@69.79.24.31) joined #forth 08:14:44 --- quit: I440r (Read error: 110 (Connection timed out)) 08:46:53 --- join: Herkamire (stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:19:30 --- join: SDO (~SDO@co-trinidad1a-156.clspco.adelphia.net) joined #forth 09:20:24 hello 09:20:26 some discussion here of Think and Grow Rich, and personal development I see. 09:20:28 I can only recommend what worked for me, if it doesn't work for someone else, so be it. 09:21:04 There is always one way to find out if some text is worth reading, and that is to read it, decide if you want to take the steps it recommends, and find out if it works. If the results come, then it works, if not, look somewhere else, or within the same to find what is missing and incorporate. 09:27:03 think and grow rich? 09:28:15 sounds like the header of spams i get 09:28:16 :p 09:37:47 lol 09:38:25 fine observation, though 09:41:57 a bit too obvious... "is dead permanent, lets try!" 10:30:00 --- quit: SDO (Read error: 104 (Connection reset by peer)) 11:21:05 --- join: crc (~Charles_C@0-1pool88-136.nas48.philadelphia1.pa.us.da.qwest.net) joined #forth 11:40:21 --- quit: crc ("ChatZilla 0.9.61 [Mozilla rv:1.7b/20040316]") 12:04:45 rO|: well the kernel boots and the ramdisk works 12:04:58 but when it runs exec /sbin/init it just reboots 12:07:59 you went through the init script already, yes? 12:09:14 is it an error reboot or a faulty devised reboot 12:12:34 no dude 12:12:36 it just reboots 12:12:48 i can start a bash shell 12:12:51 but i can't start init 12:16:02 ld=ld-linux.so.2 12:16:22 it's i86, yes? 12:16:35 ahA! 12:16:46 i guess if init can't make /dev/initctl it does that 12:19:50 better a friendly dude than an expert asshole ;-) lol 12:25:57 --- quit: proteusguy (zelazny.freenode.net irc.freenode.net) 12:26:30 --- join: proteusguy (~proteusgu@69.79.24.31) joined #forth 12:54:33 okay 12:54:37 its mostly working now 12:54:41 /etc/mtab is still all fucked up 13:05:55 who said recently gentoo is a nobrainer install? 13:13:58 --- join: wossname (wossname@HSE-Hamilton-ppp190701.sympatico.ca) joined #forth 13:16:20 well its not if you install it thisway 13:19:20 do we have any lisp experts/knowers here? 13:45:55 --- join: I440r (~mark4@168-215-246-243.gen.twtelecom.net) joined #forth 13:46:12 --- join: rO|_ (rO|@pD9EE1A10.dip.t-dialin.net) joined #forth 13:47:03 Hi 13:48:43 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 13:49:02 --- mode: ChanServ set +o kc5tja 13:54:22 --- quit: rO| (Read error: 60 (Operation timed out)) 14:16:23 --- join: crc (~Charles_C@0-1pool176-19.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 14:21:45 --- join: lalalim_ (~lalalim@pD95EA0C0.dip.t-dialin.net) joined #forth 14:25:53 --- quit: lalalim (Read error: 60 (Operation timed out)) 14:26:29 hi 14:26:39 re ianp 14:26:39 Hi ianp 14:38:23 Good lord. 14:38:27 I don't believe what just happened. 14:38:33 I *really* don't believe what just happened. 14:38:43 --- nick: rO|_ -> rO| 14:39:03 I've actually come full circle. Totally, utterly, 100% full circle. 14:39:14 What? 14:39:40 When I first wrote Dolphin, it was intended to be an OS within which I ran primarily Forth software, heavily inspired by the user interface and ease of programmability of AmigaOS (obviously not restricting myself to Forth, therefore). 14:40:05 over time, Dolphin moved away from that goal, slowly becoming more similar to other operating systems. 14:40:31 Dolphin 0.5 Spec I (the last spec I made) was almost very much like a cross between EROS and Unix. 14:40:39 As if that doesn't happen all the time... 14:40:47 (e.g., it treated handles as capabilities, but still relied on ACLs to derive its INITIAL security state from) 14:41:38 And now I just realized, if I make the Dolphin kernel (a) orthogonally persistant, (b) 100% object capability protected, and (c) memory protected, I will have an environment that is *perfect* for FTS/Forth to run in! 14:41:56 Completely by accident, Dolphin and FTS/Forth, which split their ways back in the mid 80s, have come back together! 14:42:02 ot, but capabilities are just the "integer key security" type thingy? 14:42:23 nice 14:43:03 wossname: No. The handles are just small integers. A true capability can be referenced by other means. But the core is the intent: a capability refers to an object *AND* some functionality on that object (e.g., an object is a state plus its interface, while a capability is some state plus *ONE* method of its total interface). 14:44:12 wossname: There is a document on erights.org that explains why capabilities are markedly different than just "another view of the access control matrix." 14:44:39 i read a doc by this shapiro bloke on them, seemed neat but too simple to work 14:45:01 It's the difference between algebra and calculus -- with discrete math, you can ultimately derive anything that calculus can, given enough terms in the series. But calculus can do things *instantaneously* and represent the concept of an infinitesmally small time-frame. 14:45:01 i'll put that url away for later reading 14:45:18 wossname: Capabilities MUST work. 14:45:20 There can be no other alternative. 14:45:29 Consider, if you lack a pointer to an object, how can you muck with it? 14:45:55 overwrite every part of memory with your modification 14:46:01 wossname: You can't do that. 14:46:04 you'll hit the object eventually 14:46:05 You don't have access to its memory space. 14:46:16 well, then you take a hammer to the ram chips 14:46:19 You *physically* cannot express a pointer to the object in question. Period. 14:46:27 wossname: Well, gee, ACLs can't handle that either. 14:46:29 Get real. 14:46:58 call rand() and cross your fingers? 14:47:03 wossname: Nope. 14:47:14 Doesn't work. 14:47:44 is there something besides odds preventing it from working? 14:48:02 You can call rand() in Unix and hope to hit upon some kind of file handle, but unless the kernel has an entry in YOUR process' handle table, which you CAN'T get unless (a) either the parent process put it there, or (b) you invoked open()/socket()/etc., you simply arne't going to hit anything. 14:48:02 combination of needing the right handle and needing the right user id, or something? 14:48:10 wossname: Yes. Mathematical certainty. 14:48:27 I already said: if you just plain don't ahve a pointer to an object, you just plain can't muck with an object. PERIOD. 14:48:43 There is no concept of a user ID in a capability secure OS. 14:48:52 It's just plain not needed. 14:48:55 Not, at least, at the kernel level. 14:49:07 Maybe at the "init-process" level, but definitely not inside the kernel. 14:49:26 hi all. 14:49:38 just processes with capabilities 'rented out' to them. ok, i can buy that 14:49:53 More accurately, capabilities given to them. 14:49:56 kc5tja, it might be hard to fully secure this arrangement -- consider objects 'leaking' out 14:50:06 But the act of giving a capability ITSELF requires a capability too. 14:50:12 So not any ol' program can hand out capabilities. 14:50:39 slava: It's not possible. See both EROS and KeyKOS for two prior art OSes that are 100% secure against what you describe. 14:51:27 For example, in Linux, if I open a file, there is no possible way for my file handle to leak out of the process, and even if it DID, the number is meaningless, because it has meaning ONLY within the context of MY process. 14:51:50 of course 14:52:08 but in java, you can have problems where an object gets a reference to another object it shouldn't have access to 14:52:15 because its all in 1 address space 14:52:33 Well . . . um . . . don't do that. 14:52:53 Capabilities, and ACLs, are useless in a single-address space environment without single-address-space MMU hardware. 14:53:54 Do not proscribe the faults of a specific language to that of the general concept. 14:54:10 E demonstrates that it IS possible to use capability security on the JVM too, since E runs on the JVM. 14:54:34 But also consider, too, that E is a "safe" language too. 14:54:54 By the sounds of things, safer even than Java. 14:57:21 E is interesting, i forgot about that. 15:01:10 hey ianp 15:01:50 ianp, you use a mac right? 15:03:00 Damn, the thought of having a complete OS for the PC that treats Forth on par with other languages is damn appealing.... 15:03:03 yes 15:03:08 sup slava 15:03:15 ianp, ever used UserLand Frontier? 15:03:20 kc5tja: no joke. 15:03:30 slava nope 15:03:37 is that a blog deal? 15:03:47 well that's how they market it 15:03:52 webserver too i see 15:03:54 but its actually a scripting language and a database 15:03:57 slava: That's the first XML-RPC application -- XML-RPC was actually invented precisely to support that application. :D 15:03:58 why would i use it? 15:04:00 the nice thing is they're integrated 15:04:05 you write workspace.foo = 5 15:04:08 kc5tja: heh, no way 15:04:10 and it saves worksapce.foo to the database 15:04:18 slava: heh, cool :) 15:04:22 ianp: Yep, it's true. 15:04:28 ianp, and code is in the db as well. 15:04:38 ianp: That's why Frontier's author won't SHUT UP about XML-RPC, and why it's so much better than SOAP. :D 15:04:40 ianp, frontier is one of the more innovative mac os programs (though they ported it to win32 too now) 15:04:47 (which is something I'd do too if I invented a new technology) 15:04:56 kc5tja: well, anything lighter weight than SOAP sounds like a good thing 15:05:12 3eheh 15:05:18 ianp: Yep. I do wish XML-RPC was a bit more rigorous though. But, it's all good. It seems to be working quite well. 15:05:20 slava: cool... 15:05:37 kc5tja: I intend to check out ASN.1 if i ever have a need for that kind of stuff, too 15:05:50 ASN.1 is WAY complicated, from what I understand. 15:06:02 ianp, i'm adding a similar capability to factor -- object database -- but i'm taking it further, with support for BeOS-style 'live queries'. 15:06:07 * kc5tja prefers CORBA myself. IIOP is very, very simple. 15:06:29 ianp, at the moment, it stores a hierarchical object database; i'm working on adding the capability to persist word definitions in the database 15:08:34 My ideal object model system would use a free version of Component Object Model for in-process objects, IIOP for RPC. 15:08:45 Too bad IIOP is incompatible with COM's concepts. 15:10:06 Although, the use of capabilities for invoking methods across machine boundaries would likely invalidate the use of IIOP anyway. 15:10:23 (since IIOP isn't "secure") 15:11:48 i'm stuck on a design issue right now 15:11:56 what if the user stores an object in the object db that cannot be serialized 15:12:00 eg, a network socket 15:12:58 that's interesting. 15:13:12 at the moment it just ignores the object when the table is loaded from disk again 15:13:22 some sort of orthogonal persistence is definitely something that's desirable 15:13:29 yes 15:13:58 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 15:14:04 what is the meaning of the term orthogonal in the name though? 15:14:28 it's saying it's a separate "process"(bad word i guess?) that intersects 15:14:46 --- quit: crc ("ChatZilla 0.9.61 [Mozilla rv:1.7b/20040316]") 15:14:50 i guess that does make sense 15:15:00 ianp, once the db is a bit more complete i will extend my httpd to serve records from the db 15:17:09 ianp: Orthogonal means that the processes that are running do not have to manually manage their program storage. That is to say, there is no concept of files, no concept of directories, etc. 15:17:14 No filesystems. 15:17:42 is the issue of 'exporting/importing data to an orthogonal store in a portable manner' been solved? 15:17:55 Think of a Palm-compatible device, and you'll immediately know what I mean by Orthogonally Persistant. 15:18:26 slava: It was never a problem. You access external storage volumes and filesystems through normal, already familiar means. 15:18:37 kc5tja: yeah I definitely grasp the term 15:18:39 What I'm saying is that the run-time environment of the system is orthogonally persistent. 15:18:42 there was a good anecdote on that 15:18:51 i think in the TUNES or some related project's wiki 15:19:08 about how someones grandmother just turned off the power switch and wondered why their document wasn't saved ....:) 15:19:15 heheh 15:19:19 ianp: Huh? 15:19:25 that doesn't make any sense. 15:20:39 Oh, you mean, as a problem that orthogonal persistence _solves_? 15:20:39 tunes creates alot of interesting papers 15:20:43 and almost NO code 15:21:27 haha 15:22:03 slava: Actually, you CAN persist network socket information. I've seen plenty of cases where I'd pull an Ethernet cable from the computer (100% equivalent to just shutting off the computer as far as the remote side is concerned), and after plugging it in again, the same sockets work just fine. 15:22:10 slava im using jedit now for some things, i still go runnin home to mamma when im in a hurry tho (joe :) 15:22:28 kc5tja, yes 15:22:36 kc5tja: yes, that was a case where orthogonal persistence would have made the computer work as the person expected 15:22:36 I440r, cool ;) 15:22:45 I440r, i admit i use vi sometimes too :) 15:22:56 eek! 15:22:57 I440r: yeah, it is kind of funny, but I have respect for anyone even trying anything which is more than what I do 15:22:58 ianp: OK, I just wasn't sure from which direction you were coming from. :) 15:23:05 *VIM!* 15:23:08 kc5tja: yeah I explained a bit poorly 15:23:28 ianp respect me for trying jedit ? hehe 15:23:42 or tunes for trying to get their project going 15:23:51 haha 15:23:59 nah tunes of course 15:24:03 lol 15:24:13 the world needs dreamers 15:24:18 <-- dreamer 15:24:24 Tunes lost most of my respect. Their goals are so mutually contradictory that the only way to achieve them is by breaking the laws of thermodynamics. 15:24:34 I could be negatiev, but I don't know 1/10th of what anyone in TUNES does, so I wont make myself look dumb by even attempting to comment. 15:24:43 kc5tja: hehe yeah 15:24:53 does seem a bit of a tail-chase 15:24:55 I value TUNES *purely* as a scientific paper repository, which has mostly reasonable reviews of them too. 15:25:22 And I hope it stays that way. 15:25:24 Personally. 15:25:27 They excel at that. 15:25:29 kc5tja: indeed i see value there too, - figuring out what is the struggle, what are the problems, that is helpful for a novice like me 15:25:40 * kc5tja nods 15:25:44 'how COULD things be better' 15:25:49 They should leave the OS writing to the "experts." :D 15:26:01 and let Darwinism take its course. 15:26:02 are there any os writing experts ? 15:26:03 lol 15:26:17 I440r: Yes. Carl Sassenrath is one. 15:26:47 kc5 i KNOW there are experts out there lol - i was being funny lol 15:26:58 Heh 15:27:01 i would say jef raskin knew a bit too :P 15:27:05 but he is weird 15:27:10 Some might actually claim I am one, having written a few OS kernels myself. But I don't claim that I am. 15:27:16 I have yet to successfully master memory protection. 15:28:19 what will the general design of boxOS be like? 15:28:58 slava: BoxOS is no more; there is already a project of that name. It's now just BoxForth. 15:29:14 And, for the Kestrel, it'll just be a single-address-space Forth implementation that supports multitasking. 15:29:17 BF :) 15:29:24 BrainF.... 15:29:53 orth? ;))) 15:30:10 motherforther 15:30:49 slava: In a later generation of the processor, I'm planning on experimenting with an MMU; in that case, I may replace BoxForth with Dolphin, where BoxForth would run as a libOS (in the exokernel sense) 15:31:53 i see 15:32:59 You sound somehow disappointed. 15:33:50 why? 15:37:08 --- join: blockhead (default@dialin-920-tnt.nyc.bestweb.net) joined #forth 15:41:44 grr 15:41:51 i cannot tell if linux supports this card or not :( 15:42:12 [16:30:51] slava: In a later generation of the processor, I'm planning on experimenting with an MMU; in that case, I may replace BoxForth with Dolphin, where BoxForth would run as a libOS (in the exokernel sense) <-- what 15:45:51 some things kc5tja says just confuse the hell out of me 15:45:57 :D 15:47:57 its more like a learning wall around here than a learning curve 15:48:08 one of those learning walls that you slam into at 60mph 15:48:35 well, if you ask for calrification, kc5tja is very good about it 15:48:47 clarification, even :) 15:48:56 that doesn't prevent that dizzy feeling though 15:49:02 agrred 15:50:57 I need an UATA133 card 15:51:23 I need to get laid :D 15:51:37 Sex is over-rated 15:52:56 Unlike Forth? 15:52:59 An exokernel is a kernel that provides *no* policies of its own, save one: Don't fsck with the exokernel, and don't fsck with other applications. 15:53:14 Robert gets us back on topic :D 15:53:40 Hehe. At your service 15:53:45 If Forth provided protection services to prevent trashing Forth kernel memory and other application memory, AND securely multiplexed physical devices across all running tasks, literally, it'd be an exokernel. 15:54:20 --- join: Robert__ (~snofs@213.113.90.191) joined #forth 15:54:22 A cache kernel works similarly, but subtly differently. 15:54:59 wait 15:54:59 --- quit: Robert (Nick collision from services.) 15:55:04 --- nick: Robert__ -> Robert 15:55:16 so an exokernel doensn't do the more advanced kernel things like drivers and such? 15:55:22 Nope. 15:55:58 And "operating systems" as we'd know it are implemented as user-space *libraries* (hence the term "libOS") 15:56:12 Applications are linked (usually dynamically) against their libOS. 15:56:46 so where do drivers fit in? 15:57:31 So, for example, to save a file to disk, even though the exokernel doesn't know how to access a harddrive, it IS aware that a harddrive has an array of disk blocks. The goal of the application is to prove to the libOS that it's use of blocks doesn't interfere with another program's. Once this is proven, the program has free reign over those disk blocks. 15:59:20 So a language environment that prevents messing with other application's memory [and its own memory] is an exokernel? 15:59:25 hey all, did i miss anything? :) 15:59:44 In a loose sense of the term, yes. 15:59:47 qFox: exokernals :) 15:59:49 The reverse is not (of course) true. 16:00:12 exokernal? that sounds like space exploration lingo :p 16:00:48 qFox: An exokernel is an OS kernel that is so minimal that it doesn't even provide *policy* for accessing hardware resources. *ONLY* protection. 16:00:55 kc5tja: what if that language environment didn't control devices at all? 16:01:07 oh i can do that 16:01:09 i did that 16:01:11 :p 16:01:30 but that proved to be quite easy to do 16:01:38 (for me, with the p24) 16:01:47 hm ok nobody cares sorry 16:01:55 warpzero: Then it doesn't. Typically what happens in this case is the exokernel is aware of a series of I/O ports, which are doled out to applications on a first-come-first-served basis, with full permissions. 16:02:06 One and only one application would be bound to a set of I/O ports. 16:02:12 (with full permissions) 16:02:43 And here is where capabilities come in -- if other apps want access (which is sometimes handy), your driver tasks would have the ability to dole out restricted rights to I/O ports too. 16:03:18 qFox: What? 16:03:27 no nvm 16:03:27 :) 16:03:31 qFox: Your P24 emulator never had an OS on it; it wasn't an exokernel. 16:03:48 the bootcode i wrote for it would've worked 16:04:02 and you were able to define new words 16:04:07 what counts as an OS? 16:04:27 kc5tja: lets say the language environment has a running application in it that controls all the devices and their accessibility to the other applications, what then? 16:05:39 --- quit: I440r ("Leaving") 16:05:44 qFox: Any program that lets you control the machine and its actions, especially with respect to other applications. 16:06:13 qFox: However, your system just wasn't an exokernel -- it provided absolutely no protection to resources what-so-ever. It couldn't have; the P24 emulator lacked a memory management unit. :) 16:06:13 --- join: quantis (~darthspud@quantis.demon.co.uk) joined #forth 16:06:28 my god mur is everywhere.... 16:06:37 the code i wrote .... ah hell i dont know, it was a forth environment and you were able to define new words in CODE or threaded 16:06:45 quantis: And I'm not? 16:07:01 warpzero: Well, what then? The exokernel still only provides protection of resources. The application running *under* the exokernel is what provides the policy. 16:07:03 your not im my head.... 16:07:23 wohoo exokernals 16:07:24 qFox: Again, that's not an exokernel. 16:07:32 That's just a language run-time. 16:07:35 kc5tja: well i mean what is it, its not a libOS because its a running application 16:08:13 The criteria for an exokernel are: (1) no policy, and (2) secure multiplexing of hardware resources to deserving applications (defined as applications which can PROVE that their actions won't interfere with another program's resources or behavior, at least directly). 16:08:53 why is the burden of proof on the application? 16:09:13 warpzero: It'd have the behavioral characteristics of a microkernel in that case. But there would still be a libOS attached to it, which manages the interprocess communications with other applications. 16:09:32 warpzero: Because the kernel provides NO policy, except for securely multiplexing resources. 16:09:44 It's also WAY more secure that way. 16:10:09 This is why scientists have to PROVE their statements via repeatable experiments and backing facts when they publish their works. 16:10:28 Otherwise, the Regents of some college can just "vouch" for them, and for all we know, the scientist in question is really a quack. 16:10:31 kc5tja: so If I read you right, if process A and process B both want the parallel prt, the on that asks first gets it and can hold it indefinately? 16:10:50 "prt --> "port" "the on" --> "the one" 16:10:56 Consider Tesla -- a GREAT example of a quack who just *happened* to make a lot of great advancements. 16:11:05 kc5tja: yeah but i mean what if there's nothing to prove -- if an application doesn't have the language to interfere with another applciation? 16:11:25 blockhead: Since it's a single, non-sharable resource by definition, yes. 16:11:48 'k thanks 16:12:03 warpzero: There's always something to prove. 16:12:17 If you have access to a printer port, you've OBVIOUSLY been given some kind of permission to use it from SOMEONE. 16:12:34 Ultimately, that permission comes from the exokernel, in some form or another. 16:12:42 well im talking more about MMU-type stuff 16:12:50 That too. 16:13:22 ANY hardware resource, including but not limited to an application's own page tables, require permission to modify. 16:13:25 well with an MMU how does an application PROVE that a load isn't from another applications space? it cant even ADRESS that space? 16:14:18 Very good. Unless it has been GIVEN a physical page frame ID from another application (through some means not discussed here, because it's unimportant), there is NO WAY for the application to access it. 16:14:34 Otherwise, it can install the page frame ID into its page tables and access it. And the exokernel will HAPPILY let you do this. 16:14:46 okay i see 16:15:05 This is, in fact, precisely how IPC is performed in an exokernel. 16:15:18 If two libOSes aren't aware of each other's IPC mechanisms, too bad -- you can't IPC to them. :D 16:15:43 It's also a great illustration of how capability-based security works. PERFECT example, in fact. 16:15:57 (in fact, the very first *use* for capabilites was in governing access to page table entries!) 16:18:00 i still don't know about this whole libOS thing 16:18:44 i mean what if theres no libraries? 16:20:51 What do you mean? 16:20:54 There must be libraries. 16:21:06 There aren't :( 16:21:08 There has to be a way to link shared pieces of code across different applications. 16:21:17 There simply must be. 16:21:34 Otherwise, you'll end up statically linking everything, and you'll end up wasting HUGE amounts of disk space in your applications. 16:21:46 I mean, Linux alone is some 1.5MB in size, plus another 1.5MB for glibc. 16:21:50 that's a total of 3MB. 16:21:59 oh its biggre than that 16:22:04 How would you like to compile a 3MB *minimum* program for every tool you use? 16:22:31 Yeah but in this case it doesn't need libraries? 16:23:31 I don't know :( 16:24:09 I really don't understand where you're getting this from?? 16:24:15 Why doesn't it need libraries?? 16:24:32 I clearly expressed why it DOES need libraries. 16:24:50 Well it needs libraries, but they don't do OS-related stuff at all, 16:25:03 its like you know the sin function might be in a library 16:25:10 Yes. 16:25:11 So? 16:25:16 its not OS-related though 16:25:20 So? 16:25:33 glibc is the interface an application uses to the OS. 16:25:39 s/OS/Linux/ 16:25:43 yeah but 16:25:52 but what? 16:25:56 in this case the library doesn't interface to the kernel 16:26:06 The OS is just one, big, fat, shared library that all applications link to, directly or indirectly. 16:26:12 So? 16:26:24 I'm not saying COS() needs to link to the OS. 16:26:26 Who ever did? 16:26:29 I sure as heck didn't. 16:26:38 I'm saying that the **OS IS A LIBRARY YOU LINK TO**. 16:26:47 You do it under Linux. 16:26:56 It only takes a different *FORM*. 16:26:58 yeah i know you do it under Linux 16:27:30 linux-gate.so.1 16:28:57 * kc5tja is unaware of linux-gate.so.1 -- I'm only thinking of ld.so and libc. 16:29:30 oh its a library that doesn't exist 16:29:40 its how you link to syscalls 16:38:33 --- join: SDO (~SDO@co-trinidad1a-156.clspco.adelphia.net) joined #forth 16:38:41 re SDO 16:39:09 kc5tja, howdie. 16:39:11 nothing like a little think and grow rich conversation :) 16:39:17 can't stay and chat right now, but I read what went down. 16:39:19 Yeah. 16:39:26 lol, bottomline is you are what you make of what you got. 16:39:33 Yup. 16:39:41 remember, the book is called 'think' and grow rich, not be stupid and go broke :) 16:39:50 its about what we do, what we think, and what we become. 16:39:56 Well, I'm not broke, and things are looking up for me for the time being. 16:40:04 now good luck on the other books, you will find what you want somewhere, just keep looking. 16:40:31 I have no immediate interest in reading other books. 16:40:32 kc5tja, broke in the sense of all around, fulfillment is comoplete in 6 areas, physical, emotional, spiritual, financial, social and mental. 16:40:35 lol 16:40:37 ok 16:40:44 sdo, you rich? 16:40:52 wossname, I'm definitely rich. 16:40:56 :o 16:40:58 not loaded, but rich in all areas. 16:41:12 I have been rather blessed in my life so far, and see the future as bright as ever. 16:41:14 How about you wossname 16:41:36 hrm. i have been blessed, but i don't know about the future 16:41:57 i know i am not rich in my bank account, which i understand is a very important area when it comes to wealth 16:44:23 just thought I would run thru here and see if anyone here goes back to the Sunol Systems days? 16:44:39 I have never heard of them. 16:47:25 --- quit: wossname (":/") 16:49:20 --- join: gianluca (~being@host227-19.pool8249.interbusiness.it) joined #forth 17:02:23 --- join: Sonarman (~matt@64.160.166.6) joined #forth 17:07:00 haha! google even registered foofle.com, in case anyone accidentally types it 17:07:15 and hoohle.com too? 17:07:35 at least they can afford them :) 17:07:40 Sonarman: Hehe 17:08:04 google hpph;r fiifkw 17:08:08 Actually, registering multiple domain names is pretty cheap. At godaddy.com, I got my domain for something like $10/year. (somewhere in that ballpark; I don't remember for sure) 17:08:27 yeah domains are cheap nowadays 17:13:09 hm, if only i knew how to use colors in win32forth :( 17:13:22 but i think my emulator is done 17:13:53 Cool. 17:14:12 except for the carry part, and mul, div, STT and TTS, which i'll add later anyways 17:14:35 I'm almost done with the ASM model of the assembler. I would have been done earlier, but I found a bug in its design (thanks to formal verification!) that I'm currently working on to fix. 17:14:57 i've resolved the addressing issues i had, at least i think, and a made a simplistic assembler for the machineforth 17:15:30 and it seems to run properly 17:15:38 --- quit: quantis (Read error: 104 (Connection reset by peer)) 17:22:23 http://members.home.nl/qfox/coding/forth/kestrel.f 17:23:20 (should at least work in win32forth, dont know about others) 17:28:31 Cool. I'm going to link to this later today on the Kestrel site. 17:28:34 oh, bo 17:28:35 if that's OK. 17:28:37 sure 17:28:39 oh, no 17:28:48 Cannot write to `Rotting%20Christ%20_%20Among%20Two%20Storms.mp3' (No space left on device). 17:28:53 hehe 17:29:08 devine interference, or something ;) 17:29:12 Man, I am *so* going to start working on Dolphin again. 17:29:19 Hahah! :) 17:29:29 Just using amiwm for only a few days, I just *don't* want to change back. 17:29:40 amiwm and ion are the *only* two window managers I'll consider using now. 17:29:43 qFox: good one! 17:30:06 The window manager is actually faster than the applications running IN the windows! 17:31:53 that helps 17:32:05 If you've never used an Amiga, you just wouldn't understand. 17:32:15 ok :) 17:32:29 --- quit: Sonarman ("leaving") 17:33:18 Imagine a computer that runs at only 7MHz (not even 8!), has 4096 colors on the screen at one time, has only 256K of RAM, has *better* multitasking performance than Linux, and has a GUI that responds *INSTANTLY* regardless of CPU load. 17:33:31 If you can imagine that, you can imagine using an Amiga. 17:33:34 --- quit: gianluca ("Leaving") 17:33:36 heh 17:40:13 grrrr 17:40:30 if i were to search google on how to print text with colors in win32forth, how would i search? 17:40:45 hint: colorforth is not what i want :\ 17:41:14 "color pen HDC win32forth -colorforth" would be my guess (minus the quotes) 17:42:09 HAHA! Check this out: "We have successfully run EROS on a machine with only 640K of RAM. This is not the recommended configuration. 8MB or 16MB is better." 17:42:15 Contrast that with Linux. :) 17:42:26 anyone know a layer 2 gigabit switch i can use that has jumbo frames 17:42:41 nope. 17:42:53 what size is a jumboframe anyways? 17:42:57 9000 17:43:01 k 17:43:06 6x 17:43:10 uh? 17:43:22 9000=6*1500 17:43:30 oh right 17:44:15 i've got asante cards on here 17:44:18 w/ jumbo frames 17:44:27 for a good price 17:47:32 --- join: Sonarman (~matt@adsl-64-169-93-57.dsl.snfc21.pacbell.net) joined #forth 17:47:35 whoa! 17:47:40 stuff must be pricey? 17:47:50 the intel cards support 16000mtu frames 17:52:04 * Sonarman tries amiwm, since GNOME won't start ever since i emptied /tmp a few moments ago 17:52:08 * qFox sends mail to mr tom zimmer 17:52:30 hmmm ok that is probably not working 17:52:52 User unknown 17:52:53 grr 17:52:56 Sonarman: :( Did you do that as root, or as a normal user? 17:53:47 Sonarman: I find amiwm + ROX to be a nice combination. amiwm doesn't support the more modern desktop drag-n-drop protocols though, and I haven't received any messages from its current maintainer. 17:53:54 * kc5tja is seriously thinking development on this wm is dead. :( 17:54:39 well, i had forgotten to chmod 777 /tmp, so i'm going to see if doing that will fix it 17:55:09 yup, that did it 17:55:25 Ahh, cool. :) 17:55:33 oh, please no 17:55:35 no no no 17:55:47 my sticky notes are gone :( 17:55:54 when playing with fire... 17:56:27 Gnome stores its sticky notes in the home directory, I thought, not in the /tmp directory. 17:56:32 hey, i had zero free disk space left. i had to take drastic measures :) 17:56:39 kc5tja: i thought so too, but apparently not 17:58:14 :( 17:59:31 hehe oh well 18:00:28 So now that you have had a taste of a poorly considered ACL-based security mishap, AND a horrible user interface interaction problem, want to consider helping out on a real OS designed primarily for use in a desktop environment? :) 18:00:44 ("Is Linux too stable for you?" comes to mind.) 18:00:48 yes! 18:01:33 :) 18:02:34 i feel kind of good now that my stickies are gone though 18:02:37 its odd, but it seems as if it is IMPOSSIBLE to change the fontcolor in the win32forth console :( 18:02:52 i did find >BOLD and >NORM though, which do the obivous 18:02:55 qFox: have you tried the ANSI escape codes? 18:03:00 no? 18:03:11 how do they work? 18:03:13 Perhaps asking on the comp.lang.forth would be of some assistance, as Tom Zimmerman is a contributor there. 18:03:48 does he do the yahoo mailing list as well? 18:03:53 I used to use ansi color escape sequences all the time on my amiga ... but it's been so long I've forgotten :/ 18:03:54 all i see in comp.lang.forth is flamewars 18:03:55 i believe there was a yahoo mailing list for win32forth 18:04:17 i have no idea what ansi color escape chars would be :\ 18:04:35 ok 18:04:37 I'm out -- food time. 18:04:44 : esc 27 emit ; 18:04:57 "food time"? WHateve rhappened to "dinner"? :D 18:05:53 qFox: try the following: : somecolor esc ." [34m" ; 18:06:47 blockhead: I now live in a world of information technology. That means I work in a cubicle (again). That means, I sustain myself on food pellets supplied to me by my manager. Or, more accurately, I rely on fast-food supplied to me in exchange for the pellets I'll be receiving in the following weeks. :D 18:06:52 Anyway, I'll be back. 18:06:58 and oh shit... >BOLD counts for the entire console, not just the string following :( 18:07:47 kc5tja, pellets == food stamps? 18:08:19 Sonarman> doesnt work, only leaves the colorcode on the stack 18:08:50 anyway, to set the color of following text using ANSI escape codes, print: "^[3Xm", where ^ is ascii 27 and X is in the range 0-9 18:08:54 i'm guessing that the console is build up so simplistic that it just cant do this. 18:08:58 built 18:09:13 qFox: no, the somecolor word doesn't accept an argument on the stack 18:09:25 oh 18:09:26 it just sets the text to color #4, whatever that may be 18:09:42 (assuming that the w32for console actually supports you know) 18:09:53 still doesnt work 18:09:59 yeah, and i dont know either it does. 18:10:09 but all signs are looking at a no on that.. 18:10:24 pity 18:10:25 did you try values other than 4? 18:10:39 27 emit ." [39m" 18:14:42 hey kc5tja oh wait you left :( 18:15:02 --- quit: Sonarman ("leaving") 18:15:31 --- join: Sonarman (~matt@adsl-64-169-93-57.dsl.snfc21.pacbell.net) joined #forth 18:16:08 nope 18:16:37 it just prints the escape char, <-[34 18:16:38 or w/e 18:16:46 it just prints the escape char, <-[34m 18:17:07 ok 18:17:15 guess it doesn't support them then 18:17:17 ohwell... 18:17:19 * qFox gives up 18:17:37 did you try asking through the yahoo group? 18:17:40 its not crucial or anything, just would've been nicer to look at, clear to seperate certain output lines 18:17:43 not yet 18:18:26 i've heard they're very heplful 18:32:35 Back 18:32:35 nite 18:32:45 --- quit: qFox ("this is mirc's last attempt of communication...") 18:37:32 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576712.sympatico.ca) joined #forth 18:52:02 re madgarden 19:00:02 * warpzero wonders if it would be possible to create an asychronous serial bus 19:02:39 Sure it would. 19:02:47 but how? 19:03:06 The best I know is to use three lines: one for data, and two for clocks. 19:03:18 how would the clock work 19:03:44 The idea being, data is considered _not valid_ if the clocks are the _same_ (as this indicates an acknowledgement between sender and receiver). 19:04:03 So the control flow would be, put the data bit on the data line, then assert one of the clock signals. 19:04:15 Then, wait for the _reciever_ to reciprocate with the other clock line. 19:04:32 hmm 19:04:35 When the other clock line matches the state of your clock line, you are free to change the bit and clock the next bit. 19:04:55 I was really considering implementing this for my peripheral interconnect bus on the Kestrel. 19:05:02 what if you took a latch 19:05:07 But I decided against it because it might be too "out there" for others to grok. 19:05:10 and just divided it across hte bus 19:05:27 Divided it across the bus?? 19:05:46 yeah so you have two lines 19:06:28 I'm sorry. 19:06:31 ? 19:06:32 I'm still not understanding. 19:06:38 well you know how a latch works 19:06:45 Yes. 19:06:50 But a latch is a very synchronous device. 19:07:21 yeah i know 19:07:26 Unless I'm really missing something you're not explaining. :-) 19:07:46 okay you know the two lines in a latch that loop to the other side and not? 19:07:53 Yes 19:07:58 what if that was the bus? 19:08:14 That's the part I'm not understanding. 19:08:18 How would this be the bus? 19:09:01 well if you asserted one line the other line would have to de-assert 19:09:19 thats how latches work 19:09:23 Yes. 19:09:26 So? 19:09:35 The goal is to communicate data from point A to point B. 19:09:37 yeah 19:09:43 And do it in the shortest amount of time possible. 19:09:47 right 19:09:53 I'm just not seeing how that helps. 19:10:14 well wouldn't it work in only two pins? 19:10:20 No. 19:10:26 why not? 19:10:26 You need to communicate both data and clocking. 19:10:40 You need some indication as to when data is known to be valid, and when it will be in transition. 19:10:56 Otherwise, you'll end up with race conditions. 19:12:13 well i am saying unidirectionaly here 19:12:26 As am I. 19:12:40 With your system, I really don't have any knowledge of when a bit is really being transmitted. 19:13:07 hmm no i guess not 19:13:47 but if it was only polled every so often it might work for like a state-sycnchronization thing 19:13:56 What's needed aren't latches per se, but latches augmented with enough logic to turn them into "Same Gates." 19:14:07 Why even have the latch then? 19:14:17 What you have then is precisely what RS-232 uses to communicate with. 19:14:18 oh yeah good point 19:14:21 :) 19:14:22 that only needs 1 pin doens't it 19:14:32 Data and ground. Yep. 19:14:57 okay so with your method 19:15:06 what happens with minorly unstable signals 19:15:32 I haven't done any abstract modeling of it yet, but what do you mean by "minorly unstable"? 19:15:55 like i mean how fast does it go before it starts getting completely wrong 19:16:02 As fast as it can. 19:16:12 That's the good thing about an asynchronous system. 19:16:17 yeah i know 19:16:19 that 19:16:20 but 19:16:25 im just not sure it will actually work IRL 19:16:44 Since the timing of the bits depends exclusively on how quickly the receiver responds with its clock AND the signal propegation delay through the cable, the data is never transmitted faster than the communications channel can possibly permit. 19:17:51 yeah but what happens if the clock lines are long enough that they kindof jiggle or something 19:17:52 warpzero: Asynchronous logic, in use on chips at least, use this kind of signaling every day. It's called a "three-way handshake," and they even built special gates designed to handle the logic requirements for it, called 'same gates' (e.g., the result of the gate is true only if both inputs are the same). 19:18:15 In that case, you'd have issues with synchronous serial interfaces too. 19:18:19 NOT XOR 19:18:23 The best solution to this is to use ECC. 19:18:32 yeah thats what i was thinking 19:18:57 warpzero: Yes, XNOR is more accurate, but a "same" gate also has hysteresis too. I described the operation of the gate wrong, sorry. 19:19:09 oh 19:19:10 In a "same gate," the truth table more closely resembles that of a latch. 19:19:14 0 0 -> 0 19:19:16 0 1 -> Q 19:19:18 1 0 -> Q 19:19:19 1 1 -> 1 19:19:26 AH 19:19:26 where Q is the last state it was in. 19:19:27 ahahah 19:19:43 okay what if we use both of our aproaches 19:19:49 'nn all 19:20:01 --- quit: blockhead ("laugha while you can, monkey boy") 19:20:07 It's basically a D flip flop and an XNOR put together, but it turns out that they can be implemented in fewer CMOS transistors using various techniques. 19:20:27 Well, my approach does depend on the use of same-gates to get bus synchronization on both ends. 19:20:39 how so 19:20:47 i don't think it would 19:20:52 Well, I can't ever transmit the next bit until both my clocks are *exactly* the same. 19:21:06 Likewise, you can't *store* the bit until both clocks are *different*. 19:21:20 yeah but how does that involve a samegate 19:21:41 * kc5tja thinks... 19:21:45 kc5tja, hi ya. 19:21:57 I may be thinking of a system where a bit is transmitted only when both clocks are high or low. 19:22:11 If we do it where both clocks are the same, then an XNOR gate is plenty sufficient. 19:22:15 as I understand your approach 19:22:29 Oh, I remember. 19:22:43 The XNOR gate is used to assert a "this bit is valid" signal. 19:22:48 (which is taken to be high here) 19:22:53 okay 19:22:59 That same signal feeds into one input of the same-gate. 19:23:06 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 19:23:15 Another input comes from some external logic (e.g., a shift register implementation that is also asynchronous). 19:23:45 The output of the same-gate doesn't go high until the result of the XNOR is true AND the shift register reports "I'm done shifting" by bringing its acknowledge signal high. 19:24:01 Then and only then does the same gate's output go high, which triggers logic to deliver the next bit. 19:24:07 but thats just an AND gate 19:24:16 (or, more accurately clock transition) 19:24:43 The implementation I've seen uses a same-gate. 19:25:05 is there a way to make a same-gate in Verilog? 19:25:13 Yes. 19:25:22 anyway 19:25:29 the way you first described i like better 19:25:32 You can use a user-defined primitive to do it, or a behavioral model. 19:26:09 i think you could make the way you first described bi-directional [obviously on a per-bit basis] 19:29:02 Perhaps. I'd like to play with the system concept a bit more first. 19:29:24 I think it'd be *neat* to offer an asynchronous expansion bus for use on the Kestrel. :) 19:29:26 Well I mean you could change the direction of clock rotation 19:29:29 Definitely something for R&D. 19:29:49 Oh, well, yes, it fully supports bidirectional communications. 19:30:00 None of my serial interface designs are uni-directional. 19:30:06 i think it would need some ECC though 19:30:08 (except those of the loop/ring variety) 19:30:24 warpzero: At the speeds the link could run at, ECC is hardly a problem, I think. 19:30:41 well it would be more than simple to add an ECC pin 19:31:12 Furthermore, after reading Phil Karn's paper on a replacement for AX.25 for ham radio networking, I wouldn't consider making a packet protocol without it anymore. 19:31:31 I would just place the ECC data inline to the packet. 19:31:43 i don't think i like that as much 19:32:10 because if we make the bus parallel which is more than readily done with your 3-pin design 19:32:15 Well, in most cases, it's a requirement (e.g., if you are interfacing to an optical link, for example, where fiber optic cables are expensive) 19:32:51 yeah i there is like ECC at link and transport layers on the internet 19:33:04 (TCP/UDP) and ethernet 19:33:14 No ECC is defined in TCP or UDP. 19:33:18 Ethernet frames lack ECC. 19:33:23 it is in UDP 19:33:24 Wireless Ethernet might have it though. 19:33:27 Nope. 19:33:36 UDP is only an 8 byte header on a raw datagram -- that's it. 19:33:52 i swear to god it transmits a checksum too 19:34:00 Checksum != Error Correct Code 19:34:14 nah but you can run a retry on it 19:34:18 s/Correct/Correction/ 19:34:27 Yes, and retries are the #1 bandwidth killer. 19:34:28 No thank you. 19:34:41 It's way faster for today's computers to correct bits than ask for a retry. 19:34:45 how does ECC work as an algorithm anyway 19:34:56 There are too many for me to even begin. 19:35:05 I'm not knowledgable about how any one particular ECC works. 19:35:11 isn't there a simple XOR one 19:35:20 Multi-bit parity. 19:35:36 There's also the "voting" variety, where for each bit you really send three, and the best two-of-three wins. 19:35:58 But that actually has pretty poor performance from what I understand. 19:36:01 hmm anyway 19:36:04 its been interesting 19:36:58 --- quit: snowrichard ("Leaving") 19:37:05 Yep. 19:37:15 Async logic is definitely one of my most interested topics. 19:37:54 And I think its being ignored for no good reason. 19:38:06 Well, hopefully I can change that. 19:38:15 Baby steps for me though...I need to get the base system working first. 19:38:44 you should make the FTS1001 internally asychrounous that would be pretty cool 19:39:12 That's a future goal. 19:39:16 However, not right now. 19:39:18 heh 19:39:26 I have zero knowledge of how to actually synthesize a chip via Verilog. 19:39:38 better get learning 19:39:40 so the less "unknowns" I have to deal with, the better. 19:39:52 I need an assembler first. :) 19:40:03 hehehehe 19:40:07 (which I'm almost done writing the ASM model for) 19:42:27 hmm 19:43:36 also do you happen to know if multiply has a silicon complexity of order n [bits] 19:43:53 Sorry, I don't know. 19:58:44 ASM stands for what 19:59:16 Abstract State Machine 19:59:21 ooh sexy 19:59:27 how abstract? 19:59:28 what about MASM? 19:59:33 meta abstract state machine 19:59:36 How abstract do you want it to be? 19:59:52 i want it to be super abstract up to the point it becomes circular 20:00:10 It is possible to model ASMs in an ASM. 20:00:47 ok 20:00:52 does that mean forth is an ASM? 20:01:02 No, but it sure comes close. 20:01:13 And with careful attention to details, you can certainly use Forth as an ASM-like environment. 20:01:22 Lisp is another system that comes close to an ASM. 20:01:33 In fact, ACL2 (an ASM interpreter) is written in Lisp. 20:02:37 whats the advantage of ASM? 20:02:43 is it for programming? 20:03:15 It lets you model and logically reason about a design or process in a rigorous, logical, mathematical way. 20:03:18 It's a formal method. 20:03:26 It can be used to model anything. 20:03:44 * kc5tja notes that Verilog and VHDL are two hardware description languages that are *extremely* ASM-like. 20:06:09 Just short for assembly language. 20:06:54 can it model analog stuff? 20:07:10 To an extent, yes. 20:07:15 It's not a perfect mapping, of course. 20:31:10 --- join: Sonarman_ (~matt@adsl-64-169-93-72.dsl.snfc21.pacbell.net) joined #forth 20:31:10 --- quit: Sonarman (Read error: 104 (Connection reset by peer)) 20:57:29 --- join: arke (~arke@melrose-251-251.flexabit.net) joined #forth 20:57:32 Hi there ^__^ 20:58:06 HEY! 20:58:11 Long time no see. 20:59:03 :) 20:59:05 Yep. 20:59:10 Fixing a computer for my dad 20:59:14 so while I wait, I IRC 20:59:18 just don't tell him :) 20:59:23 futhin: hi sexy :) 20:59:31 kc5tja: I'll check emails in a sec 21:02:45 heh 21:02:59 eh shit 21:02:59 brb 21:03:01 --- quit: arke ("leaving") 21:06:44 --- join: arke (~arke@64.198.251.251) joined #forth 21:06:47 Hi 21:06:49 back 21:06:55 this computer has the shutdown virus :( 21:07:06 Heheh 21:07:14 Not familiar with it. 21:07:27 (because its Winblows ^__^) 21:07:57 But I don't know if you have been reading the IRC logs, but I've been thinking of redesigning Dolphin 0.5 and working on that to replace Linux as my desktop OS of choice. 21:08:12 really cool 21:08:26 coolness. 21:08:28 i'd port my language to it :) 21:08:38 Using capability-based security systems, too, so virii will become irrelavent. 21:08:39 along with a lisp :) 21:08:42 whats Dolphin like, anyway? Like, Amiga+Forth? 21:08:58 arke, amiga+forth would be nice :) 21:09:12 :) 21:09:34 Excuse me, but I'm new here -- what's Dolphin? 21:10:41 Callidus: kc5tja's OS 21:10:54 brb, I won't quit, I got screen running 21:11:15 Forth- and capabilities-based, I gather. 21:12:11 I'd love a mature capabilities-based OS, or even one I could use on a daily basis. 21:12:51 Dolphin is an operating system I was designing years ago, then petered out because I got disgruntled with the fact that everything was going to Linux, and seemingly no attention was being given to any other open source project. 21:13:20 Dolphin has never been, nor will be, *expressly* designed for Forth. But it is intended to ship *with* a Forth included stock. 21:13:26 (in some capacity). 21:13:54 My previous incarnation of Dolphin 0.5 came the closest to a complete capability-based system. 21:13:58 However, it wasn't totally. 21:14:01 Do you have a page for this? 21:14:05 Not anymore. 21:14:10 It's long since been torn down. 21:14:18 And my files for Dolphin 0.5 aren't around anymore. 21:14:31 When I said Years Ago, I meant it literally. :) 21:14:37 Yeah. :) 21:14:42 back 21:14:44 wb 21:15:09 :) 21:19:52 Callidus: Have you used an Amiga before, by any chance? 21:24:30 kc5tja: are you gonna base it on GEM alot? 21:24:44 Yeah, but I was an OS/2 guy when the Amiga was big, so not extensively. 21:25:54 kc5tja: which reminds me, in the next email, send me a link 21:27:18 Callidus: Dolphin was intended, originally, to be a heavily Amiga-like user environment. 21:27:26 arke: A link to . . . 21:27:55 I liked the Workbench. 21:28:01 Callidus: And if I restart Dolphin development, I will definitely insist on certain Amiga-like operating characteristics. 21:28:21 arke: Yes, it'll be built on top a *modern* interpretation of GEM. 21:28:28 That is, I'm NOT implementing GEM as it was 20 years ago. 21:28:56 GOD...I can't believe it. In 2008, my Amiga will be 20 years old!! 21:29:04 kc5tja: to GEM + its source 21:29:10 arke: Ahh 21:29:10 kc5tja: :)_ 21:29:37 kc5tja: well, of course not, but I'm sure you'll have its API have many similar characteristicsz :) 21:29:55 Callidus: Funny you mention OS/2 -- that's one thing the Amiga had in common with OS/2 -- Rexx. :) 21:29:59 Yeah. 21:30:13 And the religious fan base. ;) 21:30:17 what will dolphin be coded in then? 21:30:25 Although ARexx was more powerful than OS/2's REXX, because ARexx could address and talk to other tasks, forming a meta-scripting language environment. 21:30:41 futhin: The cache kernel itself will be coded in Forth, most likely. 21:31:05 futhin: It probably won't run very fast, but I figure, get it working first, make it fast later. 21:31:26 :) 21:31:30 All components external to the cache kernel could be written in whatever language desirable. 21:31:52 kc5tja: about gcc.. 21:32:03 kc5tja: how far does its inability to use stack machines reach? 21:33:03 Nobody said it can't use a stack machine. 21:33:14 C can, and has in the past, been used on stack architectures. 21:33:23 kc5tja: want me to quote the email? :) 21:33:24 But it won't run fast. 21:33:41 kc5tja: you said gcc couldn't handle stack macines well/at all 21:33:52 C, because the very framework of the language revolves around that single stack, runs *extremely* poorly on a stack architecture. 21:34:10 You're taking me out of context. 21:34:41 I meant every word, with the assumption, which I thought was rather obvious, that the REGISTER-based intermediate representation would simply NOT map to a stack architecture CPU. 21:34:56 The C compiler will emit TONS of stack permutation words. 21:35:14 See Philip Koopman's previous research in this area (it's documented in his "Stack Processors, The New Wave" text). 21:35:30 Modern CPUs run C beautifully, because they are optimized to run C. 21:35:38 A stack CPU will run Forth, because it's optimized to run Forth. 21:35:49 I really can't see why this is a hard concept to grok. 21:36:46 Geez, man, I really need to get organized. 21:36:50 I have so many things to do... :( 21:37:07 oooh 21:37:12 i thought you meant something else 21:42:44 blah blah blah 21:42:46 come on 21:42:48 I'm here 21:42:49 talk 21:42:50 :( 21:42:53 Sorry, man. 21:43:05 What do you want to talk about? 21:43:24 * kc5tja is still making a list of the things I need to do tomorrow, and getting depressed about it, because I know I'll blow 90% of them off. :/ 21:44:26 erm 21:44:28 Kestrel 21:44:29 Forth 21:44:30 Amiga 21:44:30 GEM 21:44:34 RX-7 21:44:36 I just got a naaaaasty splinter. 1/4 inch long up under my fingernail 21:44:52 whee 21:45:23 Well, development efforts on the Kestrel can't continue until I have a working model of the microprocessor in the hands of the future users. 21:45:28 That is why I'm working on the assembler. 21:45:37 Cool. 21:45:43 Unless I have the facility to make a program that works in the emulator, I have nothing at all to compare the Verilog model of the CPU to. 21:46:02 THEN I need to *FIND* a chip that will house the CPU, and whatever other assorted circuitry it'll likely possess. 21:46:20 So all future development efforts of the Kestrel currently is dependent on the CPU. 21:47:05 I am probably going to release a minimalized version of the Kestrel, perhaps called the K1, which is just a single-board, embedded version of the full-blown, first generation Kestrel computer. 21:48:05 The second generation Kestrel line will probably have memory management in place, permitting one to run more sophisticated operating systems. 21:48:10 Dolphin is an obvious OS to run on it. 21:48:53 But at least to start with, a more likely scenario is running a virtual machine on it, so as to virtualize a number of first-gen Kestrels. 21:49:28 I will undoubtedly use cache kernel designs to make this happen (in contrast to how IBM's VM software works, which is equally valid, but more complex). 21:49:42 Dolphin would be delivered afterwards. 21:49:55 (note there is a pattern here: release early, release often, or at least, as often as I can in hardware.) 21:50:05 And that's about it. 21:50:10 So, what are your thoughts? 21:50:26 (1) Coolness 21:50:35 (2) elaborate on cache kernels a bit more please 21:50:47 (3) I wanna help with Dolphin 21:50:58 I'm working on a list of things to do. So far it includes, but is not limited to, "FTS1001 FAQ, begin actual coding on the FTS1001 assembler [assuming I complete teh ASM tonight], work on getting GCOM 0.3 compiling again so I can post it on my site." 21:51:02 (4) How hard is Verilog to grok? 21:51:17 (let me know when you're done so I know when to commence talking.) 21:51:27 * arke is done 21:51:47 (1) Thank you. :) 21:51:50 (2) 21:51:55 Cache kernels are an interesting concept. 21:52:20 You are familiar with the notion of an exokernel, a minimal kernel that provides only protection of resources, but no management policy? 21:52:29 A cache kernel is kinda sorta the same thing. 21:52:35 CF? :) 21:52:40 The basic idea of a cache kernel is that it's a *stateless* kernel. 21:52:46 CF is not an exokernel. 21:52:57 bleh 21:52:57 yeah 21:53:00 I just read that wrong 21:53:02 contunire 21:53:03 It makes no attempts at protecting anything. In fact, it's the anti-kernel -- it encourages as much promiscuity as possible. 21:53:30 Anyway, the thing with a cache kernel is that it is a stateless kernel. That is to say, the kernel has no state that one would consider even remotely persistent. 21:53:43 Before I continue along that thread of discussion, let's digress to what a process is. 21:53:52 (because it's important to have this framework in mind.) 21:54:11 ok 21:54:15 A process is not 100% analogous to what Unix processes are. 21:54:38 In Unix, a "process" can be defined as a process plus at least one running thread. 21:55:10 Therefore, a process consists of an address space, plus whatever process-global state it maintains (e.g., handle tables, files, sockets, etc). 21:55:21 Basically, a process is a protection domain. 21:56:01 Normally, a process also contains at least one memory mapped region in it, which can hold anything you want (for executable processes, it'd obviously contain executable code). 21:56:41 A _thread_, however, represents a virtual processor of sorts, that actually executes software inside of some process. 21:56:59 Threads always execute inside of some process. 21:57:10 Got that so far? :) 21:58:27 :) 21:59:20 A cache kernel is a privileged program that is responsible, primarily and almost exclusively, for multitasking. 21:59:32 It doesn't even securely protect hardware resources. 21:59:39 Except for memory space. 22:00:21 It does this by treating certain things, like page tables, as *caches* that real application software can manipulate, assuming it has the privilege to do so. 22:00:38 Thus, applications get supervisor-level capabilities, while running *entirely* in user-mode. 22:00:54 (within the context of their own run-time environment, of course.) 22:01:12 In order for a program to run, its process must first be loaded into the kernel's cache. 22:01:42 Doing this might cause another kernel object to be flushed out to storage (how this is done, and whether or not this storage is real, is up to the process-being-flushed's kernel implementation) 22:02:05 BUT, in order to cache a kernel, an address space needs to be installed in the cache, etc. 22:02:20 Typically, a cache kernel that caches "kernels" has a cache set up like this: 22:02:24 16 kernels 22:02:30 64 address spaces 22:02:32 64 processes 22:02:34 256 threads 22:03:18 In order for a thread to run, it must exist inside the cache. In order to load a thread in the cache, its process must be in the cache. In order ensure a process is loaded, its address space must be installed, etc. 22:03:33 note also that a cache kernel *DOES NOT* dynamically allocate any kernel memory. 22:03:55 Hence, it never runs out of memory. 22:04:24 (compare this to a CPU's data or code cache, which typically is only 256K or 512K, even today, yet systems are approaching over 1GB of memory capacity.) 22:04:55 continue in email please, I have to go :( 22:04:56 While it is possible to "thrash the cache," in practice, this is rare. You have to write some pretty gnarly code, pathological even, to get this to happen. 22:05:11 arke: I have a better idea. I'll just forward you the link. I'm not really doing it justice. 22:05:22 ok :) 22:05:29 talk to you tomorrow, via email. 22:05:36 okies 22:05:54 --- quit: arke ("leaving") 22:26:28 --- join: Serg (~z@212.34.52.140) joined #forth 22:59:14 --- quit: Sonarman_ ("leaving") 23:01:59 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:02:07 --- quit: Herkamire ("leaving") 23:06:26 --- join: Herkamire (stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 23:51:26 --- join: fridge (~Jim@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 23:59:59 --- log: ended forth/04.05.18