او با يك سيستم فايل سلسله زبان برنامه نويسي سي شارپ مراتبي، يك مفسر خط فرمان و ساير برنامه هاي كاربردي شروع كرد. در عرض يك ماه او يك سيستم عامل با اسمبلر، ويرايشگر و پوسته ايجاد كرد. آنها ويژگي هاي كوچكتر و ساده تر MULTICS بودند. اين سيستم عامل اولين نسخه يونيكس بود.
روزهاي اوليه يونيكس با زبان اسمبلي
در ابتداي پروژه، كن تامپسون نمي توانست بر روي كامپيوتر DEC PDP-7 برنامه ريزي كند. برنامههاي DEC PDP-7 بايد روي مينفريم قدرتمندتر GE 635 كامپايل و ترجمه ميشدند و سپس خروجي بهصورت فيزيكي توسط نوار كاغذي به PDP-7 منتقل ميشد.
DEC PDP-7 حافظه بسيار كمي داشت، فقط 8 كيلوبايت. براي مقابله با اين محدوديت، سيستم فايل، اولين نسخه هسته يونيكس و عملاً هر چيز ديگري در پروژه در اسمبلي كدگذاري شد. استفاده از اسمبلي به تامپسون اين امكان زبان برنامه نويسي سي شارپ را مي داد كه مستقيماً هر قسمت از حافظه آن رايانه را دستكاري و كنترل كند.
زبان اسمبلي يك زبان برنامه نويسي سطح پايين است كه از كد نمادين استفاده مي كند و نزديك به زبان مادري ماشين يعني باينري است. دستورالعملهاي موجود در كد و هر عبارت در زبان، دقيقاً با دستورالعملهاي ماشين مخصوص معماري رايانه مطابقت دارد.
وابسته به ماشين و مخصوص ماشين است، به اين معني كه يك مجموعه دستورالعمل نتايج بسيار متفاوتي از ماشيني به ماشين ديگر دارد. برنامه هاي نوشته شده به زبان اسمبلي براي نوع خاصي از پردازنده نوشته شده اند – بنابراين برنامه اي كه به زبان اسمبلي نوشته شده است روي انواع پردازنده ها كار نمي كند.
در آن زمان نوشتن سيستم عامل ها با استفاده از زبان اسمبلي رايج بود. و زماني كه آنها براي اولين بار كار بر روي يونيكس را شروع زبان برنامه نويسي سي شارپ كردند، قابليت حمل را در ذهن نداشتند.
آنها اهميتي نمي دادند كه سيستم عامل روي سيستم ها و معماري هاي ماشيني مختلف كار كند. اين فكري بود كه بعداً به وجود آمد. اولويت ايرانيان سايبر اصلي آنها كارايي نرم افزار بود.
در حين كار روي MULTICS، آنها از زبان هاي برنامه نويسي سطح بالا مانند PL/I در ابتدا و بعداً BCPL استفاده كردند. برنامه نويسان به دليل مزايايي كه ارائه مي دادند (استفاده و درك نسبتاً آساني) به استفاده از زبان هاي سطح بالا براي نوشتن انواع نرم افزارها، ابزارها و ابزارهاي سيستم عامل عادت كرده بودند.
هنگام استفاده از يك زبان برنامه نويسي سطح بالاتر، انتزاعي بين معماري كامپيوتر و جزئيات مبهم مختلف وجود دارد. يعني بالاتر از سطح دستگاه است و هيچ دستكاري مستقيمي روي سخت افزار وجود ندارد خاطره
زبانهاي سطح بالا خواندن، يادگيري، درك و نگهداري آسانتر هستند كه باعث ميشود هنگام كار در يك تيم انتخاب آسانتري داشته باشند. دستورات داراي نحوي مانند زبان انگليسي هستند و اصطلاحات و دستورالعملها در مقايسه زبان برنامه نويسي سي شارپ با قالب نمادين اسمبلي آشناتر و انسان دوستانهتر به نظر ميرسند.
استفاده از زبان هاي سطح بالا همچنين به معناي نوشتن كد كمتر براي دستيابي به چيزي است، در حالي كه برنامه هاي اسمبلي بسيار طولاني بودند.تامپسون از همان ابتدا مي خواست از يك زبان سطح بالاتر براي يونيكس استفاده كند، اما توسط DEC PDP-7 محدود شد.
با پيشرفت پروژه و با شروع كار افراد بيشتري روي آن، استفاده از اسمبلي ايده آل نبود. تامپسون تصميم گرفت كه يونيكس به يك زبان برنامه نويسي سيستم سطح بالا نياز دارد.
در سال 1970 آنها توانستند بودجه بزرگتر و قدرتمندتر DEC PDP-11 را دريافت كنند كه حافظه بسيار بيشتري داشت.با يك زبان برنامه نويسي سطح بالا سريع، ساختار يافته و كارآمدتر كه مي تواند جايگزين اسمبلي شود، همه مي توانند كد را درك كنند و كامپايلرها را مي توان در اختيار ماشين هاي مختلف قرار داد.
آنها شروع به كاوش در زبان هاي مختلف برنامه نويسي سي شارپ براي نوشتن نرم افزارهاي سيستمي كردند كه مي توانستند براي پياده سازي يونيكس از آنها استفاده كنند.