Bài viết mới nhất

Tổng 1823 bài
Hệ điều hành 03/09/2026 9 phút

Atomic nhanh gấp 2,6 lần mutex ở một luồng — rồi thua chính mutex ở tám luồng: 'lock-free' không phải phép màu

Atomic nhanh gấp 2,6 lần mutex ở một luồng (626 so với 239) — nhưng ở tám luồng atomic (25) còn thua mutex (40), và vòng CAS tự viết tụt xuống 7,5 triệu ops/giây với mười triệu lần thử lại. Lock-free không phải contention-free cũng không phải scalable; cách scale thật là giảm chia sẻ.

Hệ điều hành 03/09/2026 8 phút

Cùng một đoạn code O_DIRECT: chạy ngon trên máy dev, EINVAL giữa production — hợp đồng mỗi filesystem thực thi một khác

O_DIRECT bỏ qua page cache, đòi buffer/offset/độ dài căn lề theo khối. Nhưng việc thực thi tùy filesystem: overlayfs từ chối buffer lệch bằng EINVAL, FUSE lờ đi cho chạy, /dev/zero không mở nổi. Code thiếu căn lề chạy tốt lúc test rồi vỡ trên fs production — 'chạy được trên máy mình' là lời hứa rỗng.

Hệ điều hành 03/09/2026 9 phút

mmap 100GB trên máy 8GB vẫn thành công — nhưng cùng lệnh đó có lúc từ chối cả 6GB: malloc nói dối theo một con số bạn không thấy

mmap 100GB trên máy 8GB thành công ở chế độ always (Committed_AS lên 101GB) — nhưng cùng lệnh đó trả NULL ở chế độ strict, nơi cả cấp phát 6GB cũng thất bại vì vượt CommitLimit ~5GB. malloc thành công hay không không phải thuộc tính của code bạn hay RAM máy, mà của một sysctl toàn hệ thống.

Hệ điều hành 03/09/2026 8 phút

Một tiến trình, hai số PID: 'PID 1' trong container của bạn không phải init thật của máy

Cùng một tiến trình là PID 1 nhìn từ trong namespace, PID 17 nhìn từ host — inode namespace khác nhau chứng minh đó là hai view của một tiến trình. Container không phải máy ảo: chỉ là tiến trình host với view riêng. Vì sao nhiều 'sự thật' của hệ điều hành là tương đối theo góc nhìn.

Hệ điều hành 03/09/2026 8 phút

Định đo cache-miss bằng perf, máy ảo trả 'No such file': khi công cụ báo lỗi lại là dữ liệu trung thực nhất

Định dùng perf đo cache-miss, nhưng mọi bộ đếm phần cứng trả ENOENT — máy ảo trên Apple Silicon không mở PMU cho guest. Bộ đếm phần mềm vẫn chạy vì nhân tự đếm. Không có counter thì suy hiệu ứng qua thời gian: truy cập ngẫu nhiên chậm 2,4 lần tuần tự. Một 'không đo được' trung thực hơn một con số bịa.

Hệ điều hành 03/09/2026 9 phút

26 mili giây hoá 7 giây khi tôi bật strace: cái kính hiển vi tôi suýt dùng làm đồng hồ bấm giờ

strace bẫy mỗi syscall bằng ptrace — 200.000 lời write từ 26 ms phồng thành 7144 ms, chậm 270 lần. Cột 'seconds' của strace -c báo write tốn 0,73 giây trong khi cả chương trình chỉ 26 ms: đó là thời gian dưới ptrace, không phải chi phí thật. Kính hiển vi để THẤY, không phải đồng hồ để đo.