Page 4 of 12
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Mon May 19, 2014 9:28 am
by Peterbjornx
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Mon Jun 23, 2014 3:17 pm
by ker2x
i'm in a permanent state of AWWWWW YEAH!
- wrote the first byte of my MBR : AWWWWW YEAH!
- loaded it in BOCHS : AWWWWW YEAH!
- understood how the BOCHS debugger works : AWWWWW YEAH!
- called my first INT to clear the screen and write something : AWWWWW YEAH!
- understood the boot sequence : AWWWWW YEAH!
-
RELOCATING THE MBR : AWWWWW YEAH! <- that was a big one
- reading the disk
to load the first stage of the bootloader
: AWWWWW YEAH!
- jumping to the 1st stage of the bootloader : AWWWWW YEAH!
More to come, hopefully...
my development process :
0x00) ok, what's next ?
0x01) OMGWTF!?
0x02) read documentation
0x03) OMGWTF!?
0x04) BBQ?
0x05) read documentation
0x06) OMGWTF!?
0x07) read documentation
0x08) Haaaaaaaaa
0x09) write some code
0x0A) OMGWTF!?
0x0B) read documentation
0x0C) write some code
0x0D) Mmmm....
0x0E) write some code
0x0F) Doh !
0x10) write some code
0x11) AWWWWW YEAH!
0x12) GOTO 0x00
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Wed Jun 25, 2014 1:18 am
by Muazzam
My very exciting moments were:
1. When i successfully booted my hello,World OS on VirtualBox. My first step toward Operating system development.
2. When i booted my code on "real" hardware. From USB stick.
3. When i switched to 13h graphics mode.
4. When i discovered that "Hard disk" programming is simpler than floppy programming.
5. When i was switch to high resolution video mode (VESA).
6. When i found video mode of my desired resolution. (1366x786, mode#:162h)
In future my very exciting moments will be:
1. When i shall successfully port my real mode mouse driver to protected mode.
2. When i shall create floppy disk controller driver.
3. When i will create Wifi drivers.
4. When i will create laptop camera drivers.
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Wed Jun 25, 2014 4:59 am
by SpyderTL
Booting from floppy image
Booting from real floppy disk
Booting from CD image
Booting from real CD
Booting from Hard Disk image
Booting from USB device
Booting from PXE network
Booting from C64 cartridge image (yeah, seriously)
Booting a Raspberry Pi and turning on an LED
Programmatically powering off a PC
Programmatically ejecting a CD
Hello world in 32-bit (probably the most difficult item on the list)
Pretty much any time the machine does what the documentation says that it is supposed to do...
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Thu Jun 26, 2014 2:44 am
by shikhin
I thought the better "aww, yeah!" moments were when the machine did something it wasn't documented to do, and you figured it out.
Cheers,
Shikhin
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Sat Jun 28, 2014 1:01 am
by zhiayang
Just managed to get an ICMP reply from google.com (still manually resolving IP addresses, DNS support not in yet), I think this covers it:
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Tue Jul 01, 2014 2:54 am
by Antti
What's your OSDev AWWWW YEAH! moment?"
It was when I realised that there is no point in trying to use traditional programming languages, toolchains, file formats, etc. There are a lot of people who can do it better anyway. If I tried to follow the traditional path, I would not ever be best at it. It is also practically impossible that I came up with new innovations. If I create everything from scratch, it is at least theoretically possible. Very unlikely but possible.
The "AWWWW YEAH" moment was actually when I realised that it is possible to do this. All the tutorials and people are very much saying that I need some existing tools to be able to do anything. All I need is a small kickstarter, "an image builder", that I can write in C (for example). That tool is a temporary thing that is used only at the early stage. All the cross-compiler things, header files, programming language hacks, command line switches, linker scripts, and makefiles are very common for the followers of the traditional path. Those things are very irrelevant for me. Of course, I am reinventing the wheel very often...
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Tue Jul 01, 2014 3:57 am
by Bender
Antti wrote:What's your OSDev AWWWW YEAH! moment?"
It was when I realised that there is no point in trying to use traditional programming languages, toolchains, file formats, etc. There are a lot of people who can do it better anyway. If I tried to follow the traditional path, I would not ever be best at it. It is also practically impossible that I came up with new innovations. If I create everything from scratch, it is at least theoretically possible. Very unlikely but possible.
The "AWWWW YEAH" moment was actually when I realised that it is possible to do this. All the tutorials and people are very much saying that I need some existing tools to be able to do anything. All I need is a small kickstarter, "an image builder", that I can write in C (for example). That tool is a temporary thing that is used only at the early stage. All the cross-compiler things, header files, programming language hacks, command line switches, linker scripts, and makefiles are very common for the followers of the traditional path. Those things are very irrelevant for me. Of course, I am reinventing the wheel very often...
This reminds me of a guy who wrote an entire compiler without using a single tool. Just writing machine code in hexadecimal if I recall correctly.
Here's the link if anyone bothers:
http://homepage.ntlworld.com/edmund.gri ... piler.html
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Mon Jul 07, 2014 2:00 am
by Primis
When my VGA driver worked for the first time in 640x480x8, I directly manipulated The VGA registers and didnt resort to klunking into v86 mode. I had managed to do it completely from just reading refrence manuals. It was the first bit of "clean code" I'd written for my Kernel; that is, there was no tutorial, there was no example code.
The main reason it was "AWW YEAH!!!" Had to do with the accomplishment of finally being competent enough to read a datasheet and manual amd get useful information out of it. But it must have took another few weeks before I managed to do a proper putpixel() and primitiaves out of it.
I had to recently scrap that code when I did my rewrite though. It was spaghetti, and I didn't comment well enough. My current project is to make sure I keep the functions small in size, and scope.
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Mon Jul 07, 2014 3:17 am
by Combuster
640x480x8
Are you sure it wasn't 640x480x4 or 320x240x8?
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Mon Jul 07, 2014 11:16 am
by onlyonemac
Antti wrote:What's your OSDev AWWWW YEAH! moment?"
It was when I realised that there is no point in trying to use traditional programming languages, toolchains, file formats, etc. There are a lot of people who can do it better anyway. If I tried to follow the traditional path, I would not ever be best at it. It is also practically impossible that I came up with new innovations. If I create everything from scratch, it is at least theoretically possible. Very unlikely but possible.
The "AWWWW YEAH" moment was actually when I realised that it is possible to do this. All the tutorials and people are very much saying that I need some existing tools to be able to do anything. All I need is a small kickstarter, "an image builder", that I can write in C (for example). That tool is a temporary thing that is used only at the early stage. All the cross-compiler things, header files, programming language hacks, command line switches, linker scripts, and makefiles are very common for the followers of the traditional path. Those things are very irrelevant for me. Of course, I am reinventing the wheel very often...
That's kind of how I am, but not in terms of my toolchain but in the design of my operating system. I have not followed any tutorials beyond the point of gaining information. I have not copied and pasted any code. I have not read any references on OS design, only on the way the hardware works. My goal is to write an operating system completely from scratch without being influenced by previous designs (already it's too bad that nobody can break free of the traditional window-based GUI concepts).
Primis wrote:I had managed to do it completely from just reading refrence manuals. It was the first bit of "clean code" I'd written for my Kerenl; that is, there was no tutorial, there was no example code.
That's how my entire operating system is.
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Mon Jul 07, 2014 4:10 pm
by AndrewAPrice
onlyonemac wrote:My goal is to write an operating system completely from scratch without being influenced by previous designs (already it's too bad that nobody can break free of the traditional window-based GUI concepts).
That's what I want to do to. I like to think that we live in the past/future/alternative steam-punk universe - and that I've never used a computer before, but we have this mysterious machine with a screen that has the ability of doing calculations, simulating virtual worlds, manipulating media. These mysterious machines are all connected together to form a global sharing network.
Now, imagine with your eyes closed - how would that machine work? How is the crazy steam-punk mathematician running his algorithms on it, and sharing his results with his colleges? How would the school child do his homework or the parent access the news on this fantastical device?
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Wed Jul 09, 2014 9:35 pm
by Peterbjornx
first bits of ext2 support on my os
(just readdir atm, but it was also the first real test of my block device layer, ata driver and partition support)
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Sun Jul 20, 2014 9:08 pm
by Peterbjornx
Framebuffer device working in my os:
Re: What's your OSDev AWWWW YEAH! moment?
Posted: Tue Jul 29, 2014 9:44 am
by kutkloon7
MessiahAndrw wrote:onlyonemac wrote:My goal is to write an operating system completely from scratch without being influenced by previous designs (already it's too bad that nobody can break free of the traditional window-based GUI concepts).
That's what I want to do to. I like to think that we live in the past/future/alternative steam-punk universe - and that I've never used a computer before, but we have this mysterious machine with a screen that has the ability of doing calculations, simulating virtual worlds, manipulating media. These mysterious machines are all connected together to form a global sharing network.
Now, imagine with your eyes closed - how would that machine work? How is the crazy steam-punk mathematician running his algorithms on it, and sharing his results with his colleges? How would the school child do his homework or the parent access the news on this fantastical device?
Sounds cool
I don't exactly remember where I read this, but there was this guy (I think it was in a book or maybe in a presentation about starting a bussiness), which noted that this approach doesn't really work well. People are often unconsiously influenced by implicit assumptions they are not fully aware of. Instead he/she propsed the exercise to think about something, then think of all the normal practices or assumptions you can make about it, and then try to come up with something that does it different. As an example the Apple store was compared against normal technology stores.
My (fairly standard) example: of a cafe:
- There are waiter which take orders
- There is a bar where you can go to to make orders
- There are tables to sit, or you can sit at the bar
Or even more implicit assumptions:
- People can choose what they drink, but not how much they pay
- People sit down whenever there is place and leave whenever they want (I mean this as opposed to using a bowling lane, where you reserve the lane in front)
- People pay in money
- People only buy drink and/or food
- You usually don't go alone to a cafe
- You sit with friends on one table
- There is not a lot of interaction going between different tables/groups of people
(I think you get the picture by now, I just wanted to show there are a lot of things you can change if you want!)
Now that you're aware of all the assumptions, you can more easily discard them (of course, you don't have to, but now you can, at least for the assumptions you noticed). I absolutely LOVE this exercise, as it kind of reduces something people would call creativity (coming up with a twist on something or a new creative idea) to analytical thinking (noticing properties associated with something, which I tend to be better at). If I actually wanted to start a cafe, I would have 5 or 6 interesting alternatives to your everyday-standard cafe (please don't get the illusion that they would all be succesful, but I think at least some of them would).
Basically the same thing can be done for OSes
(although I doubt it works as well as for a cafe, as OSes are complicated and the different parts have to work together)