Hello!
On Fri, Jun 27, 2008 at 06:13:11PM +0800, Star Liu wrote:
I'm a newbie in the free software world(I was a web developer on the microsoft .net framework for the past 4 years), though I have some knowledge about programming, I'm not familiar with the develop environment of free software.
The tools we use are GCC, GNU binutils and GNU make. These are "low-level" tools: compiler, linker, and build scripts, but they are the least common denominator. Individual developers are free to choose whatever IDE they prefer, as long as the base tools are the same.
That said, coreboot v2 does not fit very well into any IDE because it uses a special-purpose utility that was developed within the project as part of the build process. This has been removed in v3.
I have always been willing to develop free softwares, and I hope I can join the coreboot development as my start.
Certainly. You are very welcome!
Could you give me some suggestions so that I can get into the coreboot development?
Find a mainboard that is supported in coreboot, and pick a known problem that you would like to work on fixing.
Note that coreboot also supports the QEMU mainboard, so you can get away with a pure free software solution if you do not have easy access to hardware. Also, QEMU is much easier to restore than a flash chip that does not boot the system, as will undoubtedly happen sometime while working on coreboot.
Here is some introduction to my current skills.
- I'm very interested in UEFI/BIOS development.
- Familiar with <Intel(R) 64 and IA-32 Architectures Software Developer's Manuals>, the description of Intel(R) 64 and IA-32 Architectures.
- Program in x86_64 Assembly, C, C++ and C# Language.
- Use Debian GNU/Linux Lenny AMD64 as my personal PC operating system.
There is only a little assembly in coreboot, the majority of the project is written in C. The assemly code deals with some well-known issues (switching between real mode and protected mode) and for v3 one major new thing which is setting up Cache-as-RAM on each supported CPU.
I recommend reading the FAQ on the project wiki: http://coreboot.org/FAQ
Even though it is a little outdated in places, it still contains a great deal of useful information. When you are ready to send patches to the project, please have a look at: http://coreboot.org/Development_Guidelines
Best regards
//Peter