Günümüzde Bilgisayar Bilimleri ve Bilişim Teknolojileri yaşamın her alanı için vazgeçilmez olmuştur. İnternet ortamı hemen her konuda bulanıklığa neden olacak kadar fazla bilgi paylaşımı sağlamaktadır. Bu durum İşletim Sistemleri gibi Bilgisayar Bilimlerinin konularında görülmektedir. İyi planlanmış, duru, çelişmeyen ve uygulamalı bir bilgilendirme olmadığı sürece üretime dönüşebilecek bir eğitim süreci sağlanamamaktadır. Bu konuda Akademisyenlerimizin çalıştığı alanlarla ilgili Türkçe eserler vermesinin ülkemiz biliminin ve geleceğinin şekillenmesini sağlayacağına inanmaktayız. Bu düşünce doğrultusunda yaptığımız çalışmamızı, lisans seviyesinde bir ders kitabı olarak ulusal bilim platformuna sunmaktayız.
Bu kitap bütün bilgisayar bilimleri için temel teşkil eden İşletim Sistemleri üzerine teorik bilgileri sistem programlama uygulamaları ile birlikte veren bir çalışmadır. Çok önemli bir konu olan İşletim Sistemleri ile ilgili yabancı dillerde yazılmış çok sayıda kitap bulunmasına rağmen, ülkemizde başvurabileceğimiz Türkçe kaynak sayısı oldukça azdır. Bu çalışma ile ülkemizin Bilgisayar Bilimleri alanındaki Türkçe kaynak ihtiyacına katkıda bulunmayı hedeflemekteyiz. Kitabımız, Bilgisayar Mühendisliği Lisans öğrencileri başta olmak üzere, Bilgisayar Bilimleri, Mühendislik Bölümleri ve iyi düzeyde C programlama dili bilip bilgisayar yazılımı üzerine uzmanlığını arttırmak isteyen her insana hitap edecek şekilde yazılmıştır. Kitaptan en iyi şekilde yararlanmak için, belirli bir düzeyde C programlama dili bilgisi ön şart olarak gereklidir.Kitabın Giriş bölümünde işletim sistemlerinin temel kavramları, işletim sisteminin çalışma ortamları ve ara yüzleri hakkında bilgilendirme yapılmış, Windows ve Linux işletim sistemleri için bu ara yüzler görselleştirilmiştir. Bu bölümün sonraki iki kısmı ise işletim sistemlerinin gelişim tarihçesi ile mevcut işletim sistemi yapılarının analiz edilmesi üzerinedir. Sonraki bölüm Linux sistem çağrıları ve Windows API üzerinedir. Bu bölüm sistem çağrılarını kategorize edip kullanımlarının örneklendirildiği kısımdır. İlk defa Linux ile tanışanlar için çok temel kabuk kullanımı ve kabuk komutları gibi bilgiler EK 1 bölümünde yer almaktadır. Linux ortamında yazılım geliştirme tecrübesine sahip olmayan okuyucuların bu bölüm öncesi EK 1 bölümünü okuması tavsiye olunur. Windows API kısmında ise Windows işletim sisteminde Visual Studio ortamında C dili ile API çağırma anlatılıp örneklendirilmektedir. Bu kısımda ayrıca Linux sistem çağrıları ile benzer işlevlerin Windows ortamında yapılabilmesi için gerekli API ler tanıtılmaktadır. Kitabın üçüncü bölümünde prosesler, bileşenleri, oluşturulmaları, askıya alınmaları, tekrar başlatılmaları ve proseslere sinyaller gibi konular anlatılmış ve örneklendirilmiştir. Kitabın dördüncü bölümünde yer alan iplikler, bu bölümde anlatılmış sonraki bölümlerde bol miktarda örneklendirilmiştir. Çok iplikli programlama günümüzün çok çekirdekli işlemcileri için önemli bir gereksinim olduğundan, bu bölüm ve sonraki bölümler çok iplikli programlama ve sorunlarının giderilmesi üzerine anlatım ve örnekler içermektedir.
Beşinci bölüm hem prosesler hem de iplikler için iş sıralama yöntemlerinin incelendiği kısımdır. Mümkün olan en geniş içerik verilmeye çalışılmıştır. İşletim sisteminin iş sıralama algoritmasına müdahale kısıtlı veya hiç olmadığı için bu konuda örneklendirme yapılmamıştır.
Kıtabın altıncı bölümü Petri Net'lerin tanıtıldığı bölümdür. Kitap içerisinde ölümcül kilitlenmenin sezilmesi için Petri Net'lerden yararlanılmış ve metodolojik bir akış verilmeye çalışılmıştır. Bu örgün İşletim Sistemleri kitaplarında yer almayan bir yaklaşımdır. Bu kitabın orijinalliğini arttıran, tecrübeye dayalı çözümler yerine metodolojik çözümleme sunan bir tekniktir. Kitap içerisinde Petri Net çözümü ölümcül kilitlenme ile ilgili klasik problemler dâhil olmak üzere pek çok problemde denenmiş ve uygulamaların hepsinde başarılı sonuçlar vermiştir. Kitabın sekizinci bölümü prosesler ve iplikler arası olası paylaşımların ele alındığı kısımdır. Burada çeşitli paylaşım yöntemleri anlatılmış ve örneklendirilmiştir. Dokuzuncu bölümde klasik problemler iplik olarak Petri Net tabanlı çözümlenmiştir. Çözümlemeler semafor kullanımı ile ölümcül kilitlenmenin giderilmesi ve bu işlem için Petri Netlerden yararlanılması şeklindedir. Linux ve Windows ortamında çözümlerin C kodları ile gerçeklenmesi verilmiştir.
Onuncu bölümde işletim sisteminin ağ yönetim kısmı ile ilişkili, ağ yazılımcılığının temeli olan Soket programlama anlatılmıştır. Linux ve Windows ortamında Soket programlama örnekleri verilmiştir.
On birinci bölümde bellek yönetimi, tahsisi ve işletim sisteminin bellek yönetimi incelenmiş, bölümün sonunda Linux ve Windows işletim sistemlerinin bellek yönetim birimleri kıyaslanmıştır.
On ikinci bölüm dosya sisteminin anlatıldığı kısımdır. Dosya erişimleri, paylaşımları, yönetimleri bu bölümde anlatılmış ve örneklendirilmiştir.
Kitap içeriği anonimleşmiş konuları içerdiği için kaynaklar kitabın en sonunda verilmiştir. Her konu ile ilgili bol örneklendirme yoluna gidilmiş, hem Linux ( CentOS 5.4 ) hem de Windows ortamlarında aynı örnekler çözülmüştür.