What's your OSDev AWWWW YEAH! moment?
-
- Member
- Posts: 116
- Joined: Thu May 06, 2010 4:34 am
- Libera.chat IRC: peterbjornx
- Location: Leiden, The Netherlands
- Contact:
Re: What's your OSDev AWWWW YEAH! moment?
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
- 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?
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.
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?
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...
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...
Project: OZone
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
Re: What's your OSDev AWWWW YEAH! moment?
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
Cheers,
Shikhin
Re: What's your OSDev AWWWW YEAH! moment?
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:
[nx] kernel: http://github.com/zhiayang/nx
Re: 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.What's your OSDev AWWWW YEAH! moment?"
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...
- Bender
- Member
- Posts: 449
- Joined: Wed Aug 21, 2013 3:53 am
- Libera.chat IRC: bender|
- Location: Asia, Singapore
Re: What's your OSDev AWWWW YEAH! moment?
Antti wrote: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.What's your OSDev AWWWW YEAH! moment?"
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
"In a time of universal deceit - telling the truth is a revolutionary act." -- George Orwell
(R3X Runtime VM)(CHIP8 Interpreter OS)
(R3X Runtime VM)(CHIP8 Interpreter OS)
- Primis
- Member
- Posts: 62
- Joined: Fri May 14, 2010 3:46 pm
- Libera.chat IRC: Primis
- Location: New York, NY
- Contact:
Re: What's your OSDev AWWWW YEAH! moment?
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.
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.
Last edited by Primis on Tue Aug 12, 2014 3:42 pm, edited 1 time in total.
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: What's your OSDev AWWWW YEAH! moment?
Are you sure it wasn't 640x480x4 or 320x240x8?640x480x8
-
- Member
- Posts: 1146
- Joined: Sat Mar 01, 2014 2:59 pm
Re: What's your OSDev AWWWW YEAH! moment?
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).Antti wrote: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.What's your OSDev AWWWW YEAH! moment?"
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 how my entire operating system is.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.
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
- AndrewAPrice
- Member
- Posts: 2300
- Joined: Mon Jun 05, 2006 11:00 pm
- Location: USA (and Australia)
Re: What's your OSDev AWWWW YEAH! moment?
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.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).
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?
My OS is Perception.
-
- Member
- Posts: 116
- Joined: Thu May 06, 2010 4:34 am
- Libera.chat IRC: peterbjornx
- Location: Leiden, The Netherlands
- Contact:
Re: What's your OSDev AWWWW YEAH! moment?
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)
-
- Member
- Posts: 116
- Joined: Thu May 06, 2010 4:34 am
- Libera.chat IRC: peterbjornx
- Location: Leiden, The Netherlands
- Contact:
Re: What's your OSDev AWWWW YEAH! moment?
Sounds coolMessiahAndrw wrote: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.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).
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?
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)