flat assembler
Message board for the users of flat assembler.

Index > OS Construction > interrupt/trap gate in GDT

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
a115433



Joined: 05 Mar 2010
Posts: 144
a115433 07 Mar 2010, 21:45
intel manuals say that GDT may contain interrupt and trap gate.
how does they work?

when i call this gate, will it work similat to int, but on GDT?
when i jum to this gate, what will happen?


i CANT test because bochs doesnt support it.
im getting
gate type XX unsupported Sad
Post 07 Mar 2010, 21:45
View user's profile Send private message Reply with quote
ouadji



Joined: 24 Dec 2008
Posts: 1081
Location: Belgium
ouadji 07 Mar 2010, 22:26

interrupt gate and trap gate in GDT ???
where it is said in Intel manuals ?

_________________
I am not young enough to know everything (Oscar Wilde)- Image
Post 07 Mar 2010, 22:26
View user's profile Send private message Send e-mail Reply with quote
a115433



Joined: 05 Mar 2010
Posts: 144
a115433 07 Mar 2010, 23:08
chapter 3.5, SYSTEM DESCRIPTOR TYPES.
its when you set S bit to 0 in GDT/LDT. IDT also has this bit and i didnt found any info about those 'reserved?' gates.

call gates are explained, task gates work fine. int/trap = not supported Sad
Post 07 Mar 2010, 23:08
View user's profile Send private message Reply with quote
smiddy



Joined: 31 Oct 2004
Posts: 557
smiddy 08 Mar 2010, 02:11
Use Virtual Box instead of Bochs. Then there is always Virtual PC...
Post 08 Mar 2010, 02:11
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4354
Location: Now
edfed 08 Mar 2010, 06:26
then, there is always real PC, with USB boot, floppy boot, or IDE boot.

use bochs to debut the bootloader, and the kernel loader.
after, use a real pc to try your working version. and expand it.

all asm coder should have at least two PCs. one to code, and one to test in real conditions.

and about intel manuals, before to doubt of their content, read them with attention.
Post 08 Mar 2010, 06:26
View user's profile Send private message Visit poster's website Reply with quote
a115433



Joined: 05 Mar 2010
Posts: 144
a115433 08 Mar 2010, 10:35
using real pc? ur joking? you have ANY idea how long it boots?
bochs is like 2 seconds, with full debug and most important - command line.
in virtualbox i have to use fucking mouse wich is annoying at least, and boot time is also too long.

Quote:
and about intel manuals, before to doubt of their content, read them with attention.

THERE IS NOTHING ABOUT TRAP INTERRUPT GATES IN GDT!



and trap/interrupt gates doesnt work under virtualbox either Sad
Post 08 Mar 2010, 10:35
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4354
Location: Now
edfed 08 Mar 2010, 11:05
Quote:
using real pc? ur joking?


no way, but everybody is free to do what he wants no?

personnaly, my PCs boot faster that bochs.

in boot, i include, start, insert a floppy, load the floppy, execute code on the floppy.
and as long as i know, real PC works exactlly like a real PC, bochs and other don't.
Post 08 Mar 2010, 11:05
View user's profile Send private message Visit poster's website Reply with quote
sinsi



Joined: 10 Aug 2007
Posts: 794
Location: Adelaide
sinsi 08 Mar 2010, 11:57
a115433 wrote:
intel manuals say that GDT may contain interrupt and trap gate.

Where does it say that? The only reference to them I can find talks about the IDT, not GDT.

Vol 3A, 2.1.4 "Gate descriptors in the IDT can be interrupt, trap, or task gate descriptors."
Post 08 Mar 2010, 11:57
View user's profile Send private message Reply with quote
a115433



Joined: 05 Mar 2010
Posts: 144
a115433 08 Mar 2010, 12:11
chapter 3.5

When the S (descriptor type) flag in a segment descriptor is clear, the descriptor type
is a system descriptor. The processor recognizes the following types of system
descriptors:
• Local descriptor-table (LDT) segment descriptor.
• Task-state segment (TSS) descriptor.
• Call-gate descriptor.
• Interrupt-gate descriptor.
• Trap-gate descriptor.
• Task-gate descriptor.
These descriptor types fall into two categories: system-segment descriptors and gate
descriptors. System-segment descriptors point to system segments (LDT and TSS
segments). Gate descriptors are in themselves “gates,” which hold pointers to procedure
entry points in code segments (call, interrupt, and trap gates) or which hold
segment selectors for TSS’s (task gates).


you might be right. it isnt precisly stated. its just said, its encoding.


how did you made boot time of normal pc < bochs?
i have 2 pcs, and they both perform extensive bios checks.
i can disable few of them, but it still is 30 seconds of boot before my bootloader is executed.

under bochs its < 1 second.
Post 08 Mar 2010, 12:11
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4354
Location: Now
edfed 08 Mar 2010, 14:02
Quote:
how did you made boot time of normal pc < bochs?
i have 2 pcs, and they both perform extensive bios checks.
i can disable few of them, but it still is 30 seconds of boot before my bootloader is executed.

under bochs its < 1 second.


i don't want to troll.
but i confirm, my PC's boot in less time than bochs, and more, they are faster than bochs.
and better, they are more realistic than bochs
and secure, they don't crash my main PC, where bochs can crash the system or freeze.

but i don't want to troll no more, then, it was the last argument i wrote about it.
Post 08 Mar 2010, 14:02
View user's profile Send private message Visit poster's website Reply with quote
a115433



