هسته لینوکس
لینوکس یک کلون از UNIX است، بنابراین به دنبال انطباق POSIX و Single UNIX (SUSv3) است. بعلاوه، از آنجا که لینوکس یونیکس نیست، هسته مکالمه‌های اضافی سیستم و رابط‌های دیگر که مخصوص لینوکس هستند فراهم می‌کند. برای درج در هسته رسمی، کد باید با مجموعه ای از قوانین صدور مجوز تعریف شده کاملاً مطابقت داشته باشد.
لایه انتزاعی
در سیستم عامل یونیکس، بیشتر عملیات ورودی و خروجی به عنوان جریان بایت‌ها یی در نظر گرفته می‌شوند که از یک دستگاه خوانده می‌شوند یا روی یک دستگاه نوشته می‌شوند. این مدل جریان بایت برای I/O فایل، سوکت I/O و ترمینال I/O برای ایجاد استقلال در دستگاه استفاده می‌شود. برای خواندن و نوشتن در سطح برنامه یک دستگاه، برنامه یک تابع را برای باز کردن دستگاه فراخوانی می‌کند که این دستگاه ممکن است یک دستگاه واقعی مانند یک ترمینال یا یک دستگاه مجازی مانند یک پورت شبکه یا یک فایل در یک سیستم فایل باشد. ویژگی‌های فیزیکی دستگاه توسط سیستم عامل مشخص می‌شود که یک رابط انتزاعی را که به برنامه‌نویس اجازه می‌دهد تا بایت‌ها را از دستگاه بخواند و در دستگاه بنویسد ارائه می‌دهد. سپس سیستم عامل تبدیل نهایی مورد نیاز برای خواندن و نوشتن جریان بایت‌ها در دستگاه را انجام می‌دهد.