Coder Social home page Coder Social logo

romainthd / romainos Goto Github PK

View Code? Open in Web Editor NEW
3.0 0.0 1.0 36.54 MB

My own OS from scratch using assembly & C++ lol

License: GNU General Public License v3.0

Assembly 15.63% C++ 78.70% Makefile 4.10% Python 1.01% CMake 0.56%
assembly asm assembly-language os operating-system cpp

romainos's Introduction

RomainOS

Here's a 64 bits OS using assembly and C++, with a display of 25x80 pixels.

Work in progress, but will probably only be continued after my other stuff (especially, a compiler).

romainos's People

Contributors

romainthd avatar

Stargazers

 avatar  avatar  avatar

Forkers

dalalsunil1986

romainos's Issues

Cross-compilation

Faut vraiment que je compile moi-même GCC et LD ou je vais avoir des problèmes

printString (16-bits, BIOS) avec cross-compilation

printString ne fonctionne plus, sûrement parce que l'origine a été supprimée.
Pas une grande perte vu que les interruptions ont été drop lors du passage 32 bits donc obsolète depuis, mais utile en cas de problème en 16 bits ?

Stacktrace:
printString.asm:12: error: impossible combination of address sizes
printString.asm:12: error: invalid effective address
printString.asm:17: error: impossible combination of address sizes
printString.asm:17: error: invalid effective address

C++: printString string littérales

Description : char str[] = "OK"; printString(str); fonctionne, mais printString("OK") non.

? Explication : les string littérales sont stockées ailleurs sur le disque, et ne sont donc pas traitées de la même manière.

Preuve : adresse d'un tableau = 0x00007bed, adresse d'un littéral = 0x0000b000

? Solution : changer le linker

Erreur sur variables sans constructeur

Exemple:

Stack<void (*)(KeyEvent)> _eventHandlers(); // Fonctionne
Stack<void (*)(KeyEvent)> _eventHandlers; // Ne fonctionne pas mais devrais

From: Linker, C++

Stacktrace:

./obj/std/io/keyboard.o: In function `__static_initialization_and_destruction_0(int, int)':
keyboard.cpp:(.text+0x290): undefined reference to `__dso_handle'
keyboard.cpp:(.text+0x29f): undefined reference to `__cxa_atexit'

Solution: Créer des constructeurs globaux, normalement déjà présents en C++

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.