404 karma · joined August 25, 2021
All real mode programs that are compiled with Watcom C/C++ should work. The most recent versions of Watcom's protected mode runtime don't currently work, because they use some undocumented MS-DOS syscalls that are not implemented in ST-DOS. I intend to create a compatibility TSR that will solve most issues with those MS-DOS programs.
The problem is that the web standards have now grown so much that it is impossible to write a complete new web browser from scratch. Firefox is not coming back, because Mozilla seems to prioritize other things than code quality and the actual usability of their software.
And yes, I know that the SerenityOS developers are trying to do it, but while some very advanced things work "good enough" in their browser so that Twitter and Discord's web client works to some extent, the more basic things are so broken that their browser cannot even render basic HTML 3.2 sites properly.
Google's end goal is probably to "deprecate" HTTP 1.x and force everyone into using their own replacement for the protocol. Their protocol is going to be like the thing they call "HTTP2", an insanely complex protocol that is impossible to implement by a small developer team. In the end their own protocol becomes a "rolling release" protocol that only works with Google's own app, at which point they can completely stop releasing RFCs for it.
That's exactly what I would like to see happening. The current warnings make no sense and they only make security worse.
Browsers are not different from any other applications at this.
A self-signed certificate can also be used to make sure that the connection is private. Sometimes the private key may have leaked and then the certificate can be "trusted" without being private - though it's easier to just register a lookalike domain and a certificate for it than have a leaked private key.
2: So clearly in this case the route wasn't trusted. The encryption was however used correctly, but the users were ignorant and continued using the service even after the certificate suddenly changed.
3: Intranets are vulnerable only if there is untrusted devices in the network.
As I wrote, encryption is a good thing and improves security when used correctly, but all software must respect the user's choices. Nothing can fix stupidity and ignorance.
I set the maximum amount of sockets to 32, the maximum amount of file handles of the DOS kernel to 40, and the maximum amount of file descriptors per one VPU process to 40. Now it should (maybe) be able to do its work without randomly running out of memory.
[org 0x7c00] ; code offset
xor dx, dx ; row 0, col 0
mov ds, dx ; set data segment to 0
mov ax, 0x1300 ; ah = 0x13 (write string), al = 0x00 (write mode)
mov bx, 0x0007 ; bh = video page number (0), bl = attribute byte
mov cx, 11 ; string len: 11 bytes
mov es, dx ; ES:BP = pointer to string
mov bp, message
int 0x10 ; interrupt 0x10
end: ; do nothing to prevent crashing
jmp end ; (cli & hlt also works)
message: db "Hello world"
times 0x01FE-($-$$) db 0 ; padding
dw 0xAA55 ; boot sector signature
Also not all TCP/IP stacks close the socket properly, so the socket cannot just be removed from the memory immediately after sending the page. There will always be sockets that are just waiting for a timeout.
[1]my 486 server does not have any TCP congestion control at all - it just sends one TCP frame and waits for ACK before sending the next frame.
And because my TCP/IP stack is 16-bit code, it probably won't work for your system. It's just a DOS program that has an interrupt service routine that the other programs can call.
Assuming that one "TCP entry" means one socket, that's a lot of SYN packets...
Video from what it looks like on the server: https://www.youtube.com/watch?v=BVKjVyM53sg
I recommend downloading the bootable floppy image, unless you want to see the source code.
In the end I minimized the HTTPSERV.APP window so that scrolling down the text would not consume too much CPU time.