HaPG – Deneysel Parser Generator – ASM Syntax

Daha yazının girişindeki not: Şu işe giriştim girişeli isimlendirme tekniklerim üzerine şöyle bir baktığımda kendimde fena bir megalomani sezmedim değil açıkçası :):

gibi…

Neyse… Mevzudan kısaca söz edersem, evet deneysel bir Parser Generator üzerinde çalışmaktayım, ufaktan ufaktan. Bu çalışma süresince bilinen Grammer, Parser, Compiler vb çalışmaları (CFG, LL(k) gibi) katlettiğimin farkındayım. Amaç biraz da bu aslında. Ortaya yeni neler çıkabiliyor, bunları görebilmek.

İlk adım olarak ortaya bir grammer çıkartmam gerektiğini ve Parser Generator projesine tam manasıyla daldığımda her bir adımı kontrol altında tutabilmeyi düşünerek kendisiyle sıkı fıkı olmaktan memnuniyet duyduğum, sevgili assembly dilinin Intel syntax’ını sağlayacak bir kurallar dizisi ortaya çıkartmaya çalıştım. Aşağıda bu kurallar dizisini ve sıktığım meta karakterler açıklamalarını bulacaksınız. Mevcuta döktüğüm kurallar tam bir assembler desteği sunmamakta. İlerleyen zamanlarda, vakit buldukça eksik kalan ve şimdiye kadar kullandığım assemblerlarda eksikliğini hissettiğim, “keşke şöyle bir şey de olsaydı” dediğim özelliklerin kurallarını da ekleyeceğim.

Kurallara ve ek özelliklere yönelik önerileriniz, tavsiyeleriniz göz ardı edilmeyecektir :) Sağlıcakla kalın… Continue reading

HasOS Günlükleri – 2013.06.09 Durum Güncellemesi

Eveeet.. 3 hafta kadar önce, HasOS projemin ilk adımı olan Ön Yükleme işlemlerini konu aldığım lisans tezimi tamamladım, bölüm tez inceleme kuruluna teslim ettim ve geçtiğimiz Perşembe günü de savunmamı tamamladım. Üzerimden gerçekten büyük bir yük kalktı.. Bir süre sonra çok daha büyükleri binecek ama, şimdilik kenarda dursun onlar :)

Bugün bitirme projeleri notlarının sisteme girildiğini öğrenince ayrıca bir sevindim :) Danışman hocamla yaptığımız SMSleşme sonrasında da notumun sabitliği kesinleşti.. Bitirme Çalışması = Bitti! :D Güzel bir projeyi güzel bir sunumla aktarıp güzel bir not aldığımı düşünüyorum… Teşekkür ediyorum Tuğrul Hocam.. Perşembe ve Cuma günlerindeki savunmalarda bazı diğer hocalarımızın tavırları, bitirme projesi başlığı altındaki kimi projeleri ve yapılan savunmaları gözlemledikten sonra size ayrıca, ayrıca ve ayrıca teşekkür ediyorum…

Tezi merak edip soruşturan arkadaşlara da teşekkürler.. İlgi görmek gurur verici, sağolun. Yapmış olduğum şey çok da aman aman bir şey değil, farkındayım. Cümleler iddialı olabilir, mazur görün. Belli bir hedef koyup, o hedefin ucundan tutup, bir yerden başlamak gerekiyordu :) Ben de hedefimi büyük tutup, ufakcık da olsa naçizane ipin ucundan tutmaya çalıştım..

Dersi geçmiş olmanın garantisiyle, birkaç talep neticesinde, hazırladığım teze buradan erişebilirsiniz.

Ekran görüntüsü olmadan olmaz bu arada :)

HasOS VBR on Production - up-to-date

HasOS VBR on Production – up-to-date

After VBR

After VBR

Herkese çalışmalarında kolaylıklar dilerim…

Hasan MANZAK

HasOS Günlükleri – 2013.05.06 Durum Güncellemesi

