This has been a very innovative two weeks! I wanted to finally design the UI and window system of the OS, so I drew up mockups of what I want it to look like. I used Figma to prototype out what the windows and design might look like, and the different functionalities I could use. Here are some pictures from my designing process that I will implement into the UI. I'm thinking of having a default skeleton design, and then theming can be applied later. Of course, the window API that I'm designing will require memory allocation, since windows are so dynamic and can hold such different data that I will need a dynamic memory API at some point. This will allow me to request more memory from the system than planned, so that way I can add more data to the screen, or even create more windows. This memory allocation is a core need of any LIBC library, and this is an investment into the future. At first I opted to use a linked list model to store allocated memory. Essentially, in the BSS memory space, I can transform arbitrary sections of it to be memory blocks, which are at least the size of the required data. The store information about its creation and contain the actual free data that can be used. Importantly they contain pointers to the next and previous memory blocks, meaning that freeing and traversing memory is easy. Below is a diagram. What's important, though is that this is not space-efficient. It requires a lot of extra memory to store the metadata of the memory block, and there is no good structure to find free blocks after I allocated to the end of the BSS allocated space. A better implementation is to chunk the free space into blocks, and have a Memory Allocation Table which tracks whether blocks are used or not. This standardizes the data way more, and calculating free space is much easier. Stay tuned for the actual implementation of the window manager and the UI on QEMU! I'm working on doing the research to port the OS to actual hardware.
2 Comments
Mary Ellen Carsley
12/5/2022 09:04:20 am
Keep up the strong effort and let me know if you need anything. Looking forward to our meeting. Don't forget lunch on Friday 12/16!
Reply
Mary Ellen Carsley
12/16/2022 09:00:28 am
Please do not forget to post for 12/15. Thank you and Happy Holidays!
Reply
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2022
Categories |