Joined: 05 Mar 2010
Posts: 144
a115433 08 Mar 2010, 16:06
how fast your pc and bochs boot then?
Post 08 Mar 2010, 16:06
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4354
Location: Now
edfed 08 Mar 2010, 16:13
[troll]
i have 3 machines:
omnibook PIII @ 800MHz (main pc) under win98, and various floppies
netbook atom @ 1.6GHz HT under XP and various USB sticks
desktop PMMX @233MHz under various

and two very old machines:

386DX compaq @ 33MHz under various
386 compaq @ 16MHz under various

and...

megadrive Sega 68000 @ 16MHz under sonic the hedgehog


my main PC boots win98 in 17 seconds (firefox included), and my floppies in 30 seconds (real floppies are naturally slow).
my two others PCs does the same with XP (or win98, or menuet, or dexos, or any) and the same with floppies
my netbook boots from USB stick in 3 to 5 seconds maxi.

bochs boots a simple floppy in 30 seconds mini, excluding the manipulations to start the boot process.
and load a .com file in 1 minute.
[/troll]


i use bochs for only one thing:

debug dangerous boot or kernel code, the ones who can completelly destroy my resisdent system if done in real boot.

i have nothing more to say. Very Happy if you want to speak with a fool, speak with my lib Laughing
Post 08 Mar 2010, 16:13
View user's profile Send private message Visit poster's website Reply with quote
a115433



Joined: 05 Mar 2010
Posts: 144
a115433 08 Mar 2010, 16:37
something is wrong with your bochs.
my boots almost immidiatly, with floppy image.
Post 08 Mar 2010, 16:37
View user's profile Send private message Reply with quote
zhak



Joined: 12 Apr 2005
Posts: 501
Location: Belarus
zhak 08 Mar 2010, 17:37
bochs is strange. it works really slow if i run dos or windows on it. (without OS it works fine) i tried to play with various settings (cpu, memory, kbd and vgs delays, etc.) but its performance is not acceptable on my core 2 duo with 2 gb of ram. something similar to running xp on pentium, i suppose. so i started using vmware. on my pc i can run 3 virtual machines without significant loss of performance under vmware.
Post 08 Mar 2010, 17:37
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4354
Location: Now
edfed 08 Mar 2010, 17:46
floppy image is not floppy.

of course, with floppy image, it is faster to load, but it is still very slow to execute, and indeed, before to start, you should say to bochs what file to use [2] or [3]
and then, execute [6]
this step is not instantaneous.

and emulator is not real machine.!
i code for a real machine, not for an emulator.

then, if you start to code, you will have no longer time to chat, and you'll find solutions by yourself. Very Happy
Post 08 Mar 2010, 17:46
View user's profile Send private message Visit poster's website Reply with quote
a115433



Joined: 05 Mar 2010
Posts: 144
a115433 08 Mar 2010, 19:56
bochs isnt for os.
its just not compatible enough and too slow.
running bochs is simple.
bochs -q -f file

under console just arrow up and enter, you can connect it with fasm compilation.
up arrow, enter, and you compile and run your code instantly.

Perfect for testing, especially bios wich you cant replace under real machine.


and emulator is real machyne, by principal Wink
just not created by transistors, but code instead. it has to be compatible.
Post 08 Mar 2010, 19:56
View user's profile Send private message Reply with quote
smiddy



Joined: 31 Oct 2004
Posts: 557
smiddy 09 Mar 2010, 12:14
You two are hilarious, it is like a soap opera! Your banter back and forth is awesome...keep it coming!
Post 09 Mar 2010, 12:14
View user's profile Send private message Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak 12 Mar 2010, 09:15
a115433 wrote:
bochs isnt for os.
its just not compatible enough and too slow.
running bochs is simple.
bochs -q -f file

under console just arrow up and enter, you can connect it with fasm compilation.
up arrow, enter, and you compile and run your code instantly.

Perfect for testing, especially bios wich you cant replace under real machine.


and emulator is real machyne, by principal Wink
just not created by transistors, but code instead. it has to be compatible.


However, in the end, a real machine is what your code is to run for. I've had many problems with bochs and other emulators, but unfortunately i don't have the spare computers to work with. I do my coding on my laptop, and i have a desktop for a server which i prefer not to boot for testing, since it's busy doing other things.

Personally, i have no choice but to do my coding with bochs, then test it on a real machine. However, lately i've been unable to do much coding due to the lack of support bochs has compared to real machines. I agree that one must be able to practically run the code, not just test it in an emulator. It'd be nice if emulators were more accurate, but they still do not follow all the standards and support all the features at the same time. In theory, yes it's possible. In practice, no, it's not being done.
Post 12 Mar 2010, 09:15
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
sinsi



Joined: 10 Aug 2007
Posts: 794
Location: Adelaide
sinsi 12 Mar 2010, 09:46
You test in Bochs, test in VirtualPC, test in VMWare, then go to the hassle of booting from a floppy...
Mind you, Bochs' debugger is worth its weight in bits (nice to see a triple fault actually happen a step at a time).
Post 12 Mar 2010, 09:46
View user's profile Send private message Reply with quote
a115433



Joined: 05 Mar 2010
Posts: 144
a115433 12 Mar 2010, 12:51
virtualpc/virtualbox SUCK at testing.
they are actually real machine, with limitations.

vmware is afair illegal, unless you pay and became property of corporation.


bochs is good, i agree it doesnt have all features of cpu, but i cant name even 1. all works for me under is, and bugs are only my fault or misinterpreted manual, like this topic.



btw: bootloader is only 512 bytes long. where can i have extra memory?
how do i obtain address of free-to-use memory in real mode? are there some standards about hardware mappings, or i have to query MSR or something else for memory?
Post 12 Mar 2010, 12:51
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.