-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft Release - ELKS v0.7.0 #1625
Comments
Uau! ELKS is really alive.
A typo:
MK-88 Russian clone of __SOMETHING__MISSING__ using 8088 clone K1810BM88 w/256k RAM (Use ***@***.***
Thanks,
El 27 de julio de 2023 5:57:56 CEST, Gregory Haerr ***@***.***> escribió:
It's been over a year since ELKS v0.6.0 was released on June 7, 2022. Following are draft release notes for v0.7.0, please comment if something or someone has been left out. If the release should be held for a particular feature other than the two below, please comment. Thank you to all that have contributed and are using ELKS!
It has been fairly quiet, I would like to add the following minor enhancements and release v0.7.0 shortly:
- Add ANSI cursor on/off sequence for IBM PC
- Add 386 CPU detection code to automatically enable XMS for system buffers when ELKS is run on a 386+.
***Draft Release - ELKS v0.7.0***
**ELKS v0.7.0 Downloads**
Prebuilt disk images for floppy and hard disks are downloadable below from Github Assets for this release. These images can be used to boot from PC/XT/AT or PC-98 hardware, or emulators, such as QEMU or dosbox-x. The images are built with network support by default, supporting NE2K, WD and 3Com NICs. See the Wiki HowTo for more information.
**ELKS v0.7.0 Enhancements**
Thank you to all who contributed to ELKS enhancements, bug identification, testing and fixes. The system continues to be very stable, with no known crashes and long uptimes.
**New Systems Supported**
- MK-88 Russian clone of using 8088 clone K1810BM88 w/256k RAM (Use CONFIG_HW_MK88) @Vutshi
- Monotech NuXT 2.0 board (NEC V20) using Sergey Kiselev’s BIOS ***@***.***)
- Extensive testing of older IBM 5160 PC/XT/AT and Amstrad 1640 ***@***.***)
**New Commands**
- Port `mail` application from MINIX ***@***.***)
- Add `fm` visual file manager
- Add `disasm` for ELKS binary file symbolic disassembler
- Add `cons` to display console screen from remote console
- Add `ttyinfo` for testing mouse and ANSI arrow, function key and mouse parsing
- Add `hostdisasm` for host-based ELKS disassembler
- Add tiny `min_init` replacement for /bin/init on very small systems
- Add `matrix` screen saver
- Port text adventure game `advent` from Fuzix
- Port `sl` (train) program for mistyped `ls`
- Port `split` from BSD 4.3reno ***@***.***)
- Support D-Flat Project and `memopad` editor application
**Updated Commands**
- Enhance `meminfo` to include process names
- Fix `cron` memory leak, other fixes ***@***.***, @ghaerr)
- Fix `tinyirc` to operate using ping/pong protocol ***@***.***, @DutchComputerKid)
- Use PATH_MAX in all applications to prevent buffer overflow ***@***.***)
- Nano-X won’t display cursor when no mouse present
- Fix `login` handling on locked accounts, no home dir or long login name ***@***.***)
- Fix `passwd` to work on FAT filesystems
- Update `nxtetris` to work at constant speed and no mouse (adds GrGetNextEventTimeout)
- Update `disasm` disassembler from 86sim project, add symbolic disassembly to ELKS binaries
- Add `disasm -k` option to disassemble running kernel with symbols, -a for asm input
- Update `ls` for better operation with deeply nested directories and no permissions ***@***.***)
- Update `ash` for invalid TERM variable checking ***@***.***)
- Fix `xargs `with long input lines ***@***.***)
- Fix possible memory corruption with `dd` errors ***@***.***)
- Add MOUSE_PORT=none for all Nano-X applications
- Cleanup cmds source tree to remove many compilation warnings
- Fix `screen` to run from FAT filesystem
- Remove `pwdauth`, `prems` and mtools from distribution image
- Rename all test programs /bin/test_xxx
- Fix various `tr` bugs and crashes ***@***.***)
- Fix `ash` build error on non-standard `rindex`/`index` definitions ***@***.***)
- Fix `fsck` out of memory problem, display issues and -r ***@***.***, @ghaerr)
- Update `mount` and `df` to display free space and all mounted filesystems ***@***.***)
- Fix `fm` stack overwrite
- Use default drive for `fdisk` when none specified ***@***.***)
- Fix `find` stack overflow
- Fix sometimes improper time sort and display using `ls -l`
- Enhances `more` to clear screen and display (END)
- Use `cp -R` in `sys` to fix large copy on large /bin directories ***@***.***)
- Add PEEK and POKE to `basic` ***@***.***)
- Rename `mined` to `edit` (MINIX visual editor)
- Fix `hostbasic` for compilation on macOS
- Enhance `fsck` to use main memory, works on 65Mb MINIX filesystems
**Networking**
- Add multi-NIC network support, allows linking all NIC drivers at once
- Major update for NE1K NIC in 8-bit mode, use 8k buffer ***@***.***)
- Cleanup NE2K driver ***@***.***)
- Major WD driver enhancements for speed and reliability ***@***.***)
- Support /bootopts flags in all NIC drivers ***@***.***)
- New Etherlink III/3C509 NIC driver ***@***.***)
- Add optional 8390 chip check
**Boot and Runtime Configuration**
- UMB address set in /bootopts
- Add blink16.config to allow symbolic kernel debugging using `blink16`
- Decrease group ID numbers in /etc/{passwd,group} from 501 to fit in byte for kernel
- Optional `uname -v` in /etc/profile to show build commit number
- Enhance `makeboot` functionality with new options ***@***.***)
- Fix MINIX filesystem boot when root directory larger than 1 block
- Add `comirq=` to set serial IRQ in /bootopts ***@***.***)
- Pass capitalized environment variables set in /bootopts to /bin/login
- Add CONFIG_SYS_NO_BININIT to build system without `/bin/init`
- Add CONFIG_SYS_DEFSHELL_SASH to set default shell to `sash`
- Add NIC flags as optional 4th parameter to `ne0=`/`wd0=`/`3c0=` /bootopts ***@***.***)
- Allow forcing RAM and kernel heap size in config.h for testing small memory
**PC-98 Port**
- Add ANSI cursor on/off sequence ***@***.***)
- Fix `meminfo` build ***@***.***)
- Support high-resolution PC-H98 ***@***.***)
- Fix 16-bit cylinder numbers ***@***.***)
- Calculate total mem available at boot ***@***.***)
- Add CGA compatible colors to `basic` ***@***.***)
- Use calculated kernel timeouts in serial driver
- Add PC-98 bus mouse driver and XOR drawing to Nano-X ***@***.***)
- Fix Nano-X CI build
- Fix `clock` and `ps` build
- Add timeout to avoid hanging when serial cable not connected ***@***.***)
- Clear text and graphics ram on Nano-X applications startup ***@***.***)
- Fix freezing issue by removing BIOS call to old IRQ 0 vector ***@***.***)
- Add serial port driver ***@***.***)
- Add PC-98 to CI build
- Add PC-98 screen and ramfont drivers to Nano-X ***@***.***)
- Disable whole-track reads for PC-98 for now ***@***.***)
- Read /bootopts on FAT boot ***@***.***)
- Detect number of FD driver, probe for 1232/1440 and support both ***@***.***)
**8018X Port**
- Add `romprg` program to flash chips ***@***.***)
- Add ATC-compatible RTC for clock app ***@***.***)
- Add 8018X port to CI build
- Add `disable_irq` to disable IRQs ***@***.***)
- Fix ROMFS 8018X build
**C Library**
- Add `test_libc` test suite for large portion of C library ***@***.***)
- Fix `sleep` return value ***@***.***)
- Fix major `strncat` bug, affects `kilo`, `sash` history, `tinyirc` ***@***.***)
- Use PATH_MAX and NAME_MAX for overflow prevention ***@***.***)
- Cleanup various compilation warnings using const and size_t
- Fix wildcard expression undefined behaviour using []? ***@***.***)
- Fix `abort` calling kill with arguments reversed ***@***.***)
- Rewrite `memcpy` in ASM for speed (found through blink16 emulator)
- Fix `fgets` boundary bug found through libc test suite ***@***.***)
- Fix tui lib cursor location for `fm` and `moria`
- Optimize `opendir` for memory allocations and speed ***@***.***)
- Fix `fclose` to close file even when flush fails ***@***.***)
- Optimize C library startup using __argc, __argv
- Add instrumentation routines for automatic symbolic function tracing
- Add optional `--ftrace`/`FTRACE=` command option for optional program function call tracing
- Standardize C library constructor/destructor function names, priorities
- Use __argc/__argv from .postinit section
- Add `__weaken` and `__LINK_SYMBOL` weak symbol support ***@***.***, @ghaerr)
- Cleanup exec* library functions
- Use weak linking for optional C library floating point support
- Remove use of __P, __const and extern in header files
- Enhance library for possible use of new REGPARMCALL calling convention
- Remove include <linuxmt/config.h> unless required to stop unnecessary rebuilds
- Reduce min executable and distribution image size by separating out syscall wrappers
- Remove C library kenel callback code when `signal` not used by application
- Add C library support for `-mregparmcall` calling convention ***@***.***)
- Fix build to allow `-mregparmcall` calling convention for most ELKS applications
- Fix `usleep` for POSIX return value, `basename` failure, remove `__sys_errlist` ***@***.***)
- Accurate dependency handling for C library build ***@***.***)
- Delete duplicate leap year function ***@***.***)
- Reduce size of `__tm_conv` and `strerror` ***@***.***)
- Add stack backtrace and 8086 disassembler to debug library
- Fix buffer overflow in `isatty` ***@***.***)
- Add `mktime` library function
- Fix incorrect results returned by `strtol` and `strtoul` when string not NUL terminated
- Fix `memcmp` library function in C lib and kernel ***@***.***)
- Cleanup use of `__extension__`, `asm` and `volatile` to allow option `-Wpedantic`
- Add 64-bit long long `lltostr` and `ulltostr` functions
**Kernel Enhancements and Fixes**
- Support UMB memory for automatic kernel and application use ***@***.***)
- Update Spanish keyboard layout and support AltGr ***@***.***)
- Support floppy drives on NuXT computer using Sergey Kiselev’s BIOS v0.9.9
- Fix FAT filesystem /dev emulation to require /dev entry to operate
- Fix and allow multiple signals pending per process, add test_sigfail
- Fix potential `readlink` buffer overflow ***@***.***)
- Introduce precision kernel timeouts (used in IDE query and serial drivers)
- Update all ethernet device names to 3 character names ***@***.***)
- Enhance disc probing to be faster
- Always save BP across INT 10h calls for early IBM BIOS support
- Add KIOSOUND `ioctl` for console terminal ***@***.***)
- Enhance `ustatfs` to optionally not calculate freespace for FAT fs speed
- Fix MINIX filesystem to allow 64Mb filesystems and `truncate` bug
- Fix memory leak in `free_irq`
- Fix dynamic IRQ mapping in serial driver ***@***.***)
- Set COM4 default IRQ to 7
- Map ESC A through ESC Z to Alt-a through Alt-a for D-Flat and other TUI projects
- Replace non-highlighted standard colors with standard colors on ANSI console (for D-Flat)
- Fix buffer corruption and out of space on large (inodes > 8192) MINIX filesystems
- Add additional `stty erase2` termios character to map DEL to BS on `vi` and `login`
- Fix direct console to allow full codepage 437 display
- Add bright foreground color display to ANSI terminal
- Serial driver now dynamically allocates/frees IRQ on open/close for IRQ sharing
- Fix duplicate character received in serial driver on QEMU
- Fully dynamic IRQs for COM2 and COM3 ***@***.***)
- Add many `-W` warnings for most restrictive compilation warnings
- Add `memcmp` and `strchr` to kernel lib
- Remove non-useful or unused kernel config options
- Remove inaccurate CPU type check, fails for CPU >= 386
- Disable stack trace on kernel panic, useless backtrace
- Fix UNIX and NANO sockets build
- Add `fmemalloc` system call, `fmemset` library routines
**Toolchain**
- Fix limits.h recursion ***@***.***)
- Additional GMP download location ***@***.***)
- Keep directory permissions when building images
- Add `-maout-symtab` to elf2elks to create symbol table in ELKS executables
- Add `--symfile` option to elf2elks to produce .sym symbol table for kernel and applications
- Add `-finstrument-functions-simple` for ELKS function instrumentation ***@***.******@***.***)
- Add `-Wno-prio-ctor-dtor` to remove compiler warnings on new constructors ***@***.***)
- Add ELKS-specific spec file for `ia16-elf-gcc` ***@***.***)
- Force Ubuntu 20.04 for CI runner, allows mtools-4.0.23 support for build
- Fix `sash` overwriting `ash` on 2880k and HD builds
- Fix medium model data segment relocations in elf2elks ***@***.***)
**Documentation**
- Major updates to man pages ***@***.***)
- Spell check man pages and fix documentation typos ***@***.***)
- Various C library and command sources reformatted to standard ***@***.***)
- Updated driver docs ***@***.***)
- Update parenthesis for better source readability ***@***.***)
- Create SVG vector version of ELKS logo ***@***.***)
**ElksEmu**
- Remove any child processes on exit ***@***.***)
- Fix emulation of `execve` system call ***@***.***)
Chief maintainer: @ghaerr
--
Reply to this email directly or view it on GitHub:
#1625
You are receiving this because you were mentioned.
Message ID: ***@***.***>
--
Enviado desde mi dispositivo Android con K-9 Mail. Por favor, disculpa mi brevedad.
|
Looks very good! In general I think there should be a freeze period of 2 weeks where everyone is testing on their machines. We can form a group of 5-6 people that we are testing on real hardware. After that the release should be published. This is just an overall strategy proposal. I also advocate for point releases such as 0.7.1 for example, in case of a major problem (a setting enabled by default instead of disabled by default that leads to crashes, etc). Me, I will be able to test in September. So do not wait for me :). Thank you @ghaerr ! |
Looks great! Thank you. |
Absolutely astounding! Great work team! |
I managed to test quickly. The fd360-minix boots OK on my Amstrad 1640. |
Thanks a lot @toncho11, as I'm hoping the make a cut soon, as the Book 8088 project could use it, since @Vutshi can't currently compile up a system. The system should remain quite stable, as there haven't been any structural kernel changes for quite some time. |
Hello @ghaerr , I tested fd1232.img of commit f4363cd I checked I also confirmed the serial console is OK with PC-9801BX. Thank you. |
Hello @tyama501, Thanks for your testing, good to know all the PC-98 specific apps are being built correctly :) Thank you! |
@ghaerr, I just tested the current build (FAT floppy, 1.44M) with my Monotech NuXTv2, at least briefly. Things seem to be fine, no complaints! |
@tt1542, wow, very good to know, thanks for the report! It seems then that our current build is working fine on Book 8088, while the v0.6.0 release does not. It seems that something was fixed after the v0.6.0 release that allows Book 8088 to work (at least on 360k FAT and 64M MINIX), and does not require a BIOS upgrade. @Vutshi isn't currently able to compile the latest at this time, so his reports in #1619 are based on the year-old v0.6.0 release. Definitely time for v0.7.0 to get out! We can continue to sort out the 32M HD FAT boot failure on Book 8088 after v0.7.0. |
Great teamwork 👍 😃 |
Thankx for the hard work everyone. I'm waiting for my Book8088 to arrive so I can play with ELKS on a real computer for once. I'll have to try installing gcc-ia16 to play with too. I'm interested if some small modern-ish microemacs/vi clones would work on ELKS. |
@bocke, we've got a pretty decent |
@ghaerr , please have another look at my comment above. I tested the current build with my other system, the Monotech NuXTv2, and just wanted to confirm that it does boot fine using the 1.44M floppy (NOT 360K). |
Looking good! I just noticed that crontab (which got some fixes this cycle) was not being installed. I have opened a PR. |
Hello @tyama501,
Not really easily, since all the Nano-X games are listed in Thank you! |
Thank you @ghaerr , nxlandmine, nxworld, and nxterm are now already included since I selected nano-X application in the config. |
Hello @tyama501,
Oh, I'm glad you mentioned that, as I was thinking that we needed a method to individually install an application. If we change elkscmd/Applications to include nxtetris on
That's a lot of free space for both images! You must have a number of options turned off, I haven't looked at the details, as the IBM 1440k free space is much lower. We could go with the above option of changing nxtetris to On another matter, perhaps you should consider turning on CONFIG_APP_MAN_PAGES for the PC-98 1440k floppy, they would probably fit? We could also go with introducing the ability to install a few applications directly by name. Please let me know what you think with some image size testing if possible, and we can make the changes. Thank you! |
Hello @ghaerr , Yes, I could add MAN Pages to 1440 KB image, but it only 90KB left if I add it. Thank you. |
Maybe it is nice if we can select which man page to add in future. |
It's been over a year since ELKS v0.6.0 was released on June 7, 2022. Following are draft release notes for v0.7.0, please comment if something or someone has been left out. If the release should be held for a particular feature other than the two below, please comment. Thank you to all that have contributed and are using ELKS!
It has been fairly quiet, I would like to add the following minor enhancements and release v0.7.0 shortly:
Add ANSI cursor on/off sequence for IBM PC[[Console] Implement DisplayCursor(onoff) for direct console #1626]Add 386 CPU detection code to automatically enable XMS for system buffers when ELKS is run on a 386+.[Not included: default v0.7.0 images will be built without XMS support. This is because some 386 systems, including Compaq Portable 386 require CONFIG_FS_XMS_INT15 to be set and otherwise would pass CPU test but still not boot.]
[EDIT: Github build images created from #1626 onwards are feature frozen and ready for any additional testing.]
Draft Release - ELKS v0.7.0
ELKS v0.7.0 Downloads
Prebuilt disk images for floppy and hard disks are downloadable below from Github Assets for this release. These images can be used to boot from PC/XT/AT or PC-98 hardware, or emulators, such as QEMU or dosbox-x. The images are built with network support by default, supporting NE2K, WD and 3Com NICs. See the Wiki HowTo for more information.
ELKS v0.7.0 Enhancements
Thank you to all who contributed to ELKS enhancements, bug identification, testing and fixes. The system continues to be very stable, with no known crashes and long uptimes.
New Systems Supported
New Commands
mail
application from MINIX (@ccoffing)fm
visual file managerdisasm
for ELKS binary file symbolic disassemblercons
to display console screen from remote consolettyinfo
for testing mouse and ANSI arrow, function key and mouse parsinghostdisasm
for host-based ELKS disassemblermin_init
replacement for /bin/init on very small systemsmatrix
screen saveradvent
from Fuzixsl
(train) program for mistypedls
split
from BSD 4.3reno (@Mellvik)memopad
editor applicationUpdated Commands
meminfo
to include process namescron
memory leak, other fixes (@ccoffing, @ghaerr)tinyirc
to operate using ping/pong protocol (@Redfoxymoon, @DutchComputerKid)login
handling on locked accounts, no home dir or long login name (@ccoffing)passwd
to work on FAT filesystemsnxtetris
to work at constant speed and no mouse (adds GrGetNextEventTimeout)disasm
disassembler from 86sim project, add symbolic disassembly to ELKS binariesdisasm -k
option to disassemble running kernel with symbols, -a for asm inputls
for better operation with deeply nested directories and no permissions (@ccoffing)ash
for invalid TERM variable checking (@ccoffing)xargs
with long input lines (@ccoffing)dd
errors (@ccoffing)screen
to run from FAT filesystempwdauth
,prems
and mtools from distribution imagetr
bugs and crashes (@ccoffing)ash
build error on non-standardrindex
/index
definitions (@ccoffing)fsck
out of memory problem, display issues and -r (@Mellvik, @ghaerr)mount
anddf
to display free space and all mounted filesystems (@Mellvik)fm
stack overwritefdisk
when none specified (@Mellvik)find
stack overflowls -l
more
to clear screen and display (END)cp -R
insys
to fix large copy on large /bin directories (@Mellvik)basic
(@tyama501)mined
toedit
(MINIX visual editor)hostbasic
for compilation on macOSfsck
to use main memory, works on 65Mb MINIX filesystemsNetworking
Boot and Runtime Configuration
blink16
uname -v
in /etc/profile to show build commit numbermakeboot
functionality with new options (@Mellvik)comirq=
to set serial IRQ in /bootopts (@Mellvik)/bin/init
sash
ne0=
/wd0=
/3c0=
/bootopts (@Mellvik)PC-98 Port
meminfo
build (@tyama501)basic
(@tyama501)clock
andps
build8018X Port
romprg
program to flash chips (@cocus)disable_irq
to disable IRQs (@cocus)C Library
test_libc
test suite for large portion of C library (@ccoffing)sleep
return value (@ccoffing)strncat
bug, affectskilo
,sash
history,tinyirc
(@ccoffing)abort
calling kill with arguments reversed (@tkchia)memcpy
in ASM for speed (found through blink16 emulator)fgets
boundary bug found through libc test suite (@ccoffing)fm
andmoria
opendir
for memory allocations and speed (@ccoffing)fclose
to close file even when flush fails (@ccoffing)--ftrace
/FTRACE=
command option for optional program function call tracing__weaken
and__LINK_SYMBOL
weak symbol support (@tkchia, @ghaerr)signal
not used by application-mregparmcall
calling convention (@tkchia)-mregparmcall
calling convention for most ELKS applicationsusleep
for POSIX return value,basename
failure, remove__sys_errlist
(@ccoffing)__tm_conv
andstrerror
(@coffing)isatty
(@tkchia)mktime
library functionstrtol
andstrtoul
when string not NUL terminatedmemcmp
library function in C lib and kernel (@Mellvik)__extension__
,asm
andvolatile
to allow option-Wpedantic
lltostr
andulltostr
functionsKernel Enhancements and Fixes
readlink
buffer overflow (@ccoffing)ioctl
for console terminal (@tkchia)ustatfs
to optionally not calculate freespace for FAT fs speedtruncate
bugfree_irq
stty erase2
termios character to map DEL to BS onvi
andlogin
-W
warnings for most restrictive compilation warningsmemcmp
andstrchr
to kernel libfmemalloc
system call,fmemset
library routinesToolchain
-maout-symtab
to elf2elks to create symbol table in ELKS executables--symfile
option to elf2elks to produce .sym symbol table for kernel and applications-finstrument-functions-simple
for ELKS function instrumentation (@tkchia,@ghaerr)-Wno-prio-ctor-dtor
to remove compiler warnings on new constructors (@tkchia)ia16-elf-gcc
(@tkchia)sash
overwritingash
on 2880k and HD buildsDocumentation
ElksEmu
execve
system call (@tkchia)Chief maintainer: @ghaerr
The text was updated successfully, but these errors were encountered: