Replies: 23 comments 6 replies
-
So it is a problem of FAT or how fm handles files on FAT. |
Beta Was this translation helpful? Give feedback.
-
HI @Tonho11,
very bad numbers indeed. And yes, it's a FAT problem, but as @ghaerr pointed out not long ago, it's also an ELKS implementation problem. The ELKS FAT/VFAT implementation is finally stable, but it's also inefficient. That said @ghaerr improved it significantly less than a year ago, when we (among other things) observed that the FAT directory listings (big directories) were going slower and slower line by line, every time, almost grinding to a halt if the directory was big enough.
That problem was fixed and the overall response improved, but there is obviously still a long way to go. DOS lists the same directories much faster as you measured a couple of days ago. Whether this should be a priority issue, I don't know. It would be great to have a reasonably fast (or very fast) FAT implementation, but the list of pending improvements is long. I guess the medicine for now is to keep directory sizes down and filenames short.
The 50 seconds you just reported for a /bin listing on fat, is that on floppy? If it is, that's the number for the Hard drive?
—M
… 2. sep. 2022 kl. 13:39 skrev toncho11 ***@***.***>:
So it is a problem of FAT or how fm handles files on FAT.
It could be some unwanted operation like - reading the next file and then sorting all the files it read so far ???
—
Reply to this email directly, view it on GitHub <#1433 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA3WGOFCEA6VXEGMLXCMGYLV4HRQXANCNFSM6AAAAAAQDGDUMQ>.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
Hello @toncho11, Thanks for your continued testing of I think @Mellvik is probably right about the FAT directory read implementation being slow, but it could also be something to do with Thank you! |
Beta Was this translation helpful? Give feedback.
-
It appears that It seems I need an emulator that can be slowed down to IBM 5150 8086 speed... does anyone know of any, or a way to do this with QEMU? That would help for more realistic testing. As @toncho11 is effectively pointing out, we spend lots of time making things small, but apparently not enough time making things fast on very slow systems! |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
The listing should look like this, does it not? |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
This could be a good emulator: http://www.hampa.ch/pce/pce-ibmpc.html Here are some pre-configured images: It has images for Minix, Xenix, DOS ... |
Beta Was this translation helpful? Give feedback.
-
Holy heck! Well, it seems ELKS FAT is very slow, as @Mellvik said. It doesn't look like my suggested changes to I'm wondering: do you have CONFIG_TRACK_CACHE=y turned on for the system? We have an issue where the track cache is also used for HD sectors (when it should not be). This could cause additional slowness, although we're not seeing it in MINIX. |
Beta Was this translation helpful? Give feedback.
-
I do not know. I am using the images downloaded from github. |
Beta Was this translation helpful? Give feedback.
-
Yes, DOS takes time to read the FAT free space (30 seconds), but it does cache the information and subsequent dir commands are much faster. |
Beta Was this translation helpful? Give feedback.
-
2. sep. 2022 kl. 16:05 skrev Gregory Haerr ***@***.***>:
It appears that fm (which I forked from noice before heavily rewriting it) stats each file in a directory in a possibly particularly slow way for FAT: for /bin, it calls opendir("/bin") and then constructs a new path of "/" + "bin" + filename for each file to get the file size and time for, which on FAT results in the kernel searching (again) of the root directory, then another search of the "bin" directory, in order to get each file's information. This could possibly be recoded to chdir("/bin"); opendir("."); ... which would likely be much faster on FAT.
It seems I need an emulator that can be slowed down to IBM 5150 8086 speed... does anyone know of any, or a way to do this with QEMU? That would help for more realistic testing. As @toncho11 <https://github.com/toncho11> is effectively pointing out, we spend lots of time making things small, but apparently not enough time making things fast on very slow systems!
Actually for limited testing, 86box can do this.
No 2.88 floppies, and really hard to get to work with hard disks, but it can be slow as h…
I just set it up with floppy (1.44), ALI 386SX processor @40MHz and a cat /dev/fd0 > /dev/null takes 51 seconds.
Setting it to compaq 286 @ 12 or 20 MHz will probably double that time.
Let me know if you'd like the complete setup.
…-M
|
Beta Was this translation helpful? Give feedback.
-
Could be, I'm looking at it. Seems hard to get started though.
…-M
2. sep. 2022 kl. 16:38 skrev toncho11 ***@***.***>:
This could be a good emulator: http://www.hampa.ch/pce/pce-ibmpc.html <http://www.hampa.ch/pce/pce-ibmpc.html>
Here are some pre-configured images:
http://www.hampa.ch/pce/download.html <http://www.hampa.ch/pce/download.html>
It has images for Minix, Xenix, DOS ...
—
Reply to this email directly, view it on GitHub <#1433 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA3WGOCGUNYP7JWIPIFKCDTV4IGNJANCNFSM6AAAAAAQDGDUMQ>.
You are receiving this because you were mentioned.
|
Beta Was this translation helpful? Give feedback.
-
PCE is known to be able to emulate some notoriously difficult OS such as XENIX which requires exactly 10 MB drive and an EGA video adapter.
Yes, that was actually part of my motivation - getting Venix to run. It doesn't - yet.
These OSes, like old (early 80s) instances of Xenix, have the hard drive geometry hardcoded. Like 17 sectors per track is mandatory. And they some times poke directly into video drivers.
It turns out that whether ELKS will work depends on the BIOS (set in the config file) - system BIOS and hard drive BIOS: The older IBM PC BIOSes are no-go. This is why using the Minix package turns out to be a good start. BTW - the Minix1 PCE setup does not work for ELKS, while Minix2 does.
Actually we could add an extra action in GIT that generates a PCE bootable image. It could be a downloadable zip that contains both the ELKS image and the PCE emulator. That will make testing and trying ELKS easier.
Interesting idea. The 'complete package' concept is indeed attractive (I'm unsure as to how this could work for a MacOS version). Remember though that PCE is very limited: PCXT only, no networking (except possibly slip), etc. But it does have XMS and EMS support and some BIOS extensions to support them.
—M
|
Beta Was this translation helpful? Give feedback.
-
Thanks @Mellvik, sure please post the instructions for how to get PCE running. I'm not sure we need to build specific disk images for each of the many emulators out there, but it might be a good start to have instructions for getting them running them in the Wiki somewhere. In general, a good emulator should be able to boot any standard IBM PC compatible disk image in some floppy size, right? |
Beta Was this translation helpful? Give feedback.
-
. In general, a good emulator should be able to boot any standard IBM PC compatible disk image in some floppy size, right?
That's a reasonable assumption, but as recent close encounters with a few of them reveal, even booting off of a std floppy image may be a challenge. Like if xms is compiled in, it might hang. Or - more likely - elks will probe disk controllers and may fail or hang. When emulating early systems, this is likely to happen. I couldn't get pce to run elks until I downloaded the minix setup to get the settings right.
Wiki update coming.
…-M
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.
|
Beta Was this translation helpful? Give feedback.
-
Hello @Mellvik, Wow, your long detailed article on Virtual ELKS: A How To is absolutely fantastic! What a super concise and descriptive summary of how to use various emulators for ELKS. Really well written. Thank you!! With things laid out so directly, I plan on playing around with these emulators, which I haven't tried yet. |
Beta Was this translation helpful? Give feedback.
-
Thank you @ghaerr -
I'm working on a network setup for 86Box - and hope to get SLIP working on VirtualBox - APple (MacOS) permitting.
…-M
Hello @Mellvik,
Wow, your long detailed article on Virtual ELKS: A How To is absolutely fantastic! What a super concise and descriptive summary of how to use various emulators for ELKS. Really well written. Thank you!! With things laid out so directly, I plan on playing around with these emulators, which I haven't tried yet.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.
|
Beta Was this translation helpful? Give feedback.
-
Me, I would like to test ELKS with a specific BIOS. It is the BIOS used by an XT cloning called "Pravec". |
Beta Was this translation helpful? Give feedback.
-
Then I recommend using PCE, where you can easily specify the BIOS in the config file.
—M
… 8. sep. 2022 kl. 10:53 skrev toncho11 ***@***.***>:
Me, I would like to test ELKS with a specific BIOS. It is the BIOS used by an XT cloning called "Pravec".
—
Reply to this email directly, view it on GitHub <#1433 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA3WGOHAGMAYPPJ74M3BFT3V5GSP3ANCNFSM6AAAAAAQDGDUMQ>.
You are receiving this because you were mentioned.
|
Beta Was this translation helpful? Give feedback.
-
@ghaerr,
the Emulation wiki page has been updated with focus on 86Box, which turns out to be quite useful for ELKS.
Several new configuration have been added, and a short run-through of the Networking part.
Which now works as far as the emulator is concerned. However, we now get the emulator version of the ktcp problems I've been working on (uncompleted), discovered the running ELKS to ELKS, except in this setting it's even worse: Lots of unnecessary retransmits to the extent that networking is barely useable.
Anyway, I think this is very useful as we do get an easily accessible environment that emulates physical speeds.
Also (I wasted a LOT of time on this), there is no serial support in 86Box. That is, there is serial support on the inside, but no way to get to it from the outside. Yet … The stupid thing is, there is no mention of this in the docs or the GUI, which lets you happily configure up to 4 COM ports ...
—M
… 8. sep. 2022 kl. 11:08 skrev Helge Skrivervik ***@***.***>:
Then I recommend using PCE, where you can easily specify the BIOS in the config file.
—M
> 8. sep. 2022 kl. 10:53 skrev toncho11 ***@***.*** ***@***.***>>:
>
>
> Me, I would like to test ELKS with a specific BIOS. It is the BIOS used by an XT cloning called "Pravec".
>
> —
> Reply to this email directly, view it on GitHub <#1433 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA3WGOHAGMAYPPJ74M3BFT3V5GSP3ANCNFSM6AAAAAAQDGDUMQ>.
> You are receiving this because you were mentioned.
>
|
Beta Was this translation helpful? Give feedback.
-
Hello @Mellvik, Thanks for the update on the Emulation wiki, you've done a fantastic job on it! It's so nice to have that kind of documentation available in one place for ELKS. Good to hear that you've configured another emulator for networking support. (And not so good to hear about the retransmit/timeout issues, although they could be related to the emulator itself, but more likely just old-fashioned timeout/synchronization issues with the somewhat fragile ELKS TCP/IP stack). When I get a bit more time, I plan on playing around with all the emulators you've documented, thanks! |
Beta Was this translation helpful? Give feedback.
-
please post the instructions for how to get PCE running.
I renamed the VirtualBox Wiki page and expanded it.
…-M
|
Beta Was this translation helpful? Give feedback.
-
So it takes 50 seconds for
fm
to list /bin on fat verses 4 seconds for the same folder /bin on MINIX.So if you start it on fat then you might need to wait a lot and finally abort it - thinking it crashed.
Beta Was this translation helpful? Give feedback.
All reactions