00:00:00 --- log: started osdev/03.09.07 00:29:49 --- quit: I440r (Connection reset by peer) 00:29:58 --- join: I440r (~I440r@sdn-ap-008txhousP0188.dialsprint.net) joined #osdev 00:46:27 man, it's pretty quiet here now 00:47:44 --- quit: trans (Read error: 110 (Connection timed out)) 00:58:14 --- quit: jwesley (Read error: 110 (Connection timed out)) 01:20:04 --- join: e9o (~e9o@c-924272d5.01-94-7673741.cust.bredbandsbolaget.se) joined #osdev 01:23:16 --- join: wonbear (wonbear@211.190.45.68) joined #osdev 01:23:21 hi 01:24:20 --- join: oseg (~hell@35.Red-217-126-201.pooles.rima-tde.net) joined #osdev 01:30:45 --- join: geist-newos (~user@dsl093-182-050.sfo4.dsl.speakeasy.net) joined #osdev 01:31:04 cool, got a pcnet32 driver working on newos, so I can use the network from inside vmware 01:32:27 and use the old irc app 01:32:38 oh, forgot to turn off some debug spew, back in a bit 01:32:38 --- quit: geist-newos (Client Quit) 01:33:06 --- join: Mathis (Mathis@pD9EA9510.dip.t-dialin.net) joined #osdev 01:33:18 hi 01:33:25 --- join: geist-newos (~user@dsl093-182-050.sfo4.dsl.speakeasy.net) joined #osdev 01:33:28 ah, that's better 01:33:38 there was a bunch of debug spew going on that was slowing things down 01:34:24 --- join: geist-newos2 (~user@dsl093-182-050.sfo4.dsl.speakeasy.net) joined #osdev 01:34:27 heh 01:34:35 more sessions! 01:35:27 geist: u ever used valgrind? 01:35:38 nope 01:35:43 --- quit: geist-newos2 (Client Quit) 01:36:28 and u dont know how to use regexec()? 01:36:36 never used it before 01:36:44 man, yer worthless :) 01:37:00 but I know how to write a network stack! 01:37:22 hey, how portable is your irc client? I suppose it uses a lot of ncurses? 01:37:59 no ncurses 01:38:00 --- quit: wonbear (Read error: 104 (Connection reset by peer)) 01:38:06 it uses termcap 01:38:10 ah 01:38:15 ncurses has a builtin termcap 01:38:21 I need a better irc client for newos 01:38:23 so it can link to either 01:38:34 this one is a piece of junk, but I threw it together in like an hour 01:39:18 it would be easy to modify cria 01:39:42 u would need to implement a few control codes 01:39:49 right 01:40:15 wrap a define around the termcap detection stuff so its not called on newos 01:40:29 hardcode the codes into the client 01:41:23 u need a code to move the cursor 01:41:38 I implemented a pretty basic vt100 01:41:50 ok 01:41:55 what about termios? 01:41:59 so, barring bugs int he vt100 implementation, it should be relatively straightforware 01:42:08 absolutely no termios or any of that stuff 01:42:13 which I'm not terribly familiar with anyway 01:42:30 I've never really written a term aware text app 01:43:40 // set stdin to non-blocking i/o 01:43:43 stdin_settings = fcntl(0, F_GETFL); 01:43:49 fcntl(0, F_SETFL, stdin_settings | O_NONBLOCK); 01:44:09 // save settings for stdin 01:44:15 tcgetattr(0, &shell_settings); 01:44:22 client_settings = shell_settings; 01:44:33 // disable echo, disable ctrl-key signals and disable canonical mode 01:44:37 client_settings.c_lflag &= ~(ECHO|ISIG|ICANON); 01:44:45 // set buffer size to 1 01:44:56 client_settings.c_cc[VTIME] = 0; 01:44:57 client_settings.c_cc[VMIN] = 1; 01:45:04 // apply new settings 01:45:07 tcsetattr(0, TCSANOW, &client_settings); 01:45:25 get all that working and cria will work 01:45:37 oh, well that's pretty good then 01:46:16 struct termios shell_settings, client_settings; 01:46:41 I haven't implemented a non-blocking flag, but that's easy to set 01:47:00 but I can do all of the other term stuff you had 01:47:06 int stdin_settings 01:47:17 so cria directly has the code to create virtual windows on the console? 01:47:28 ie, it does all the text windowing stuff itself? 01:47:47 yup 01:47:55 oh good then 01:48:49 u need the "cl", "cm" and "cs" codes 01:49:02 and "co" and "li" if u wanna resize the term 01:49:12 or u can hardcode width and height 01:51:44 search for tgetstr in main.c for other codes, but they arent required 01:54:10 okay 02:03:56 --- join: wonbear (wonbear@211.190.45.68) joined #osdev 02:09:54 --- join: trans (uamjnf@fatwire-201-147.uniserve.ca) joined #osdev 02:21:41 where can I found a linux's system call list? 02:21:49 is there any kind of documents? 02:22:26 we dont know if you have found them 02:36:11 --- quit: ReKleSS ("I came, I saw, I deleted all your files") 02:42:59 --- join: Matzon (Mazon@0x50a1b672.unknown.tele.dk) joined #osdev 02:54:16 --- quit: trans (Read error: 110 (Connection timed out)) 02:56:40 --- quit: EtherNet (Read error: 113 (No route to host)) 03:30:33 --- nick: Divine_ -> Divine 03:32:39 --- quit: wonbear () 03:59:42 --- join: TheJayFans (~fanciacat@vp176207.kln.uac1.hknet.com) joined #osdev 03:59:44 --- quit: e9o () 04:01:37 --- quit: I440r (Read error: 104 (Connection reset by peer)) 04:17:37 --- nick: TheJayFans -> TheJayFans[away] 04:21:34 --- join: dcl (cyber@webirc.caffeine-powered.com) joined #osdev 04:24:18 --- join: trans (hcchjj@fatwire-201-147.uniserve.ca) joined #osdev 04:25:50 heh, still connected 04:25:57 I'm impressed 04:26:01 and? 04:26:13 I figured it would have crashed by now 04:26:28 why? 04:26:41 I forgot about it and left it running while I was playing a game. 04:26:58 Oh I dunno, I just have a bunch of stuff running on it and I figured it would have found a memory leak by now 04:27:30 on a such simple application? 04:27:47 nah, in the net stack 04:27:56 plus I have a few open telnet sessions and running top, etc 04:32:12 oh well, time to sleep 04:32:14 --- quit: geist-newos () 04:36:46 --- quit: dcl ("www.caffeine-powered.com Web IRC (Ping timeout)") 04:46:17 --- nick: TheJayFans[away] -> TheJayFans 05:26:27 --- quit: TheJayFans () 05:30:46 --- join: mur- (murr@baana-62-165-188-134.phnet.fi) joined #osdev 05:31:11 --- nick: mur- -> mur 05:34:19 --- join: lynx (~lodsb@p50809E7C.dip.t-dialin.net) joined #osdev 05:34:59 --- quit: trans (Read error: 60 (Operation timed out)) 06:11:34 --- join: debug (~debug@tab.csbnet.se) joined #osdev 06:29:14 --- join: jwesley (~jwesley@adsl-18-221-74.mem.bellsouth.net) joined #osdev 06:30:33 --- join: e9o (~HjuT@c-924272d5.01-94-7673741.cust.bredbandsbolaget.se) joined #osdev 06:44:50 --- join: cuebol (moo@adsl-66-124-100-248.dsl.mtry01.pacbell.net) joined #osdev 06:46:26 --- join: trans (zjupqb@fatwire-201-147.uniserve.ca) joined #osdev 07:04:33 --- join: z3r0_one (~z3r0_one@lsanca1-ar51-4-42-020-164.lsanca1.dsl-verizon.net) joined #osdev 07:14:41 --- nick: mur -> mur_BBL 07:22:40 --- quit: trans (Read error: 110 (Connection timed out)) 07:22:55 --- quit: e9o () 07:27:06 --- join: e9o (~e9o@c-924272d5.01-94-7673741.cust.bredbandsbolaget.se) joined #osdev 07:33:40 --- quit: e9o () 07:47:59 --- quit: oseg ("Changing server") 07:48:37 --- quit: z3r0_one ("Now committing seppuku daily for the last time...") 07:51:38 --- join: mrMister (~andri@ti122110a080-3909.bb.online.no) joined #osdev 07:58:20 --- join: newbs (~tumbler@ts1-illavl315.shawneelink.net) joined #osdev 08:04:09 --- quit: file[desk] () 08:06:46 --- join: z3r0_one (~z3r0_one@lsanca1-ar51-4-42-020-164.lsanca1.dsl-verizon.net) joined #osdev 08:07:13 --- join: icez (zeci@ACC67224.ipt.aol.com) joined #osdev 08:07:15 --- join: SIS-1650-01 (~sis@as11-2-1.rny.s.bonet.se) joined #osdev 08:18:02 yay! 08:19:28 yay! 08:20:14 See, I spelled mine backwards... 08:20:28 yay? 08:20:33 yes 08:28:31 --- quit: icez () 08:34:33 --- join: EtherNet (~ethernet@host44.200-45-180.telecom.net.ar) joined #osdev 08:40:00 --- mode: ChanServ set +v clog 08:46:38 --- join: trans (cpszdo@fatwire-201-147.uniserve.ca) joined #osdev 08:49:12 does it matter to spell 'yay' forward or backward? 08:54:27 Its a palindrome :D 09:02:17 --- join: wl (philipp@pD9E2D19F.dip.t-dialin.net) joined #osdev 09:14:24 like race car 09:23:31 How do you create a floppy image using dd? 09:25:43 see manual of dd 09:26:22 man correct? 09:26:27 no 09:26:28 man dd 09:26:43 I know that silly. 09:26:53 man 09:27:57 so do not ask such silly questions 09:27:58 . 09:28:49 If I stopped asking silly questions you wouldn't have anyone to talk to :) 09:29:06 which is not of interest 09:30:08 If you're not interested why do you continue to talk? 09:30:58 I have to stop anyone asking silly questions 09:31:06 because this is unproductive 09:31:11 touche 09:32:29 --- quit: trans (Read error: 110 (Connection timed out)) 09:32:56 You are an interesting person Mathis. I'd like to recieve your newsletter 09:33:26 I have no newsletters to send 09:33:32 . 09:53:15 --- quit: z3r0_one ("Now committing seppuku daily for the last time...") 10:06:29 --- quit: EtherNet (Nick collision from services.) 10:06:37 --- join: EtherNet (~ethernet@host44.200-45-180.telecom.net.ar) joined #osdev 10:19:32 --- nick: mur_BBL -> mur 10:38:33 --- quit: mur ("Murr.") 10:40:17 --- join: SLACKo (~foo@62.114.149.141) joined #osdev 11:00:15 Where's pavlovskii? 11:02:19 --- join: trans (alfpdw@fatwire-201-147.uniserve.ca) joined #osdev 11:02:26 --- join: wl_ (philipp@pD9E2D820.dip.t-dialin.net) joined #osdev 11:04:21 Rico: if you cannot see him, you have to assume that he is not here 11:04:37 this is simple physics 11:12:25 I didn't ask if he was here, I asked where he is, and not in the sense of at what physical location, but in the sense of that I haven't seen him in here for a whole and where else he might be. 11:13:32 you asked: 11:13:36 perhaps you humped him to death? :) 11:13:39 Where's pavlovskii? 11:13:50 And besides that I want to know that, the fact that I can't see him in this channel made me already aware that he isn't here, that's why I asked. 11:14:12 Mathis, you can't dig yourself out of this one 11:14:13 ree: Oh my god! I think so? 11:14:31 he did ask where he is, not if he was here 11:14:32 err, you think so? 11:14:32 we are god, coz only we know where pavlovskii is 11:14:46 too bad I don't believe in god 11:14:57 but I do believe in pavlovskii 11:14:58 heh, he said we are god, so ok, we are all gods :) 11:14:59 too bad that noone can answer your question 11:15:18 and what does coz mean? 11:15:23 co enzyme? 11:15:29 which one? 10? 11:15:32 because 11:15:34 "we are god, coz only we can create the idea of him in our holy brains" 11:15:39 coz == because 11:16:10 ok, every time you use short hand or incorrect grammar we'll play like we don't understand you 11:16:19 "we are god, coz only we can create the idea of his existance in our holy brains" <-- this is written correctly 11:16:20 just like you love doing to us 11:16:23 I don't concider myself to be a god if I can create the idea of him in my holy brain. 11:16:58 --- quit: EtherNet (Read error: 54 (Connection reset by peer)) 11:17:16 yes, u shouldn't need those short hands 2 us, we don't like that. 11:17:28 r u aware of that? 11:17:36 hehe u r so tru rico! 11:17:39 Laichzeit! 11:17:40 :P 11:17:57 man you good! yoo good! 11:18:07 boing 11:18:17 You are messing with the wrong Supahfly! Banzai!!! 11:18:34 GUESS HOW MANY SECOND SHE SHAKY HAND? 11:18:44 BANZAI!!!! TIMES UP! 11:18:51 und warum? 11:18:52 she shaky hand for tirty seconds! 11:18:55 es ist Laichzeit! 11:19:01 THE CORRECT ANSWER WAS D!! 11:19:03 --- quit: wl (Read error: 110 (Connection timed out)) 11:19:11 Banzai!!!! 11:19:37 The solution to every problem in this world is lesbian sex. 11:19:55 The solution to every problem in this world is shooting Rico. 11:20:16 I've heared and even FELT that rumor, yes... 11:20:17 der Fisch braucht seine Einsamkeit 11:20:25 is lesbian sex while shooting rico 11:20:33 damn, that shotwound in me ass is the sucks! 11:21:12 play with it baby! play with it! 11:21:25 wollt ihr das Bett in Flammen sehn? 11:21:45 shake that ass! show me my money's worth! shake that bullet wounded ass! 11:22:12 wollt ihr mit Haut und Haaren untergehn? 11:22:26 ihr wollt doch auch den Dolch ins Laken stecken? 11:22:35 ihr wollt doch auch das Blut vom Degen lecken! 11:22:38 Rammstein! 11:22:54 ihr seht die Kreuze auf den Kissen 11:23:02 ihr meint, euch darf die Unschuld küssen 11:23:09 ihr glaubt, zu töten wäre schwer 11:23:16 doch wo kommen all die Toten her?!? 11:23:20 Rammstein! 11:23:29 that's a gay band 11:23:43 Sex ist eine Schlacht! 11:23:46 Liebe ist Krieg! 11:24:10 how comes that all band members have a wife? 11:26:01 publicity 11:26:18 how comes that they have children? 11:31:37 you feel knowing everything, right? 11:31:38 --- join: wcstok (strtok_r@dialup-67.31.178.66.Dial1.Denver1.Level3.net) joined #osdev 11:34:27 --- join: I440r-wor (~x@sdn-ap-010txhousP0067.dialsprint.net) joined #osdev 11:36:07 --- nick: I440r-wor -> I440r 11:41:08 ree DOES know everything! 11:42:01 --- quit: cuebol () 11:42:23 --- join: cuebol (~chatzilla@adsl-66-124-100-248.dsl.mtry01.pacbell.net) joined #osdev 11:42:55 ree does know NOTHING! 11:47:23 --- quit: cuebol ("ChatZilla 0.8.31 [Mozilla rv:1.4/20030624]") 11:47:56 I sense some jealousy in here 11:48:37 me not 11:48:40 . 11:52:37 --- join: kdehl (~madman@h127n1fls33o877.telia.com) joined #osdev 11:53:05 hey kdehl 11:53:18 kdehl 11:53:43 kdehl. 11:54:04 Oh my, I'm popular today! :) 11:54:11 Hi you guys. 11:54:14 What's happening? 11:54:25 (Yes, I understand you are bored...) 11:55:05 ree is a big peeper 11:55:20 what exactly does that mean? 11:56:07 ree is a gay band 11:56:10 I'm a tree frog that peeps shrilly? 11:57:45 ree is gay 11:58:16 --- quit: SIS-1650-01 (Remote closed the connection) 11:58:32 --- join: SIS-1650-01 (~sis@as11-2-1.rny.s.bonet.se) joined #osdev 12:18:13 --- quit: masi (Connection timed out) 12:18:26 --- join: Kincaid (kincaid@pD9E7D2FE.dip.t-dialin.net) joined #osdev 12:22:35 --- join: masi (~masi@APuteaux-115-1-19-34.w81-53.abo.wanadoo.fr) joined #osdev 12:27:36 --- join: gianluca (glguida@ppp-97-138.28-151.libero.it) joined #osdev 12:28:58 --- join: wcstok_r (strtok_r@dialup-67.31.178.40.Dial1.Denver1.Level3.net) joined #osdev 12:29:05 286 Programmer's Reference Manual! 12:29:08 Yes! :) 12:29:13 :D 12:29:16 * kdehl is so happy! :) 12:29:16 Grattis. 12:29:35 * kdehl is gonna be coding 16-bit OS 12:30:11 Yay. Why? 12:31:15 --- join: e9o (~e9o@c-a94272d5.01-94-7673741.cust.bredbandsbolaget.se) joined #osdev 12:32:00 Why? What do you man why? 12:32:54 I mean... what kind of a system, and why do you write it? 12:33:36 because it is a waste of time 12:33:45 and as we all know, everyone on irc loves to waste time 12:34:29 :D 12:34:36 And that comes from YOU! 12:34:59 Hehe. :) 12:35:02 --- quit: trans (Read error: 110 (Connection timed out)) 12:35:09 Yup. We just love to waste time. 12:35:33 --- quit: wcstok (Read error: 60 (Operation timed out)) 12:35:52 --- nick: wcstok_r -> wcstok 12:36:08 --- quit: Kincaid` (Read error: 110 (Connection timed out)) 12:38:17 I'm here just to find some people to work with 12:38:22 :) 12:38:27 Riight! 12:39:21 buy 286er computers, because they are faster than any modern P4 with 3GHz and HyperThreading! 12:39:39 16MHz > 3.06GHz 12:39:56 15MB RAM > 1GH RAM 12:40:29 well they must be better, otherwise they wouldn't be so rare, right? 12:40:37 wrong 12:40:45 people snatching 'em up as fast as they can get 'em =) 12:40:56 in kdehl's mind they are better just because they are rare 12:41:20 as far as programming an os for them goes that is 12:41:40 --- quit: gfafgawrg ("Fhtagn-Nagh Yog Sothoth") 12:41:44 I think they should produce modern computers with the prestanda of a 286, it'd run for ages on a single AA battery and be very silent! 12:42:14 if kdehl thinks so about 286er, why he isnt writing an OS for Zuse's Z1? 12:42:33 Mathis: Because he doesn't own one of those. 12:42:35 it is much more rare, only one model exists on this universe 12:42:48 I do own a few AVRs, and I have great plans for those... 12:43:20 I think Robert has a point in that silent thingy with them... interesting. For us that don't really need more power than that. :) 12:45:22 that is what analog computing can bring 12:47:41 kdehl: Seen my AVR projects? 12:47:49 kdehl: http://robert.zizi.org/mtv.html 12:49:28 --- join: cuebol (moo@adsl-66-124-100-248.dsl.mtry01.pacbell.net) joined #osdev 12:50:00 wb cuebol 12:50:28 --- quit: I440r (No route to host) 12:50:53 thanks ree 12:52:31 Robert: Now I have. 12:52:40 Or.. at least, I will... :) 12:53:11 I can't find a good [free] simulator for x86-64 yet 12:53:27 the one amd provided wasn't good enough? 12:53:40 just for linux, SimNOW? 12:53:48 yeah, that one 12:54:38 bochs has some support for it too, no idea how good (lousy) it is though 12:54:57 the x86-64 page doesn't even link directly to it 12:55:14 even though they host the files.. you have to use google just to get to the proper directory 12:55:22 they instead link to simics now 12:55:36 yeah, I was going to check it out 12:55:50 I have the latest version, just haven't studied x86-64 yet 12:56:05 --- join: steck (steck@lille-4-a7-62-147-106-136.dial.proxad.net) joined #osdev 12:56:39 --- part: steck left #osdev 12:58:41 kind of silly to develop a general purpose x86 os if 64bit is going to be widestream in a couple years 12:58:51 a 32bit x86 os rather 12:59:31 32bit? 12:59:41 I thought we were all using 16bits 12:59:51 * cuebol throws his soda down 12:59:53 ARGH! 13:00:00 just kdehl =P 13:00:01 doh :) 13:00:05 haha 13:00:08 poor kdehl 13:01:01 Huh? 13:01:03 Oh. 13:01:06 Heh. 13:01:08 :) 13:01:27 * wcstok stole kdehls other 16 bits, hah! 13:04:26 Rammstein - ein Mensch brennt 13:04:36 Rammstein - Fleischgeruch in der Luft 13:04:45 Rammstein - kein Vogel singt mehr 13:04:53 Rammstein - die Sonne scheint... 13:06:36 Heh.. 13:12:45 --- join: I440r-wor (~x@sdn-ap-005txhousP0199.dialsprint.net) joined #osdev 13:13:43 --- nick: I440r-wor -> I440r 13:14:01 --- nick: I440r -> I440r_ 13:14:27 --- nick: I440r_ -> I440r 13:32:07 --- quit: gianluca (Remote closed the connection) 13:50:22 --- quit: wcstok (Read error: 54 (Connection reset by peer)) 13:58:37 --- join: trans (hnznjj@fatwire-201-147.uniserve.ca) joined #osdev 13:59:30 --- quit: I440r (Connection timed out) 14:00:17 Does anyone have any gay porn to recommend? 14:00:47 www.mathis.com/familyphotos/ 14:01:07 hehe :) 14:01:41 it's becomming the new goatse.cx 14:01:58 becoming rather 14:06:47 --- quit: e9o (Connection timed out) 14:15:45 --- quit: cuebol () 14:22:13 ree and mathis are getting along really nicely together. 14:22:21 Hoi, Rico! 14:22:30 Hoi, Robert! 14:22:31 Mathis isn't getting nicley along with ANYONE. :) 14:22:49 I was kicked out of a bar yesterday :\ 14:23:12 :( 14:23:15 What did you do? 14:23:36 A friend of mine was dancing on the bar, he got pushed off and dragged outside, and because I was standing in front of him, I was guilty too! 14:23:43 --- quit: SIS-1650-01 (Remote closed the connection) 14:23:54 Awww... Poor Rico. 14:23:59 He was dancing on the same bar where two other girls were dancing. 14:24:37 so I kicked the hell out of the security guy for touching me :P 14:25:18 Very un-nice of you. 14:25:31 not really, I didn't like him anyways. 14:25:53 well, that kicking him isn't entirely true 14:25:54 I prefer to not kick the people I don't like - except maybe on IRC. 14:25:58 ...I just went outside 14:26:03 :D 14:26:12 Liar. I know you shot him. 14:26:14 --- quit: petrusss (Read error: 104 (Connection reset by peer)) 14:26:42 but my friend, who also got kicked out, did get aggresive against him :| 14:28:25 --- join: petrusss (~petrusss@h117n2fls31o862.telia.com) joined #osdev 14:43:14 --- join: Slowcoder (~jaja@213.187.193.219) joined #osdev 14:45:30 --- part: debug left #osdev 14:45:45 Anyone of you guys gotten a driver for VMwares SVGA working ? 14:46:08 --- join: jsr (www@du-15-49.ppp.telenordia.se) joined #osdev 14:50:41 --- quit: wl_ ("Liebe ist eine Intimrasur. (American Pie)") 14:55:27 --- quit: Matzon () 15:01:09 --- quit: trans (Read error: 110 (Connection timed out)) 15:03:34 Slowcoder: no, but that probably has to do with the fact that I haven't worked on one. 15:03:38 :P 15:08:55 Rico: :) 15:09:08 Rico: Got any PCI experience then ? 15:10:15 night 15:10:20 --- quit: CLxyz () 15:10:25 --- quit: kdehl ("Over and out!") 15:10:57 I have PCI experience 15:11:25 Mathis: Sweet.. Mind giving me a few pointers ? 15:11:33 pointers? 15:11:40 please be more specific 15:11:50 Tips, tricks.. :) I'll be more specifict, I promise. 15:11:59 heh, slowcoder, word of caution, MATHIS IS AN ASSHOLE :) 15:12:07 see Linux source-code 15:12:16 it is the best ressource for finding PCI support 15:12:32 Before expecting a card to be used (IO-only) I just need to set the IO-space bit in the Command Register, right ? Nothing else ? 15:12:52 Mathis: I'd much rather use the FreeBSD sources for reference.. Much cleaner. 15:12:52 unknown 15:13:01 whatever... 15:14:14 hey 15:14:19 ho 15:14:19 geist 15:14:22 whats up 15:14:40 Fiddling with PCI.. Got any skills there ? 15:14:45 hello geist 15:14:50 you bet 15:14:56 hi Rico 15:15:04 Slowcoder: no, i don't have any pci experience. 15:16:02 geist: To "initialize" a PCI-card for IO-usage only, all I need to do is to set the IO-space bit in the command-register, right ? 15:16:12 --- join: DRF (~Daniel@host217-42-91-10.range217-42.btcentralplus.com) joined #osdev 15:16:13 dunno, never did that 15:16:29 i've mostly messed with pci in a read-only way 15:16:37 usually dont tell it to do things 15:16:39 Huh ? How can you've used PCI-cards .... Ah.. 15:16:55 So, no gfx-drivers, nic-driver, etc ? 15:17:03 sure, but I just read the data 15:17:12 and deal with how it's currently set up 15:17:35 Okay.. You let VESA set the modes, or something ? 15:17:39 no no 15:17:44 I just read the pci configuration 15:17:54 and use that, I dont instruct pci to do anything 15:18:06 I think someone just added the bus master bit but I haven't looked at it 15:18:26 a lot of my pci bus manager wasn't written by me. I had a basic one that would scan the busses, but it was sooped up a lot by someone else 15:18:39 but the basic bus scanning stuff is pretty simple 15:19:47 Yea, I've done all that already. 15:20:33 okay, so you've done more pci than I have 15:20:33 But now, I'd like to set a video-mode on the VMware SVGA "adapter". 15:20:55 --- quit: DRF ("Leaving") 15:20:55 okay, so whats the problem? why do you need to set the io thing on the pci? 15:21:08 someone else wrote a svga adaptor driver for newos. it's quite simple 15:21:16 though it appears to not work right on vmware 4 15:21:36 Well, actually, it's set by default, but you need to set it to be able to do IO to the cards IO-space. 15:22:03 you do? that hasn't been my experience 15:22:13 In this case, IO-adress 0x10C1 is defined in base-address-register #0 15:22:29 most cards I've dealt with have used io space 15:22:30 So I read/write to that adress, but _nothing_ happends. 15:22:41 hmm, lemme look at my vmware driver, see whats up 15:22:43 They might be enabled by default. 15:23:38 okay, so take a look at my vmware console driver. lemme find the url... 15:24:37 http://www.newos.org/cgi-bin/fileViewer.cgi?FSPC=//depot/newos/kernel/addons/modules/arch/i386/console/vmware/console.c&REV=4 15:24:39 and 15:24:51 http://www.newos.org/cgi-bin/fileViewer.cgi?FSPC=//depot/newos/kernel/addons/modules/arch/i386/console/vmware/svga%5freg.h&REV=1 15:25:29 so it looks like it finds two versions of the card 15:25:35 see find_and_map() 15:25:46 if it's an older one, it uses a predefined io port base 15:25:54 in this case 0x4560 15:26:01 if it's a newer one, it just reads it from the pci bus manager 15:26:19 basically, if the pci bus returns a base address < 0x10000, it's assumed to be an io port 15:26:25 that has worked thus far without a problem 15:27:04 Hmm.. 15:27:11 --- join: Mole2 (Mole@1Cust159.tnt4.stk3.swe.da.uu.net) joined #osdev 15:27:23 He/you doesn't do the initialisation correctly.. you don't even check for the error that I get.. :) 15:27:39 Maybe I should just disable the check and see what happends ? :) 15:28:01 out_reg(SVGA_REG_ID, SVGA_ID_2); <- That line 15:28:04 yeah, this driver isn't working right on vmware 4, but i haven't debugged it 15:28:04 gtg, sleep required 15:28:07 --- quit: Mathis ("User pushed the X - because it's Xtra, baby") 15:28:12 seems to work fine on vmware 3 15:28:45 Odd.. 15:28:57 Well, we basically do the same thing up to then.. 15:29:10 I'll just skip the check.. Feels "ugly", but.. 15:29:39 I write odd and strange code in computer sciences, it forces my teacher to think 15:30:47 yeah, this is a little strange driver too. it's not really a generic framebuffer driver, it sets it up and uses the blitting function to draw text on the screen 15:30:47 And when you write odd and strange code in your professional career, someone _will_ tear you a new one.. 15:30:58 works quite well, but in the future I will make it into a generic framebuffer 15:31:15 Mm.. 15:31:50 newos has a kernel console module which does all the vt100 stuff, but then loads a lower level module to do the actual drawing on the screen 15:32:16 most of the time it uses a vga text module, which just does the 80x25 vga text stuff, but it also can use vmware, and has another generic framebuffer module 15:32:44 works well, because every machine other than x86 pc that I've ported to has just a generic framebuffer 15:33:22 Pretty clever 15:33:29 --- quit: jsr (Read error: 60 (Operation timed out)) 15:34:13 I'll take the easy way out, and not implement any more console-stuff than I have already.. Framebuffer is next, and it's not for text. :) 15:37:19 I'll take the easy way out, and just sit back and read a few hundred more pages about PCI 15:43:07 --- join: CLxyz (CLxyz@00-01-03-d2-a4-07.bconnected.net) joined #osdev 15:44:30 --- nick: cyc0 -> cyco 15:50:11 --- join: Zenton (~vicente@8.Red-80-34-35.pooles.rima-tde.net) joined #osdev 15:55:19 --- part: Mole2 left #osdev 16:00:54 --- quit: mrMister ("gone") 16:03:03 --- quit: SLACKo (leguin.freenode.net irc.freenode.net) 16:03:03 --- quit: newbs (leguin.freenode.net irc.freenode.net) 16:03:03 --- quit: air (leguin.freenode.net irc.freenode.net) 16:03:38 --- join: SLACKo (~foo@62.114.149.141) joined #osdev 16:03:38 --- join: newbs (~tumbler@ts1-illavl315.shawneelink.net) joined #osdev 16:03:38 --- join: air (~brand@12-210-175-51.client.attbi.com) joined #osdev 16:04:04 oy AIR 16:04:36 oy lynx 16:04:54 sup? 16:05:22 too much 16:05:32 getting old and debile? 16:05:33 just took on another project 16:05:40 which one? 16:05:43 nano 16:08:33 oh 16:08:43 why? you thin it is missing features? 16:09:08 its syntax highlighting is 16:11:19 a) its memory footprint increases each time it updates the screen b) it gets slower as memory increases c) by memory increase i mean 100meg just by adding a few lines of text 16:12:19 d) its syntax commands cant handle all syntaxes 16:12:24 argh 16:12:39 never used syntax highlighting there 16:13:11 e) it evaluates each RE for each character in the text (SLOW) 16:15:49 nano comes with almost no definitions 16:16:10 what is nano? 16:16:15 this thing must suck 16:16:17 what it does have is incomplete, only a few items in C and some html 16:16:40 hehe geist, it's the least user friendly editor in the history of man kind 16:16:43 oh is it that editor? 16:16:48 that is on gentoo, icky 16:16:50 so i wrote complete defs for nasm, gas, c, php, html, bash and its nanorc syntax 16:16:56 --- quit: krux ("Client Exiting") 16:17:16 and came to love syntax highlighting and then discovered its memory problem 16:17:27 geist: uhh 16:17:39 geist: nano is included in almost every linux distro 16:17:45 * lynx nods 16:17:49 geist: and *bsd 16:17:49 in *bsd, too 16:18:10 nano is the totally free clone of pico 16:18:30 and totally superior to pico 16:18:40 oh, well the first time I saw it was running through the gentoo install 16:18:49 * geist just goes straight to vim 16:19:03 but vimis pretty heavy, so sometimes you're stuck with vi/pico/nano, etc 16:19:19 nano is 99k 16:19:24 right 16:19:30 nano is nice 16:19:38 i'm sure that's it's big feature, considering the name is 'nano' etc 16:20:04 isn't regular vi about 78kb? 16:20:12 it's pretty little too 16:20:13 it supports all the features i need in a text editor 16:20:18 well jesus, notepad style programs shouldn't be large in the first place 16:20:32 well, there's a reasonable amount of functionality there 16:20:33 but yeah 16:20:43 yummy 16:20:50 I call all of those editors notepad.exe 16:20:52 regular expression search\replace, viewing and modifying text files and highlighting :) 16:20:52 * lynx opened a fresh bottle of guiness 16:20:59 they are in the same clas 16:21:04 class 16:21:12 ok 16:21:17 lemme think.. 16:21:21 what can i code now?!?!?!? 16:21:30 HAH! 16:21:33 ree: notepad is nothing next to nano 16:21:35 * lynx away 16:21:41 lynx: nano 16:21:42 not saying much air 16:21:48 air: well 16:21:52 ok, nano is wordpad.exe 16:21:57 air : i told you i am a lousy c programmer :P 16:22:00 ree: nope 16:22:03 the next generation of notepad.exe 16:22:20 does wordpad do highlighting or REs? 16:22:38 does m$ even know what a RE is? 16:22:56 it's the same stupid arrow keys and home/end crap to navigate 16:23:07 you have to move your entire hand across the keyboard 16:23:15 eh? 16:24:03 all editors navigate with arrow keys, nano/pico also let navigate with ctrl-vy 16:24:57 lynx: that dont matter :) 16:25:04 why? 16:25:09 because their code sucks, too? 16:25:17 heh, no 16:26:55 --- quit: Zenton ("Terminando cliente") 16:28:28 --- join: trans (qlfwee@fatwire-201-147.uniserve.ca) joined #osdev 16:34:47 hjkl on vi 17:06:33 hrm 17:07:15 i leaving irc forever 17:07:41 removing cria from my system 17:07:56 --- quit: air ("cria 0.2.8cvs18 -- http://cria.sf.net") 17:08:46 finally, now we can party 17:09:19 those 4 years of air dictatorship really stiffled us :) 17:09:37 anyone have some rope to tear down the air statue/ :) 17:10:06 what about the air wall? 17:10:19 nobody has seen that before 17:10:37 I think it is imaginary, that damn mime brought it in here 17:11:00 --- join: cuebol (moo@adsl-66-124-100-248.dsl.mtry01.pacbell.net) joined #osdev 17:11:02 =) 17:11:13 wb cuebol 17:11:40 back again! 17:18:32 --- join: gianluca (glguida@ppp-201-139.28-151.libero.it) joined #osdev 17:18:39 everyone is coming back 17:18:44 now that air is gone! 17:18:46 --- quit: gianluca (Client Quit) 17:18:54 pfft I like air 17:19:03 I'd inhale him if he was here 17:19:47 hehe 17:19:55 heh.. 17:20:08 air is stale, he just needs to find a good wind and become fresh again 17:20:36 a good/second 17:21:20 clever 17:21:50 terrifyingly so, I know 17:22:44 --- join: I440r (~x@sdn-ap-009txhousP0395.dialsprint.net) joined #osdev 17:23:32 --- quit: trans (Read error: 110 (Connection timed out)) 17:23:57 --- join: debug (~debug@tab.csbnet.se) joined #osdev 17:24:20 hi 17:24:25 hey debug 17:24:30 yo ree 17:26:52 how are you debug? 17:27:11 do you have an os project? 17:27:12 I forgot 17:27:22 lol 17:27:31 I know I440r doesn't :) 17:27:42 I was expecting another quip 17:27:51 Shame on you ree.. 17:27:57 quip? 17:28:05 yes i do 17:28:08 its called isforth 17:28:14 linux is just my BIOS :) 17:28:23 heh 17:28:31 forth is a language 17:28:32 http://www.hyperdictionary.com/dictionary/quip 17:28:41 you have an interpreter/compiler :P 17:29:08 ahh cuebol, sorry 17:29:08 interpreter/compiler/operating system 17:29:17 :) 17:29:43 fine, you can call it an operating system 17:30:10 as long as I can start a new channel all about operating systems that run directly on hardware :) 17:30:11 :) 17:30:24 hmm.. what would its name be 17:30:27 #trueosdev? 17:30:28 :) 17:30:44 or #noLayersOSDEV 17:31:13 haha 17:32:19 ree: I'm fine 17:32:41 ree: and I have a kernel project, although I don't seem to have any time for it right now :( 17:34:27 does that kernel fall under noLayersOSDEV ? 17:34:33 :) 17:34:43 that depends 17:34:54 or is it on top of linux or windows or on top of windows which is running on top of linux which is running on emacs? 17:34:59 hahahaha 17:35:00 no 17:35:20 it runs on bare hardware, in some cases 17:35:21 * ree pats I440r hehe 17:35:24 cool 17:35:35 and right now also in my emulator, at least a bit 17:35:42 anything novel about it? 17:36:13 I've been planning a redesign, you might call it a 'novel' redesign, since december last year, but I've never quite gotten to it 17:36:22 so, no. nothing novel about it right now 17:36:43 so you just planned the redesign, not the actual design you'll use at the time of the redesign? :) 17:37:04 I have ideas, but no design yet. 17:37:14 (where design = more detailed plan, not just buzzwords) 17:37:49 so instead of working on those kind of design issues, I've mostly been working on infrastructural stuff instead 17:37:55 that is interesting and time consuming too 17:37:59 yeah, my system is designed entirely around buzzwords 17:38:10 how nice :) 17:38:14 heh 17:39:47 I began coding on a mips64 emulator too... http://www.mdstud.chalmers.se/~md1gavan/mips64emul/ 17:40:21 which might simplify multiprocessor experiments later on. if I ever get there :-/ 17:42:43 ree: have you been coding lately then? 17:44:02 I did a code freeze for a few days while I documented the ideas and internals 17:44:09 now I am back coding almost :) 17:45:24 I've got everything in order and all the ideas are matching up properly 17:47:25 * debug must to do some school stuff 17:47:30 :) 17:47:33 ttyl 17:47:36 I spent most of the day fixing a bug in Dillo :-/ 17:47:41 yeah, I have to get into SMP too 17:47:51 smp works in bochs, but not on real hardware... 17:47:58 hah 17:47:59 imagine that 17:48:05 * ree shoves his boot up boch's ass 17:48:12 I have borrowed a physical SMP box with 2 cpus, but the bug is too hard to crack 17:48:23 I heard you talking about it before 17:48:26 yeah 17:48:34 about how to lock 17:48:39 * debug doesn't like hardware that doesn't work right away 17:48:53 it's not locking problems 17:48:59 its more like spinup problems 17:49:46 when I spin up the second cpu, it tripple-faults (or something else, which causes a reboot) when I try to enable paging. I don't know why, as all the data structures are correctly set up, and it works in bochs. and it works on the bootstrap cpu, of course 17:50:11 that's generally triplefaulting 17:50:18 http://www.mdstud.chalmers.se/~md1gavan/ycx2/ycx2-in-bochs-smp.gif 17:50:19 have you tried setting up a doublefault TSS? 17:50:40 no. all that is done after going into pmode and enabling paging 17:50:59 so the trampoline triplefaults before hitting protected mode then? 17:51:16 no. 17:51:30 have you studied the utah fluxos kit or older linux smp kernels? 17:51:41 okay, which cpu does the triplefault originate on? 17:51:48 ree: no... I generally find it hard to read other peoples code 17:51:53 AP or BSP? 17:51:56 same here debug hehe 17:52:09 especially linux code 17:52:11 wli: I have no idea :) but I assume it is the AP, as the BSP is simply running a loop then, waiting for the AP 17:52:23 debug: okay, how far does the AP get? 17:52:43 that url you gave doesn't show up 17:52:53 presumably you have to bring that thing up into protected mode, load a gdt, idt, tss, pagetables, etc. 17:52:57 wli: if I put a for(;;); just before enabling the paging bit in cr0, it hangs (instead of reboots). if I put the for(;;); after the paging enable line, it reboots 17:53:02 ohh, md1 17:53:03 nm 17:53:19 debug: okay, what's in cr3 when you enable the paging bit? 17:53:34 also 17:53:39 wli: the physical address of the pagedir. which I've dumped, and the contents seems to be ok 17:53:52 okay, what else can go wrong? 17:53:54 ah 17:53:54 perhaps it is a cache issue 17:54:10 have you tried reducing the number of cpus from 8 to 2? 17:54:11 hehe 17:54:14 debug: where is the trampoline mapped? 17:54:16 by inserting a wbinvd, I once got it to stay up maybe a second longer before rebooting 17:54:22 ohh, it works in bochs, nm :) 17:54:27 my god my memory sucks heh 17:54:35 pretty colors btw 17:54:46 also 17:54:46 wli: an asm part at 0x1000, and then C code inside the kernel mapped low, and then (after I enable paging) it jumps to the high mapping 17:54:52 where is the stack you're using mapped? 17:54:55 debug: aha 17:55:15 debug: I think you need a 1:1 mapping of the trampoline + initial AP stack before turning on paging 17:55:23 or do you have it? 17:55:26 of course 17:55:32 anyone tried x86-64 emu on bochs? 17:55:34 so you already have that? 17:55:38 and the stack is ok 17:55:43 wli: yes 17:55:50 did you try kicking the machine with your foot debug? 17:55:55 ree: it isn't mine :( 17:55:59 damn 17:56:03 that may be the problem 17:56:04 debug: what kind of IDT do you have set up at the time of this? 17:56:10 none 17:56:18 yeah, otherwise it wouldn't be tripple faulting 17:56:22 I boot the BSP more or less the same way 17:56:27 perhaps you should enable a dummy one so you know why it faulted :) 17:56:36 which exception it is causing 17:56:36 debug: could you plop one down and try to catch exceptions and dump out why it barfed? 17:56:36 pmode -> enable paging -> set up idt/whatever... 17:56:49 wli: I guess that's the thing I have to do. 17:56:56 I just need to find some spare time to do it :) 17:56:57 real simple and easy hehe 17:57:05 I'm getting some badness here, too 17:57:20 I lost all my old code and started from scratch again after several months of neglect... 17:57:27 ohh geez 17:57:30 you suck wli! 17:57:31 codeloss = not nice 17:57:33 the good old GDT/IDT/TSS crap is killing me again 17:57:33 :( 17:57:41 It's probably not totally gone 17:57:50 I just have no idea what I did with it after months and months 17:57:55 hehe 17:58:03 we can see how much priority it has to you :) 17:58:32 I didn't get very far, I'm not sure I got much further than GDT, IDT, TSS, and paging set up and then permanently looping 17:58:48 though that's further than I am now so if I manage to dig it up I'm running with it 17:58:51 ohh, so you implemented Windows ME? 17:59:15 bochs probably makes things easier by ignoring the hard parts of emulation 17:59:40 ahaha 18:01:00 you use fvwm debug? 18:01:07 yes 18:01:12 hehe 18:01:43 what's wrong with that? 18:02:15 :) 18:02:17 just there are better wm out there 18:02:24 all of that is opinion though 18:02:27 so I won't go there 18:02:33 good 18:02:34 PWM! 18:02:35 * ree runs 18:10:12 oops 18:10:15 its 3 am 18:10:56 hmm 18:10:59 I may have found it 18:11:03 good night then :) 18:11:16 ree: ??? 18:11:22 1 Dec 2002 18:13:09 its 3 am, thought you were sleeping 18:13:45 ree: no 18:13:57 "oops" ==> I think I have to start doing school stuff 18:14:14 soon... 18:15:53 ohh :) 18:15:54 hehe 18:22:02 aha 18:22:04 found it 18:25:41 AHH 18:25:44 debugging sux 18:25:51 No kidding.. 18:26:26 especially if it is not my code. 18:27:06 * ree covers debug's ears 18:29:16 ok 18:29:49 I think having to debug your own code is worse 18:30:00 rather humiliating 18:30:10 does anyone know if there is fancy timer interrupt thing in pentium class pcs which can screw some timing code up? 18:30:25 looks like this has GDT, IDT, TSS, and pagetables 18:30:33 ree: well, my ego is actually smaller than a needle's head. 18:30:39 looks pretty good 18:30:49 everything else can be cleaned up later 18:31:17 I wonder if I've got a timer device going 18:31:45 lynx, hehe 18:32:28 looks like I've got a timer, too 18:32:39 wow 18:32:56 man, that is sad to forget you had implemented all of that already hehe 18:33:03 looks like I just need to start building up crap to load luserspace with 18:33:15 ree: as if it's even an interesting accomplishment 18:33:38 no, just it is sad that you forgot you had implemented all of that already 18:33:38 maybe. 18:33:54 :) 18:33:56 --- join: krux (~krux@66.14.118.85) joined #osdev 18:34:02 it wouldn't take that long to reimplement 18:34:04 yo krux :) 18:34:47 Well, I know how to get a big blob of RAM with an fs in it loaded alongside the kernel 18:34:51 --- join: trans (isgvhk@fatwire-201-147.uniserve.ca) joined #osdev 18:35:12 might as well plop one of those puppies down and start trying to load crap off it 18:35:58 boring projects 18:36:08 how so? 18:36:23 regular old system designs is all 18:36:27 lynx: there's a "fancy" interrupt thingy, the local apic timer. I don't know if it present in non-smp systems though 18:36:47 it is in newer P2+ systems debug 18:36:54 ree: what's regular about it? 18:36:55 yeah 18:37:01 this is a Pentium-S 18:37:10 ahh, a Pentium-sucks 18:37:12 * debug doesn't keep up with the differences in modern hardware 18:37:24 wli, paging, filesystem... 18:37:34 kernel based 18:37:43 ree: yeah, it's not an exokernel 18:37:45 multiple address space 18:38:35 ree: there's plenty of room to wiggle within the separate kernel/app design 18:38:38 going to have apps, apis, programming languages, console, I bet a WIMP interface 18:39:02 interrupt based communication 18:39:07 --- join: wcstok (strtok_r@dialup-67.28.61.152.Dial1.Omaha1.Level3.net) joined #osdev 18:39:13 what else? 18:39:15 hmm 18:39:41 ree: mostly a token gesture so the thing has something to prod at it, it's largely an exercise in unrelated aspects of the design 18:39:59 unrelated to kernel/app distinction and/or interface 18:40:19 token gesture for what? 18:40:30 so the thing has something to run 18:41:02 I didn't understand that entire sentence 18:41:55 outward sign or expression gesturing so that the thing has something to incite to action, it's an exercise unrelated to aspects of the design? 18:41:59 what is the exercise? 18:42:04 what is the tihng? 18:42:06 thing 18:42:47 Implementing the customary ways for userspace to interact with the kernel is a token gesture in order to be able to run something; the concern is primarily with lower-level affairs that are transparent to userspace and unrelated to the method of communication and/or distinction between kernel and app. 18:43:54 that sounds like buzzwords to me, but then again I'm not a native English speaker 18:44:04 it's not really 18:44:18 or maybe it's 03:45 18:44:25 It's saying what it says. I'm not sure how to simplify it any further. 18:44:50 the very fact you have a userspace, kernel, applications is what I was referring to 18:45:09 he was commenting on your previous sentence :) 18:45:23 And like I said. 18:45:49 "token gesture" is not very often used to describe a minute detail or operation in computer-speak 18:46:04 The exokernel/non-exokernel issue is not something that interests me, so I'm hacking on something else and making an arbitrary decision to go with a non-exokernel design. 18:46:08 not trying to be picky here though, I just wanted to know what you meant 18:46:46 I understood token gesture, just not the way you worded the previous sentence 18:47:44 I consider that design a regular,common, design, any specific details you change inside of it do not change the way you designed it 18:47:56 --- join: I440r_ (~x@sdn-ap-009txhousP0395.dialsprint.net) joined #osdev 18:48:01 --- quit: I440r (Read error: 104 (Connection reset by peer)) 18:48:27 what are you hacking on that you find important then? 18:48:35 what is the meat of the problem you want to solve? 18:50:18 The things I'm interested in exploring are continuation-passing style and the interrupt model of programming, pointfree and/or extent-based virtual memory management. The problem I'm trying to solve is not having a kernel under my own control/maintainership. 18:50:44 --- join: I440r (~x@sdn-ap-009txhousP0395.dialsprint.net) joined #osdev 18:50:46 --- quit: I440r_ (Read error: 54 (Connection reset by peer)) 18:50:57 hey, it's wli! 18:51:18 yeah 18:51:35 geist: There's a problem with the way you tell the difference between IO/mem-space in a Base-address register.. 18:51:41 looking at the abortive train wreck I've got thus far and wondering wtf I was thinking. 18:52:03 abortive train wreck? 18:52:11 ree: the kernel from 1 dec 2002 18:52:16 heh 18:52:17 geist: The correct way: Check if bit #1 is set.. If so, it's an IO-register.. 18:52:21 if it can even be called a kernel 18:52:23 ah, okay. good 18:52:42 --- join: geist2 (~user@dsl093-182-050.sfo4.dsl.speakeasy.net) joined #osdev 18:52:46 good, didn't break things 18:52:53 been moving around a lot of the system libraries today 18:52:57 haven't broken anything yet 18:53:16 so continuation-passing style of interrupts is concerned with what happens after an interupt continues or after the system continues after an interrupt? 18:54:06 and not having a kernel under your own control/maintainership, you're referencing the fact that Linus controls Linux and you control diddly squat? :) 18:54:11 ree: it's not a style of interrupts per-se; essentially, instead of scheduling, one queues a continuation to be run when the event waited for completes 18:54:16 ree: exactly 18:54:28 so you just want your own damn kernel hehe 18:54:55 so like a block of code that piggy backs on to an interrupt? 18:55:11 that is associated with a certain process? 18:55:23 ree: struct continuation { void (*f)(void *); void *arg; struct list list; }; 18:55:43 ok, a linked list/queue of things to do when an interrupt completes? 18:55:48 ree: yep 18:55:51 k 18:56:00 I assume linux has nothing of that sort? 18:56:26 ree: it does but they're not the fundamental abstraction for deferred work; tasks are. 18:56:46 i.e. a task calls schedule() and is woken when it's time for it to do its work 18:56:48 gnite 18:56:51 is that to reduce the amount of context switches? 18:57:04 ree: well, more like save space 18:57:16 stacks are big 18:58:05 ree: the semantics also make everything inherently async 18:59:01 ree: blocking a userspace task is an entirely arbitrary decision, as opposed to something with extra meaning attached to what happens when its kernel stack's state changes 18:59:29 yeah 18:59:50 what kind of work could be done as part of an interrupt clean up? 18:59:52 ree: so asynchronous io is basically already done for you; the kernel is entirely oblivious to threading; etc. 19:00:01 or as a queue associated with an interrupt 19:00:19 other tasks that need to run at that very same time? 19:00:43 ahh, ok 19:00:44 --- quit: file[laptop] () 19:02:13 ree: an io request completes and some kind of completion is signalled to a userspace task. a system call completes and a userspace task is unblocked. magical kernel internals, too, like some old dirty data is written back to disk based on some timeout and its in-core state updated to "clean" instead of "dirty". 19:03:03 --- join: file[laptop] (~file@mctn1-7176.nb.aliant.net) joined #osdev 19:03:58 --- join: I440r_ (~x@sdn-ap-009txhousP0395.dialsprint.net) joined #osdev 19:04:00 --- quit: I440r (Read error: 54 (Connection reset by peer)) 19:04:08 threads are easy too 19:04:21 there were never "kernel tasks" so to speak backing up the process to begin with 19:06:00 so apart from having more than one set of userspace registers attached to the process, you just don't care that it's threaded at all 19:07:15 various other things fall out nicely also 19:08:38 there are often a lot of crappy kernel threads floating around doing things that don't really require a process context but got assumed to have one somewhere along the way, and then suddenly needed to be async 19:08:57 everything starts async with this, so those never happen 19:09:09 drivers are immediately forced to be prim and proper state machines 19:10:16 the downside is, of course, that it's harder to program this way 19:13:38 --- quit: newbs (Client Quit) 19:15:09 What do you guys consider the most effective way of passing variables to a new process? Putting it on the stack ? 19:15:29 (the new process:s stack, that is) 19:18:46 that works 19:18:58 the aux ent table is basically passed that way 19:21:51 --- quit: SLACKo (Remote closed the connection) 19:22:10 ree: so, does it sound more radical yet? 19:26:11 ree: the VM stuff is pretty far out there too 19:28:18 back, sorry :) 19:28:33 no, but it is interesting 19:28:53 I mean I'm all for finding out more efficient ways of accomplishing tasks 19:29:02 eliminating the entire notion of in-kernel tasks isn't radical enough to be interesting? 19:29:03 but I don't consider it as radical as it could be 19:29:13 I follow the necessity rule, if you don't need it get rid of it :) 19:30:22 the VM bits are interesting 19:30:31 I heard k42 doesn't maintain a coremap at all 19:30:37 So I want to try doing that 19:31:09 there are also 2 notions borrowed from fs's I want to apply to the VM: large blocksize and extents 19:32:02 k42 sounds slightly like my project 19:32:32 basically all info to track memory with is maintained by the containing object and allocated by it 19:32:45 though I don't quite consider general purpose oses to be of much interest 19:32:58 aka capabilities? 19:33:12 where are capabilities coming into this? 19:33:32 so you have a scoping memory allocator of sorts 19:33:48 kind of 19:33:50 the contained "metadata" of objects 19:34:01 I consider those to be capabilities 19:34:04 in UNIX and UNIX-like designs there's typically a coremap 19:34:11 following EROS terminology 19:34:14 it has things like per-page reference counts, list links, etc. 19:34:49 ahh, you said maintained by _the_ containing object 19:34:57 I read that wrong 19:35:07 k42's page allocator basically just steals memory for the metadata to track the stuff with, and then hands back physical addresses 19:35:11 so you have a single, central, container 19:35:37 so there's no permanent statically-reserved metadata, which is what I like about it 19:36:00 ree: sorry, I brought the UNIX arrangement up to contrast with 19:36:25 I am more concerned with the development of operating systems and other kinds of systems 19:36:40 instead, the vnode objects maintain a sort of file offset to physical address map 19:36:48 perhaps that is why I am not so interested with traditional systems even though there are interesting aspects of them 19:37:08 ree: how nontraditional can you get? 19:37:21 algorithmic/serial vs signal and parallel 19:37:22 ree: even without the kernel/user distinction, you still have tasks and files, no? 19:37:34 no, no need for file encapsulation 19:37:45 what happened to files? 19:37:51 tasks are not necessary as far as a pre-determined system goes 19:38:05 okay, what happened to tasks? 19:38:11 they become individual objects that do not have to be stored in a hierarchy or single namespace 19:38:26 okay, so it's a database-like namespace 19:38:28 they can be visually designed out of the process and instead everything can be predetermined 19:38:52 what about tasks? 19:38:58 that is about tasks 19:39:08 I thought that was about files... 19:39:14 a predetermined system does not need to task between its own components 19:39:30 what's this about a "predetermined system"? 19:39:35 at least not in the physical sense 19:40:12 visually constructed to operate in a specific way, all synchronizations built into the communication model pre-running 19:40:29 you can't really do that with a source coded algorithmic system 19:40:36 I'm not entirely sure what you're getting at here. 19:40:46 I can't really describe it with proper terminology 19:41:09 say you take a system that tasks and you predetermine the need for that task 19:41:55 and instead of actually physically switching tasks you already have that programmed in 19:41:59 that can't necessarily be done, esp. if the task blocks waiting for external stimuli. 19:42:10 that it will need to do XYZ at so and so time 19:44:03 yeah, I am more talking about how traditional tasking works vs pre-determined awareness of such events 19:44:25 tasking between seperated processes 19:44:53 so how do you handle non-predetermined wakeups? 19:45:01 e.g. waking after blocking on a socket? 19:46:00 then you would have to implement a way for the signal to break the current flow 19:46:16 okay, so you basically go async 19:47:15 but in traditional task management you really are blind to when that may happen 19:47:43 so you basically can interrupt any kind of task and screw up synchronization completely with other components 19:47:56 I plan to perhaps take care of that by using multiple processors 19:48:15 --- join: wcstok_r (strtok_r@dialup-67.31.178.123.Dial1.Denver1.Level3.net) joined #osdev 19:48:47 assigning possible asynchronous events/signals to a different processor and maybe having them poll or queue an interruptable address 19:49:27 unfortunately we do not have lots of processors in our systems hehe 19:49:57 I was even considering using such means as rdtsc 19:50:34 pre-timing the completion of blocks of operations so I can know how/when to interrupt something 19:51:27 you're still on that eh..some people =P 19:51:32 heheh 19:51:40 --- join: I440r (~x@sdn-ap-009txhousP0395.dialsprint.net) joined #osdev 19:51:44 nah, just thinking :) 19:52:11 * wcstok_r continues waiting for the blasted ghost to die 19:52:13 er, reminiscing 19:52:14 --- quit: I440r_ (Read error: 104 (Connection reset by peer)) 19:53:57 so how am I going to interrupt a taskless system 19:54:03 in case of asynch i/o 19:54:22 how would you do it wli? 19:54:57 --- quit: wcstok (Read error: 110 (Connection timed out)) 19:55:33 I guess you could consider the interrupts as tasks 19:57:45 I'll most likely have cooperative, preemptive, and everything in-between tasking 19:58:11 damn serial processor 19:58:20 * ree kicks it with his foot 19:58:39 wll 19:58:58 the way you generally do it is forcing a stack and program counter switch 19:59:18 in a multiple address space system, yeah 19:59:25 well 19:59:28 even otherwise 19:59:51 it just doesn't matter as long as the return from the async event returns to the right place (== the event handler) 20:00:26 I guess I could register with a queue the exact location in memory the component stopped at during the event 20:00:54 * wli wonders how the heck to do interrupt routing 20:01:08 What is XP's admin acount under? 20:01:40 Administrator 20:02:20 well I can ignore that for a while just by loading fs image alongside it 20:04:11 I don't really consider them tasks.. though really it is cooperative tasking that I want to do 20:05:03 just not with a static time quantum like traditional tasking 20:05:38 the tasking is pre-judged 20:06:04 the flow from component to component in order to solve a task 20:06:59 so you are implementing a traditional fs wli? 20:07:35 well, vaguely 20:07:44 single namespace, hierarchical directory structure I mean 20:07:58 well, that much is probably the same 20:08:00 I am grossly generalizing things :) 20:08:06 generalized UNIX semantics 20:08:13 visible to userspace anyway 20:08:19 when I use terms like traditional 20:08:21 sys_read(), sys_write(), etc. 20:08:26 ah 20:08:30 ick :) hehe 20:09:19 hey guys, i have some floppy drive code that works just fine in my stage 2 bootloader, but in my kernel(the /same/ code) only reads zero's, any ideas? im stumped =| 20:09:34 sys_open(), sys_close() 20:09:53 I might want to do things a bit more VMS-like 20:10:00 shoving state into luserspace etc. 20:10:19 Divine: what have you done to debug it thus far? 20:10:32 copy and pasted 20:10:34 :) 20:10:35 like not maintaining anything more than an fd table, and leaving file positions, cwd, etc. up to the process 20:10:42 geist: just toss in some print statements here and there, stepped through a bit with bochs debugger 20:10:46 Divine: possible problems: interrupts, memory mapping 20:11:03 Divine: dma + memory mapping 20:11:04 and the buffer i use is below 1MB 20:11:10 I guess that would improve performance, right wli? 20:11:20 blargh 20:11:31 yeah im kind of suspecting DMA, but i just cannot pinpoint it 20:11:45 the only difference between the loader code and kernel code, is i have paging enabled in the kernel 20:11:59 try to memset the target buffer with something like 0x99 20:12:02 see if it goes to zero 20:12:03 even microsoft is switching to a db oriented "fs" though 20:12:10 if it doesn't, then it's not ever hitting that buffer 20:12:16 or it's reading zero 20:12:27 ok, that is a good idea =) 20:12:28 yeah, did you remember to put the floppy in the drive? :) 20:12:33 ree: well, it's not really for performance, but just being closer to stateless 20:12:35 ree: yeah =P 20:12:36 and you are aware that the dma and all that is operating on physical memory, I assume 20:12:42 punting more state up to luserspace etc. 20:12:47 <-- done that a million times hehe 20:12:51 yep geist, i have the first 4mb identity mapped 20:13:04 ah 20:13:27 mk-ish wli? :) 20:13:49 yeah, I could see that as being useful 20:13:54 but using up more memory 20:14:22 ree: unusual fs API's don't interest me too much 20:14:47 hehe 20:14:55 now, doing internal mucking around for crap like delayed allocation would be spiffy 20:14:56 ok if i memset the floppy buffer to 0x99, im still getting 0's on read, does that mean anything to you guys? 20:15:13 you're just a steak and potatoes guy 20:15:59 anyways guys, thanks for the suggestions =) 20:16:08 wait for geist 20:16:18 he's probably brushing his teeth or putting his spiderman pajamas on 20:16:22 lol 20:16:32 ill keep my eye open =P 20:17:21 so what is your project divine? 20:18:06 Divine: well, that's interesting. 20:18:16 I expected you to find that it wasn't zeroing it out, and it was a memory buffer problem 20:18:26 just a hobby OS, just so i can learn and all, have fun, etc 20:19:17 im finally getting somewhere, my filesystem code works and all, and then i run into this problem with my floppy driver code =| 20:19:30 just go download geist's code and steal his dma/floppy code 20:19:37 =) 20:19:39 lol 20:19:40 save your time 20:19:42 do crime 20:19:45 it pays 20:20:44 hehe, a goal of K42 is to "reenable the OS research community" 20:20:53 um, are we not enabled? :) 20:20:53 yeah, I dont know if I'd copy my driver. It was stable last I checked, but I'm sure it can use some more testing 20:21:01 though I ran some serious testing on it 20:21:15 am I, ree, not nabled? 20:21:18 --- nick: wcstok_r -> wcstok 20:22:08 divine, geist is trying to get you to test his driver code :) 20:23:46 geist, do other computer systems usually have the same FDC? 20:23:51 I'm hearing rumors disk io sucks so badly wrt. implementing it I might be better off sticking to nfs 20:24:47 I am just going to dump all of system memory every time someone wants to save something 20:24:58 persistent virtual memory? 20:25:22 nah, more like 5 lines of copy memory dword at a time and save to disk :) 20:25:46 I'll also make it persistant though, so every letter they type it'll dump the memory to disk 20:25:55 high performance 20:26:21 ree: like non pcs? no 20:26:28 I am teasing 20:26:53 but I will have memory dumps in order to save state 20:27:42 so a system can be booted and immediately start executing whatever it was doing last 20:27:48 in case of a major screwup/failure 20:28:08 ie in case I decide to login and do some work with it 20:28:30 my other idea was to have a keyless mouse and keyboard 20:28:36 then you do not need any disk storage at all 20:31:11 it shouldn't be hard to dump about 512-1gb of memory straight to a disk and then load it at boot time 20:31:42 heh 20:31:53 probably want to compress it on the fly 20:32:00 if some OS did that to my harddisk, I'd see about getting a new OS =P 20:32:07 and not bother saving pages that dont have any data in them (in the free or zeroed list) 20:32:13 hehe, this isn't general purpose though wcstok :) 20:32:19 no paging 20:32:25 xp did that, and it sped things up a bunch 20:32:37 sure, but you know what 'pages' have data in them and dont 20:32:45 so dont bother writing out the ones that aren't in use 20:33:14 the entire system is connected though, so each component will need to be loaded before running 20:33:35 you can't have a 'page fault' and automatically load that component again 20:34:09 but I'm wasting your time sounding out ideas for implementation details I haven't described 20:34:11 too bad, paging would let you do that 20:34:18 I'm in a verbose mode tonight 20:35:10 might as well quickly load the entire system into memory than rely on paging to do it for you 20:35:58 --- join: I440r_ (~x@sdn-ap-009txhousP0395.dialsprint.net) joined #osdev 20:36:00 but the problem with that is you can't really know if doing so will be pratical because of the limitation of your development environment in pre-determining such capabilities 20:36:21 the reloading of memory isn't the hard part 20:36:27 --- quit: I440r (Read error: 104 (Connection reset by peer)) 20:36:28 you can just plunk everything back where it was, no problem 20:36:38 it's the reinitilization of all the device drivers that is a prob 20:36:47 and what if they removed a card while it was off, etc 20:37:00 good point 20:37:27 but that is a problem with general purpose systems :) 20:37:49 if you're running a lab with all the same hardware all the time then no problem 20:37:58 * wli hunts for 8250/16550 spcs 20:38:30 * ree has a book on them 20:39:09 actually, on rs232 but it includes the specs 20:39:11 --- quit: I440r_ (Client Quit) 20:39:43 going to make a serial console for debugging? 20:40:17 ree: no, mostly just for some way for a userspace to interact when it comes up 20:40:33 I'm pondering just cribbing some OS's code outright 20:41:13 what do you call your system? 20:42:29 ree: wlix =) 20:42:33 hehe 20:42:38 you love your name don't you :) 20:42:42 yep 20:43:27 I'll be doing all my work under my name too 20:43:34 after the os is completed 20:43:48 ree: wlix' native fs will be wlifs, the native shell will be wlish, and the compiler will be wlicc, etc. =) 20:43:56 heh 20:44:03 hmm 20:44:08 I can't crib Linux' easily 20:44:15 the driver does schedule() internally 20:44:15 that's a little creepy :) 20:44:20 and it presumes a tty layer 20:44:36 So I have to write a tty layer or something 20:44:55 so you are doing something pretty similar to K42? 20:45:06 including the ability to run linux apps as well? 20:45:27 ree: not entirely, it's not very micro 20:45:44 so you like MK design? 20:45:48 ree: there's a lot of crap I haven't bothered making up yet 20:45:51 ree: in general yes 20:45:53 but 20:46:01 I'm not particularly attached to it 20:46:28 I wonder what to do about all this tty layer stuff. 20:50:26 any website for wlix? 20:50:42 ree: no, I was going to hold off until I had something a little less embarrassing to talk about 20:51:24 ahh, but getting through the embarrassing times is fun 20:51:55 well, hearing stories about the GDT, IDT, TSS, and initial pagetables isn't going to be of interest to most peopl. 20:53:03 it's at this point where design mistakes and fundamental flaws begin to creep :) 20:53:54 ree: Given what I've been doing to Linux lately, I'm no longer convinced there is such a thing as an irreparable design flaw. 20:54:02 at least not in software 20:54:28 what have you been doing to poor little innocent linux =P 20:55:12 wcstok: shoving crap in highmem, piling on VM rewrites 8+ high in patchkits, RCU'ing the s**t out of the VM and vfs 20:55:54 wcstok: maintaining a 1MB patchkit alongside a VM rewrite to end all VM rewrites that's 1MB by itself 20:55:57 you guys like software too much 20:56:55 that's 1MB of *diff* 20:57:06 actually I'm hating software right now =P 20:57:22 good, that's a start wcstok, not continue your hatred :) 20:57:27 not/now 20:57:40 particularly freebsd, and the kde that came with this ancient redhat distro 20:58:58 but I have transferred my hatred of nano over to that kde version too 21:00:56 good chat wli/wcstok, good night :) 21:05:27 --- quit: cuebol (Read error: 104 (Connection reset by peer)) 21:27:23 yeehaw 21:29:35 --- join: gfafgawrg (~gfafgawrg@213-35-250-136-dsl.kvm.estpak.ee) joined #osdev 21:30:22 Time to go to sleep.. 06:27am.. Tomorrow is "rewriting the whole shebang"-day 21:46:06 hmmm 21:46:13 #GP on ltr 21:46:14 wtf 21:47:09 hmm, are file descriptors opened but openddir() implicitly close-on-exec or not? 21:47:35 my guess is not 21:47:45 since the file descriptor is hidden in the DIR structure 21:48:33 opendir()'d fd's? 21:49:20 yeah 21:49:36 opendir returns a DIR * but there is a fd hidden under there 21:50:02 my guess is they're not close-on-exec because if they were you'd have a stale DIR * after you exec()ed 21:50:20 doesn't look like SuS specifies it 21:50:34 yeah, i didn't see anything like that either 21:51:42 vol3 says why GPF can happen on an LTR 21:53:29 * wcstok waits for the punchline 21:54:24 needs a limit >= 0x67? 21:54:39 --- quit: trans (Read error: 60 (Operation timed out)) 21:55:12 oh. i forgot.. limit isnt checked for ltr i think 21:55:56 the segment selector operand in the LTR instruction is loca or points to a TSS that is not available 21:56:01 local^ 21:56:17 is your TSS busy? 21:56:40 check your premises again 21:56:49 hm 21:56:57 people talking to someone and I can't see who =/ 21:57:00 --- quit: wcstok () 21:57:05 --- join: wcstok (strtok_r@dialup-67.31.178.123.Dial1.Denver1.Level3.net) joined #osdev 21:57:22 feeling better? wsctok 21:57:24 :) 21:57:41 depends if you're all still talking at some invisible dude =P 21:57:52 hehe i was talkin to wil 21:58:02 #GP on ltr << you mightve missed this 21:58:40 I'm still hunting 21:59:00 I'd have to get a fresh data dump 22:00:14 the segment selector operand in the LTR instruction is local << i wonder what this means? 22:01:35 that the selector belongs in an ldt, not the gdt ? 22:02:02 oh 22:02:12 i.e. it has that bit set that determines where it goes 22:02:25 havent used LDTs 22:02:30 ok, i get it 22:03:11 you landed a job? wcstok 22:03:29 no =/ 22:03:33 hm 22:07:55 --- quit: geist2 () 22:10:45 okay getting ready to plug it into a sim 22:14:19 gmorning world 22:17:41 yo yo 22:22:17 weird 22:22:22 it came up fine in the simulator 22:23:58 thats funny. which sim? 22:27:14 um 22:27:24 I shouldn't say. =( 22:33:02 ashamed? 22:34:30 --- quit: wcstok (Read error: 113 (No route to host)) 22:37:00 mors: yes 22:37:07 of what? 22:56:30 hmm, I'd better track down some sym53c810/875 docs 23:00:43 --- quit: petrusss (Read error: 104 (Connection reset by peer)) 23:10:46 wli: have fun with that 23:10:51 symbios drivers are a pain in the ass 23:10:59 I worked on it at be for a bit 23:11:01 was no fun 23:16:31 * wli groans 23:16:51 there are no easy drivers 23:20:32 most ethernet drivers are pretty straightforward 23:20:51 there aren't a lot of different operating modes, their mission is clear and simple 23:21:42 well, in that case all the pain is in all the netstack stuff you need on top of it for it to be useful 23:21:53 yeah, but that's the fun part 23:23:11 except if you're not excited about banging out a netstack 23:30:30 --- join: trans (anbbeg@fatwire-201-147.uniserve.ca) joined #osdev 23:59:59 --- log: ended osdev/03.09.07