Search logs:

channel logs for 2004 - 2010 are archived at http://tunes.org/~nef/logs/old/ ·· can't be searched

#osdev2 = #osdev @ Libera from 23may2021 to present

#osdev @ OPN/FreeNode from 3apr2001 to 23may2021

all other channels are on OPN/FreeNode from 2004 to present


http://bespin.org/~qz/search/?view=1&c=osdev&y=18&m=1&d=12

Friday, 12 January 2018

00:00:00 --- log: started osdev/18.01.12
00:01:42 --- join: doug16k (~dougx@174-138-193-47.cpe.distributel.net) joined #osdev
00:04:39 <geist> ah here it is. i have a 68k programmers reference manual from college
00:04:51 <geist> got it for a class that had 68k machines we hacked in the lab
00:05:18 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
00:19:17 --- quit: Belxjander (Ping timeout: 256 seconds)
00:26:06 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
00:28:09 --- quit: Humble_afk (Ping timeout: 252 seconds)
00:37:34 --- quit: Belxjander (Ping timeout: 240 seconds)
00:39:22 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
00:39:50 --- join: bm371613 (~bartek@2a02:a317:603f:9800:391:ed9f:1c09:1285) joined #osdev
00:42:28 --- quit: wgrant (Quit: WeeChat 1.4)
00:42:50 --- join: xerpi (~xerpi@199.red-83-45-193.dynamicip.rima-tde.net) joined #osdev
00:42:57 --- join: wgrant (~wgrant@ubuntu/member/wgrant) joined #osdev
00:47:15 --- join: m_t (~m_t@p5DDA3CE6.dip0.t-ipconnect.de) joined #osdev
00:51:35 --- join: nzoueidi (~nzoueidi@ubuntu/member/na3il) joined #osdev
00:53:17 --- quit: zwliew (Quit: Connection closed for inactivity)
00:57:23 --- join: glauxosdever (~alex@ppp-94-65-239-30.home.otenet.gr) joined #osdev
01:20:01 --- quit: quc (Remote host closed the connection)
01:20:14 --- join: quc (~quc@87.116.231.37) joined #osdev
01:20:33 --- quit: _Altenius (Ping timeout: 240 seconds)
01:22:14 --- quit: huaw (Ping timeout: 240 seconds)
01:22:55 <doug16k> has anyone had experience with using `#define __assume(cond) do { if (!(cond)) __builtin_unreachable(); } while (0)` to give a hint to the compiler that a condition holds at a certain point?
01:23:14 --- quit: k4m1 (Quit: bbl)
01:25:47 --- quit: bm371613 (Ping timeout: 255 seconds)
01:25:56 <doug16k> doesn't do much -> https://godbolt.org/g/CAH1DK
01:25:58 <bslsk05> ​godbolt.org: Compiler Explorer
01:26:28 <doug16k> better example -> https://godbolt.org/g/SiwiuL
01:26:29 <bslsk05> ​godbolt.org: Compiler Explorer
01:27:16 --- nick: alyptik -> because
01:27:54 --- join: Altenius (Altenius@gateway/shell/panicbnc/x-hgyhicsptjfqbzmn) joined #osdev
01:28:41 --- join: huaw (xexexepi@gateway/shell/elitebnc/x-yvndxwdxkacshdfr) joined #osdev
01:32:20 --- join: bm371613 (~bartek@2a02:a317:603f:9800:391:ed9f:1c09:1285) joined #osdev
01:33:03 <doug16k> ok, it does work -> https://godbolt.org/g/w2XuET
01:33:04 <bslsk05> ​godbolt.org: Compiler Explorer
01:36:03 --- join: Tazmain (~Tazmain@41.189.78.208) joined #osdev
01:36:36 --- join: navidr (uid112413@gateway/web/irccloud.com/x-rqdixknyerfayvvn) joined #osdev
01:41:21 --- quit: bm371613 (Ping timeout: 255 seconds)
01:41:42 --- join: bcos_ (~bcos@CPE-101-103-18-5.lnse1.fli.bigpond.net.au) joined #osdev
01:45:07 --- quit: bcos (Ping timeout: 265 seconds)
01:46:36 --- join: bm371613 (~bartek@2a02:a317:603f:9800:391:ed9f:1c09:1285) joined #osdev
01:49:41 --- quit: xerpi (Quit: Leaving)
01:52:11 --- quit: nzoueidi (Quit: WeeChat 2.0)
02:04:16 --- join: nzoueidi (~nzoueidi@ubuntu/member/na3il) joined #osdev
02:06:47 --- join: John___ (~John__@79.97.140.214) joined #osdev
02:16:47 --- quit: hppavilion[1] (Ping timeout: 260 seconds)
02:20:25 --- quit: Tazmain (Changing host)
02:20:25 --- join: Tazmain (~Tazmain@unaffiliated/tazmain) joined #osdev
02:27:23 --- quit: hmmmm (Remote host closed the connection)
02:31:56 --- join: kanzure (~kanzure@unaffiliated/kanzure) joined #osdev
02:34:53 <promach_> how should I interpret and debug https://paste.ubuntu.com/26370471/ ?
02:34:54 <bslsk05> ​paste.ubuntu.com: Ubuntu Pastebin
02:40:06 <doug16k> promach_, looks like you are writing values outside the bounds of an array. I'd need to see the source to be more precise
02:46:11 --- join: hppavilion[1] (~dosgmowdo@58-0-174-206.gci.net) joined #osdev
02:54:42 --- quit: hppavilion[1] (Ping timeout: 260 seconds)
02:56:33 --- join: hppavilion[1] (~dosgmowdo@58-0-174-206.gci.net) joined #osdev
02:56:59 <doug16k> promach_, to debug it, I'd add some assertions that verify that your head and tail are staying within the bounds of the queue
02:57:41 <promach_> doug16k: https://gist.github.com/anonymous/0737a70ea28e7bce99d103936490188f
02:57:43 <bslsk05> ​gist.github.com: fifo.c · GitHub
02:57:50 <promach_> add assertions ? how ?
02:58:25 --- join: Humble_afk (hchiramm@nat/redhat/x-lmdnzpkuxnbrsjvs) joined #osdev
02:58:44 --- join: curiosity_freak (~naveen@157.50.11.216) joined #osdev
02:59:04 <curiosity_freak> modern processors use memory mapped io or port mapped io?
03:03:12 <doug16k> curiosity_freak, both if they even have port I/O
03:03:27 --- quit: hppavilion[1] (Ping timeout: 268 seconds)
03:03:53 <curiosity_freak> any reference to learn ?
03:04:08 <doug16k> promach_, both the reader thread and writer thread are modifying array_hardware disastrously at the same time
03:05:05 <promach_> doug16k: there is semaphore control
03:05:21 <promach_> why would both threads modify array_hardware at the same time ?
03:05:23 <m712> neat, PIC is fine
03:05:34 <promach_> oh I see, array_hardware is a global pointer
03:05:37 <m712> i enabled keyboard interrupts
03:05:45 <m712> ofc it's gonna do nothing but...
03:07:05 <doug16k> promach_, semaphore control where -> https://gist.github.com/anonymous/0737a70ea28e7bce99d103936490188f#file-fifo-c-L297
03:07:07 <bslsk05> ​gist.github.com: fifo.c · GitHub
03:07:35 <curiosity_freak> doug16k: any reference to learn about how modern processors uses different i/o techniques?
03:08:02 <doug16k> curiosity_freak, modern devices mostly use memory mapped I/O
03:08:34 <doug16k> also, on some architectures, there is no port I/O
03:10:27 <doug16k> curiosity_freak, I'd suggest looking at the PCI spec, particularly the part about BARs (base address registers)
03:10:33 <curiosity_freak> doug16K: okay. i want to how memory is mapped for each and every device including bios rom.
03:10:47 <curiosity_freak> that is why asking for any references or books
03:11:21 <promach_> doug16k: thanks for your advice
03:11:29 --- join: hppavilion[1] (~dosgmowdo@58-0-174-206.gci.net) joined #osdev
03:11:29 <promach_> but how do I use assertions in c ?
03:11:35 <promach_> this is not systemverilog
03:11:37 <doug16k> curiosity_freak, sounds like electrical engineer stuff. you designing a motherboard?
03:12:14 <doug16k> promach_, in normal programs or your own kernel/libc?
03:12:15 <m712> weird... doesn't setting a bit in the irq mask make that interrupt never happen?
03:12:41 <doug16k> m712, in the PIC? sure, never happen in the future
03:12:43 <promach_> I mean in c source code. I have not compiled any kernel/libc yet before
03:12:45 <curiosity_freak> douh16k: no i want to develop a simple os. so today i wrote a simple mbr.
03:13:03 <m712> i tried to sti; hlt in kernel_main(); and as soon as I did, I got exception: unknown interrupt 0x20
03:13:04 <doug16k> m712, an IRQ could be pending already
03:13:16 <curiosity_freak> i want to that how BIOS ROM is copied to RAM for executing BIOS code?
03:13:30 <m712> which suggest that the timer is somehow interrupting
03:13:38 <curiosity_freak> so i searched and found that memory mapping happens for BIOS ROM
03:14:07 <doug16k> m712, check the IRR, one could be pending already which needs to be EOI'd
03:14:51 <doug16k> if you aren't ready for IRQs, don't enable IRQs
03:15:29 <doug16k> ah, you are already hooking them all?
03:15:56 <promach_> doug16k: I mean in c source code. I have not compiled any kernel/libc yet before
03:16:21 <doug16k> promach_, you mean creating your own assert then
03:16:27 <m712> but i checked that bit 0 in the irqmask is set
03:16:28 <m712> doug16k: could be
03:16:28 <m712> weird though, the mask is never reset during PIC init, i just pass it the same mask I got before PIC_init()
03:16:28 <m712> then in PIC_set_irq i only enable the selected bit (i tried to enable bit 1 aka keyboard)
03:17:05 <doug16k> m712, you need to set all the masks in your init code. I suggest masking everything except IRQ2
03:17:38 <m712> doug16k: hm.
03:17:43 --- quit: hppavilion[1] (Ping timeout: 248 seconds)
03:17:59 <doug16k> m712, as each driver initializes, it should selectively call something in your IRQ management code that unmasks specific IRQs
03:18:16 <doug16k> AFTER they have registered their IRQ handler
03:18:44 <doug16k> and in device init code, it is a good idea to do whatever you need to do to clear out any pending IRQs that could be pending
03:19:01 --- quit: curiosity_freak (Quit: Leaving)
03:19:13 <m712> doug16k: i see...
03:19:32 <m712> i'll try to check pending IRQs
03:19:54 <m712> i don't have a keyboard driver yet, i was just trying to get my kernel to explode after I press a key
03:20:04 <doug16k> for example, on a serial port, you read certain registers to acknowledge pending IRQs, and there's a register that tells you the interrupt reason. whatever used it before you might have left crap pending
03:20:35 --- join: kimundi (~Kimundi@p57A8966E.dip0.t-ipconnect.de) joined #osdev
03:20:44 --- quit: banisterfiend (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:21:06 <doug16k> promach_, here's my assert: https://github.com/doug65536/dgos/blob/master/kernel/lib/assert.h
03:21:07 <bslsk05> ​github.com: dgos/assert.h at master · doug65536/dgos · GitHub
03:21:22 <doug16k> it's a pretty typical design, nothing unique there
03:21:49 <latentprion> I have asserts too
03:21:57 <latentprion> Nobody ever asks me about my asserts
03:22:19 <m712> doug16k: I have exactly one (1) timer tick pencing on the IRRs. lol
03:23:10 <m712> cool test case bochs
03:23:30 <doug16k> promach_, let's say that at some point in the code you want to make sure that head is >= 0 and head < queue_size and tail >= 0 and tail < queue_size, you might have four asserts: assert(head >= 0); assert(head < queue_size); etc...
03:24:05 --- quit: quc (Ping timeout: 248 seconds)
03:24:08 <doug16k> you evaluate an expression that should always be true, if it is false, then something bad has happened
03:24:37 <doug16k> they are nice because they catch problems early, before you trashed all over memory and you have no chance of investigating the problem scenario
03:24:45 <m712> okay... i can fill the buffer of bochs, so i guess it works? it doesn't exception out though
03:24:51 --- join: curiosity_freak (~naveen@157.50.11.216) joined #osdev
03:24:55 <m712> oh son of a gun
03:24:58 <m712> of course it doesn't interrupt again
03:25:04 <m712> do I acknowledge?
03:25:10 <m712> aka EOI
03:25:15 <doug16k> yes
03:25:27 <curiosity_freak> duing booting bios copied to RAM or directly executed without copying?
03:25:40 <doug16k> when the PIC delivers an IRQ, it masks that IRQ and all lower priority IRQs (forever) until you EOI
03:25:50 <m712> yep...
03:25:59 <m712> doug16k: i was sarcastic
03:26:24 <m712> uh...
03:26:52 <doug16k> curiosity_freak, depends. copying a ROM to RAM is called "shadowing" the ROM. it is often done for speed. at the very beginning it most likely runs straight from ROM though
03:27:40 <curiosity_freak> dough16k : do you follow any book for learning OS development?
03:27:55 <curiosity_freak> you seem to know everything in detail
03:27:58 --- join: sinetek_ (~sinetek@modemcable018.210-57-74.mc.videotron.ca) joined #osdev
03:29:40 <doug16k> curiosity_freak, the only book about OS dev I have looked at is Modern Operating Systems, Tanenbaum/Bos
03:29:43 <m712> now that i acknowledge interrupts, it seems like the timer is running on its own
03:29:43 <m712> lolwut
03:30:00 <doug16k> m712, it would have been running already, the BIOS used it
03:30:12 <doug16k> probably setup to tick at 18.2 Hz
03:32:45 <m712> doug16k: but shouldn't I not get interrupts, even though it's running? bit 0 is masked on the master PIC IRQ mask
03:32:45 <m712> masked/set
03:32:49 <doug16k> 18.2 Hz is as slow as it will go, btw
03:32:53 <m712> i fucking hate this location, connectivity is horrible
03:33:15 <m712> i keep getting 120sec lags on irc
03:33:35 <doug16k> 1193181/65535 ~= 18.2
03:34:24 <doug16k> m712, what are you doing to mask it?
03:34:50 <doug16k> writing port 0x21?
03:35:25 <m712> doug16k: yes
03:35:47 <m712> son of a bitch
03:35:58 <m712> mask1 has bit 0 cleared
03:36:15 <m712> i was looking at the slave mask
03:36:16 <doug16k> in bochs right?
03:36:18 <doug16k> info device pic
03:36:31 <m712> doug16k: no i can print out the masks
03:36:40 <m712> master pic bit 0 is cleared
03:36:42 <m712> that's why
03:37:00 <m712> also i got the ports reversed
03:37:15 <m712> so i was enabling IRQ9 instead of IRQ1
03:38:01 <m712> I'm just masking everything and then enabling irq2 only
03:38:03 <m712> screw the bios
03:38:48 <doug16k> your kernel is booted already right? you shouldn't touch the PIC config until you have taken over
03:39:22 --- quit: curiosity_freak (Quit: Leaving)
03:39:23 <m712> doug16k: yes it has
03:39:23 <m712> in protected mode and all
03:39:23 <m712> TSS GDT IDT set
03:39:54 <m712> currently, master IMR = fd, slave IMR = fd
03:39:57 <doug16k> well then definitely completely initialize it
03:40:04 <m712> i disabled everything except 0xFD
03:40:08 <m712> doug16k: what do you mean?
03:40:29 <doug16k> I mean, you should take over the masks completely, only unmasking what you actually handle
03:40:38 <doug16k> why fd on slave?
03:40:46 <m712> what I'm doing
03:40:48 <doug16k> should be ff on slave
03:40:49 <m712> oops that's ff
03:40:51 <m712> i handtyped it
03:40:56 <m712> brain melt
03:41:39 <doug16k> do you handle spurious IRQs?
03:42:48 <m712> not yet
03:42:48 <doug16k> spurious = unexpectedly occurred
03:43:00 <m712> i saw that on the wiki
03:43:10 <m712> can just send EOI if it happens right?
03:43:19 <doug16k> not exactly
03:43:27 <doug16k> sending EOI is part of it
03:44:12 <m712> ?
03:44:30 <m712> also i got 0x21 by presing a key
03:44:32 <m712> yay?
03:44:41 <m712> it just panics for now
03:45:24 <doug16k> if a spurious IRQ happens on the master, you will get IRQ7. if a spurious IRQ happens on the slave, you will get IRQ15. if it is one of those IRQs, you check the IRR to see if the IRQ really happened. if it didn't happen, and it was IRQ15, then you ONLY EOI the master, otherwise you do nothing
03:45:49 <doug16k> and of course if it was spurious you don't call the IRQ handler
03:45:59 <m712> got it
03:45:59 <doug16k> ...that may have been registered by a device
03:46:15 <m712> yeah device registering will happen
03:47:07 <doug16k> m712, nice
03:47:32 <m712> doug16k: when i implement PMM+VMM+scheduling+threads i'll put drivers on their own threads (except things like PIT which probably happen faster than a task switch)
03:47:41 <m712> for now it's builtin though
03:48:03 <m712> s/own threads/own service processes/
03:49:50 <m712> ok time for a PIT driver
03:50:20 --- join: hppavilion[1] (~dosgmowdo@58-0-174-206.gci.net) joined #osdev
03:52:57 <doug16k> m712, my spurious IRQ handling -> https://github.com/doug65536/dgos/blob/master/kernel/arch/x86_64/cpu/legacy_pic.cc#L96
03:52:59 <bslsk05> ​github.com: dgos/legacy_pic.cc at master · doug65536/dgos · GitHub
03:53:06 --- join: dennis95 (~dennis@p50915F30.dip0.t-ipconnect.de) joined #osdev
03:55:55 --- quit: hppavilion[1] (Remote host closed the connection)
03:56:20 --- join: hppavilion[1] (~dosgmowdo@58-0-174-206.gci.net) joined #osdev
04:01:59 --- join: curiosity_freak (~naveen@157.50.11.216) joined #osdev
04:03:07 --- quit: hppavilion[1] (Ping timeout: 256 seconds)
04:04:25 <m712> doug16k: thanks
04:06:50 --- join: regreg (~regreg@85.121.54.224) joined #osdev
04:09:28 --- quit: curiosity_freak (Quit: Leaving)
04:09:29 --- quit: sinetek_ (Quit: This computer has gone to sleep)
04:13:10 --- join: b0l_ (05391581@gateway/web/freenode/ip.5.57.21.129) joined #osdev
04:13:13 <b0l_> hi
04:14:07 <b0l_> just out of curiosity, how about to use PAT flag to make all kernel PFNs uncachable and so unaffected to meltdown? it makes sense?
04:15:46 <promach_> doug16k: thanks for the assert() tips
04:15:56 <m712> doug16k: i pulled this out my backside: static inline int _is_spurious_irq(uint8_t irq) { uint16_t irr = PIC_read_irr(); if ((irq & 7) && !(irr & (1U<<irq))) return 1; return 0; }
04:15:56 <m712> idk whether it works yet
04:18:45 --- quit: silas (Quit: leaving)
04:19:04 --- join: silas (~silas@177.104.48.3) joined #osdev
04:19:47 --- join: marie1972 (~changeme@172.98.87.85) joined #osdev
04:26:34 <m712> hmm
04:27:31 <m712> i need to find a good way to expose adding an IRQ to drivers
04:27:40 <m712> since IRQs are archdep
04:27:55 --- join: vmlinuz (~vmlinuz@2804:431:f725:e9ba:9b03:abd:b3c7:6ac0) joined #osdev
04:27:56 --- quit: vmlinuz (Changing host)
04:27:56 --- join: vmlinuz (~vmlinuz@unaffiliated/vmlinuz) joined #osdev
04:31:10 <m712> maybe a header that has something like check_arch(ARCH_I386) and register_irq_handler(...) which fails if ARCH != I386 && ARCH != AMD64
04:32:29 --- join: silipwn (~silipwn@111.93.99.180) joined #osdev
04:32:29 --- quit: silipwn (Changing host)
04:32:29 --- join: silipwn (~silipwn@unaffiliated/silipwn) joined #osdev
04:36:14 --- part: marie1972 left #osdev
04:36:38 <immibis> i believe linux delegates hooking up IRQs to devices to the devicetree or board support code
04:37:06 <immibis> IRQs themselves are a pretty general concept that's similar on all platforms, the differences are just level/edge triggered, inverted or not, etc
04:37:22 --- quit: silipwn (Ping timeout: 260 seconds)
04:38:04 --- join: silipwn (~silipwn@unaffiliated/silipwn) joined #osdev
04:38:32 --- quit: garit (Ping timeout: 260 seconds)
04:40:04 <m712> immibis: i see
04:42:10 --- quit: silipwn (Client Quit)
04:44:00 --- join: vaibhav (~vnagare@125.16.97.121) joined #osdev
04:45:03 --- quit: immibis (Ping timeout: 256 seconds)
04:46:05 --- nick: vaibhav -> vaibhav|afk
04:48:51 --- quit: ornitorrincos (Quit: ZNC 1.6.5 - http://znc.in)
04:51:26 --- join: hppavilion[1] (~dosgmowdo@58-0-174-206.gci.net) joined #osdev
04:54:33 --- join: ornitorrincos (~ornitorri@163.172.62.96) joined #osdev
04:54:33 --- quit: ornitorrincos (Changing host)
04:54:33 --- join: ornitorrincos (~ornitorri@unaffiliated/ornitorrincos) joined #osdev
04:59:28 --- join: alphawarr1or (uid243905@gateway/web/irccloud.com/x-lnkghtppdtwkqbuq) joined #osdev
05:00:08 <alphawarr1or> Hello everyone
05:02:19 --- quit: awang (Ping timeout: 265 seconds)
05:04:07 --- join: regreg_ (~regreg@85.121.54.224) joined #osdev
05:06:57 --- quit: b0l_ (Ping timeout: 260 seconds)
05:07:42 --- quit: regreg (Ping timeout: 260 seconds)
05:08:43 --- join: uvgroovy (~uvgroovy@c-65-96-163-219.hsd1.ma.comcast.net) joined #osdev
05:09:37 --- quit: hppavilion[1] (Read error: Connection reset by peer)
05:10:46 --- quit: uvgroovy (Client Quit)
05:11:02 --- join: uvgroovy (~uvgroovy@c-65-96-163-219.hsd1.ma.comcast.net) joined #osdev
05:11:57 --- quit: pointfree (Ping timeout: 252 seconds)
05:12:05 --- join: Darksecond (~darksecon@a82-94-53-70.adsl.xs4all.nl) joined #osdev
05:12:25 --- join: return0e_ (~return0e@87-102-105-145.static.kcom.net.uk) joined #osdev
05:12:39 --- quit: ggherdov- (Ping timeout: 252 seconds)
05:13:26 <m712> alphawarr1or: ~>
05:13:45 --- join: pointfree (sid204397@gateway/web/irccloud.com/x-gjvqaxkcijbmfdlj) joined #osdev
05:13:57 --- join: garit (~garit@94.197.120.253.threembb.co.uk) joined #osdev
05:13:57 --- quit: garit (Changing host)
05:13:57 --- join: garit (~garit@unaffiliated/garit) joined #osdev
05:14:11 --- quit: return0e (Ping timeout: 268 seconds)
05:14:33 <m712> i'm thinking of implementing /bin/ed as an IRC bot
05:19:42 <alphawarr1or> is there a way to link a given section to a different address in the .text region in a linker script?
05:21:40 --- join: renatorabelo (bb68000f@gateway/web/freenode/ip.187.104.0.15) joined #osdev
05:24:21 --- quit: Humble_afk (Ping timeout: 276 seconds)
05:30:15 --- join: awang (~awang@rrcs-24-106-163-46.central.biz.rr.com) joined #osdev
05:30:42 --- join: Desetude (~Desetude@unaffiliated/desetude) joined #osdev
05:33:35 --- join: silipwn (~silipwn@unaffiliated/silipwn) joined #osdev
05:36:10 --- quit: awang (Quit: leaving)
05:36:24 --- join: awang (~awang@rrcs-24-106-163-46.central.biz.rr.com) joined #osdev
05:37:09 --- join: _sfiguser (~sfigguser@5.102.3.248) joined #osdev
05:37:40 <Vercas> alphawarr1or: . = 0xB1AB1A
05:37:47 <Vercas> *(.my_section)
05:40:02 --- join: hacku (~hacku@5070A9C0.static.ziggozakelijk.nl) joined #osdev
05:43:00 <alphawarr1or> hmm that made like 1MB of nothingness in the output file
05:43:22 --- quit: oaken-source (Remote host closed the connection)
05:43:52 <alphawarr1or> Ok so I have: ".text BLOCK(4K) : AT(ADDR(.text) - 0xC0000000)" then I want a section (defined in asm) to be linked at 1MB for grub to see but all other stuff from the high mem address.
05:44:08 --- quit: hacku (Client Quit)
05:44:23 --- join: oaken-source (~oaken-sou@62.157.41.96) joined #osdev
05:51:26 <rmf1723> ".othersection BLOCK(4K) : AT(ADDR(.othersection))"
05:51:39 <rmf1723> Note the lack of " - 0xC0000000"
05:54:48 <rmf1723> E.g. see the ".boot" section in this https://gist.github.com/rmartinho/babc1301c9843d90db344e4ead8635af
05:54:49 <bslsk05> ​gist.github.com: krust.ld · GitHub
05:57:58 --- quit: _sfiguser (Ping timeout: 268 seconds)
06:05:04 <alphawarr1or> hmm now it won't find the multiboot signature
06:08:13 <alphawarr1or> I think grub hates me now
06:10:28 --- join: rain1 (~user@unaffiliated/rain1) joined #osdev
06:11:19 --- join: _sfiguser (~sfigguser@5.102.16.213) joined #osdev
06:14:37 --- quit: renatorabelo (Ping timeout: 260 seconds)
06:14:38 --- quit: Guest88172 (Changing host)
06:14:38 --- join: Guest88172 (~ard1t@unaffiliated/ard1t) joined #osdev
06:14:42 --- nick: Guest88172 -> Ard1t
06:21:24 --- quit: oaken-source (Ping timeout: 268 seconds)
06:26:04 --- join: Humble_afk (~hchiramm@2405:204:53a5:f3fa:ef49:f6d7:748d:4c61) joined #osdev
06:28:37 --- join: NotSecwitter (~NonSecwit@unaffiliated/nonsecwitter) joined #osdev
06:35:36 --- join: Asu (~sdelang@AMarseille-658-1-32-246.w86-219.abo.wanadoo.fr) joined #osdev
06:41:09 --- join: eivarv (~eivarv@cm-84.215.4.97.getinternet.no) joined #osdev
06:42:22 --- quit: daniele_athome (Ping timeout: 265 seconds)
06:42:45 --- join: daniele_athome (~daniele_a@93-40-14-81.ip36.fastwebnet.it) joined #osdev
06:45:38 --- join: vdamewood (~vdamewood@unaffiliated/vdamewood) joined #osdev
06:52:38 --- quit: uvgroovy (Quit: uvgroovy)
06:54:55 --- join: CheckDavid (uid14990@gateway/web/irccloud.com/x-ttrchgynlbbxphoo) joined #osdev
06:55:23 --- join: FMan (~fooman@dyt4hntkqbw9ds55fcp3y-4.rev.dnainternet.fi) joined #osdev
07:02:02 --- quit: xenos1984 (Quit: Leaving.)
07:02:36 --- join: mmu_man (~revol@vaf26-2-82-244-111-82.fbx.proxad.net) joined #osdev
07:05:48 --- quit: m_t (Quit: Leaving)
07:08:37 --- quit: silipwn (Ping timeout: 248 seconds)
07:08:45 --- join: silipwn (~silipwn@unaffiliated/silipwn) joined #osdev
07:09:20 --- join: uvgroovy (~uvgroovy@199.188.233.130) joined #osdev
07:12:04 --- join: ggherdov- (sid11402@gateway/web/irccloud.com/x-xgrmsjegwwcnumza) joined #osdev
07:13:07 --- quit: uvgroovy (Client Quit)
07:13:18 --- join: uvgroovy (~uvgroovy@199.188.233.130) joined #osdev
07:15:43 --- quit: dlblv (Ping timeout: 265 seconds)
07:22:36 --- quit: silipwn (Quit: Konversation terminated!)
07:23:16 --- join: silipwn (~silipwn@unaffiliated/silipwn) joined #osdev
07:23:25 <rmf1723> alphawarr1or: where is your multiboot header?
07:23:45 <rmf1723> Make sure it is in the first 1meg or something.
07:23:50 <alphawarr1or> oh
07:23:53 <alphawarr1or> I think it's above 1M
07:24:52 <rmf1723> You'll notice in the linker script I posted, I have `KEEP(*(.multiboot))`
07:25:13 <alphawarr1or> let me see the objdump wait a sec
07:25:21 <rmf1723> I put the header in its own section so I can force it at the beginning of the image file with the linker like this.
07:26:44 <alphawarr1or> 101000: 02 b0 ad 1b 03 00 add 0x31bad(%eax),%dh
07:26:47 <alphawarr1or> in section .boot
07:28:43 <rmf1723> What does GRUB say?
07:29:09 <alphawarr1or> error: no multiboot header found
07:29:51 <alphawarr1or> Press any key to continue....
07:30:01 <alphawarr1or> then if I press a key it jumps back to the grub select menu
07:30:10 --- quit: Tazmain (Quit: Leaving)
07:30:44 <rmf1723> Is the checksum correct?
07:31:30 <alphawarr1or> .set MB_CHECKSUM, -(MB_MAGIC + MB_FLAGS)
07:31:32 <alphawarr1or> that one?
07:32:50 <rmf1723> Why .set?
07:32:59 --- join: hmmmm (~sdfgsf@pool-72-79-162-13.sctnpa.east.verizon.net) joined #osdev
07:33:00 <rmf1723> .set creates symbols, which isn't really what you want.
07:33:04 <alphawarr1or> https://github.com/kde99/nekoos/blob/master/arch/x86/boot.S
07:33:05 <bslsk05> ​github.com: nekoos/boot.S at master · kde99/nekoos · GitHub
07:33:14 <alphawarr1or> well later it's set with a .long MB_CHECKSUM
07:33:32 <alphawarr1or> it's from the barebones tutorial and I never had any problems with it until now
07:34:52 <rmf1723> What does it look like in the binary?
07:35:13 <rmf1723> The whole header, not just those first bytes
07:35:19 <alphawarr1or> one second
07:36:29 <rmf1723> IIRC `.long MB_CHECKSUM` will create a long with the value of the symbol, i.e. its address.
07:36:41 --- join: curiosity_freak (~naveen@157.50.9.68) joined #osdev
07:36:46 <rmf1723> But I could be misremembering.
07:36:59 <curiosity_freak> 32 bit cpu boot in real mode or unreal mode
07:37:11 <curiosity_freak> i am learning about boot process indepthly
07:37:17 <alphawarr1or> https://pastebin.com/m7nwL9iA
07:37:18 <bslsk05> ​pastebin.com: Disassembly of section .boot: 00101000 <_start-0xc>: 101000: 02 b0 ad 1b 0 - Pastebin.com
07:37:23 <curiosity_freak> learning from lot of resources
07:37:38 <curiosity_freak> feeling totally confused
07:38:06 <curiosity_freak> CS register has hidden bits? and those bits contains the base address?
07:39:03 <rmf1723> alphawarr1or: ok, that looks about right.
07:39:24 <alphawarr1or> hmm but grub won't boot it
07:41:43 <alphawarr1or> maybe higher half kernels are not for me
07:42:58 <curiosity_freak> anyone here have indepth knowledge about boot process of x86 32 bit cpu?
07:43:14 <curiosity_freak> need little help!!!!!
07:43:39 <alphawarr1or> well it doesn't boot into protected more when you start it you have to get there
07:44:29 <curiosity_freak> is it start in unreal mode ?
07:44:43 <rmf1723> curiosity_freak: https://software.intel.com/en-us/articles/intel-sdm
07:44:44 <bslsk05> ​software.intel.com: Intel® 64 and IA-32 Architectures Software Developer Manuals | Intel® Software
07:44:55 <rmf1723> That describes the starting state of the CPUs.
07:45:26 <curiosity_freak> thank you! i will have a look
07:45:39 <alphawarr1or> it boots into real mode curiosity_freak yeah that's 16bits
07:45:55 <rmf1723> curiosity_freak: you'll realize that "unreal mode" isn't really a mode.
07:46:21 <curiosity_freak> okay. do you have minute to clear my doubts?
07:46:30 --- join: oaken-source (~oaken-sou@p3E9D2960.dip0.t-ipconnect.de) joined #osdev
07:47:24 --- join: xenos1984 (~xenos1984@22-164-191-90.dyn.estpak.ee) joined #osdev
07:47:40 <m712> curiosity_freak: Enter doubt>
07:48:49 <curiosity_freak> during booting the code in bios rom is directly executed by cpu or it is copied in ram and then exeucted?
07:49:37 <rmf1723> If there is a BIOS, it can simply be memory-mapped.
07:50:21 --- quit: Ard1t (Ping timeout: 256 seconds)
07:50:37 <m712> it's usually from ROM
07:50:38 <curiosity_freak> i want know how memory mapping happens ? any book or webister that describes memory mapping idepthly?
07:50:57 <m712> curiosity_freak: what do you mean by memory mapping?
07:51:02 <curiosity_freak> but in an article i found that is non volatile RAM
07:51:35 <curiosity_freak> i read that it was ROM in old days , but nowadays it is NVRAM
07:52:04 <curiosity_freak> as i am learning from multiple resources , there are some confusions i get frequently
07:52:09 <m712> curiosity_freak: again, what do you mean by memory mapping?
07:52:30 <curiosity_freak> i don't know what is memory mapping
07:52:47 <m712> if you can't define it how can you learn it
07:52:55 <m712> i smell the XY problem
07:53:03 <curiosity_freak> i want to know , how it happens
07:53:04 <m712> curiosity_freak: what do you exactly want to learn about?
07:53:15 <m712> how *what* happens?
07:53:32 <curiosity_freak> i wanna learn about how memory mapping works? and boot process of x86 32 bit cpu
07:53:53 <m712> please define memory mapping
07:53:59 <m712> do you mean the memory layout?
07:54:10 <curiosity_freak> s
07:54:26 <m712> s
07:54:28 <curiosity_freak> assigning memory address for ROM
07:54:31 --- join: aosfields_ (~aosfields@71.194.3.30) joined #osdev
07:54:33 <curiosity_freak> am i right?
07:54:51 <m712> it's just mapped within the first megabyte
07:55:02 <m712> it's model-specific i think
07:55:09 <curiosity_freak> : - )
07:55:13 --- join: pictron (~tom@173.79.33.247) joined #osdev
07:55:36 <curiosity_freak> i want to know how the CPU assings address for ROM?
07:55:59 <curiosity_freak> how memory mapping happens exactely?
07:56:08 <curiosity_freak> that is what i am looing for
07:56:12 <curiosity_freak> looking
07:56:21 <rain1> have you checked the OS dev wiki
07:56:35 <rain1> there is a bit about paging which is used for this
07:56:47 <m712> curiosity_freak: the IBM pc standard defines a standard memory layout for real mode
07:56:52 <rmf1723> rain1: no, this is unrelated to paging.
07:57:07 <m712> i don't know the exact component that does this, though
07:57:15 <m712> maybe the longbeards could help
07:57:37 <curiosity_freak> okay. does CS register has hidden bits?
07:57:52 <rmf1723> curiosity_freak: this is covered in the Intel manuals.
07:58:36 <curiosity_freak> okay. i will look. if you don't mind in which volume it is described?
07:58:55 <rmf1723> Volume 3
07:59:03 <rmf1723> And maybe Volume 1 as well.
07:59:11 <curiosity_freak> okay. thank you!
07:59:28 <curiosity_freak> https://github.com/0xAX/linux-insides/issues/30
07:59:31 <bslsk05> ​github.com: CS base, IP value, how logical address? · Issue #30 · 0xAX/linux-insides · GitHub
08:00:20 <curiosity_freak> bslsk05: i posted the link above
08:02:25 --- quit: silipwn (Remote host closed the connection)
08:05:39 --- quit: _sfiguser (Ping timeout: 256 seconds)
08:05:53 --- quit: curiosity_freak (Quit: Leaving)
08:07:26 --- join: chocola (0128241c@gateway/web/freenode/ip.1.40.36.28) joined #osdev
08:09:39 <chocola> When configuring and building a hosted GCC cross compiler, does anyone know how to tell g++ to not automatically link against libm and libstdc++?
08:10:41 --- quit: meowrobot (Remote host closed the connection)
08:13:56 <m712> chocola: -nostdlib -ffreestanding when you're compiling your OS i believe
08:14:14 <m712> i assume you've already built a cross compiler as described in the wiki
08:14:17 --- join: meowrobot (~katgirl@pool-96-236-155-90.pitbpa.fios.verizon.net) joined #osdev
08:15:21 <chocola> I have, and those options are just a temporary workaround. When I build the hosted cross compiler and invoke the resulting compiler to compile a user program, it tries to link against libm and libstdc++
08:15:42 <chocola> I'm wondering if there's a way to configure GCC when building it so that it doesn't do that
08:15:47 <chocola> because I don't want to link against them
08:15:52 <m712> i don't think you have an option like that
08:16:07 <m712> other than modifying gcc to not do that, which is also explained in the wiki
08:16:23 <chocola> So I'm pretty much forced to get a conforming C stdlib and compile libstdc++?
08:16:28 <chocola> other than modifying GCC
08:16:48 --- quit: John___ (Read error: Connection reset by peer)
08:17:22 <m712> chocola: the wiki also explains working around that iirc
08:17:56 <chocola> Link? I can't find it
08:18:22 <m712> sec
08:18:27 --- join: _sfiguser (~sfigguser@177-114-84-93.true.by) joined #osdev
08:18:35 <m712> firefox boots in like 10s
08:19:02 <m712> chocola: http://wiki.osdev.org/OS_Specific_Toolchain
08:19:03 <bslsk05> ​wiki.osdev.org: OS Specific Toolchain - OSDev Wiki
08:19:58 <chocola> That's the article I used to make the hosted cross compiler, it doesn't contain any workaround to my issue though
08:20:07 <m712> then that's the wrong page
08:20:17 --- join: freakazoid0223 (~IceChat9@pool-108-52-4-148.phlapa.fios.verizon.net) joined #osdev
08:20:36 <m712> also if that's how you built your first toolchain then you overcomplicated it
08:20:56 <m712> chocola: would this do?
08:20:57 <m712> http://wiki.osdev.org/Libsupcxx
08:20:58 <bslsk05> ​wiki.osdev.org: Libsupcxx - OSDev Wiki
08:21:41 <chocola> This isn't my first toolchain, my first is just i686-elf, not hosted
08:21:48 <m712> oh ok
08:21:54 <m712> oh you're saying hosted
08:21:58 <m712> you want to port gcc?
08:22:13 <chocola> no
08:22:20 <chocola> not to my OS, yet
08:22:35 <chocola> just a hosted cross compiler that runs on linux but compiles for my OS
08:22:42 <m712> that's freestanding
08:22:48 <m712> i think you're confusing your terms here
08:23:11 <chocola> it produces user programs though
08:23:14 <m712> that's not hosted, it's still a cross compiler
08:23:18 <m712> chocola: what do you mean?
08:23:27 <chocola> ok it's just a cross compiler then
08:23:37 --- join: sortie (~Sortie@static-5-186-55-44.ip.fibianet.dk) joined #osdev
08:24:00 <m712> chocola: what exactly were you having trouble with again
08:25:02 <chocola> the OS specific cross compiler tries to link with libm and libstdc++, I don't want to link against them though, ever
08:25:12 <chocola> I want to make my own custom standard library
08:26:31 <m712> i'm afraid you don't have an option but call -nostdlib -ffreestanding -lyour_os_lib then
08:26:59 <chocola> well that sucks, maybe I'll give up on that then and just port newlib
08:27:43 <m712> probably
08:28:13 --- quit: _sfiguser (Ping timeout: 265 seconds)
08:28:55 <m712> chocola: i don't see why that's so hard though
08:29:09 <chocola> what is?
08:29:11 <chocola> porting newlib?
08:30:15 <chocola> It would probably be easier, but I wanted to design my own standard library to my liking. also the C standard library imposes requirements on my kernel
08:30:42 <chocola> requirements such as certain syscalls, unix-like signals
08:30:45 <m712> no i mean making your own stdlib
08:30:52 <m712> chocola: i did my own standard library
08:30:56 <m712> it's not hard at all
08:31:05 <chocola> Conforming standard library?
08:31:06 <m712> you just link it with the kernel/user programs at link time
08:31:10 <m712> chocola: non-POSIX
08:31:53 <chocola> I want to make a completely non-conforming C++ standard library, I don't even want a C standard library. libstdc++ depends on a C stdlib
08:32:22 <m712> chocola: why do you need libstdc++ though?
08:32:24 <chocola> and g++ always tries to link with libstdc++ by default, forcing the standard C++ library on me
08:32:31 <chocola> I don't
08:32:35 <m712> you can disable it
08:32:40 <chocola> How?
08:32:40 <m712> i told you how to already
08:32:46 <chocola> with the flags?
08:32:50 <m712> yes
08:33:29 <chocola> that's a crappy workaround though, I'd have to do that for every user program
08:33:36 <m712> so?
08:33:45 <m712> chocola: you're not compiling your user programs by hand...
08:33:52 <m712> don't you have build scripts?
08:33:57 <chocola> yes
08:34:09 <m712> just add CFLAGS:=$(CFLAGS) -nostdlib -ffreestanding
08:34:14 <m712> same for the LDFLAGS
08:34:26 <chocola> seems like a huge hack to me
08:34:43 <m712> how is it a huge hack?!
08:34:50 <m712> it's the entire purpose of those flags
08:34:53 <chocola> I don't have to do that on linux
08:35:50 <chocola> I find it a hack to have to manually link against my startup files
08:35:54 --- quit: navidr (Quit: Connection closed for inactivity)
08:36:15 <rmf1723> Provide empty libm/libstdc++?
08:36:27 <chocola> that could work
08:36:42 <chocola> would g++ depend on it though?
08:36:48 <m712> now that would be a hack
08:37:20 <m712> it's not a hack because it's not supposed to be a hack... gcc is faulty in that it doesn't provide compile-time freestanding systems, but it gives you the option of disabling the stdlib and passing in your own stuff at link time
08:37:22 <chocola> yeah but it'd only be a one-time hack
08:37:48 --- quit: acidx (*.net *.split)
08:37:49 --- quit: jm0 (*.net *.split)
08:37:49 --- quit: PyroLagus (*.net *.split)
08:37:49 --- quit: ids1024 (*.net *.split)
08:37:50 --- quit: port443 (*.net *.split)
08:37:54 <froggey> chocola: there are definitions you can modify when retargetting gcc to change what it invokes the linker with by default
08:38:05 --- join: jm0 (~jm0@0125200306.0.fullrate.ninja) joined #osdev
08:38:11 --- join: ids1024 (~ids1024@unaffiliated/ids1024) joined #osdev
08:38:27 <froggey> http://wiki.osdev.org/OS_Specific_Toolchain#gcc.2Fconfig.2Fmyos.h
08:38:28 <bslsk05> ​wiki.osdev.org: OS Specific Toolchain - OSDev Wiki
08:38:34 --- join: acidx (~leandro@162.243.170.47) joined #osdev
08:38:35 <rmf1723> Oh wait, you're compiling your OS native programs on Linux?
08:38:39 <rmf1723> Then use the flags
08:38:44 <rmf1723> That's what they're for
08:38:46 <froggey> LIB_SPEC, STARTFILE_SPEC, etc are what you want to modify
08:39:00 --- join: port443 (~wizardmin@mtndewcode.red) joined #osdev
08:39:04 <froggey> and there are other foo_SPEC definitions you can change, I don't remember what they are though
08:39:07 <rmf1723> Compiling for a target that lacks he libs
08:39:13 --- join: PyroLagus (PyroLagus@i.have.ipv6.on.coding4coffee.org) joined #osdev
08:39:16 <chocola> Froggy, I have modified them, I never specified to link with libm and libstdc++ but it did it anyway
08:39:38 <chocola> Also, is there any documentation on all the available options?
08:39:50 <froggey> yeah, there's some other define you'll have to add. I don't know what it is
08:40:07 <froggey> you can dump gcc's current specs file, which might give you a clue what to look for
08:40:14 <froggey> your-gcc -dumpspecs
08:40:37 --- quit: Belxjander (Ping timeout: 260 seconds)
08:43:42 --- part: rubenwardy left #osdev
08:43:58 --- quit: bm371613 (Quit: Konversation terminated!)
08:45:54 --- quit: vmlinuz (Ping timeout: 252 seconds)
08:47:07 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
08:47:18 --- join: banisterfiend (~banister@ruby/staff/banisterfiend) joined #osdev
08:49:27 --- quit: nzoueidi (Ping timeout: 248 seconds)
08:51:24 <chocola> Would it work to put -nostdlib in LIB_SPEC?
08:59:40 --- join: vmlinuz (~vmlinuz@2804:431:f724:13ef:ed59:a548:4314:98ee) joined #osdev
08:59:40 --- quit: vmlinuz (Changing host)
08:59:40 --- join: vmlinuz (~vmlinuz@unaffiliated/vmlinuz) joined #osdev
09:00:06 <froggey> chocola: sorry, my mistake. libstdc++ and libm aren't added by the specs file at all. they're added by lang_specific_driver in gcc/cp/g++spec.c
09:00:44 <froggey> I think, not entirely sure
09:05:51 --- quit: NotSecwitter (Ping timeout: 252 seconds)
09:06:58 <chocola> looks like modifying that file could be the solution
09:13:28 --- quit: CheckDavid (Quit: Connection closed for inactivity)
09:20:14 --- join: quc (~quc@87.116.231.37) joined #osdev
09:28:15 --- quit: Humble_afk (Ping timeout: 252 seconds)
09:45:43 --- quit: aosfields_ (Ping timeout: 264 seconds)
09:57:05 --- join: NonSecwitter (~NonSecwit@unaffiliated/nonsecwitter) joined #osdev
10:00:37 --- join: aosfields_ (~aosfields@71.194.3.30) joined #osdev
10:06:06 <m712> um...
10:06:08 <m712> really weird
10:06:10 <m712> io_wait() gets stuck forever
10:06:12 <m712> but it didn't in the bochs on my other pc
10:06:14 <m712> it gets stuck at `outb %ax, $0x80`
10:06:16 <m712> erm
10:06:18 <m712> outb %al
10:06:20 <m712> confusing...
10:06:22 <m712> qemu exhibits the same behaviour
10:07:42 <m712> welp nevermind lol
10:07:58 <m712> i didn't fix up my IRQ handler code yet
10:09:27 --- quit: aosfields_ (Ping timeout: 248 seconds)
10:12:54 --- nick: bpye_ -> bpye
10:16:46 --- join: b0l_ (4dac8cd3@gateway/web/freenode/ip.77.172.140.211) joined #osdev
10:18:31 --- quit: Desetude (Quit: WeeChat 2.0)
10:36:32 <m712> to get (almost) 1Hz timer interrupts, i need to set the divider to 65535/18 right?
10:36:42 <m712> which is ~3641
10:44:45 <glauxosdever> 1Hz? For PIT?
10:45:59 <glauxosdever> The lowest frequency you can set is around 18Hz.
10:47:48 --- join: m_t (~m_t@p5DDA3CE6.dip0.t-ipconnect.de) joined #osdev
10:49:26 --- quit: Lowl3v3l (Remote host closed the connection)
10:53:02 --- join: Lowl3v3l (~Lowl3v3l@dslb-088-075-089-098.088.075.pools.vodafone-ip.de) joined #osdev
10:56:13 --- join: navidr (uid112413@gateway/web/irccloud.com/x-noscczyojualnhym) joined #osdev
10:56:15 <chocola> modifying gcc/cp/g++spec.c worked, it doesn't automatically link against libm and libstdc++ anymore.
10:56:18 <chocola> thanks guys
10:56:55 <m712> glauxosdever: hmm... so it's slow?
10:58:02 --- quit: vmlinuz (Quit: Leaving)
10:58:19 <b0l_> I retry to ask the question. Is possible to set PAT flag uncachable to all kernel PFNs? and it makes sense to wotk to avoid meltdown?
11:01:38 <glauxosdever> I mean, maybe you meant 1kHz?
11:03:51 --- quit: regreg_ (Ping timeout: 248 seconds)
11:05:53 --- quit: chocola (Quit: Page closed)
11:11:15 <m712> glauxosdever: i was expecting 1Hz granularity from 1981 hardware :P
11:11:25 <m712> i might go for something like 50Hz instead
11:11:33 <m712> i want a round value
11:12:00 <m712> am I thinking wrong
11:12:11 <m712> i have period and freq flipped don't I
11:12:17 <m712> i want 1kHz yes lol
11:12:28 <m712> i want 1000 interrupts/sec
11:12:55 <m712> i'm going back to high school out of shame
11:16:09 <glauxosdever> Heh, mistakes happen all the time.
11:22:29 --- join: tacco\unfoog (~tacco@dslb-178-007-244-013.178.007.pools.vodafone-ip.de) joined #osdev
11:25:52 --- join: _sfiguser (~sfigguser@5.102.16.213) joined #osdev
11:30:13 --- quit: eivarv (Ping timeout: 256 seconds)
11:30:19 --- quit: sprocklem (Ping timeout: 240 seconds)
11:32:05 --- join: rubenwardy (~rubenward@unaffiliated/rubenwardy) joined #osdev
11:36:01 --- join: John___ (~John__@79.97.140.214) joined #osdev
11:38:40 --- quit: oaken-source (Ping timeout: 246 seconds)
11:41:34 --- join: marie1972 (~changeme@cpe-75-81-140-117.kc.res.rr.com) joined #osdev
11:47:10 --- join: sinetek_ (~sinetek@modemcable018.210-57-74.mc.videotron.ca) joined #osdev
11:48:42 <alphawarr1or> strange question: would it be possible to do osdev on windows?
11:51:12 --- quit: daniele_athome (Ping timeout: 255 seconds)
11:52:14 --- join: daniele_athome (~daniele_a@93-40-14-81.ip36.fastwebnet.it) joined #osdev
11:53:55 <m712> alphawarr1or: you totally can be a masochist!
11:54:52 <m712> http://ix.io/E5W and I haven't even started writing the code...
11:54:54 <bslsk05> ​ix.io <no title>
11:56:08 <m712> ignore the garbage divider value
11:59:36 --- join: user10032 (~Thirteen@2.124.229.123) joined #osdev
12:01:27 --- join: ampotos (~ampotos@lew31-1-78-247-114-197.fbx.proxad.net) joined #osdev
12:02:32 --- quit: ampotos_ (Ping timeout: 255 seconds)
12:03:33 --- quit: Belxjander (Ping timeout: 240 seconds)
12:04:48 --- join: eivarv (~eivarv@cm-84.215.4.97.getinternet.no) joined #osdev
12:06:14 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
12:06:22 --- part: marie1972 left #osdev
12:09:20 --- join: nzoueidi (~nzoueidi@ubuntu/member/na3il) joined #osdev
12:10:06 --- quit: bauen1 (Ping timeout: 255 seconds)
12:14:16 --- join: caladrius (~quassel@188.25.93.211) joined #osdev
12:15:45 --- quit: _sfiguser (Ping timeout: 256 seconds)
12:16:06 --- join: John____ (~John__@79.97.140.214) joined #osdev
12:17:06 --- join: lecx (lex@yuuh.pw) joined #osdev
12:18:31 --- quit: John___ (Ping timeout: 248 seconds)
12:20:27 --- quit: [Brain] (Ping timeout: 255 seconds)
12:23:48 --- quit: m_t (Quit: Leaving)
12:26:22 <alphawarr1or> well I was just curios as now I have a vm and well native speed would be better
12:28:33 --- join: _sfiguser (~sfigguser@192.71.244.38) joined #osdev
12:31:26 <doug16k> m712, you program the timer with 1193182/tick_frequency. if you want 100 Hz tick, you calculate 1193182/100 and take the result of that and put it into the initial count register in the PIT
12:31:55 <doug16k> the slowest tick you can get is 18.2 because that is the frequency with the highest possible divider, 65535
12:35:33 <doug16k> you can use an accumulator to track the exact number of cycles that have accumulated and get a precise average frequency tick out of it
12:36:08 <doug16k> the algorithm I use accumulates nanoseconds: tick_ns = 600000000UL * divisor / 715909
12:36:30 <doug16k> every IRQ that many ns have elapsed
12:36:41 --- join: bauen1 (~bauen1@ip5f5bfcbd.dynamic.kabel-deutschland.de) joined #osdev
12:37:19 <doug16k> you can use that to infer any frequency, by accumulating those and subtracting off the desired interval every time it exceeds the desired duration
12:41:10 --- join: corecode (~2@0x2c.org) joined #osdev
12:41:27 --- quit: Darksecond (Ping timeout: 252 seconds)
12:42:11 --- join: Darksecond (~darksecon@a82-94-53-70.adsl.xs4all.nl) joined #osdev
12:44:49 --- quit: _sfiguser (Ping timeout: 240 seconds)
12:49:49 <doug16k> 1khz is a lot
12:52:19 <doug16k> you'd use 1193181/1000 to get the divider. 1khz is way too often. the cpu can't even run for a millisecond before it has to run through the interrupt overhead again
12:52:25 <doug16k> m712, ^
12:54:09 <doug16k> and worse, it can't even hlt idle for a millisecond before it has to wake up and start blasting through the IRQ code again
12:54:32 --- join: sinetek__ (~sinetek@modemcable018.210-57-74.mc.videotron.ca) joined #osdev
12:55:06 --- quit: sinetek_ (Ping timeout: 256 seconds)
12:55:40 --- join: chjk6x_ (~chjk6x@196.65.131.198) joined #osdev
12:58:42 <doug16k> alphawarr1or, with kvm enabled, non-I/O execution speed is pretty close to native. kvm can be much slower than native for some instructions and for I/O.
13:00:40 --- join: _sfiguser (~sfigguser@5.102.16.213) joined #osdev
13:01:10 <FreeFull> At a 4GHz CPU clock, 1khz is 4000000 cycles
13:03:00 <b0l_> how MMIO works?
13:05:13 --- join: Tazmain (~Tazmain@unaffiliated/tazmain) joined #osdev
13:06:07 <m712> doug16k: i see
13:07:47 <m712> im zZzing for tonight, but i'll try to implement something tomorrow
13:07:59 --- join: sprocklem (~sprocklem@unaffiliated/sprocklem) joined #osdev
13:09:55 --- quit: ox6 (Remote host closed the connection)
13:10:50 --- quit: user10032 (Remote host closed the connection)
13:13:02 --- quit: chjk6x_ (Quit: Leaving)
13:17:07 --- quit: sinetek__ (Read error: Connection reset by peer)
13:21:51 --- quit: uvgroovy (Quit: uvgroovy)
13:22:44 --- join: uvgroovy (~uvgroovy@199.188.233.130) joined #osdev
13:23:18 --- quit: uvgroovy (Client Quit)
13:25:10 --- join: hmmmmm (~sdfgsf@pool-72-79-165-229.sctnpa.east.verizon.net) joined #osdev
13:25:17 --- join: uvgroovy (~uvgroovy@199.188.233.130) joined #osdev
13:27:10 --- quit: glauxosdever (Quit: leaving)
13:28:21 --- quit: hmmmm (Ping timeout: 248 seconds)
13:28:51 --- quit: garit (Ping timeout: 265 seconds)
13:33:10 --- join: JusticeEX (~justiceex@pool-108-30-196-198.nycmny.fios.verizon.net) joined #osdev
13:33:28 --- join: ExtremeFMan (~fooman@84-253-221-66.bb.dnainternet.fi) joined #osdev
13:36:34 --- quit: vaibhav|afk (Quit: Leaving)
13:36:35 --- quit: FMan (Ping timeout: 265 seconds)
13:37:43 --- join: appa2 (~appa@d199-74-162-107.nap.wideopenwest.com) joined #osdev
13:42:11 --- quit: sbahra (Disconnected by services)
13:44:00 --- quit: appa2 (Ping timeout: 255 seconds)
14:04:55 --- quit: Halofreak1990 (Ping timeout: 264 seconds)
14:05:02 --- join: Halofreak1990_ (~FooBar247@5ED0A537.cm-7-1c.dynamic.ziggo.nl) joined #osdev
14:05:02 --- nick: Halofreak1990_ -> Halofreak1990
14:05:07 --- quit: Belxjander (Ping timeout: 256 seconds)
14:10:06 --- quit: Halofreak1990 (Ping timeout: 276 seconds)
14:10:53 --- join: Halofreak1990 (~FooBar247@5ED0A537.cm-7-1c.dynamic.ziggo.nl) joined #osdev
14:10:54 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
14:15:54 --- quit: navidr (Quit: Connection closed for inactivity)
14:21:48 <Levex> hello #osdev!
14:25:10 --- quit: Asu (Quit: Konversation terminated!)
14:25:19 --- quit: nzoueidi (Ping timeout: 240 seconds)
14:26:30 --- quit: xenos1984 (Quit: Leaving.)
14:36:20 --- quit: listenmore (Read error: Connection reset by peer)
14:36:44 --- join: listenmore (~strike@2.27.123.231) joined #osdev
14:37:25 --- join: xerpi (~xerpi@199.red-83-45-193.dynamicip.rima-tde.net) joined #osdev
14:38:20 --- quit: xerpi (Remote host closed the connection)
14:38:41 --- join: xerpi (~xerpi@199.red-83-45-193.dynamicip.rima-tde.net) joined #osdev
14:40:15 --- quit: sprocklem (Ping timeout: 255 seconds)
14:41:29 --- join: pounce (~pounce@c-24-11-27-195.hsd1.ut.comcast.net) joined #osdev
14:43:39 --- quit: JusticeEX (Ping timeout: 256 seconds)
14:51:35 --- quit: banisterfiend (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:51:47 --- quit: sortie (Quit: Leaving)
14:56:11 --- quit: alphawarr1or (Quit: Connection closed for inactivity)
14:57:22 <gamozo> herro
14:58:14 <gamozo> time to write an x86 emulator
14:59:25 --- join: banisterfiend (~banister@ruby/staff/banisterfiend) joined #osdev
15:07:54 --- join: aosfields_ (~aosfields@71.194.3.30) joined #osdev
15:08:09 <dwn> gamozo: do it
15:09:53 --- quit: banisterfiend (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:11:14 <gamozo> :(
15:13:24 <dwn> gamozo: just JIT it to a better architecture and run it natively
15:15:14 <froggey> make sure you emulate caches & branch prediction so you can join the meltdown/spectre party
15:15:59 <Levex> hahaha
15:16:07 <Levex> intel sgx is vulnerable too
15:16:29 --- join: zwliew (uid161395@gateway/web/irccloud.com/x-bdvdwckhvcrgebzw) joined #osdev
15:16:41 <Levex> https://github.com/lsds/spectre-attack-sgx/
15:16:42 <bslsk05> ​lsds/spectre-attack-sgx - Spectre attack against SGX enclave (18 forks/103 watchers)
15:16:47 --- part: b0l_ left #osdev
15:17:44 --- quit: dennis95 (Quit: Leaving)
15:20:16 --- join: sprocklem (~sprocklem@unaffiliated/sprocklem) joined #osdev
15:30:03 <MrOlsen> 1you know
15:30:32 <MrOlsen> it sucks when many years pass, I started my os in 2002 and between then and now I have changed coding styles many times so everything looks so sloppy
15:30:50 <Levex> clang-format :-)
15:30:53 <MrOlsen> its taking forever to reform almost a million lines of code
15:31:14 <_mjg> you are losing history
15:31:42 --- join: JusticeEX (~justiceex@pool-108-30-196-198.nycmny.fios.verizon.net) joined #osdev
15:31:45 <rain1> a million lines ?!!!!!
15:31:48 <rain1> wow thats so much code
15:35:48 <_mjg> most is imported gnu toolchain
15:36:00 <_mjg> seriously though, that's a rather impressive amount
15:37:23 <MrOlsen> 16 years
15:38:39 <MrOlsen> but that is a complete kernel, world & gui
15:39:11 <rain1> what is your OS like?
15:42:56 --- join: immibis (~chatzilla@122-59-200-50.jetstream.xtra.co.nz) joined #osdev
15:42:57 <MrOlsen> *BSD was my inspiration. It has a very much POSIX comliant layer because we needed to easily port in working softwares, but at the heart fits our needs. Such as it has /mount/point/directory/structure. But use bases so the os would say be sys:/root/and/so/on but every application runs in it's own base such as app1:/its/structure so they are self contained. We also rely less on system calls except for the
15:43:03 <MrOlsen> ported BSD LIBC and use message passing on our api layer.
15:43:10 --- join: banisterfiend (~banister@ruby/staff/banisterfiend) joined #osdev
15:43:54 --- quit: banisterfiend (Client Quit)
15:44:33 <MrOlsen> as far as the GUI, it is still very 2000s ish looking :) very retro, but needs no hardware acceleration to run (there wasn't much when we started in 2002) but uses blit masking and stuff to acomplish transparency and variable shaped windows
15:44:46 <MrOlsen> we were going to do a gameing console os with it
15:44:56 <MrOlsen> most of the devs at the time were game developers
15:45:02 <mischief> haha, vms paths
15:45:07 <mischief> very retro
15:45:51 <MrOlsen> but last year a few guys popped out of the woods and said "Hey, think we can dust it off port to arm and do a mobile venture"
15:46:15 <MrOlsen> so that's where I am standing right now, just fumbling through while I consider the port
15:46:58 <MrOlsen> Which is why I came back to IRC, maybe it'll get me inspired to help some newcomers again
15:47:15 <MrOlsen> I wonder how much new OS dev even touchs ASM
15:48:11 <MrOlsen> I wonder how this guy skymoose made out, I can't remember his real name at the moment, but he a complete KERNEL and GUI that would fit into a 2MBIT bios
15:49:10 <izabera> MrOlsen: got a demo or screenshots or some code?
15:49:42 <MrOlsen> I am going to put my git repo up late tomorrow morning after I am done cleaning up the source tree
15:50:17 <jjuran> MrOlsen: What’s it called?
15:50:22 <izabera> mrolsenos
15:50:26 <MrOlsen> UbixOS
15:50:32 <MrOlsen> i bet arhive.org
15:50:33 --- join: banisterfiend (~banister@ruby/staff/banisterfiend) joined #osdev
15:50:34 <izabera> change the name to mrolsenos
15:50:36 <MrOlsen> has screenshots
15:51:18 <rain1> that is o cool about base
15:51:33 <MrOlsen> oh wow it does... have the site cached
15:51:37 <MrOlsen> https://web.archive.org/web/20020925200433/http://ubixos.com:80/
15:51:42 <MrOlsen> now that is retro
15:52:26 <jjuran> s/existance/existence/
15:53:21 <jjuran> I guess you can’t edit that, can you. :-P
15:53:26 <MrOlsen> nah
15:53:45 <MrOlsen> i keep clicking next until I get to something with screen shots
15:53:56 <MrOlsen> https://web.archive.org/web/20031207090234/http://ubixos.com:80/ubixproducts.htm
15:54:01 <jjuran> The logo looks a little Matrix-inspired. :-)
15:54:17 <MrOlsen> I wonder if any of those floppy images boot
15:54:22 <MrOlsen> LOL floppy
15:54:48 <graphitemaster> site best viewed at 340x240
15:54:59 <graphitemaster> or 340x280 :P
15:55:51 --- quit: aosfields_ (Ping timeout: 255 seconds)
15:55:52 --- quit: caladrius (Ping timeout: 256 seconds)
15:58:15 <MrOlsen> What types of OS stuff are you guys working on?
15:58:26 --- join: hppavilion[1] (~dosgmowdo@58-0-174-206.gci.net) joined #osdev
15:59:11 <graphitemaster> I've been writing a paper on an OS design for the past 8 years.
15:59:14 <graphitemaster> does that count?
15:59:23 <MrOlsen> yeah
15:59:39 <graphitemaster> I've never implemented the design tho
15:59:43 <graphitemaster> want to
15:59:45 <MrOlsen> I should have written about os design before trying to write an OS
16:00:30 <MrOlsen> I have rewritten more times than I'd like to think about
16:00:47 <_mjg> i find tinkering with niche real-world oses fun
16:01:00 <_mjg> not going with a wild idea
16:01:20 <rain1> i didnt make an OS i just like learning from people here
16:01:51 <graphitemaster> _mjg, I've been trying to define a rock solid and secure OS that scales to multiple cores.
16:01:54 <_mjg> grab a *BSD and play with it, ez to encounter bugs to work on and you get kernel-level experience
16:01:59 <graphitemaster> that is provably correct
16:02:06 <MrOlsen> When i put os dev on the back burner I did more DIY and micro controller stuff
16:02:08 <_mjg> ouch
16:02:20 <Levex> graphitemaster: yale's certikOS might be of interest
16:02:28 <MrOlsen> but IoT is emerging and could be fun to make a platform for it
16:02:32 <_mjg> there is reserach going on in that space afair, can be found while looking for capsicum
16:02:40 <graphitemaster> Levex, by scales I mean to multiple physical systems on a farm.
16:02:46 <_mjg> there are ideas to create hardware + software platform where you don't have to trust the os
16:02:48 <Levex> graphitemaster: barrelfish.org/
16:02:55 <graphitemaster> I'm aware of barrelfish
16:03:02 <graphitemaster> it has scaling problems in the opposite direction
16:03:19 <graphitemaster> I want something that scales from one system to one million systems.
16:03:53 <MrOlsen> graphitemaster: like BSD/Linux?
16:03:59 <Levex> i wish that would be an easy thing to solve
16:04:22 <graphitemaster> MrOlsen, concurrency is important in my OS design. I don't have a single blocking system call for instance.
16:04:37 <graphitemaster> I don't have system calls actually, apart from low level device ioctls
16:04:44 <graphitemaster> everything is reentrant
16:04:57 <MrOlsen> that's interesting
16:04:58 <graphitemaster> everything is a service
16:05:08 <graphitemaster> services can run on any system or all systems
16:05:09 <MrOlsen> are you dependent on any specific hardware arch to acomplish this?
16:05:16 <graphitemaster> nope
16:05:19 <bcos_> reentrant for 4 instructions until it hits a lock?
16:05:23 <MrOlsen> what your thinking, is along what we were thinking back in '02
16:05:34 <MrOlsen> which is why our API depends on the MPI
16:06:08 <graphitemaster> bcos_, there are spin locks at the device level, but the services and ipc mechanism is completely lockless (based on lock free data structures)
16:06:18 <rain1> im interested in MINIX
16:06:18 <MrOlsen> down to each driver runs in its own APP space
16:06:45 <graphitemaster> MrOlsen, the other big thing is that every "low level" system call has constant time and every service request has constant time too
16:06:57 <graphitemaster> so you cannot determine operations from timing attacks at all.
16:07:30 <MrOlsen> and you can avoid all race conditions caused on an edge case?
16:07:40 <MrOlsen> yeah you can, you said nothing is blocking
16:08:28 <graphitemaster> defining strict message boundaries and not needing message order except for fenced operations
16:08:41 <graphitemaster> means you can avoid a lot of the ugly syncronization states
16:09:21 <graphitemaster> the ipc model is basically a stateless message queue where order and reliability isn't important (think of it like a UDP stream)
16:09:38 <bcos_> https://en.wikipedia.org/wiki/Consensus_(computer_science)
16:09:38 <bslsk05> ​en.wikipedia.org: Consensus (computer science) - Wikipedia
16:10:07 <MrOlsen> man, you think just like me... that's great
16:10:41 <graphitemaster> bcos_, consensus is handled with lock step deltas
16:10:41 <bcos_> ("shared nothing messaging passing" avoids lots of sychronisation issues, but also creates new sychronisation issues)
16:10:42 --- quit: xerpi (Quit: Leaving)
16:11:19 <graphitemaster> one of the other really important design decisions of the OS is to have easily delta-able system states
16:11:36 <graphitemaster> so that you can snapshot an image at a given point in time
16:11:41 <graphitemaster> and reinstate it
16:11:47 <graphitemaster> on as many nodes as you like
16:11:56 <MrOlsen> I went back and forth on that because my initial concern was if i have X max message size and A needed to break something into 4 messages should the recieving mailbox be BUSY until a final message comes through or should other active tasks be able to flood the mailbox as well
16:12:24 --- quit: uvgroovy (Quit: uvgroovy)
16:12:55 <MrOlsen> you're design idea is opposite thinking to a pthread type system
16:13:05 <MrOlsen> which is very semaphorecentric
16:13:37 <graphitemaster> from a scheduling stand point it's very deterministic
16:14:09 <graphitemaster> because you're not deriving parallelism from application-level code
16:14:25 <graphitemaster> you're deriving parallelism from service oriented code which is cooperative in nature
16:15:26 <graphitemaster> and if all your services and system calls are non-blocking + reentrant
16:15:27 <MrOlsen> do you have a mechanism thought out to span the hardware layer?
16:15:43 <graphitemaster> you spend all your time in application code instead of the kernel and services
16:16:23 <graphitemaster> I don't demand much from the hardware apart from one task segment
16:17:02 <graphitemaster> I don't even really have the concept of differing execution levels (like ring0 vs ring3)
16:17:39 <graphitemaster> at the root is a stupid small microkernel that literally runs my OS which is a highly privlidged hypervisor that runs programs itself from user-space
16:18:09 <graphitemaster> and everything else including drivers
16:18:41 --- join: jimbzy (~jim@99-195-202-169.dyn.centurytel.net) joined #osdev
16:19:42 <graphitemaster> microkernel -> hypervisor (executing on all cores / node) -> services (executing on all hypervisors) -> drivers (executing on services) -> applications (executing on services)
16:20:04 <graphitemaster> drivers expose a service end point for applications to communicate with.
16:20:55 <graphitemaster> there's no libraries in this design either, application code that needs shared functionality (e.g gui, xml parsing, etc, stuff traditionally supplied by shared libraries) is instead a service end point
16:21:14 <graphitemaster> and those service libraries may not actually be on the same physical machine
16:22:14 --- quit: mmu_man (Ping timeout: 248 seconds)
16:22:37 <graphitemaster> MrOlsen, make sense?
16:22:39 <MrOlsen> yes
16:23:15 <graphitemaster> this scales really well
16:23:18 --- quit: awang (Ping timeout: 248 seconds)
16:23:34 <graphitemaster> and is actually really secure if you're careful about the permissoning model between microkernel -> hypervisor
16:23:40 --- quit: Tazmain (Quit: Leaving)
16:23:55 <graphitemaster> the problem is it has a lot of overhead :P
16:24:40 <graphitemaster> for physical-local requests it's actually negligible performance wise since the IPC can be optimized
16:24:53 <graphitemaster> but for non-physical it gets really costly because message passing != ipc
16:24:57 <MrOlsen> you could probably optimize on each platform
16:27:03 <MrOlsen> alot of ring change overhead to send a message you could on x86_64 arch
16:27:05 <MrOlsen> use sysent
16:28:00 --- part: jimbzy left #osdev
16:28:48 <MrOlsen> alright I gotta run, basketball practice time.. I'm sure I'll see you around
16:28:51 <MrOlsen> have a good evening
16:35:32 --- join: raphaelsc (~utroz@191.251.20.237) joined #osdev
16:36:02 --- quit: raphaelsc (Remote host closed the connection)
16:38:21 --- quit: eivarv (Quit: Sleep)
16:38:57 --- quit: daniele_athome (Ping timeout: 240 seconds)
16:40:40 --- join: daniele_athome (~daniele_a@93-40-14-81.ip36.fastwebnet.it) joined #osdev
16:41:53 --- quit: pictron (Ping timeout: 256 seconds)
16:41:59 --- quit: vdamewood (Ping timeout: 248 seconds)
16:42:14 --- join: vinleod (~vdamewood@unaffiliated/vdamewood) joined #osdev
16:46:33 --- join: awang (~awang@98.31.27.190) joined #osdev
16:48:49 --- quit: kimundi (Ping timeout: 240 seconds)
16:56:03 --- join: freakazoid0223_ (~IceChat9@pool-108-52-4-148.phlapa.fios.verizon.net) joined #osdev
16:56:29 --- quit: babyflakes (Quit: Connection closed for inactivity)
16:57:27 --- quit: freakazoid0223 (Ping timeout: 240 seconds)
16:57:28 --- join: pictron (~tom@pool-173-79-33-247.washdc.fios.verizon.net) joined #osdev
17:03:52 --- join: ox6 (836bae30@gateway/web/cgi-irc/kiwiirc.com/ip.131.107.174.48) joined #osdev
17:05:04 --- quit: _sfiguser (Quit: Leaving)
17:10:06 --- join: Salek (~salek@a91-155-9-229.elisa-laajakaista.fi) joined #osdev
17:13:15 --- quit: awang (Ping timeout: 255 seconds)
17:21:12 --- quit: sprocklem (Ping timeout: 276 seconds)
17:21:51 --- join: u0_a169 (~u0_a169@60.247.61.29) joined #osdev
17:22:22 --- nick: u0_a169 -> shejian
17:25:12 --- quit: Belxjander (Ping timeout: 265 seconds)
17:25:18 --- quit: zwliew (Quit: Connection closed for inactivity)
17:25:36 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
17:28:03 --- join: c0riolis (~c0riolis@2607:5300:60:2885::1) joined #osdev
17:40:38 --- join: sinetek_ (~sinetek@modemcable018.210-57-74.mc.videotron.ca) joined #osdev
17:50:54 --- quit: daniele_athome (Ping timeout: 256 seconds)
17:52:50 --- join: daniele_athome (~daniele_a@93-40-14-81.ip36.fastwebnet.it) joined #osdev
17:56:08 --- quit: shejian (Remote host closed the connection)
18:01:13 --- quit: John____ (Read error: Connection reset by peer)
18:06:34 --- join: sprocklem (~sprocklem@unaffiliated/sprocklem) joined #osdev
18:06:47 --- nick: vinleod -> vdamewood
18:13:53 --- quit: sprocklem (Ping timeout: 256 seconds)
18:19:51 <MrOlsen> back
18:19:53 <MrOlsen> wow
18:20:02 <MrOlsen> 0 chat in 2 hours
18:22:14 --- quit: caen23 (Ping timeout: 265 seconds)
18:27:25 --- quit: sinetek_ (Quit: This computer has gone to sleep)
18:28:18 --- quit: hppavilion[1] (Ping timeout: 256 seconds)
18:32:11 --- quit: air (Ping timeout: 252 seconds)
18:32:29 --- join: air (~brand@c-73-63-48-70.hsd1.ut.comcast.net) joined #osdev
18:33:10 --- join: awang (~awang@cpe-98-31-27-190.columbus.res.rr.com) joined #osdev
18:38:20 --- join: ljc (~ljc@unaffiliated/ljc) joined #osdev
18:45:03 --- quit: Belxjander (Ping timeout: 276 seconds)
18:46:22 <Levex> it's 2:45 am here
18:46:27 <Levex> :-)
18:46:36 <Levex> but this paper is too interesting
18:48:50 --- quit: tacco\unfoog ()
18:49:51 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
18:51:08 --- join: multi_io (~olaf@xd527b68b.dyn.telefonica.de) joined #osdev
18:51:31 <MrOlsen> oh
18:51:35 <MrOlsen> you need sleep
18:54:20 --- quit: multi_io_ (Ping timeout: 240 seconds)
18:59:30 <Levex> my sleep schedule is beyond repair, i'm afirad
19:00:53 --- join: navidr (uid112413@gateway/web/irccloud.com/x-rkhmnkbqybokqpjm) joined #osdev
19:03:02 --- join: hmmmmmm (~sdfgsf@pool-72-79-167-184.sctnpa.east.verizon.net) joined #osdev
19:03:08 --- quit: navidr (Client Quit)
19:05:27 --- quit: hmmmmm (Ping timeout: 256 seconds)
19:05:52 --- join: sinetek_ (~sinetek@modemcable018.210-57-74.mc.videotron.ca) joined #osdev
19:06:28 --- join: hmmmmm (~sdfgsf@pool-72-79-162-44.sctnpa.east.verizon.net) joined #osdev
19:07:33 --- quit: Belxjander (Ping timeout: 248 seconds)
19:09:30 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
19:09:59 --- quit: hmmmmmm (Ping timeout: 256 seconds)
19:10:58 --- quit: banisterfiend (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:11:15 --- quit: shikhin (Changing host)
19:11:15 --- join: shikhin (shikhin@unaffiliated/shikhin) joined #osdev
19:14:46 --- quit: Belxjander (Ping timeout: 256 seconds)
19:18:45 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
19:23:39 <MrOlsen> that sucks
19:23:40 <MrOlsen> brb
19:23:42 <MrOlsen> switching rooms
19:24:04 --- quit: vdamewood (Quit: Textual IRC Client: www.textualapp.com)
19:31:25 --- join: asecretcat (~allison@pool-96-236-155-90.pitbpa.fios.verizon.net) joined #osdev
19:33:22 --- quit: JusticeEX (Ping timeout: 260 seconds)
19:36:36 --- quit: asecretcat (Quit: let us connect our intestines and mutually digest)
19:40:21 --- join: StereoBucket (~StereoBuc@pppoe-46-239-17-86.teol.net) joined #osdev
19:42:18 --- join: asecretcat (~allisonze@pool-96-236-155-90.pitbpa.fios.verizon.net) joined #osdev
19:47:18 <fnodeuser> Levex: which paper?
19:48:03 --- join: Atemu (~atemu@64.137.153.137) joined #osdev
19:49:33 --- quit: Atemu (Client Quit)
20:07:43 --- quit: StereoBucket (Read error: Connection reset by peer)
20:14:09 --- quit: LambdaComplex (Quit: WeeChat 1.9.1)
20:16:02 --- join: LambdaComplex (~LambdaCom@unaffiliated/lambdacomplex) joined #osdev
20:20:33 --- join: sprocklem (~sprocklem@unaffiliated/sprocklem) joined #osdev
20:24:54 --- quit: fusta (Ping timeout: 248 seconds)
20:26:44 --- join: fusta (~fusta@139.179.50.177) joined #osdev
20:29:54 --- quit: Belxjander (Ping timeout: 255 seconds)
20:30:50 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
20:31:16 --- quit: ljc (Quit: ayy)
20:42:36 --- quit: Belxjander (Ping timeout: 256 seconds)
20:43:51 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
20:55:36 --- join: regreg (~regreg@85.121.54.224) joined #osdev
21:03:51 --- quit: quc (Ping timeout: 268 seconds)
21:04:27 --- quit: Belxjander (Ping timeout: 256 seconds)
21:06:53 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
21:10:17 --- join: quc (~quc@host-89-230-164-23.dynamic.mm.pl) joined #osdev
21:10:24 --- join: xenos1984 (~xenos1984@22-164-191-90.dyn.estpak.ee) joined #osdev
21:21:49 --- quit: jack_rabbit (Ping timeout: 256 seconds)
21:34:51 --- join: jack_rabbit (~jack_rabb@174.34.177.131) joined #osdev
21:35:42 <m712> hm... what about something like this
21:35:53 <m712> an operating system specifically designed for clusters
21:36:12 <m712> the "mainframe" computer has the kernel and the programs needed for everything
21:36:40 <m712> the child nodes get sent a mini version of the kernel that allows them to connect to the mainframe and share their resources
21:37:16 <m712> (via netlink/netbios or the sorts)
21:37:39 <m712> then the mainframe kernel can shuffle and assign processes to different clusters equally
21:37:59 <m712> the mainframe can be small while the clusters carry the horsepower
21:38:02 <Kazinsal> Virtualization clusters probably do that more effectively
21:38:12 <m712> hm.
21:38:18 <Kazinsal> It kind of sounds like you're describing something like vSphere
21:38:59 <m712> well just an idea
21:39:03 <Kazinsal> Where you can have a large number of ESXi hypervisor hosts being orchestrated by a vSphere vCenter server running either as an appliance on one of the ESXi hosts or on a seperate host
21:39:20 <Kazinsal> And you can have redundant vCenter servers across your vSphere
21:40:14 <Kazinsal> Add in shared storage -- generally implemented through iSCSI and NFS SANs -- and you can migrate virtual appliances between hosts in a datacentre on the fly
21:40:37 --- quit: freakazoid0223_ (Quit: If you think nobody cares, try missing a few payments)
21:42:50 <geist> there have also been clustered OSes back in the day, usually with some sort of custom interconnect (at least initially)
21:43:15 --- quit: Belxjander (Ping timeout: 255 seconds)
21:43:33 <geist> OpenVMS had some pretty neat clustering capability. not sure you could migrate processes across nodes, but a fair amount of system resources (like file systems, login sessions, pipes, etc) were global to the cluster
21:43:46 <geist> so you could spread processes across a bunch of nodes fairly transparently
21:48:31 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
21:52:40 --- join: babyflakes (uid171740@gateway/web/irccloud.com/x-fracwuqwcyakrawa) joined #osdev
21:56:17 --- join: curiosity_freak (~naveen@157.50.9.213) joined #osdev
21:57:12 <curiosity_freak> anyone here written your own bios firmware?
21:57:43 <curiosity_freak> i want to understand how bios works indepthly
22:01:56 <curiosity_freak> anyone ???
22:02:07 <m712> i don't think anybody has
22:02:09 <m712> because it's extremely hardware specific
22:02:12 <m712> and you wouldn't want to either
22:02:13 <m712> do you want a bootloader instead?
22:02:23 <m712> curiosity_freak: hi?
22:02:27 <m712> i was talking to you
22:03:57 --- quit: Belxjander (Ping timeout: 276 seconds)
22:04:13 <m712> besides, *why* would you want to write your own BIOS? it only works for a specific model of computer (unless you write 100s of different plug-in module sorts of thing, in which case see coreboot/libreboot)
22:04:32 <curiosity_freak> i learned that bios setup IVT and it initialize hardware and it implements interrupts
22:04:47 <m712> curiosity_freak: yes, for *itself*.
22:04:57 <Mutabah> And for very early boot code
22:05:02 <curiosity_freak> i want to know how it initializes hardware
22:05:05 <m712> you define your own interrupts, the BIOS is just a layer at the bottom
22:05:27 <Mutabah> curiosity_freak: With the exception of the RAM and maybe PCI enumeration, same way as a kernel would
22:05:33 <m712> ^
22:05:49 <curiosity_freak> okay
22:05:54 <m712> and you will never need to initialize them
22:06:13 <m712> just initialize what isn't in your kernel bootstrapper
22:06:14 <Mutabah> RAM and chipset initialisation is very hardware-specific (not just motherboard specific, but revision specific) - and PCI range allocation is usually done by the PCI bios to make the kernel's life easier
22:06:29 <klys> curiosity_freak, seabios.
22:06:43 <curiosity_freak> is seabios opensource?
22:06:46 <m712> yes
22:06:52 <klys> yes
22:07:00 <Mutabah> it's the BIOS used by qemu/bochs
22:08:00 <m712> i still don't understand for what pvrpose you want this
22:08:03 <m712> i'm slow
22:08:35 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
22:10:00 <curiosity_freak> i just want to know how bios works , instead of just learning and using it
22:10:15 --- quit: jack_rabbit (Read error: Connection reset by peer)
22:12:44 <klys> here's another free bios: http://www.phatcode.net/downloads.php?id=101
22:12:45 <bslsk05> ​www.phatcode.net: phatcode.net / downloads / other / miscellaneous / super pc/turbo xt bios 3.1
22:16:40 <curiosity_freak> thanks guys!
22:21:22 <Kazinsal> The old IBM Personal Computer series manuals had their BIOS assembly listings in the back of the books
22:21:42 <Kazinsal> Obviously some of them are pushing 40 years old now but they're still neat
22:21:46 --- quit: quc (Ping timeout: 256 seconds)
22:22:17 --- quit: curiosity_freak (Quit: Leaving)
22:28:25 --- join: jack_rabbit (~jack_rabb@2601:240:8201:74f0:80ba:bf06:e018:f8b7) joined #osdev
22:28:57 --- quit: zhiayang (Quit: ZNC 1.6.5 - http://znc.in)
22:31:07 --- join: zhiayang (~zhiayang@138.75.223.203) joined #osdev
22:31:35 --- quit: giraffe (Quit: ZNC - http://znc.in)
22:36:04 <geist> Kazinsal: word.
22:38:27 --- quit: emdub (Ping timeout: 240 seconds)
22:38:30 --- quit: hiei (Ping timeout: 276 seconds)
22:39:16 --- join: emdub (~mike@kashmir.ef.net) joined #osdev
22:40:10 --- join: hiei (jaganshi@gateway/shell/elitebnc/x-wmeqjovefwslrrfu) joined #osdev
22:40:23 <graphitemaster> this is why I can't be productive https://i.redd.it/3da8xw971n901.jpg
22:40:24 --- quit: Belxjander (Ping timeout: 255 seconds)
22:42:29 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
22:42:32 <Mutabah> :D
22:44:59 --- join: giraffe (skarn@gateway/shell/firrre/x-jmnpdhkysuqobrhd) joined #osdev
22:51:54 --- quit: MrOlsen (Read error: Connection reset by peer)
22:52:02 --- join: MrOlsen (~reddawg@Pub.SpherePBX.com) joined #osdev
22:53:39 <jjuran> graphitemaster: https://101qs-media.s3.amazonaws.com/largethumbs/1407-pie-chartliterally.jpg
22:54:23 --- quit: pictron (Ping timeout: 256 seconds)
23:01:11 --- quit: Belxjander (Ping timeout: 256 seconds)
23:03:52 --- quit: pounce (Quit: WeeChat 2.0.1)
23:05:33 --- join: sinetek__ (~sinetek@45.56.149.76) joined #osdev
23:07:03 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
23:07:59 --- quit: sinetek_ (Ping timeout: 256 seconds)
23:18:55 --- join: curiosity_freak (~naveen@157.50.9.213) joined #osdev
23:19:57 --- quit: curiosity_freak (Client Quit)
23:27:09 --- quit: sprocklem (Ping timeout: 276 seconds)
23:33:00 --- quit: Belxjander (Ping timeout: 276 seconds)
23:35:29 --- join: adminseodwn (~archer@unaffiliated/remcwo9o) joined #osdev
23:37:47 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
23:39:43 --- quit: regreg (Ping timeout: 256 seconds)
23:53:53 --- quit: Belxjander (Ping timeout: 256 seconds)
23:59:59 --- log: ended osdev/18.01.12