Search logs:

channel logs for 2004 - 2010 are archived at http://tunes.org/~nef/logs/old/ ·· can't be searched

#osdev2 = #osdev @ Libera from 23may2021 to present

#osdev @ OPN/FreeNode from 3apr2001 to 23may2021

all other channels are on OPN/FreeNode from 2004 to present


http://bespin.org/~qz/search/?view=1&c=osdev&y=19&m=5&d=24

Friday, 24 May 2019

12:57:21 <ybyourmom> https://www.theguardian.com/notesandqueries/query/0,5753,-3680,00.html
12:57:41 <ybyourmom> Still no idea what the difference between raisins and sultanas is
03:32:16 <d3x0r> I published a copy of my ancient OS on DOS; supported threads, .exe loading, VGA graphics (yay.) One ether card.. Has a TCP stack, but only the one hardware support (something western digital I think) https://github.com/d3x0r/NanoRTOS
03:32:34 <adu> omgomg
03:36:40 <adu> I don't know what it is about 40 years, but DOS is so much cooler now than it used to be
03:39:17 <d3x0r> ya... I went looking for a DOS that ran in UEFI; but it wouldn't really be DOS then; being 64 bit flat mode instead of segmented
03:39:41 <d3x0r> and wouldn't run any dos things :)
03:44:50 <adu> I used FreeDOS once
03:45:14 <adu> I installed it because a BIOS update was distributed as an EXE file, after the BIOS update, I reinstalled linux
03:47:52 <Mutabah> I guess a DOS hypervisor would be interesting
03:48:05 <Mutabah> Running the real-mode code in either a VM or a pure simulator
04:18:16 <ZombieChicken> adu: I'd guess DOS is cooler now becuase most poeple are used to shit systems anyways
04:18:32 <ZombieChicken> and a system that doesn't need a ghz class CPU just to display a screen is kinda nice
04:25:40 <adu> I think it's more of the Baghdad battery thing
04:28:47 <adu> "You made a bettery with clay and copper in 150 BC" is how I feel when I think "You managed to convince the world that computers were useful with 1.4MB worth of software"?
04:29:44 <adu> I'm starting to feel bad that I threw out my floppies about 10 years ago
04:42:49 <d3x0r> hmm... a hand crank x86
04:43:06 <d3x0r> can it run on like 25 watts?
05:01:43 <immibis> 1.4MB is a fair bit, if you don't squander it
05:02:06 <immibis> unfortunately it's not enough to go "you can do everything in 1.4MB" but it's enough to go "you can do plenty in 1.4MB"
05:05:25 <d3x0r> it's more like 259K ; had to be under 640K (580?)
05:08:20 <ybyourmom> thas a vibe
05:11:34 <ZombieChicken> 3 boxes of cards should be enough for anyone?
05:12:07 <doug16k> I have a DOS 6.22 partition on my ryzen 2700X
05:12:14 <d3x0r> (... the VGA card has all this other memory, can I stuff some code there? )
05:12:30 <doug16k> d3x0r, no
05:12:42 <d3x0r> :) ahh but, I could
05:13:09 <doug16k> if you want qemu to abort at the first instruction executed from non-memory, sure
05:13:19 <doug16k> if you want performance to be 1000x slowdown, sure
05:13:31 <d3x0r> well... I was developing on original hardware not emulation
05:13:45 <doug16k> it's about as bad as it gets
05:13:51 <d3x0r> hah, video memory is faster than the 120ns memory I got... :)
05:13:59 <doug16k> I don't think there is much of a way to kill exeution performance more than that
05:14:28 <doug16k> reading video memory is slow no matter how you read it
05:14:45 <d3x0r> just as slow as the rest of the memory on the ISA bus
05:15:04 <doug16k> sorry, it's asinine
05:15:05 <d3x0r> it really wasn't all that much slow
05:15:24 <d3x0r> was good for background things like cdrom drivers
05:18:57 <d3x0r> was faster than ROM
05:21:30 <ybyourmom> issa vibe
05:21:56 <elderK> d3x0r: I defer to doug16k on this topic but... I'd agree it would be slower but more importantly: It would depend on *what* video memory you were "running from." Just because something is mapped into the physical address space doesn't mean it actually behaves as you'd expect memory to behave. I.e. Wrt misaligned reads, or reads of some positions out of order, etc.
05:22:08 <elderK> I figure you're aware of that already. But in case not, thought I'd point that out.
05:22:40 <d3x0r> sure.
05:23:10 <d3x0r> it still worked. asinine as it might have been. And it really wasn't as bad as you'd think.
05:23:37 <doug16k> the cpu will stall to a halt and execute one instruction at a time, waiting for the previous one to completely finish, every instruction
05:23:39 <d3x0r> but then win 3.11 came out and, bios shadow, and AGP, and...
05:23:40 <elderK> What video memory was it? The framebuffer? Was it VGA, EGA, VESA or other?
05:23:59 <d3x0r> ya that class of thing
05:24:34 <doug16k> nop would be, probably, 1000 cycles
05:24:58 <elderK> I'm not sure what you're arguing, and in what context. Sure, you can do it. And sure, maybe years and years ago, back when DOS was king and like, memory was scarce, maybe it would have been valuable in some sense. But, it would have always been a hack, one that has little use today.
05:24:58 <d3x0r> dude. video memory has always been faster than ram...
05:25:06 <d3x0r> and the memory was just on the same bus as everything else
05:25:08 <elderK> Sure. But not faster than CPU cache.
05:25:11 <d3x0r> the wait states were insignificant
05:25:17 <d3x0r> no, but it has to get into the cache first
05:25:30 <doug16k> d3x0r, look at what happens when the cpu fetches from uncacheable memory
05:25:33 <doug16k> it never caches it
05:25:50 <doug16k> I mean in the x86 manuals
05:25:57 <d3x0r> I did, with an HP logic analysier than had a pod that inerfaced between the 386 and the main board
05:26:09 <d3x0r> I know exactly how memory was accessed and the speeds
05:26:12 <doug16k> what this is an old machine?
05:26:21 <elderK> Right, so this is in the context of ancient hardware.
05:26:22 <d3x0r> it was new at the time.
05:26:43 <doug16k> 386 has no cache whatsoever, so ya, being uncacheable doesn't matter that much
05:26:50 <elderK> That does not invalidate anything doug16k has said :P I mean, hell, the first machine I had, afaik, didn't even HAVE a cache.
05:26:55 <doug16k> and 386 isn't running at 3000+ MHz either
05:27:20 <d3x0r> and GDDR5 is faster than DDR4
05:27:25 <doug16k> no
05:27:38 <doug16k> GDDR is hideous for code
05:27:45 <d3x0r> ya
05:27:47 <doug16k> it has high latency
05:28:15 <doug16k> GPU can use it because they are built to hide latency all day
05:28:24 <d3x0r> but it just gets paged into memory anyway; don't think the CPU has a high bandwidth path to it
05:28:29 <doug16k> and the computations it does are almost all order independent
05:28:49 <doug16k> paged?
05:29:04 <d3x0r> ya like DMA block shifted between GPU and system memroy
05:29:11 <d3x0r> as opposed to directly accessing it as memory
05:29:12 <doug16k> video memory won't be cached. if it did, how could doing I/O do change the read or write mode ever work?
05:30:02 <d3x0r> I have to put an image into memoery before it can be on the GPU... so kinda seems like that's an implied transport between the cpu and GPU
05:31:29 <d3x0r> but then again, I'd have more than 640K on a Ghz CPU... so it's really all mute
05:34:08 <d3x0r> https://www.pcorner.com/list/UTILITY/704K.ZIP/INFO/ someone patented it :)
05:36:22 <d3x0r> https://patents.google.com/patent/US5237669
05:38:25 <doug16k> please don't post patents
05:40:51 <immibis> because they're depressing or because you might accidentally copy them?
05:42:50 <doug16k> because software patents are total and utter bullshit
05:43:24 <doug16k> some ass will "invent" setting a variable to 0 at the start of a loop and have it granted
05:44:58 <d3x0r> heh
05:53:45 <Mutabah> And ignorance is an argument against infringement
05:59:03 <d3x0r> hmm. 2019-05-23 Application status is Expired - Lifetime ; my bad was only an application
06:10:42 <immibis> Mutabah: I thought it wasn't
06:11:19 <immibis> at the very least, if you don't do a patent search then it would be wilful ignorance, wouldn't it?
06:11:30 <immibis> never mind the fact that you can't do a patent search for every little thing
06:12:57 <immibis> has anyone tried writing an OS without threads? probably a dumb idea but you know
06:13:23 <ybyourmom> I haven't
06:13:32 <ybyourmom> You'd have one thread of execution still though
06:14:15 <ybyourmom> Actually "without threads" could mean two things
06:14:32 <ybyourmom> (1) The kernel doesn't support kernel threads but it supports multithreaded scheduling
06:14:50 <ybyourmom> (2) The kernel supports kernel threads but it doesn't support multithreaded scheduling
06:15:11 <ybyourmom> Guess you meant #1?
06:16:06 <immibis> i guess something like a fully asynchronous system: while(true) {void (*fn)() = get_stuff_to_do(); (*fn)();} - which is really how a scheduler works anyway, just inside out
06:16:13 <immibis> or, well, not inside out
06:16:19 <immibis> it wouldn't play very nicely with user code...
06:55:57 <talin> hello. silly question, but is still C king of OS dev? and do you think it will be in the foreseeable future?
06:57:44 <lava> opening the pandora box of "will we still write in C in 20 years?"....
06:58:22 <lava> i recently had a conversation with someone in a ... not very high ranked, but a position that could influence what future computer science teachers (here in this country) learn
06:58:47 <immibis> talin: the foreseeable future is about 20 seconds from now so, yes
06:59:02 <bcos> talin: You'll want to start by splitting "OS dev" into its pieces (kernel dev, GUI dev, ..). For some things ("init") it's easier to say that bash scripts dominate and C was never used
06:59:11 <immibis> i bet windows's init isn't written in bash
06:59:24 <immibis> and i'm sure the original init was c
06:59:25 <lava> they have their dialects
06:59:28 <bcos> :-)
06:59:41 <immibis> (who remembers that inittab exists?)
06:59:41 <lava> they pretty early on had .bat files ;)
06:59:52 <lava> wasn't there this autoexec.bat?
06:59:52 * bcos is assuming "hobby and open source OS dev"
07:00:03 <immibis> bcos: i bet a lot of hobby OSes don't support bash
07:00:38 <bcos> How many GUIs (KDE, Gnome, ...) are not written in C++?
07:00:52 <talin> huh, i thought gnome was C
07:02:27 <talin> GTK seems to be C, anyway
07:02:45 <bcos> According to wikipedia; GNOME is written in "C, XML, C++, C#, HTML, Vala, Python, JavaScript, CSS, and more"
07:03:36 <talin> i see
07:03:43 <d3x0r> autoexec.bat ... ending in win.com
07:03:50 <immibis> bcos: java swing?
07:04:07 <lava> anyway, the teacher-representative guy, he argued that secondary school teachers should, rather than learning languages that are now relevant, they should only learn the concepts and ethics and how to use computers rather than how to program in C
07:04:27 <lava> and I argued that this is non-sense, because, if you want to become a grammar expert, the thing you do is, you learn latin
07:04:55 <immibis> if he wants to teach he should only research the concepts of teaching rather than talking to students
07:06:49 <bcos> talin: For kernel development; C is still the most popular, and I don't really see that changing much (but there are people using other languages - e.g. C++ and Rust seem to be the most often discussed)
07:06:52 <lava> we're talking about secondary school teachers here, so students from ages ~10 to ~18
07:07:24 <immibis> i'd understand if they said python instead of C
07:07:33 <immibis> sorry, i'd understand if they said it should be python instead of C
07:07:42 <lava> @immibis i would understand that
07:07:56 <lava> but they suggested, just do "scratch" instead, and that's enough
07:08:05 <talin> bcos: i see. for a newbie OS developer, would you say that the path of least resistance is using C?
07:08:16 <lava> that's all _the teacher_ needs to know to teach computer science in school
07:08:18 <immibis> yes
07:08:29 <immibis> lava: scratch for 10-year-olds is also understandable
07:08:34 <lava> 10 to 18 year olds
07:08:43 <immibis> for 18-year-olds it isn't so understandable
07:08:46 <lava> yes
07:09:01 <lava> and i fundamentally disagree... even if the teacher would only teach scratch to the 10 to 18 year olds
07:09:09 <lava> the teacher should understand more than just scratch
07:10:02 <immibis> oh yeah, the teacher should too
07:10:13 <immibis> maybe he doesn't get paid enough to care
07:10:16 <bcos> talin: Yes - most tutorials, etc are written assuming C; and most other people are familiar with C (even if they don't use it for their own stuff); so for learning you end up needing C even if you don't write your code in C
07:10:42 <lava> in that case it was a student's representative, they do have a say in austria what is part of the university program
07:11:43 <immibis> it's like saying that in the carpentry course they should teach you how to build kits instead of how to nail things together
07:11:47 <lava> they just kicked one of my courses from their program because it's "too difficult and far from what a computer science teacher should know about computers"
07:11:50 <lava> this one: https://teaching.iaik.tugraz.at/snp/assignments
07:11:53 <bcos> lava: To decide if scratch is/isn't enough, you have to define "enough". For most people, not bothering to learn any programming language is "enough"
07:11:54 <immibis> (ikea or your favourite brand of kits)
07:12:24 <lava> we're talking about the education for the teachers here, not the education for the kids
07:12:38 <immibis> lava: did they say it in english? I wonder if there could be a mixup about the translation of computer science
07:12:42 <lava> so, i agree.... maybe currently most people don't need to learn any programming languages
07:12:59 <lava> immibis: german... "informatik"
07:13:31 <immibis> because of course there should be a course about how to use windows and microsoft office. that IS a useful skill, just not so much for programmres
07:13:33 <immibis> programmers*
07:14:52 <immibis> here "computer science" means computer science (algorithms, data structures, complexity theory, computability theory, etc) and "information technology" means windows, office, etc
07:15:42 <lava> yeah, so we're definitely discussing informatik as in computer science
07:16:13 <lava> but maybe with a strong focus on the applied part
07:17:52 <lava> i think school teachers should learn C/C++ in their studies, so that they have a good background even when they teach something like scratch or python or javascript
07:18:23 <lava> they should understand what happens on a system level so that they can answer questions if a student has one
07:55:20 <doug16k> I wish schools taught students not to mash everything together into one big networking, parsing, user interface, persistence blob in one big UI controller
07:56:16 <zid> MrFirstIRCClient.jpg?
07:56:18 <doug16k> and maybe enough multithreading to enable them to do better than sleep and poll loops
07:56:26 <zid> select() for life
07:56:48 <zid> Aren't most UI toolkits message pumped though
07:58:58 <doug16k> something like that yeah
08:00:13 <doug16k> the way practically all UIs work right now, if the program stops processing the messages, the UI appears to freeze up and stop responding. why is that acceptable?
08:00:25 <doug16k> everyone seems ok with it
08:01:34 <doug16k> because everyone wants their nice cozy synchronous message at the last nanosecond
08:01:50 <bcos> I'm OK with that; as long as the program never stops processing messages
08:02:14 <doug16k> it could continue to be responsive even if the program sits in `while(1);`
08:02:19 <bcos> ..the problem is typically more about thread priorities and doing work in the UI thread when it should be done in a lower priority thread
08:02:25 <zid> You get a nice visible response at least on windows, if you should have handled your message via a thread, a tleast
08:02:28 <zid> "This program has stopped responding"
08:03:03 <zid> i.e the message loop isn't just setting flags or starting a new thread then going back to blocking in GetMessage
08:05:33 <zid> Anyway, they're all the same problem
08:05:39 <zid> not really having a clue what is going on
08:05:47 <zid> and just barely being able to get anything working at all
08:07:37 <doug16k> the question is, should something like tabbing to the next control be a synchronous message sent to a UI thread queue, or should the tab order be declarative, and it is guaranteed that a user tab to the next control will work regardless of whether the program is reading a UI event
08:08:40 <doug16k> i.e. the caret will appear in the other control and blink with perfect timing
08:08:56 <zid> That should all be handled by the toolkit
08:09:31 <zid> if the app wants to process WM_FOCUSCHANGE or whateer it can do, but the program itself shouldn't be responsible for systemwide behaviors like tabbing unless it wishes to consciously override them by hooking all the messages
08:09:49 <zid> if every program had to implement alt-f4 by itself we'd be in a world of shit
08:10:07 <zid> thankfully explorer handles it and sends WM_CLOSE
08:44:54 <manwar> Hello there
08:45:11 <manwar> Any good ideas for a minimal graphical terminal emulator?
08:46:05 <zid> ideas? Make it minimal, and graphical
08:46:22 <manwar> I'm thinking of porting one rather than writing my own
08:46:38 <zid> oh, nothing standalone, and if it were standalone it'd use libX / libxcb anyway right
08:47:02 <zid> else you're porting gtk etc
08:47:47 <manwar> Of course. any ideas of such one? preferably abstracts all drawing functionality behind an interface
08:48:20 <zid> Right yea, your best bet being to just hack the shit out of one :P
08:48:38 <zid> I doubt anybody has a working knowledge of the codebases of a bunch of virtual terminals
10:00:17 <klys> fbterm is a graphical terminal emulator that works with framebuffersupport.
10:03:26 <manwar> @klys, could you point me to it?
10:05:15 <manwar> Got it, I have an fbterm too, but was too lazy to port that :"D
10:48:51 <doug16k> did you know that windows can print a stream of ascii text? I didn't until today
10:49:10 <doug16k> 1st time I ever saw non-GDI printing code
10:50:12 <zid> echo "blah" > COM1
10:50:21 <doug16k> not that old
10:50:28 <doug16k> win32 "spooler" apis
10:51:57 <doug16k> DOS device names like that can work too though