Page 1 of 1

Antti's operating system

Posted: Fri Dec 21, 2018 9:42 am
by Antti
This is definitely too early to release anything but it is better to have a reality check every now and then. I am almost sure that external review helps and if I continued for too long without any feedback, it would be harder to tolerate criticism. I try my best to learn from all feedback but there might be some stylistic aspects that are simply part of the project and not likely to change.

If someone likes to test the build system, I would appreciate it. Here is the latest commit message:

Code: Select all

The Dancy source tree is now a little bit more "self-hosting" because
a bootable .ISO is written by a "native" tool. If everything works as
intended, on a Unix-like computer it is possible to build the project:

        git clone https://github.com/Tiihala/Dancy.git
        cd Dancy
        make

It requires that the host system has "nasm" (an assembler) installed
and that the system is capable of building a cross compiler. However,
operating system hobbyists most probably have all prerequisite tools
available by default. The biggest drawback is that building the cross
compiler takes time but this is needed only once. A target "clean" in
the Makefile does not remove the external tools but "distclean" does.

        (No root privileges are needed, and should not be used)

The releases, disk images and the .ISO image, will be:

        release/dancy.iso
        release/fdd720.img
        release/fdd1440.img

I think now the general structure of this project has been defined.

Re: Antti's operating system

Posted: Fri Dec 21, 2018 12:58 pm
by BenLunt
Hi Antti,

This is something that I have gotten a lot of flack over lately, "Why Windows only". Yes, I use Windows (more precisely WinXP), and have never used a *nix box. I tried to install a Linux distro one time and it was a terrible experience. But that is for another story.

I am not saying Windows is better, nor am I saying that Linux is bad, I am just saying that I have Windows (DOS) boxes all around and not a single Linux box. i.e.: No way to build your OS using the instructions you give. (Yes, I could set up a make system using GCC (for Windows/DOS) and try to do it that way...)

I guess what I am trying to get at is, can you include (at least) a zipped down version of fdd1440.img on the git as well, for those of us who don't have a linux box laying around? The ISO would be nice too. If your OS is in the pre-stages, a .zip version of your .ISO can't be more than one or two meg, yes?

Thanks,
Ben
- http://www.fysnet.net/osdesign_book_series.htm

Re: Antti's operating system

Posted: Fri Dec 21, 2018 2:00 pm
by Antti
The instructions are for building it on a Unix-like OS but it can be built on Windows too. It is hard to give exact instructions for that platform, but something like this:

Code: Select all

        1. Install "Visual Studio 2017 Community"
        2. Install "clang"
        3. Install "nasm"
        4. Make sure "clang.exe" and "nasm.exe" are in the PATH
        5. Open "Developer Command Prompt for VS 2017"
        6. Navigate to the Dancy source tree
        7. Run nmake
The unique feature is that the same Makefile works. Also, pmake ("FreeBSD") should work.

Re: Antti's operating system

Posted: Fri Dec 21, 2018 7:04 pm
by Octocontrabass
It should also be possible to build it under MSYS2, although it will require some modification to skip building the mingw32 cross-compiler since MSYS2 already provides one.

Re: Antti's operating system

Posted: Sat Dec 22, 2018 1:55 am
by Antti
@Octocontrabass, I made some modifications. Then I followed the install instructions and then ran

Code: Select all

        pacman -S make
        pacman -S gcc
        pacman -S nasm
It worked! :)

In general, because I have my own linker I only need object files from the external toolchain (the tools itself are run on the host environment but those should be as portable as reasonably possible).

Re: Antti's operating system

Posted: Sun Dec 23, 2018 1:19 am
by Antti
I added the legacy version of my operating system. There is a new floppy disk image, fdd160.img, that has the following geometry:

Code: Select all

"160K 5.25 Inch", 1 head and 8 sectors per track

(the following info is printed when running dy-mcopy with "--verbose")

        Info: bytes_per_sector  512
        Info: cluster_sectors   1
        Info: reserved_sectors  1
        Info: tables            2
        Info: directory_entries 64
        Info: directory_sectors 4
        Info: total_sectors     320
        Info: table_sectors     1
        Info: data_sectors      313
        Info: clusters          313

        Info: data_size         160256
        Info: table_size        473
        Info: cluster_size      512
        Info: total_size        163840
I tested it on DOSBox, but I don't have a real IBM PC. It requires that physical memory from 0x00000 to 0x1FFFF is available. Otherwise it just halts (safe behavior).