2020-01-12 03:47:45

don't mean to be mean, but what's the point of this?
what kind of skrean readers can you install on it?
what is it baste off of?

I am a divine being. I can be called a primordial deity, but that might be pushing it, a smidge. I am the only one of my kind to have ten tails, with others having nine. I don't mean to sound arrogant, but I have ascended my own race.

2020-01-12 05:14:37

@26:
1) The point of this is purely educational, for me at least. I started it in hopes of learning far more about computers and it has been a wonderful experience. And by "far more about computers" I don't mean the stuff you learn everyday, I mean the bloody details that the average joe could care less about.
2) As post one indicates, it can't execute any programs whatsoever yet. At this time it outputs both to the screen and to a serial port (either virtual or physical). I've just recently learned how to properly utilize disks, so yeah.
3) Its not based off of anything. I wrote it by hand, at first following aguide, but that only got me so far (mainly memory management). The rest of the code I've written myself by hand.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2020-01-12 06:16:33 (edited by Ethin 2020-01-12 06:41:05)

Another update. Just finished the identify_device() safe function -- its about 400 lines of code or so) which builds all the data structures and strings for you. It unfortunately needs to use memory (I used a Vec<> and an heap-allocated string for drive serial number, media serial number, firmware revision and model number) but that's not much, less than 200 bytes or so. Also, thanks to Smartmontools's source code, specifically their ATA commands source code, helped me figure out the byte swapping that ATA8 ACS does. Its a tad confusing. Now onto verifying the twos compliment CRC32 of the entire structure to verify that the ATA controller and me are on the same page...
Edit: all done. However, either my code is messed up, I'm invoking Qemu wrong, or Qemu is not ATA8 ACS compliant, because bits 7:0 of word 255 from identify device should contain 0xA5, but they're all zero. Huh. Weird. Either way it works, or appears to, and I've done enough coding for today, I think.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2020-01-12 10:48:11

last question.
after coding all the hard stuff, will you code in your own skrean reader? or will you just port orca or nvdA into it?
wish you success
smile

I am a divine being. I can be called a primordial deity, but that might be pushing it, a smidge. I am the only one of my kind to have ten tails, with others having nine. I don't mean to sound arrogant, but I have ascended my own race.

2020-01-12 21:09:11

@29, I honestly don't know. I might code my own, because I've never done that before. Porting Orca would require porting ATK, gnome and all that... ug.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2020-06-25 22:59:14

Ok, guys, so some interesting updates. I've majorly restructured the kernel source tree. Drivers are now at the root of the source tree, under drivers/category/driver_lib. Each driver is its own, independent library. The idea is that someone can come along and write a file system driver, or an audio driver, etc., and abstract away IO functionality. The kernel can then pull in this library and give the library functions to perform IO operations. The library does not need to know, nor care, about how those operations are accomplished, so long as the library gets the information it wants. This is most obvious with the partition parsing library; currently it can fully parse GPT partition tables, though it does not do CRC verification for the partition entries themselves yet. This abstraction mechanism makes writing a driver library a bit harder, but you can still use the classic "enforce IO routines" way if you want to (or if you have to). This has, unfortunately, caused us to lose a lot of functionality; though the code for (say) the keyboard is still there, its no longer linked in (I'll be updating it soon enough so that it works).
FSes are proving to be a bit of a problem. But progress in general is slow, unfortunately, since I'm the only one working on this and can't dedicate all my time to it. But once I've gotten everything working again, I can start in on EXT2 again.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github