Skip to content

An experimental operating system project that runs at the BIOs level, but can be a functional operating system.

License

Notifications You must be signed in to change notification settings

seanpm2001/BootDown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


The BootDown project

BootDownLogo.png This image failed to load. It may be due to the file not being reached, or a general error. Reload the page to fix a possible general error.

By:

Top

README.md


Read this article in a different language

🌐 List of languages

Sorted by: A-Z

Sorting options unavailable

( af Afrikaans Afrikaans | sq Shqiptare Albanian | am አማርኛ Amharic | ar عربى Arabic | hy հայերեն Armenian | az Azərbaycan dili Azerbaijani | eu Euskara Basque | be Беларуская Belarusian | bn বাংলা Bengali | bs Bosanski Bosnian | bg български Bulgarian | ca Català Catalan | ceb Sugbuanon Cebuano | ny Chichewa Chichewa | zh-CN 简体中文 Chinese (Simplified) | zh-t 中國傳統的) Chinese (Traditional) | co Corsu Corsican | hr Hrvatski Croatian | cs čeština Czech | da dansk Danish | nl Nederlands Dutch | en-us English English | EO Esperanto Esperanto | et Eestlane Estonian | tl Pilipino Filipino | fi Suomalainen Finnish | fr français French | fy Frysk Frisian | gl Galego Galician | ka ქართველი Georgian | de Deutsch German | el Ελληνικά Greek | gu ગુજરાતી Gujarati | ht Kreyòl ayisyen Haitian Creole | ha Hausa Hausa | haw Ōlelo Hawaiʻi Hawaiian | he עִברִית Hebrew | hi हिन्दी Hindi | hmn Hmong Hmong | hu Magyar Hungarian | is Íslenska Icelandic | ig Igbo Igbo | id bahasa Indonesia Icelandic | ga Gaeilge Irish | it Italiana/Italiano | ja 日本語 Japanese | jw Wong jawa Javanese | kn ಕನ್ನಡ Kannada | kk Қазақ Kazakh | km ខ្មែរ Khmer | rw Kinyarwanda Kinyarwanda | ko-south 韓國語 Korean (South) | ko-north 문화어 Korean (North) (NOT YET TRANSLATED) | ku Kurdî Kurdish (Kurmanji) | ky Кыргызча Kyrgyz | lo ລາວ Lao | la Latine Latin | lt Lietuvis Lithuanian | lb Lëtzebuergesch Luxembourgish | mk Македонски Macedonian | mg Malagasy Malagasy | ms Bahasa Melayu Malay | ml മലയാളം Malayalam | mt Malti Maltese | mi Maori Maori | mr मराठी Marathi | mn Монгол Mongolian | my မြန်မာ Myanmar (Burmese) | ne नेपाली Nepali | no norsk Norwegian | or ଓଡିଆ (ଓଡିଆ) Odia (Oriya) | ps پښتو Pashto | fa فارسی |Persian pl polski Polish | pt português Portuguese | pa ਪੰਜਾਬੀ Punjabi | No languages available that start with the letter Q | ro Română Romanian | ru русский Russian | sm Faasamoa Samoan | gd Gàidhlig na h-Alba Scots Gaelic | sr Српски Serbian | st Sesotho Sesotho | sn Shona Shona | sd سنڌي Sindhi | si සිංහල Sinhala | sk Slovák Slovak | sl Slovenščina Slovenian | so Soomaali Somali | [es en español Spanish | su Sundanis Sundanese | sw Kiswahili Swahili | sv Svenska Swedish | tg Тоҷикӣ Tajik | ta தமிழ் Tamil | tt Татар Tatar | te తెలుగు Telugu | th ไทย Thai | tr Türk Turkish | tk Türkmenler Turkmen | uk Український Ukrainian | ur اردو Urdu | ug ئۇيغۇر Uyghur | uz O'zbek Uzbek | vi Tiếng Việt Vietnamese | cy Cymraeg Welsh | xh isiXhosa Xhosa | yi יידיש Yiddish | yo Yoruba Yoruba | zu Zulu Zulu ) Available in 110 languages (108 when not counting English and North Korean, as North Korean has not been translated yet Read about it here)

Translations in languages other than English are machine translated and are not yet accurate. No errors have been fixed yet as of March 21st 2021. Please report translation errors here. Make sure to backup your correction with sources and guide me, as I don't know languages other than English well (I plan on getting a translator eventually) please cite wiktionary and other sources in your report. Failing to do so will result in a rejection of the correction being published.

Note: due to limitations with GitHub's interpretation of markdown (and pretty much every other web-based interpretation of markdown) clicking these links will redirect you to a separate file on a separate page that isn't the intended page. You will be redirected to the .github folder of this project, where the README translations are hosted.

Translations are currently done with Bing translate and DeepL. Support for Google Translate translations is coming to a close due to privacy concerns.


Index

00.0 - Top

00.1 - Title

00.2 - Read this article in a different language

00.3 - Index

01.0 - Description

02.0 - About

03.0 - How it works

04.0 - Known limitations

04.1 - Total memory limitations

04.2 - Lack of multi-lingual support

04.3 - No Internet support

04.4 - Feature limitations

04.5 - Application support limitation

04.6 - Other limitations

05.0 - Architectures

06.0 - Concept

06.1 - From 2021 September 19th

06.1.1 - About BootDown

06.1.2 - Limitations

06.1.3 - Naming

06.1.4 - Language

06.1.5 - Logo

07.0 - Software support

07.1 - UEFI Doom

07.2 - Game Boy emulator (VerilogBoy)

07.3 - Screeen Pong

07.4 - Grub2 file manager

07.5 - BIOS Utilities

08.0 - Sample programs

09.0 - History

09.1 - Pre-history

09.2 - Alpha History

09.3 - Beta History

09.4 - Modern History

10.0 - Wiki

11.0 - Copying

12.0 - Credits

13.0 - Authors

14.0 - Installation

15.0 - 404 page

16.0 - Version history

17.0 - Software status

18.0 - Sponsor info

19.0 - Contributers

20.0 - Issues

20.1 - Current issues

20.2 - Past issues

20.3 - Past pull requests

20.4 - Active pull requests

21.0 - Resources

22.0 - Contributing

23.0 - About README

24.0 - README Version history

25.0 - Technical notes

26.0 - Footer

26.9 - End of file


BootDown

An experimental operating system project that runs at the BIOs level, but can be a functional operating system.


About

See above. Also see below for more info.


How it works

BootDown is an extension to a bootloader, but it can also be its own bootloader. It is compatible with GRUB2 as a bootloader extension.

BootDown works at the BIOs level, and the system is accessible within a few seconds of pressing the power button (on Solid State Drives) and can be considered a pre-operating system. You are booting down, not booting up.

Due to the simplicity of this boot stage, there are limitations to how BootDown works.

Known limitations

Here are the known limitations to BootDown, as of Tuesday, 2021 September 21st at 2:06 pm.

Total memory limitations

BootDown is a Bootloader extension at a very low boot level, thus it can only access 65,536 bytes of storage for its own usage. Other usage must be read from an existing partition.

Lack of multi-lingual support

This limit prevents BootDown from doing things like having lots of features, one notable loss is the lack of multi-lingual support. You can only have 1 language at a time. You will have to choose the English version if you speak English, but will need to do a separate installation if you want to choose Esperanto, Spanish, German, etc. I don't even know if Chinese language support is possible with the given constraints, due to the Chinese language being so large and complex (over half of the UTF-16 block is just Chinese radicals

No Internet support

BootDown isn't a traditional operating system, and is being done at the pre-boot stage. This means it can't access API calls or functions needed to connect to the Internet or run a web browser. Bluetooth isn't available either.

Feature limitations

Features will be split across multiple variants. For example, there will be CLI version A that has a command line plus some features, CLI version B which is the same, but with some other features, GUI version A, which contains a Graphical User Interface and some features, and GUI version B, which is the same, but with some other features, etc.

Application support limitation

Application support is only available for programs written in x86 Assembly, VHDL, Verilog, or SystemVerilog. C and C++ programs may be possible, but programs written in Python, Java, C#, Go, Kotlin, and many other languages are not supported.

Other limitations

This is still an experimental project, limitations are still being found.

Architectures

BootDown is planned to work on most modern hardware platforms, and also most legacy platforms. These include:

  • FPGA (Field-Programmable Gate Array)

  • R-PI (Raspberry Pi)

It also is planned to work with:

  • BIOs (Basic Input Output system)

  • UEFI (Unified Extensible Firmware Interface)

More architectures will be supported in the future.


Concept

From 2021 September 19th

About BootDown

BootDown is an experimental operating system project that runs at the BIOs level, but can be a functional CLI or GUI operating system that can read and write files, access hard drives, and so on, before booting into the main operating system.

Limitations

Severe limitations will be in place, such as a low file size limit, possibly pushing to partitions, and so on. I will need to research this concept more, this is an experimental project. Also, due to size reasons, multi-lingual support will be unavailable once you install. Each installation will only support 1 language.

Also, due to how basic the project is, don't expect to be able to do things like run a web browser, or using LibreOffice, but expect things like running Pong, Doom, or other games ported to Assembly, VHDL, Verilog, or SystemVerilog.

Naming

The project was originally called BL/S or BL/Ss (which stood for BootLoader System or BootLoader Subsystem) but the name was changed to BootDown, as the project is more than just a bootloader. BootDown is in reference to booting down to a lower level system, rather than booting up to a higher level system.

Language

This project is written in 4 different programming languages:

  • Assembly

  • VHDL (Virtual Hard Disk Language)

  • Verilog

  • SystemVerilog

It is supplemented by 3 basic computer languages as well:

  • GNU Makefile

  • Markdown

  • Plain text

Multi-lingual support is currently unavailable, but the project is available in English. To install in a different language, you would have to download a different installation image in your preferred language, as this system is so small that it can only support 1 language at a time.

Currently, the project has been written for the following languages:

  • English (US)

Logo

The boot from the scuba diver from the SpongeBob SquarePants movie (2004) seemed to fit this project well. I used a low resolution image, but this may not stay, as I want an original logo. I want something that resembles a dark and murky boot.


Software support

Here is the featured software that can work directly off the hardware, without an operating system. Most of these don't require BootDown to be installed, but are planned to pair with it.

UEFI Doom

From the BootDown organization: https://github.com/BootDown-dev/uefidoom

From the source repository: https://github.com/Cacodemon345/uefidoom

Game Boy emulator (VerilogBoy)

From the BootDown organization: https://github.com/BootDown-dev/VerilogBoy

From the source repository: https://github.com/zephray/VerilogBoy

Screeen Pong

From the BootDown organization: https://github.com/BootDown-dev/screen-pong

From the source repository: https://github.com/juanmard/screen-pong

Grub2 file manager

From the BootDown organization: https://github.com/BootDown-dev/grub2-filemanager

From the source repository: https://github.com/a1ive/grub2-filemanager

BIOS Utilities

From the BootDown organization: https://github.com/BootDown-dev/BIOSUtilities

From the source repository: https://github.com/platomav/BIOSUtilities


Sample programs

The ///0/ directory has some sample programs and documentation for the BootDown system. Currently, there is a README.txt file, and 2 sample programs, 1 is currently not functional.

A Hello World program is available, which is written in Assembly. It is named HELLOWLD.asm due to limitations, such as the 8:3 file system.

A modified version of the Hello World program with a Roman Empire joke is included, which is named CAESAR.asm but isn't functional yet. Instead of outputting Hello World, it outputs Et tu, boot? which is supposed to translate to You too, bootis? from Latin. The first 2 words are proper latin, but I am not sure if boot would translate to bootis this program is not functional, as it has a line with the following data:

    stab 23 ; Caesar was stabbed 23 times, although this may not be valid syntax

which may not be valid syntax.


History

This project has a short history so far.

Pre-history

This project was started on 2021 Sunday September 19th as a concept project that was thought of the same day as its creation. The other concept from this day was the ScreenTeX project the concept was partially written down in a private repository, but was made public on 2021 Monday September 20th after I created the organization for this project. The project was worked on extensively today, and the concept was further implanted. It still isn't functional yet.

Alpha history

On 2021 Tuesday September 21st, this projects README.md file was updated, and it received its own website.

Beta history

No Beta history to show for this project.

Modern history

No Modern history to show for this project.


Wiki

Click/tap here to view this projects Wiki

If the project has been forked, the Wiki was likely removed. Luckily, I include an embedded version. You can view it here.


Copying

View the copying license for this project here (if you haven't built the project yet with the makefile, here is the original link: COPYINGL

Please note that you also have to follow the rules of the GNU General Public License v3 (GPL3) which you can view here


Credits

View the credits file for this project and see the people who got together to make this project by clicking/tapping here


Authors

View the authors file for this project and see the authors of this project by clicking/tapping here


Installation

View the installation instructions file for this project here

Requirements: Jekyll, GitHub emulator (may not exist yet)


404 page

Test the 404 page for this project by clicking/tapping here

Getting a different 404 page? View the 404 page directly by clicking/tapping here


Sponsor info

SponsorButton.png

You can sponsor this project if you like, but please specify what you want to donate to. See the funds you can donate to here

You can view other sponsor info here

Try it out! The sponsor button is right up next to the watch/unwatch button.


Version history

Version history currently unavailable

No other versions listed


Software status

All of my works are free some restrictions. DRM (Digital Restrictions Management) is not present in any of my works.

DRM-free_label.en.svg

This sticker is supported by the Free Software Foundation. I never intend to include DRM in my works.

I am ussing the abbreviation "Digital Restrictions Management" instead of the more known "Digital Rights Management" as the common way of addressing it is false, there are no rights with DRM. The spelling "Digital Restrictions Management" is more accurate, and is supported by Richard M. Stallman (RMS) and the Free Software Foundation (FSF)

This section is used to raise awareness for the problems with DRM, and also to protest it. DRM is defective by design and is a major threat to all computer users and software freedom.

Image credit: defectivebydesign.org/drm-free/...


Contributers

Currently, I am the only contributer. Contributing is allowed, as long as you follow the rules of the CONTRIBUTING.md file.

    1. seanpm2001 - 46 commits (As of 2021, Tuesday September 21st at 2:40 pm)
    1. No other contributers.

Issues

Current issues

  • None at the moment

  • No other current issues

If the repository has been forked, issues likely have been removed. Luckily I keep an archive of certain images here

Read the privacy policy on issue archival here

TL;DR

I archive my own issues. Your issue won't be archived unless you request it to be archived.

Past issues

  • None at the moment

  • No other past issues

If the repository has been forked, issues likely have been removed. Luckily I keep an archive of certain images here

Read the privacy policy on issue archival here

TL;DR

I archive my own issues. Your issue won't be archived unless you request it to be archived.

Past pull requests

  • None at the moment

  • No other past pull requests

If the repository has been forked, issues likely have been removed. Luckily I keep an archive of certain images here

Read the privacy policy on issue archival here

TL;DR

I archive my own issues. Your issue won't be archived unless you request it to be archived.

Active pull requests

  • None at the moment

  • No other active pull requests

If the repository has been forked, issues likely have been removed. Luckily I keep an archive of certain images here

Read the privacy policy on issue archival here

TL;DR

I archive my own issues. Your issue won't be archived unless you request it to be archived.


Resources

Here are some other resources for this project:

Project language file A

Project language file AA

Project language file AB

Project language file AC

Project language file AD

View the editor configuration file for this project

View the linguist attributes file for this project

View the Git Ignore file for this project

View the organization for this project

Build/view the makefile for this project

Join the discussion on GitHub

View the issues/Raise an issue for this project

No other resources at the moment.


Contributing

Contributing is allowed for this project, as long as you follow the rules of the CONTRIBUTING.md file.

Click/tap here to view the contributing rules for this project


About README

File type: Markdown document (*.md *.mkd *.markdown)

File version: 1 (Tuesday, 2021 September 21st at 2:40 pm)

Line count: 0,788


README version history

Version 0.1 (Sunday, March 21st 2021 at 7:50 pm)

Changes:

  • Started the file
  • Added the title section
  • Added the index
  • Added the about section
  • Added the Wiki section
  • Added the version history section
  • Added the issues section.
  • Added the past issues section
  • Added the past pull requests section
  • Added the active pull requests section
  • Added the contributors section
  • Added the contributing section
  • Added the about README section
  • Added the README version history section
  • Added the resources section
  • Added a software status section, with a DRM free sticker and message
  • Added the sponsor info section
  • No other changes in version 0.1

Version 0.11 (Friday, July 16th 2021 at 9:20 pm)

Changes:

  • Updated several sections with corrected template syntax
  • Added the history section
  • Updated the language list switcher section
  • Updated the file info section
  • Updated the file history section
  • No other changes in version 0.11

Version 0.11B (Friday, July 16th 2021 at 9:25 pm)

Changes:

  • Fixed the footer, removed bad link (ddg.com does not redirect to duckduckgo)
  • Updated the file info section
  • Updated the file history section
  • No other changes in version 0.11B

Version 0.12A (Thursday, July 22nd 2021 at 6:26 pm)

Changes:

  • The typo SNU Erotica was removed entirely
  • Added a better name than file.svg
  • Fixed the title section
  • Fixed the index
  • Added the history section
  • Minor formatting fixes
  • Updated the file info section
  • Updated the file history section
  • No other changes in version 0.11B

Version 0.13 (2021, Saturday August 21st 2021 at 5:02 pm)

Changes:

  • Times are now compliant with ISO:8601 and use YYYY-MM-DD rather than MM-DD-YYYY
  • Updated the title section
  • Fixed and update template links
  • Updated the index
  • Added the copying section
  • Added the credits section
  • Added the installation section
  • Added the 404 page test section
  • Updated the resources section
  • Updated the contributors section
  • Added the technical notes section
  • Updated the footer
  • Updated the file info section
  • Updated the file history section
  • No other changes in version 6 (0.13)

Version 0.14 (2021, Tuesday August 24th 2021 at 9:31 pm)

Changes:

  • Times are now compliant with ISO:8601 and use YYYY-MM-DD rather than MM-DD-YYYY
  • Updated the index
  • Added the authors section
  • Updated the footer, adding support for the Swisscows search engine as a 4th option
  • Updated the file info section
  • Updated the file history section
  • No other changes in version 6 (0.13)

Version 1 (2021, Tuesday September 21st at 2:40 pm)

Changes:

  • Updated the file
  • Updated the title section
  • Updated the index
  • Updated the repo info section
  • Updated the about section
  • Added the How it works section
  • Added the Known limitations section
  • Added the Total memory limitations subsection
  • Added the Lack of multi-lingual support subsection
  • Added the No Internet support subsection
  • Added the Feature limitations subsection
  • Added the Application support limitation subsection
  • Added the Other limitations subsection
  • Added the Architectures section
  • Added the Concept section
  • Added the From 2021 September 19th subsection
  • Added the About BootDown subsection
  • Added the Limitations subsection
  • Added the Naming subsection
  • Added the Language subsection
  • Added the Logo subsection
  • Added the Software support section
  • Added the UEFI Doom subsection
  • Added the Game Boy emulator (VerilogBoy) subsection
  • Added the Screeen Pong subsection
  • Added the Grub2 file manager subsection
  • Added the BIOS Utilities subsection
  • Added the Sample programs section
  • Updated the history section
  • Updated the contributors setion
  • Updated the resources section
  • Updated the footer, adding support for the Safe.DuckDuckGo search engine option
  • Updated the file info section
  • Updated the file history section
  • No other changes in version 1

Version 2 (Coming soon)

Changes:

  • Coming soon
  • No other changes in version 2

Technical notes

All times are UTC-7 (PDT/Pacific Time)

The encoding is UTF-8 and is compatible with Unicode 5.0 and up


You have reached the end of the README file

( Back to top | Exit to GitHub | Exit to Bing | Exit to DuckDuckGo |Exit to Safe.DuckDuckGo | Exit to Ecosia | Exit to Swisscows )

EOF