It's currently using wcc to compile the kernel https://github.com/wandwramp/wcc. We can swap it with gcc for sure, but require bit of work, especially the output format and backend.
Winix assumes the output file is in srec format https://en.wikipedia.org/wiki/SREC_(file_format), so we would need to tweak gcc to support this header format and add backend support for WRAMP architecture.
ELF is quite complicated, if I have to do this, I probably just copy some codes from linux.
Wow, I didn't know WAND had a github page. I'll get my fork merged with the main repo in that case.
The custom fork basically adds a extra button "Quick Load", since the srec file can be quite large to transfer through serial port to load, so I just implemented extra button to read srec file directly into memory.
I did struggle to explain the significance of this project when I was applying for graduate roles, especially to HR people who only look for keywards in CV.
But there are people who appreciate my work.
I got my internship at AWS because my interviewer who had technical background was very impressed with my work, hence the reason I got hired.
Sometimes you just have to find the right audience.
NZ is a very small market compared to the rest of the world, so there is a lot less opportunities here in NZ in terms of number of startups and number of tech firms. The salary is also lower compared to other developed countries. Any software engineer in NZ can easily get a 30-50% salary raise by going to Australia. A lot of talents ran away from NZ because of this.
There are still some exiting companies, for instance, Serko whom I am currently working for is expanding into the international market to seize the post-pandemic opportunities. But overall it's bit stagnant compared to other OECD countries.
That's a very smart way of debugging concurrency. I did a lot of logging as well when I was doing debugging concurrency. Overtime once you got familar with the projects, I started to develope instincts on how everything fits together. That's when reading code line by line, making educated gusses start to become viable way of debugging concurrency.
But for complex projects, reading code or relying on instincts may not work alone as brain power run out of capacity. That's why logging helps a lot
Thanks. The OS is roughly 90% compliant with POSIX.1, but there's still a lot of work to make it fully compliant. That would probably be my next goal. This is a hobby project, I will probably spend 1-4 horus every other week to work on this. I am working on optimising memory usage of the file system which is almost completed in a separate branch.