Tags:
Node Thumbnail

จากตอนที่แล้วบอกว่าลินุกซ์มี Threading Model อยู่สองแบบที่นิยมใช้ อันแรกคือแบบเก่า LinuxThreads กับของใหม่ NPTL ที่นี้เราจะอยู่ได้ไงว่าเรากำลังใช้ตัวไหนอยู่ เพราะถึงจะบอกว่า LinuxThreads กำลัง obsolete ไปแต่ลินุกซ์ส่วนมากก็จะมีตัวไบนารี่ ของทั้งสองตัวมาให้ด้วย เนื่องจากยังมีโปรแกรมเก่า ๆ มากมายที่ยังใช้ LinuxThreads อยู่และเนื่องด้วย LinuxThreads ไม่ได้เขียนตาม Posix Thread Standard ทั้งหมดทำให้มีบางฟังก์ชั่นที่ไม่ได้ตาม Posix standard ที่ถูกเรียกใช้โดยโปรแกรมเก่า ๆ นั้นไม่สามารถ ถูกยกเอามาใช้กับ NPTL ได้สมบูรณ์ เพราะงั้นบางเวลาที่เราจะรันโปรแกรมพวกนี้จำเป็นต้องคอนฟิกให้ใช้กับโมเดลที่ถูกต้อง ไม่งั้นอาจมี ไฟล์ coredump มาให้อ่านเล่น ๆ กัน

Tags:
Node Thumbnail

ปรกติเวลาทำงานก็ใช้ลินุกซ์หลายเวอร์ชั่นรวมทั้ง Solaris ด้วย วันหนึ่งก็มาสังเกตว่า เอ ทำไมลินุกซ์เรามันแตกโปรเซสออกมาเองเยอะแยะเลยเวลาใช้ ps -ef ดู แต่ใน Solaris กับไม่เป็น สงสัยเป็นเพราะธรรมชาติของลินุกซ์มันเองล่ะมั้ง เลยไม่ได้ใส่ใจ

ต่อมาพอเอาแอปพริเคชั่นตัวนี้มารันกับลินุกซ์เวอร์ชั่นใหม่ ๆ ปรากฎว่า อ้าวเฮ้ยทำไมมันไม่ยอมแตกโปรเซสออกมาเยอะ ๆ เหมือนเดิมฟะ งงนะเนี่ย แถมเวลารันบาง feature ยังเจอ coredump เข้าให้ อืมช่างปวดหัวยิ่งนัก ว่าง ๆ (ที่จริงไม่ว่าง แต่อดทนเก็บความสงสัยไว้ไม่ไหว) ก็เลยไปหาข้อมูลในเนต แล้วก็เลยถึงบางอ้อ ที่แท้ลินุกซ์มันมี Threading Model อยู่สองแบบนี่เอง ตูงงตั้งนาน