Selera pribadi saya untuk pengembangan Kernel Linux adalah Debian. Sekarang untuk poin Anda:
-
Seperti yang mungkin Anda duga, Ubuntu tidak membawa sesuatu yang baru ke kernel untuk memudahkan pengembangan, selain dari apa yang sudah tersedia di Debian. Misalnya make_kpkg adalah fitur Debian dan bukan Ubuntu. Berikut beberapa tautan untuk membantu Anda memulai tugas pengembangan Kernel Linux umum di Debian:
- Bab 4 - Tugas umum terkait kernel dari Buku Pegangan Kernel Linux Debian
- Bab 10 - Debian dan kernel FAQ Debian GNU/Linux
-
Cara termudah untuk melakukan debugging kernel adalah menggunakan QEMU dan GDB. Beberapa tautan untuk Anda mulai:
- http://files.meetup.com/1590495/debugging-with-qemu.pdf
- http://www.cs.rochester.edu/~sandhya/csc256/assignments/qemu_linux.html
Padahal, Anda harus menyadari bahwa metode ini tidak layak untuk skenario tertentu seperti debugging masalah perangkat keras tertentu dan semacamnya, yang mana Anda akan lebih baik menggunakan debugging serial fisik dan perangkat keras nyata. Untuk ini, Anda dapat menggunakan KGDB (berfungsi menggunakan ethernet juga). KDB juga merupakan pilihan yang baik. Oh, dan omong-omong, KGDB dan KDB telah digabungkan ke dalam Kernel Linux. Lebih lanjut tentang keduanya di sini. Metode keren lainnya, yang bekerja luar biasa untuk masalah yang tidak terkait dengan perangkat keras, adalah menggunakan Kernel Linux Mode Pengguna. Menjalankan Kernel dalam mode pengguna karena proses lainnya memungkinkan Anda untuk men-debugnya seperti program lainnya (contoh). Lebih lanjut tentang User-mode Linux di sini. UML adalah bagian dari Kernel Linux sejak 2.6.0 , sehingga Anda dapat membuat versi kernel resmi apa pun di atasnya menjadi mode UML dengan mengikuti langkah-langkah berikut.
-
Lihat item 2. Sayangnya tidak ada metode terbaik di sini, karena setiap alat/metode memiliki pro dan kontra.
Jika Anda mengembangkan untuk platform tersemat yang tidak didasarkan pada perangkat keras i386, Anda harus melakukan kompilasi silang. Proyek Emdebian menyediakan rantai alat untuk dikembangkan bagi banyak arsitektur (ARM, m68k, MIPS, dan lainnya) pada PC (i386 atau amd64). Itu berarti di bawah Debian, Anda cukup menambahkan repositori dan apt-get install toolchain untuk target pilihan Anda.
Probe JTAG memang ada, tetapi ini cukup mahal (dan perusahaan yang membangunnya memiliki kontrak eksklusif). Cara terbaik untuk men-debug kode kernel adalah memulainya di kvm atau qemu dengan gdbserver di dalam emulasi.