GNU General Public License v3.0

项目介绍

dosemu2/fdpp 是一个托管在 GitHub 上的开源项目,主要使用 C 编写,采用 GNU General Public License v3.0 许可证,目前获得 246 个 Star、25 次 Fork。

仓库全名
dosemu2/fdpp
开源许可证
GNU General Public License v3.0
Star 数
246
Fork 数
25
未关闭 Issue
11

README 摘要

fdpp what is fdpp? fdpp is a 64-bit DOS core. It is based on a FreeDOS kernel ported to modern C++. In short, FreeDOS plus-plus. Can be compiled with clang (or, since v1.10, experimentally with gcc) and booted under dosemu2. building and installing Run ./configure.meson [-c] [-b ]. This creates and configures the build dir and prints the instructions for the further build steps. It should also inform you about any…

完整内容见 GitHub 原始 README 或本页 。

常见问题

fdpp 用什么语言开发?

主要使用 C 编写,采用 GNU General Public License v3.0 许可证,目前有 246 个 Star。

fdpp 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 fdpp 的源码?

可以直接克隆仓库:git clone https://github.com/dosemu2/fdpp.git,默认分支为 master;安装与运行步骤见仓库 README。

fdpp 最近还在维护吗?

仓库最近一次更新为 2 周前,当前有 11 个未关闭 Issue;Star 数为 246,可作为社区活跃度的参考。

关于

FreeDOS plus-plus, 64bit DOS

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
303
价值分
155
活跃状态
活跃

语言占比

Assembly
C
C++
Linker Script
Makefile
Meson
Shell

Release

  • 1.118月18日
  • 1.102025年10月6日
  • 1.92024年12月31日
  • 1.82024年8月7日
  • 1.72023年9月22日

README

fdpp

what is fdpp?

fdpp is a 64-bit DOS core.
It is based on a FreeDOS kernel ported to modern C++.
In short, FreeDOS plus-plus.

Can be compiled with clang (or, since v1.10, experimentally with gcc) and booted under dosemu2.

building and installing

Run ./configure.meson [-c] [-b <build_dir>].
This creates and configures the build dir and prints the instructions for the further build steps. It should also inform you about any missing build-dependencies, which you need to install.

-c stands for clang build.

installing from pre-built package

For the ubuntu package please visit this PPA. Fedora packages are here.

running

The simplest way to get it running is to use dosemu2.
Get the pre-built dosemu2 packages from ubuntu PPA or from COPR repo or build it from sources.

configuration

fdpp uses fdppconf.sys file at boot. This file has the standard format of config.sys with some syntax extensions. It is fully backward-compatible with the DOSish config.sys, and if fdppconf.sys is missing, config.sys is attempted instead.

but what it actually is? why dosemu2?

fdpp is a user-space library that, as any DOS, can run DOS programs. Being a library, it can’t act on its own and needs a host program to operate. This also means it can’t be booted from the bare-metal PC, as the original freedos could.
The host program needs to provide a couple of call-backs for running real-mode code in v86 or similar environment. See this code as an example of providing call-backs to fdpp, and this code as an example of the boot loader. Sufficiently DOS-oriented kernels like freedos-32 or pdos/386 are the good candidates for running fdpp in the future.

what fdpp technically is?

A meta-compiler that was initially able to compile the freedos kernel from its almost unmodified sources. As the project evolves, the ability to compile freedos from the unmodified sources have lost its value and was dropped, as our copy of freedos is now heavily modified. As the result, the compiler is very small and is targeted only to our coding patterns.
The main tasks of it are to parse FAR pointers and generate thunks to real-mode asm code of freedos. As with any other compiler, fdpp is supplied with a small runtime support library and a dynamic linker.

compatibility

Simply put, fdpp runs every DOS program we tried, so the compatibility level is supposed to be very high. Better than that of most other known DOS clones, including FreeDOS.
If you find some compatibility problems, please report a bug.

portability

fdpp can work in any environment with STL/C++ runtime & minimal posix support. The build requirements are in line with today’s posix-compatible environments.

FreeDOS

FreeDOS kernel is a DOS-compatible kernel that is used as a core of fdpp.

dosemu2

dosemu2 is a virtual machine that allows you to run DOS software under linux. It is a primary host platform for fdpp.

similar projects

dosbox

dosbox has a good built-in DOS written in C++. It is tightly coupled to dosbox; you can’t easily port it to your project, whereas fdpp is designed to be plugable. Also it uses host APIs and libraries for filesystem access, CD-ROM playing and similar things. fdpp uses no host APIs or libraries, which may be good or bad, depending on your use-case. dosbox is cleanly written in C++, whereas fdpp wraps the C-coded freedos kernel into a C++ framework, resulting in a nuclear C/C++ mix.

freedos-32 (inactive)

freedos-32 is a kernel written with DOS compatibility in mind. It has a rich user-space part with libc. Very good candidate for running fdpp. Unfortunately, the kernel was scrapped, and currently something else is being developed.

PDOS/386

pdos/386 is a Public Domain Operating System with a user interface as simple as MSDOS. It supports a “theoretical 32-bit MSDOS API” (probably similar to that of 32-bit DOS extenders) and some of the Win32 API, allowing a subset of Windows executables to be run. PDOS/386 is good enough to run gcc, as, and ld to rebuild itself.
As for running fdpp - pdos/386 is a very promising project, but its author seems to be reluctant at adding v86 support, preferring to switch to real mode for bios calls. The lack of v86 leaves very small room for fdpp and for DOS programs in general unfortunately.

评论

暂无评论