1,5 ay kadar önce geliştirmeye başladığım Has Operating System ana başlığı altındaki çalışmalarımın ilk aşamasını tamamladım. Günlükler’in ilk yazısında bahsini ettiğim ilk dört aşama şu an sorunsuz bir şekilde üretim ortamına taşınabilir durumda… Bir yandan da lisans bitirme projesi olarak başladığım bu projenin mevcut konumunu, danışman hocamla da görüşüp anlaşmamız sonucunda artık tezlendirebilirim…

Mevcut yetenekleri ve bulunulan konumu kısaca özetlersem:

  • Disk sektörlerine doğrudan okuma/yazma erişimi sağlayabileceğim araçlar programlandı. Bu araçlar sayesinde bölüm tablosuna müdehale edebiliyor, MBR ve VBR sektörlerine, yazmış olduğum programları kaydedebiliyorum. Sadece bu sektörlere değil, disk üzerindeki herhangi bir sektöre de doğrudan erişim yetisi mevcut.
  • IBM PC / Intel x86 mimarisinin boot işlemini BIOS’tan devralacak ve bu mimari için geliştirilmiş mevcut tüm diğer işletim sistemlerine devredebilecek MBR program kodu tamamlandı.
  • Boot işlemini MBR programından devralacak ve çoklu işletim sistemi açabilme seçeneği sunabilen bir VBR programı hazırlandı.
  • VBR programı dahilinde, boot aşamasında disk üzerindeki istenilen sektöre doğrudan okuma/yazma erişimi sağlayabilecek Boot-Time Disk Driver API’ları gerçeklendi.
  • Gene VBR programı dahilinde, kullanıcı ile interaktif bir haberleşme sağlayıp seçime yönelik işletim sistemini açabilme imkanı gerçekleştirildi. Yani: Boot Menu.
HasOS VBR on production

HasOS VBR on production

Bu noktadan itibaren, boot menü içerisinde HasOS seçiliminden sonra PC’yi protected moda geçirmek gerekiyor ki çalışmalarım o yönde devam edecek. Mevcut assemblerların ihtiyacım olan ve ekstra düşündüğüm bazı özellikleri sağlamamasından ötürü öncelikli olarak bir assembler geliştirmeyi planlıyorum, ki daha önce yazmış olduğum Motorola 680x Emülatörü projesinin çekirdek kısımlarının, yeni geliştirecek olduğum assembler konusunda çok yardımcı olacağını öngörüyorum. İsmi bile hazır: HASM :) Hassembler da olabilir :))

Ve son olarak yukarıda bahsini ettiğim araçların, MBR ve VBR programlarının kodlarını, tezimi hazırlayıp savunmamı yaptıktan sonra burada yayınlayıp, işlem adımlarını dilim döndüğünce anlatmaya, açıklamaya çalışacağım.

Şimdilik bu kadar…

Hasan MANZAK

HasOS Günlükleri – MBR ve VBR Saldırısı

Bir önceki yazıda geçen gece, HasOS süreci için MBR ve VBR’a yönelik ufak çaplı bir saldırıdan bahsedeceğim demiştim. Kısa kısa yaptığım o çalışmadan bahsedeceğim.

MBR (Master Boot Record), diskin ilk sektöründeki ön yükleme kaydıdır, 512-Byte genişliğindedir ve GPT, EFI konularını göz önüne almazsak, ön yükleme programının yanı sıra diskin bölümleme tablosu bilgilerini içerir. Yazının devamında EFI konu dışı kalacak ve BIOS standartları üzerinden devam edeceğim
Continue reading

HasOS Günlükleri – Girizgâh

(Yayınlama sonrası hata düzeltme notları:

  1. Öncelikle başlıktaki kelime hatasından ötürü özür dilerim. İlk yazdığım başlıkta kelime “Giriş”ti. Sonra kelime sonuna “-gâh” ekledim. Fakat yayınladıktan sonra farkettim; kelimenin aslı “Girizgâh”tır. Özrümün kabulü dileğimle..
  2. Başlığı düzelttim fakat mevcut/olası link paylaşımlarının etkilenmemesi için sayfa linkini eski halinde bıraktım.

İyi seyirler..)
 

Benim için büyük, insanlık için, peeah!, küçücük bir adım: Bu gece resmi olarak HasOS için kodlama adına ilk adımı atmış bulunuyorum…
Continue reading