Some Kernel Trees :P

เมื่อวาน blog เรื่องเคอร์เนลแพตช์ของ mm และ ck ไปแล้ว ยังมีแพตช์เคอร์เนลอีกหลายตัว แต่ละตัวก็ maintain tree ของตัวเอง มีจุดประสงค์ในการใช้ต่างๆ กันไป สรุปมาให้อ่านกัน:

  • aa tree ของ Andrea Arcangeli เน้นเรื่อง VM เป็นหลัก .. aa tree merge เข้าเคอร์เนลตั้งแต่ 2.4.10 .. VM ของเคอร์เนล 2.6 ก็มีพื้นฐานมาจาก aa tree
  • ac tree ของ Alan Cox .. Alan เป็น kernel maintainer ตั้งแต่ปลาย 2.0 2.2 เลยมาถึง 2.4 ช่วงต้นๆ ทุกคนยกย่องให้เป็นมือขวาของ Linus .. หลังวางมือ Alan ก็ยังมีส่วนช่วยงานเคอร์เนลอยู่อย่างต่อเนื่อง โดย maintain ac tree ที่มีฟีเจอร์ใหม่ๆ ที่ไม่อยู่ในวานิลลา .. ac tree ยังนับเป็นการทดสอบ bugfix และฟีเจอร์ ก่อนจะส่งให้ Marcello Tosatti (2.4 kernel maintainer ต่อจาก Alan) อีกทีด้วย .. ac patch หายร่วมปีแล้ว เพราะ Alan หยุดงานเคอร์เนลชั่วคราวไปเรียนต่อด้านบริหาร
  • bk tree เป็น snapshot จากโค้ดล่าสุดที่ merge เข้าเคอร์เนล .. ชื่อ bk มาจาก BitKeeper ซึ่งเป็นซอฟต์แวร์ SCM ที่ใช้ในการจัดการโค้ดของเคอร์เนลทั้งหมด คล้ายๆ CVS, SVN .. ลินุสเลือกใช้ BitKeeper เพราะสะดวกในการจัดการ changeset มากกว่าตัวอื่น .. BitKeeper เป็น commercial software แต่โครงการโอเพนซอร์สใช้งานได้ฟรี (as in free beer)
  • ck tree ของ Con Kolivas .. Con รวบรวมแพตช์เพื่องานเดสก์ท็อป/interactive/low latency เป็นหลัก และยังแฮ็ก scheduling ในเคอร์เนลให้เหมาะกับงานเดสก์ท็อป สมัยนึง ck tree เป็นแพตช์เซ็ตที่ทำงานเร็วกว่าวานิลลาจนรู้สึกได้
  • mm tree ของ Andrew Morton .. ตอนจะรีลีส 2.6 Linus ชวนให้ Andrew มาช่วย maintain kernel แต่ Andrew ก็แบ่งรับแบ่งสู้ สุดท้ายแล้ว Linus เลยเป็นคน maintain อย่างเป็นทางการ ในขณะที่ Andrew ช่วยรวบรวมแพตช์และแยก mm tree ไว้เพื่อให้ทดสอบกันในทำนองเดียวกับ ac tree / 2.4

นอกจาก tree ยอดนิยมข้างบนนี้ ก็ยังมี patch/patchset อีกเยอะนะ :

  • mjb ของ Martin J. Bligh (Scalability)
  • wli ของ William Lee Irwin (VM)
  • lsm ของ Chris Wright (Linux Security Modules)
  • osdl ของ OSDL (database/enterprise-level hacks)
  • dj ของ Dave Jones (I/O AGP)
  • rmap Rik van Riel (reverse mapping vm)

me:

[[email protected] web]$ uname -a
Linux peorth.kitty.in.th 2.6.8.1-ck4 #4
Tue Aug 24 21:30:27 ICT 2004 i686 i686 i386 GNU/Linux