MS-DOS
cosmopolitan
MS-DOS | cosmopolitan | |
---|---|---|
59 | 201 | |
15,623 | 15,180 | |
- | - | |
0.0 | 9.8 | |
over 4 years ago | 6 days ago | |
Assembly | C | |
GNU General Public License v3.0 or later | ISC License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
MS-DOS
- MS-DOS v1.25, v2.0, v4.0 Source Code
-
Open Sourcing DOS 4
This 4.0 code contains references to 4.00, though: https://github.com/microsoft/MS-DOS/blob/main/v4.0/src/BOOT/...
- DOS 4.0 Source Code Released Under MIT License
- Why Does Windows Use Backslash as Path Separator?
-
ST-DOS
I recently stumbled across the MS-DOS 1.25 and 2.0 source code [1].
[1] https://github.com/microsoft/MS-DOS
-
The History of Xenix
“Despite this reduction in scope for MS-DOS 2.0, it did carry many bits of XENIX. The system adopted I/O redirection via less-than and greater-than symbols, piping, a hierarchical directory tree, file handles […]”
The source code for MSDOS 2 is available and the file descriptor stuff appears to be in https://github.com/microsoft/MS-DOS/blob/master/v2.0/source/... and XENIX2.ASM. It stands in contrast to the File Control Block API which MSDOS 1 (née 86-DOS) modeled after CP/M’s API.
- MS-DOS v1.25 and v2.0 is now open-source (2014)
- MS-DOS v1.25 and v2.0 is now open-source
-
MS-DOS is now open-sourced
Asynchronous I/O figures in prominently in Windows NT. I was really surprised to see[0]:
Each driver in the chain defines two entry points; the strategy routine and the interrupt routine. The 2.0 DOS does not really make use of two entry points (it simply calls strategy, then immediately calls interrupt). This dual entry point scheme is designed to facilitate future multi-tasking versions of MS-DOS. In multi-tasking environments I/O must be asynchronous, to accomplish this the strategy routine will be called to queue (internally) a request and return quickly. It is then the responsibility of the interrupt routine to perform the actual I/O at interrupt time by picking requests off the internal queue (set up by the strategy routine), and process them. When a request is complete, it is flagged as "done" by the interrupt routine. The DOS periodically scans the list of requests looking for ones flagged as done, and "wakes up" the process waiting for the completion of the request.
I didn't realize that kind of forwarding-looking perspective was going into the design of MS-DOS.
[0] https://github.com/microsoft/MS-DOS/blob/master/v2.0/source/...
-
Exploring the Internals of Linux v0.01
>Any others I'm missing?
I would suggest MS-DOS: https://github.com/microsoft/MS-DOS
cosmopolitan
-
Python Is Portable
The reality is a bit different, the work on Python 3.6 was checked into the Cosmopolitan repo and I have been able to use it for production workloads that are in pure python. [0]
As Cosmopolitan Libc has evolved, it has been possible to compile more software without modifications, and that includes latest Python through a project called superconfigure[1].
Last person who tried to reproduce it from scratch did it last week (granted it too them a few days of solid work) but in the end they ended with a portable binary with Python 3.11.9, brotli, ssl and asyncio for their work related project.[2]
[0] https://github.com/jart/cosmopolitan/tree/master/third_party...
-
Ask HN: What Underrated Open Source Project Deserves More Recognition?
Cosmopolitan https://github.com/jart/cosmopolitan and https://justine.lol/cosmopolitan/index.html
Some genius realized that you can actually embed valid win32 programs inside valid posix shell scripts, and found a way to make a C cross-platform solution out of it, meaning that you can write C programs that compile to a single executable that will run on (quoting the site) Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS
It all started from this post.
- Cosmopolitan – build-once run-anywhere C library
-
Show HN: Usr/bin/env Docker run
For this .args file, put one argument per line. This will run on start. You can use `/zip/mydepencency.anything` to read from files, but if you have an executable dependency you'll need to extract it first.
You can do this with any software you can compile with comsocc, by adding a call to LoadZipArgs[1] in the main function.
It'seasy to get started, your ideas will branch out as soon as you start playing with it.
[1]: https://github.com/jart/cosmopolitan/blob/master/tool/args/a...
-
Libwebsockets
FWIW there is ongoing work with good progress to add websocket support to redbean (https://github.com/jart/cosmopolitan/pull/967)
- Release Cosmopolitan v3.2
- Cosmopolitan v3.2
-
Ask HN: ANSI escape sequences reference docs?
Check out this comment by jart (cosmpolitan author) here: https://github.com/jart/cosmopolitan/issues/766#issuecomment...
it might help but not sure how comprehensive it is! would it be a bad idea for you to check out the source code of other popular emulators (maybe iTerm 2^0) ?
0: https://github.com/search?q=repo%3Agnachman%2FiTerm2%20ansi&...
-
Actually Portable Vim (With a Cute Vimrc)
The binary was compiled with Cosmopolitan Libc [0], and therefore the binary will execute natively on Linux, Mac, Windows, FreeBSD, OpenBSD, NetBSD, and bare metal (BIOS boot).
I would call that portable.
[0] https://github.com/jart/cosmopolitan
-
Show HN: PyApp – runtime installer for Python applications
will go on my "to try" list where i already have cosmopolitan [2]. my last setup (windows) was shiv + wine + nsis (used that as pyinstaller had some issues)[2]
[1] https://github.com/jart/cosmopolitan/issues/141#issuecomment...
What are some alternatives?
86Box - Emulator of x86-based machines based on PCem.
libc - libc targeted for embedded systems usage. Reduced set of functionality (due to embedded nature). Chosen for portability and quick bringup.
dosbox-x - DOSBox-X fork of the DOSBox project
src - Read-only git conversion of OpenBSD's official CVS src repository. Pull requests not accepted - send diffs to the tech@ mailing list.
Chicago95 - A rendition of everyone's favorite 1995 Microsoft operating system for Linux.
SDL - Simple Directmedia Layer
qubes-issues - The Qubes OS Project issue tracker
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
emu2 - Simple x86 and DOS emulator for the Linux terminal.
luastatic - Build a standalone executable from a Lua program.
open-watcom-v2 - Open Watcom V2.0 - Source code repository, Wiki, Latest Binary build, Archived builds including all installers for download.
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io