#AntiniOS

1 messages · Page 1 of 1 (latest)

vale pebble
#

im making the git repo rn

#

so far it has:

  • a working build (obviously)
  • vga screen drawing (bare minimum)
  • a write command that can handle newlines
  • a terminal scroll which works like how it should be done where it pushes everything up only when you are on the last line and try to make a new one (rather than just making an extra line
  • a terminal management type of thing where the cursor is updated as well as clear screen is
    and thats it
#

working on a bare-bones minimum GDT rn

umbral frigate
#

nice

ivory brook
vale pebble
#

yeah im having the git protection issues

#

like ya know private email protection

ivory brook
#

2 factor autentication

#

where it sends a code

#

does it just say Hello, AntiniOS?

vale pebble
#

i literally started it today

ivory brook
#

oh kk

#

you left in bin, you usually put the bin folder in a release

vale pebble
ivory brook
#

ok

#

x64?

#

is it 32 or 64 bit

#

oh its pentium 2 or higher

vale pebble
#

ill just write the README

ivory brook
#

ok, can i clone it and build it?

vale pebble
#

yeah absolutely

#

as long as you have properly installed

ivory brook
#

ok i will try make a better kernel

#

i have all build tools and stuff

vale pebble
#

you have to manually build

#

cross-compiler

#

with gcc + g++ support

ivory brook
#

i can skip that

vale pebble
#

follow the osdev wiki to do that

vale pebble
ivory brook
#

i have other tools

#

i seen the osdev wiki

#

and i found tools compatible with i686

vale pebble
#

its specifically to strip out stdlibs and for the i686 architecture

ivory brook
#

it takes too long

#

it took me like 2 hours to build one

vale pebble
#

it takes max 30 mins for gcc to build

#

and at most 15-20 minutes for binutils

ivory brook
#

what pc u got?

vale pebble
#

without gdb

vale pebble
ivory brook
#

i mean im on pc

vale pebble
#

16 gb ram + 8 gb extended

ivory brook
#

before i was building it on school laptop

#

i got 16gb ram with i5-9400f

#

rtx 2060

#

💀 2019 pc

#

or wget actually

#

@vale pebble how do i use enable_cursor, like what args do i give it

#

for start_cursor and end_cursor

#

start pixel to end pixel?

#

or like start 80 end 25

vale pebble
#

dont use it for now

#

the cursor is enabled by default

ivory brook
#

ok

#

what are your goals, its best to make a list of goals first

#

before it gets complex and you dont know what to do next

vale pebble
#

IDT, GDT

#

and drivers

ivory brook
#

kk

vale pebble
#

not much lol

ivory brook
#

whats an idt

#

lol get the base functionality

#

then higher goals

vale pebble
#

yeah

vale pebble
#

interrupt description table or smth like that

#

*descriptor

ivory brook
#

oh ok

#

why is that needed, in osdev i have never heard of an os needing an idt

#

im downloading precompiled i686 cross compiler

#

downloading a build script

#

GOSH DANG i wanna quickly build this awesome os

#

AntiniOS is gonna be a big project soon

#

UGH my wsl keeps crashing

odd maple
#

if yes, you need an IDT

#

or IVT in real mode

ivory brook
#

so idt

odd maple
#

🤦‍♂️

#

i686 is about the available instruction set

#

you can still run real mode on a Pentium Pro

#

and use cmov in real mode

ivory brook
#

i686 means 32 bit

#

you can emulate an 8088/8086 on an i686 supporting cpu, but its not i686 mode

#

we are writing i686 mode

#

well, im trying to work on pratyushes code, but he/she wrote it

odd maple
ivory brook
#

there is no i686 real mode

odd maple
#

there is

regal ferry
#

there is

ivory brook
#

nah

odd maple
ivory brook
regal ferry
#

are you referring to protected mode?

left yoke
#

@harsh cargo

odd maple
ivory brook
#

they are different modes

odd maple
#

well

#

there is 64-bit mode tbf

#

but it's a submode of long mode

#

smh

harsh cargo
#

I only use chonk mode

ivory brook
#

32 bit is submode of protected, 16 bit is submode of real

odd maple
odd maple
#

there's 16-bit protected mode

#

there's 16-bit compatibility mode under long mode

umbral frigate
#

Why are you arguing with someone clearly more knowledgeable than you

#

Mark

ivory brook
odd maple
ivory brook
odd maple
#

is Windows 3.1 not 16-bit?

left yoke
odd maple
#

is OS/2 1.x not 16-bit?

ivory brook
#

so technically kinda

odd maple
#

you're spreading misinformation

#

which violates rule 11 of this server

ivory brook
#

huh misinformation

#

it isnt misinformation if i didnt know that it was

#

sooooooooooooooooo

odd maple
#

it is

ivory brook
#

it isnt a rule violation

harsh cargo
#

murder is not a crime if I didn't know it's a crime

regal ferry
odd maple
#

well, it is, you're just not getting punished for it if it was accidental

ivory brook
#

misinformation is someone knowingly spreading it

regal ferry
#

you're ignoring anyone correcting you

odd maple
# ivory brook misinformation is someone knowingly spreading it

Misinformation is incorrect or misleading information.[1][2] Misinformation can exist without specific malicious intent; disinformation is distinct in that it is deliberately deceptive and propagated.[3][4][5] Misinformation can include inaccurate, incomplete, misleading, or false information as well as selective or half-truths.[6][7]

#

you're confusing it with disinformation

ivory brook
#

correcting me? can i not think of things in my own way

odd maple
#

are you actually trolling?

regal ferry
#

the thing is though x86 is a specific thing

#

and how it works is very specific

umbral frigate
#

Bruh

regal ferry
ivory brook
regal ferry
#

do you know what that mode is called

ivory brook
#

oh thats just a better 64 bit

umbral frigate
#

Yeah but what is it called

ivory brook
#

EXTRA LONG MODE

regal ferry
#

no

umbral frigate
#

Wrong

regal ferry
#

it's called 12-wedding-cakes mode

umbral frigate
#

^

odd maple
#

ok

#

now I shall explain to y'all idiots what is what

vale pebble
#

what is going on?

#

guys im a bit out of touch

#

what happened here

#

@odd maple hes dm'ing me saying you banned him for trolling

#

im so confused rn

regal ferry
#

he was trolling

odd maple
#

tell him to DM me under "lukflug"

#

my DMs are open

odd maple
#

yeah

left yoke
#

if he disagrees, he can dm me or lukflug

vale pebble
#

what exactly was he trolling about

#

i dont know about modes too much and im reading the intel manual which i got

#

so i cant comment ig

#

i just read chat history

regal ferry
vale pebble
odd maple
# odd maple now I shall explain to y'all idiots what is what

i686 either refers to an instruction set, namely the instruction set of the Pentium Pro, or a generation or set of processors which have the capabilities of the Pentium Pro.
There is no such thing as "i686 mode". There's real mode, and there's protected mode, which was introduced with the 286. The 386 introduced 32-bit registers, which can be used in either mode. In addition, it added certain flags to segment registers, allowing for 32-bit code segments, where 32-bit registers and effective addresses are used by default, and 16-bit registers and effective addresses require a prefix. In the previous 16-bit mode, it's the other way around, 32-bit requires a prefix. In particular you can have both 16-bit and 32-bit segments in both real mode and protected mode. In real mode, it's 16-bit by default, and you can change it to 32-bit using some trickery. In protected mode, it's determined by GDT and LDT entries, where 16-bit and 32-bit segments can exist side-by-side.
16-bit and 32-bit mode just refer to which code segment happens to be loaded.
The 386 also introduce virtual 8086 mode, where you can have segments behave similar to how they would under real mode, if you set a bit in the flags register (which usually can only be done through hardware task switching). The 386 also introduced optional paging in protected mode.

vale pebble
#

he said that in markos thread too

regal ferry
#

i686 is an instruction set

odd maple
#

In particular, the 486, Pentium, and Pentium Pro are not that different in terms of the available modes. The only difference is that they introduced additional settings to paging.

vale pebble
odd maple
#

Like write protection, large pages, global pages, PAE, and PSE-36.

vale pebble
odd maple
#

Well, that's why no modern OS uses real mode.

vale pebble
odd maple
#

yes

#

or long mode

#

for the 64-bit ones

left yoke
#

pmode is pretty dead too

regal ferry
left yoke
#

all new shit goes long mode

regal ferry
#

you only have 1mb of ram though unless you do some shit with segments

vale pebble
left yoke
#

yes

regal ferry
#

your choice

odd maple
vale pebble
regal ferry
#

cross compiler?

#

why

vale pebble
regal ferry
#

you don't even need to build a cross compiler for that

odd maple
left yoke
#

@quaint quest

#

.!t limine

quaint questBOT
left yoke
#

enjoy

vale pebble
#

im staying with grub till i die

regal ferry
#

bad idea

left yoke
#

limine makes your life a lot easier

#

but we won't force you to go that way

vale pebble
#

i mean at some point ill add it in my makefile to support limine templates but not now

odd maple
# odd maple i686 either refers to an instruction set, namely the instruction set of the Pent...

Then, with x86-64, long mode was introduced. Everything that existed before is now grouped under legacy mode.
Long mode has a similar thing to protected mode, where code segments can be 16-bit, 32-bit, or 64-bit.
Under 64-bit mode, segmentation is largely ignored. But you can also have 16-bit and 32-bit code segments, which allow for old 16-bit and 32-bit code to run under long mode.
Those are called 16-bit and 32-bit compatibility mode.

left yoke
#

limine can boot multiboot kernels btw

odd maple
#

So therefore don't talk in terms of 16-bit, 32-bit, and 64-bit modes.

vale pebble
odd maple
#

First, because there's pure 16-bit protected mode.

left yoke
#

but the limine boot protocol drops you in long mode directly

odd maple
#

And secondly, long mode has 16-bit and 32-bit compatibility modes as well!

vale pebble
left yoke
odd maple
#

So 64-bit mode is a term that isn't the same thing as long mode.

#

The Intel SDM calls long mode "IA-32e mode"

vale pebble
#

@odd maple you got any GDT references by any chance where it is actually documented for relatively new coders

vale pebble
#

▶ All videos: https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M
▶ Sources https://github.com/AlgorithMan-de/wyoos/commits/master
I show you how to set up a Global Descriptor Table, which is a prerequisite of setting up the Interrupt Descriptor Table, through which you receive data from your hardware.

▶ Play video
odd maple
#

it's fairly easy

#

it's just an array of stuff

vale pebble
#

@odd maple frickin linker

regal ferry
vale pebble
regal ferry
#

or whatever you're compiling

vale pebble
#

or all kernel files

left yoke
#

give github or soemthing with the stuff on it

vale pebble
#

gimme a sec

left yoke
#

aight

vale pebble
#

also github is somewhere above in the start of the thread

#

synced

vale pebble
#

im gonna go sleep

#

talk to y'all in 9 hrs if someone msgs

vale pebble
#

latest report : rebuilding cross compiler with x86_64-elf target

#

and retrying the whole code

queen compass
#

My makefile will be edited.

#

And there will be a switch between grub and limine

#

PROTOCOL=multiboot

#

And multiboot2

#

Right?

#

@full bramble sorry for ping, is this the way to boot a multiboot kernel?

vale pebble
#

well im having some issues with multiboot

#

im able to build the bin file

#

but its terribly hard to make it work with grub

#

you have a x86_64 compatible grub.cfg?

#

@queen compass

queen compass
#

Wdym

vale pebble
queen compass
#

Grub

vale pebble
queen compass
#

I cant rn

#

My os is 32bit

#

tho

vale pebble
queen compass
#

For 64

vale pebble
#

im trying to port over 64 bit

#

well i hope fastos gets 64bit soon

queen compass
#

You can just boot the 32-bit assembly which starts 64-bit long mode

#

I dont see why u would need another grub.cfg for that

vale pebble
#

grub is also telling that it cant find valid multiboot header

queen compass
vale pebble
queen compass
#

Well blud

vale pebble
#

i just picked the default files from 32 bit osdev sample

queen compass
#

Yeah

vale pebble
#

i will break a shit ton of things if i tried to write a new one

queen compass
#

And do you have the hdr in the boot.s

vale pebble
queen compass
#

Have u changed linker

#

Call or script

vale pebble
#

im looking online on how to do so

queen compass
#

Have u changed grub.cfg?

#

Show me

#

Grub.cfg

vale pebble
queen compass
#

Try just multiboot

vale pebble
#

yeah i need to get a loader.bin

queen compass
#

Since the default files use multiboot

vale pebble
queen compass
#

Not multiboot2

vale pebble
#

i switched to multiboot2 cuz of that

#

now it just boot loops

queen compass
#

Then switch ur hdr too

queen compass
#

loader.o

vale pebble
#

@full bramble switching to limine 🥳 (i am not spending 7 hrs to debug this shit)

#

or i might spend 7 hrs to debug this shit

#

cuz i plan to make it actually good

#

idk

full bramble
#

lol

woven light
#

how does using limine make it not "actually good"

vale pebble
#

limine is fkin awesome

#

im just not sure what KASLR means but ig ill keep it

woven light
#

its very similar to normal ASLR

vale pebble
crimson pelican
#

lol

vale pebble
#

ig ill keep it for debugs

crimson pelican
#

it randomizes where things appear when you kernel is loaded

woven light
crimson pelican
#

iirc its the hhdm base, and the kernel binary (if its relocatable)

vale pebble
woven light
#

what does that even mean

#

what do you think ASLR is?

vale pebble
#

as in prevents memory corruption

woven light
#

no to both

umbral frigate
#

A quick google lookup would have told you it stands for address space layout randomization

vale pebble
#

ok wait it works now

#

it generates a bin file finally

#

now its time to automate limine process

mild carbon
#

it literally makes debugging worse

vale pebble
#

nvm

mild carbon
#

@full bramble u really should disable ASLR by default because it confuses the shit out of people LULW

vale pebble
#

its just a default separate boot option

#

the regular is KASLR disabled

umbral frigate
#

Yeah it isn’t

#

But the template project kinda „promotes“ it

#

Iirc it’s on the first entry, but I may be wrong here?

mild carbon
#

yeah i wouldnt promote it there

#

just hide it until its actually needed

vale pebble
#

the second one is KASLR enabled

#

@odd maple idk whats with limine but its just not loading things properly

odd maple
#

you seem to not have built the image correctly

#

it's missing some files

vale pebble
#

but i do indeed have the files setup exactly how limine specifies

#

infact theres not a single build error

#

i have the file in /boot/limine/limine-bios.sys

#

as its recommended

#

but i have tried moving it to /boot or /limine

#

ill push the code wait a sec

odd maple
#

are you not using the makefile that came with the template?

odd maple
#

try to get that one working

#

and then compare with what you have

vale pebble
#

infact i was comparing both the template's makefile and mine

odd maple
#

then compare both and see where the difference lies

vale pebble
vale pebble
#

atleast in the .iso section which the default make runs

#

i pushed the code

#

Also I’m outside for a bit so I’ll be back to my desktop later

full bramble
#

a few days ago

#

the other alternative is removing it entirely

#

lol

vale pebble
#

@full bramble sry for the ping but you got any solution

vale pebble
full bramble
#

you've probably screwed up the build system by attempting to remake it

vale pebble
#

i do get a peculiar error msg

#
xorriso : WARNING : EFI boot equipment is provided but no directory /EFI/BOOT
xorriso : WARNING : will emerge in the ISO filesystem.
#

i mean its a warning

#

but i can assure you the error is somewhere here

#

i dunno how to avoid it

#

does anyone know how to set the directory

#

for xorriso

#

like root iso dir

#

heres my xorriso cluster command

#

it just sets the root dir to the repo source dir (aka repo root dir)

#

i wouldnt say source since src is a separate folder but you get the point

#

it should be in limine_building/iso/

#

thats where everything is copied

#

lmao my answer was in my question

#

i just had to change . to iso dir

#

damn i just spent 5 hrs on this issue

#

wait why isnt it running

#

oh right

#

new function nvm

umbral frigate
vale pebble
#

btw is there any good like terminal

#

handlers

#

or like things to control the limine framebuffer

#

since i have no idea how to

umbral frigate
#

theres flanterm

#

.!t flanterm

quaint questBOT
#
Command executed by RüdigerDerZweite
Command Error
Type

ArgumentError

Details

Tag not found.

umbral frigate
#

But you can also write your own

vale pebble
#

wait hold on

#

what does it have

#

like just write functions or like full blown color management and everything

#

also any bold support? 🥹

tropic ibex
#

You feed it escape sequences and it does colour and stuff

#

I use it in my kernel

vale pebble
#

i hope it is lol it would make the task so much easier

tropic ibex
#

Yeah

vale pebble
#

i think it was \033[1m

full bramble
#

it does not do bold

#

by actually bolding

#

it changes the colours to be bright though iirc

#

which is what a lot of other terminals do as well

vale pebble
#

damn flanterm doesnt work

#

been trying for the past 7 hrs

umbral frigate
#

How does one mess up this badly

#

It‘s a single init function and then calls to write()

mild carbon
#

lol

#

you have to be a special kind of person

vale pebble
#

im trying to port the code to cpp

#

dont want any C code in the project 🤷🏻‍♂️

mild carbon
#

porting c code to c++ has never been done before

vale pebble
#

most c code is just c++ code indirectly

regal ferry
vale pebble
regal ferry
#

it really doesn't matter

#

you can just use flanterm as is

vale pebble
regal ferry
#

nothing wrong with that again

tropic ibex
#

You dont even need to have flanterm in your codebase

#

Just download the source code at build time or use a git submodule or something

vale pebble
#

@odd maple not too sure what im doing now but i just cloned flanterm freshly and the code is causing compile issues

#

fresh code straight from source

odd maple
#

well, maybe don't crop out part of the error message

umbral frigate
#

^

vale pebble
#

btw i did solve most of these errors when i converted them to c++ and casted different types, the label one is still there tho

mild carbon
#

why the hell are u compiling C as C++

#

are you literally including a .c file in a .cpp?

odd maple
#

are you compiling C source files as C++?

#

cuz under C void* conversion shouldn't be an error

vale pebble
mild carbon
odd maple
#

OMFG

vale pebble
mild carbon
#

least insane flanterm user

vale pebble
odd maple
#

🤦‍♂️

#

that's not much better

#

omfg

#

sorry

#

my patience has been relatively low lately

mild carbon
#

how about u learn how C/++ works

vale pebble
vale pebble
odd maple
#

especially a C source file into a C++ source file?

#

why not compile the C source file in a separate translation unit

vale pebble
odd maple
#

as actual C, and not C++

vale pebble
#

than separate files

odd maple
tropic ibex
mild carbon
#

like

vale pebble
#

ig ill just build it separate

odd maple
#

you didn't

mild carbon
#

this is why osdev says 10 years of experience needed

odd maple
#

or well

#

how the build system in the Limine C Template is intended to work

odd maple
#

but it's kinda true

vale pebble
#

of flanterm

mild carbon
#

do u still not understand what u did wrong?

vale pebble
#

ik

#

im trying to compile it separately and link them together

mild carbon
#

linked?

vale pebble
mild carbon
#

do u know what the include directive does?

odd maple
#

I guess there's two things:

  • you need enough programming experience to immediately and intuitively understand how hierarchical page tables, like those in x86, work
  • you need enough experience with C to know how a project is typically structured (i.e. header and translation unit conventions, how the linkage works, etc ...)
vale pebble
mild carbon
#

can you see how this just can't work

odd maple
#

you can't compile them in the same translation unit

#

you can't compile it as C, cuz C++ features would be missing

#

you can't compile it as C++, cuz no automatic void * conversion

mild carbon
#

The goto skips variable 'constructors'

#

Thats not allowed

tropic ibex
#

It isnt even that hard to add a rule in the makefile to build .c files with gcc and .cpp files with g++

mild carbon
#

Cant think of anything more trivial

umbral frigate
#

Correctly including header files maybe

vale pebble
#

im not sure how to include flanterm in kernel tho

odd maple
#

why not compile it the proper way

#

i.e. separate translation unit

vale pebble
odd maple
#

yes

vale pebble
#

separate .o files?

odd maple
#

yes

vale pebble
odd maple
#

like every sane C/C++ project does

odd maple
#

you pass all .o files to the linker

vale pebble
#

for kernel

odd maple
#

?

vale pebble
#

just tell me that

odd maple
vale pebble
#

or atleast how to use flanterm in kernel

odd maple
#

like you would for any other thing

#

include the headers in each translation unit where the definition is used

#

compile every translation unit

#

and then link the resulting object files

vale pebble
odd maple
#

wdym "cuz compilation"

#

it should work

vale pebble
#

compiling it separately

#

but as 1 .o file

#

i mean 2, one for flanterm, the other for kernel

odd maple
#

so

#

you can still include the header

#

that's what the header is for

#

to be included in every translation unit

vale pebble
odd maple
#

huh?

#

that's not correct, I think

#

you need two separate compiler invokations

#

plus

regal ferry
odd maple
#

this is not how makefiles are suposed to work

#

just use the Limine C Template

#

for the love of god

#

well

#

you need to add rules for C++

#

but you can just copy and paste the rules for .c files

vale pebble
odd maple
#

how long with C/C++?

vale pebble
regal ferry
#

uhh..

umbral frigate
#

You sure

odd maple
#

have you ever done a project that involved more than one translation unit?

vale pebble
umbral frigate
#

How many lines are we talking

odd maple
#

and learning more about C or C++

vale pebble
odd maple
#

before engaging in such an endeavor

odd maple
umbral frigate
vale pebble
odd maple
#

for the reasons infy pointed out

#

still

regal ferry
#

compile them separately

odd maple
#

^

vale pebble
odd maple
#

you cannot expect to do an entire kernel in a single source file

umbral frigate
vale pebble
umbral frigate
#

This isn’t about preference

vale pebble
vale pebble
regal ferry
#

no no no no

odd maple
odd maple
#

to produce separate outputs

#

to be linked together later on

vale pebble
odd maple
#

ok, nvm

#

you can actually do it in a single invokation

#

still, I'd do it in two invokations

#

and as separate recipes

vale pebble
regal ferry
#

linking

vale pebble
#

just this?

vale pebble
odd maple
#

or whatever the appropriate path is

#

you just include the header

regal ferry
#

oh i misunderstood

#

mb

odd maple
#

then you compile them in separate compiler invokations

#

then you link them with the linker

#

the recipe for the kernel image should contain as dependencies the object files

#

and the recipe should be to link those object files and produce the image

#

the recipe for the object files should be the compiler invokation for each respective object file

vale pebble
odd maple
#

?

#

you just include the header

#

the .h file

regal ferry
#

may i ask what's your project setup

odd maple
#

except without the .c files

#

the .c files are compiled separately

#

and then linked

vale pebble
#

just updated rn

regal ferry
#

unrelated but why do you have VGA text mode files when you're gonna use flanterm

vale pebble
#

its from when i used multiboot

#

ignore it for now 😅

regal ferry
#

fair

queen compass
#

Put them in a disabled dir or smth

#

In case u would want to switch back for some reason

vale pebble
#

isnt too hard tho, at most i just added casts thats it

#

and it wont work 100% due to the goto just not working

regal ferry
#

limine protocol never drops you into text mode iirc

queen compass
#

Yeah

#

But i mean if he wants to switch back into multiboot

vale pebble
queen compass
#

Um u can x86_64 with multiboot

vale pebble
#

multiboot doesnt support x86_64

#

even if it does its far more limited than using limine boot protcol

regal ferry
#

not 64-bit mode

queen compass
#

Ye ye ye

#

But u can switch

regal ferry
#

there's no benefit if you downgrade from limine

regal ferry
vale pebble
regal ferry
#

no it doesn't

vale pebble
regal ferry
#

the bootloader does though

vale pebble
regal ferry
#

yes but tbh it's not really worth it to support an older architecture

#

you're way better off just using the limine protocol

vale pebble
#

cuz its a wreckin hell to get limine boot protocol on grub

#

i just really wanted grub themes

regal ferry
umbral frigate
regal ferry
#

since never

umbral frigate
#

It was more of a rhetorical question

vale pebble
#

and if you do you kinda have to manually build grub yourself to a point where all limine deps are satisfied

#

its possible, just next to impossible

wary fossil
#

it's GRUB, what do you expect

vale pebble
wary fossil
#

yeah, uh, no

#

wait no sorry

#

Oh yeah I'm feeling so so much more powerful right now!!! All glory to GRUB!!

frozen geyser
vale pebble
vale pebble
frozen geyser
#

you'd need to write shit for grub though, atp you might as well just write themes for limine

wary fossil
#

you're seeing your bootloader like for a second at best

vale pebble
#

i mean theres linux boot protocol tho,... at that point just fork linux i suppose

frozen geyser
#

unless ur OS gets stuck in a bootloop xD

wary fossil
#

fair

#

or you load your entry manually

vale pebble
#

this just doesnt work rn

wary fossil
frozen geyser
vale pebble
#

also im stuck with trying to link flanterm

vale pebble
#

not to mean its a good one but like sure

wary fossil
#

lol

frozen geyser
vale pebble
frozen geyser
#

to include you just do #include "filepath"

vale pebble
frozen geyser
vale pebble
vale pebble
frozen geyser
#

compile with gcc

#

lmfao

vale pebble
#

read the args carefully

#

its not running under g++

frozen geyser
vale pebble
#

i tried porting to c++ but goto statements didnt work cuz of constructors so...

frozen geyser
#

and just do gcc there or whatever ur c compiler is

vale pebble
wary fossil
#

pro tip: more common names for COMPILER and COMPILER_FLAGS are CC and CFLAGS (or in your case, CXXFLAGS)

vale pebble
#

a separate command you mean?

frozen geyser
#

and then you just link everything together

#

every object

vale pebble
#

the kernel doesnt have access to flanterm

frozen geyser
#

once it gets linked

vale pebble
frozen geyser
#

brother 🙏 learn how compiling works

frozen geyser
#

it gets linked together later on

woven light
frozen geyser
#

with ld

vale pebble
#

tf will i do

woven light
#

do you know what compiling and linking are?

frozen geyser
vale pebble
hollow edge
#

ok you are stupid

odd apex
#

um yo dude not to be rude or anything, but like

#

why you including a cpp file 😭

wary fossil
# vale pebble tf will i do

if you're compiling them separately, i believe you can just extern void flanterm_init(); or whatever the flanterm functions are, and link everything together with ld in the end so it finds the references to the functions

odd apex
hollow edge
#

im sorry to tell you this, but you should uhh learn how to code? before making a fucking kernel

odd apex
#

and why does the cpp file have include guards 😭

hollow edge
#

LMAOO

vale pebble
woven light
#

in the screenshot they just sent

frozen geyser
odd apex
#

src/console/terminal.cpp

frozen geyser
vale pebble
# odd apex

dude that code is not in use... its completely separate, it was there for VGA testing

hollow edge
vale pebble
#

right yeah that was for temproary checking

frozen geyser
#

@vale pebble my best tip for you right now:
Restart from scratch, clone the limine template AGAIN and begin from there.

vale pebble
#

also thats VGA code, when i was using multiboot

wary fossil
odd apex
#

ay my suggestion, learn c

#

then learn cpp

vale pebble
odd apex
#

understand the differences

#

write other code

#

write some like

#

idk

odd apex
#

linux coreutils for fun

frozen geyser
#

limine template has everything working for you already

odd apex
#

learn some c and cpp

#

then try a kernel

vale pebble
vale pebble
frozen geyser
wary fossil
#

it's kinda like saying "i'll write my own bootloader to learn how an OS works"

odd apex
frozen geyser
#

and you wouldn't be putting include guards on a C++ SOURCE file

vale pebble
#

its not even being part of the source code rn

#

as in build process

#

its just there from when i used multiboot

#

yet to remove it

vale pebble
frozen geyser
#

🙏

hollow edge
#

🙏

vale pebble
#

sigh

#

back to productive work

full bramble
#

all you need is to dump flanterm in and you're good to go

#

but someone removed fences, so...

vale pebble
full bramble
#

by having a decent makefile

#

the one you removed

rocky parcel
#

Let’s say you’re getting a taste of your own medicine

vale pebble
#

i need knowledge > self-esteem on this server

rocky parcel
#

🤷

vale pebble
#

also i dont really be rude

#

there are just a shit ton of newbies on the cosmos server

odd maple
vale pebble
mild carbon
#

so you arent a newbie

regal ferry
#

intermediate language

#

it's what .net languages compile into

odd maple
#

oh

odd maple
rocky parcel
wary fossil