1 puan yazan GN⁺ 2024-07-13 | 1 yorum | WhatsApp'ta paylaş
  • Bu depo, Power Macintosh üzerinde Windows NT’yi başlatmak için ARC ürün yazılımı ve yükleyici kaynak kodunu içerir; Gossamer/Grackle ailesi ile Mac99 ailesi PowerPC Macintosh sistemlerini hedefler
  • Destek kapsamı Power Macintosh G3, bazı iMac G3 modelleri, PowerBook G3/G4, iBook G3/G4 ve bazı Power Macintosh G4 sistemlerine ayrılır; ancak USB sürücüsünün olmaması nedeniyle bazı sistemler yalnızca teorik olarak desteklenir ya da pratik kullanım zordur
  • ARC ürün yazılımına Cuda/PMU, ADB klavye, 32bpp framebuffer, Mac I/O dahili IDE, bazı ATA-6, MESH SCSI ve USB OHCI sürücüleri dahildir; ancak PCI IDE sürücüsü ve LBA48 desteği yoktur
  • Windows NT tarafında Gossamer ve Mac99 için HAL, Mac I/O IDE/ATA-6 sürücüleri, ADB klavye/fare ve RAM disk uygulayan HID/depolama sürücüleri ile 32bpp framebuffer miniport sürücüsü hazır durumdadır
  • Uyumluluk kapsamı NT 3.51 RTM ve sonrasıdır; NT 3.51’in ilk beta sürümleri çekirdek yaması gerektirir ve NT 3.5 yalnızca PowerPC 601’i desteklediğinden uyumlu değildir

Proje kapsamı ve hedef donanım

  • Bu depo, Power Macintosh sistemlerini hedefleyen ARC ürün yazılımı ve yükleyici kaynak kodunu içerir
  • Gossamer mimarisi hedefi, MPC106 “Grackle” bellek denetleyicisi/PCI ana makinesi ile “Heathrow” veya “Paddington” Super I/O yongasını kullanan sistemlerdir
    • Power Macintosh G3 beige
    • Macintosh PowerBook G3 Series “Wallstreet”, “PDQ”
    • iMac G3 tray-loading
    • Power Macintosh G3 Blue & White “Yosemite”
    • Macintosh PowerBook G3 Bronze Keyboard “Lombard”
    • Power Macintosh G4 PCI “Yikes!”
  • Mac99 mimarisi hedefi, “Uni-North” bellek denetleyicisi/PCI ana makinesi ile “KeyLargo” Super I/O yongasını ve “Intrepid” gibi türev yonga setlerini kapsar
    • PowerBook G3 Firewire “Pismo”
    • iBook G3
    • iBook G4
      • mid-2005 iBook G4 PowerBook6,7 modelinde dahili fare USB olduğu için fare henüz çalışmaz
    • PowerBook G4
      • early 2005 sonrası PowerBook G4 PowerBook6,8, PowerBook5,6 ve sonraki modeller USB klavye ve fare kullandığından şu anda pratik kullanım desteği zordur
  • iMac G3 slot-loading, iMac G4 ve Power Macintosh G4 AGP “Sawtooth” sonrası modeller, USB sürücüsünün olmaması nedeniyle teorik olarak desteklense de şu anda pratik kullanım desteği zordur
  • Donanıma göre sorunlar olabilir ve NT HAL ile sürücü kaynakları şu anda dahil değildir

ARC ürün yazılımına dahil sürücüler

  • ARC ürün yazılımına Cuda ve PMU desteği dahildir
    • ADB klavye desteği de bulunur
  • Yükleyicinin ayarladığı düz 32bpp video framebuffer kullanılır
    • ATI ve nVidia donanımını destekler
    • Bazı nVidia GPU’lar şu anda çalışmaz
  • Mac I/O dahili IDE denetleyici sürücüsü OpenBIOS’tan çatallanmıştır
    • PCI IDE denetleyici sürücüsü yoktur

      • Bazı geç dönem Mac99 sistemlerindeki ATA-6 denetleyicileri, yani Intrepid ve U2 desteklenir
      • LBA48 henüz desteklenmez
      • pre-Mac99 sistemlerde MESH SCSI denetleyicisi desteklenir
      • USB OHCI sürücüsü OpenBIOS’tan çatallanmıştır
      • pre-Mac99 sistemlerde bozuktur, çalışmaz ve başlatma kodu da yorum satırı hâline getirilmiştir

Windows NT için uygulanmış sürücüler

  • Gossamer yonga seti için HAL uygulanmıştır
    • NT açılışında framebuffer
    • Super I/O kesme denetleyicisi
    • Grackle PCI veri yolu desteği
    • Cuda ve PMU ile düşük seviye ADB dahil
    • Yalnızca çekirdek hata ayıklama için seri port
  • Mac99 yonga seti için HAL de uygulanmıştır
    • NT açılışında framebuffer
    • MPIC kesme denetleyicisi
    • Uni-North’un 3 PCI veri yoluna destek
    • Bunlardan biri AGP’dir ancak yalnızca PCI alt kümesi desteklenir
    • PMU, düşük seviye ADB dahil
    • Yalnızca çekirdek hata ayıklama için seri port
  • Mac I/O dahili IDE denetleyicisi ve ATA-6 denetleyici sürücüleri, NT4 DDK içindeki atapi.sys dosyasından çatallanmıştır
  • Genel HID/depolama sürücüsü gelecekte USB yığınını da içermeyi amaçlar; ancak şu anda yalnızca ADB klavye/fare ve metin tabanlı kurulum sırasında sürücü kurulumu için disket sürücüsü olarak kullanılan RAM disk uygulanmıştır
  • Düz 32bpp video framebuffer miniport sürücüsü vardır

Yazılım uyumluluğu

  • Uyumluluk kapsamı NT 3.51 RTM ve sonrasıdır
  • NT 3.51 beta build 944 ve altı sürümler, işlemci algılama hatası nedeniyle çalıştırmak için çekirdek yaması gerektirir
  • NT 3.5 yalnızca PowerPC 601’i desteklediğinden uyumlu değildir
  • NT 3.51 PMZ’nin ek askıya alma/hibernation özellikleri teorik olarak uyumlu olabilir; ancak pratikte bu özellikler için gereken ek sürücülerin tamamının yeniden uygulanması gerekir

Kurulum akışı ve bölüm kısıtları

  • Sisteme uygun ikili dosyalar releases sayfasından indirilmelidir
  • Gossamer/Grackle sistemlerinde imaj optik ortama yazdırılmalıdır
    • Old World sistemi olan PowerMac G3 beige ve PowerBook G3 Wallstreet/PDQ için nt_arcfw_grackle_ow.iso kullanılır
    • New World sistemi olan iMac G3 tray-loading, PowerMac G3 blue&white, PowerBook G3 Lombard, PowerMac G4 Yikes için nt_arcfw_grackle.iso kullanılır
  • Mac99 sistemlerinde imaj USB sürücüye yazılabilir
  • ARC ürün yazılımı menüsünde Run firmware setupRepartition disk for NT installation yoluyla NT kurulumu için disk bölümlendirilir
  • NT bölümü boyutu, 16383x16x63 CHS sınırında 32MB ARC sistem bölümü ve 1MB çıkarıldıktan sonra en fazla 8030MB olur
  • NT bölümü boyutu 2GB’ı aşarsa NTFS olarak biçimlendirilir
    • 2024-11-11 öncesi sürümlerdeki NTFS biçim sürümü NT 3.51 ile uyumlu değildir
    • NT 3.51 kurmak için 2GB veya daha küçük bölüm kullanılmalıdır
  • NT kurulumu sırasında cd:\ppc\setupldr çalıştırılır; birden fazla optik sürücü varsa cd01: veya cd02: olabilir
  • HAL seçimi aşamasında listedeki öğelerin tümü sisteme uygun HAL’i yükler
    • Gossamer yonga seti HAL’i halgoss
    • Mac99 yonga seti HAL’i halunin
  • Yığın depolama sürücüsü aşamasında iki sürücünün de yüklenmesi gerekir
    • Mac I/O IDE Controller
    • PowerMac General HID & Storage
  • Video bağdaştırıcısı aşamasında işletim sistemine göre farklı seçenek seçilir
    • NT 4 için Open Firmware Frame Buffer
    • NT 3.51 için Open Firmware Frame Buffer (NT 3.x)
  • Metin tabanlı kurulumda klavye XT, AT or Enhanced Keyboard (83-104 keys) olarak değiştirilmeli, işaretleme aygıtı ise No Mouse or Other Pointing Device olarak ayarlanmalıdır
  • 2GB’tan büyük NT bölümü oluşturulduysa disk denetimi sırasında hatalar bulunur ve yeniden başlatma gerekir; ikinci denemede disk denetimi başarılı olur

Bilinen sorunlar ve çift önyükleme uyarıları

  • Gossamer/Gossamer ailesi dizüstülerde pili çıkarmak isteyebilirsiniz
    • Lombard’da bugcheck durumunda gücü kapatmanın tek yolu PMU sıfırlaması veya tam güç kesmesidir
    • Wallstreet/PDQ’da PMU sıfırlaması klavye kısayoluyla yapılabilir
  • Şu anda uygulanmış sürücüler, NT’yi çalıştırmak ve kullanmak için gereken asgari düzeydedir
  • NT açılışı sırasında PMU sert kapanması gözlemlenmiştir; yalnızca PMU sıfırlamasıyla düzelmiş, nedeni bilinmemektedir
  • Old World sistemlerde ARC ürün yazılımı dışındaki hedeflere önyükleme sorunu varsa, açılışta Esc tuşuna basmak ARC ürün yazılımı aygıtını atlar
  • Mac99’da USB sürücüleri henüz çalışmadığından yalnızca dizüstü sistemler desteklenir
  • Ek Mac bölümleri oluşturulursa bölüm tablosunda HFS bölümü olarak görünür, ancak biçimlendirilmez
    • Bölümler OS X 10.1 veya sonrası Disk Utility ile biçimlendirilmelidir
    • Sürücü değil, birim silinmelidir
    • 2024-11-11 sonrası sürümlerde OS 9’a önyükleyip başlangıçta görünen iletişim kutusuyla da biçimlendirme yapılabilir
  • Diskte NT için gerekli geçerli bir MBR varsa, OS X kurucusu ile OS 8/OS 9 önyüklemesi hata verir
    • ARC ürün yazılımında Run firmware setupReboot to OSX install or OS8/OS9 seçeneği kullanılmalıdır
    • 2024-11-11 sonrası sürümlerde, diske yazma sırasında OS8/9 sürücü kodu yamandığından bu seçenek gerekmez; ancak disk üzerindeki sürücü bölümü farklı şekilde güncellenirse yeniden gerekli olur
    • ARC ürün yazılımına yeniden önyükleme yapıldığında MBR değiştirilir
    • OS X 10.2 ve 10.3’te oluşturulan HFS bölüm biçimi, geçerli bir MBR varsa çalışmaz

Derleme koşulları ve boyut sınırları

  • ARC ürün yazılımını derlemek için devkitPPC gerekir
  • powerpcle için derlenmiş libgcc.a, arcgrackle/gccle içinde bulunmalıdır
    • 2024-07-12 itibarıyla Void Linux aynasında cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps dosyası bulunabilir
  • DEVKITPPC ortam değişkeni, genellikle /opt/devkitpro/devkitPPC olan devkitPPC dizinine ayarlanmalıdır
  • Derleme sırası big endian libc, ARC ürün yazılımı yükleyicisi, little endian libc, ARC ürün yazılımı şeklindedir
    • Mac99 için arcloader_unin, arcunin/baselibc, arcunin klasörleri kullanılır
  • Sürüm imajı içindeki stage1.elf ve stage2.elf dosyaları değiştirilmelidir
  • Klasör dökümünden imaj yeniden oluşturulurken hybrid HFS+ISO imajı oluşturulmalı, System klasörü blessed durumuna getirilmeli ve BootX dosya tipi tbxi olarak ayarlanmalıdır
  • stage1.elf 16KB veya daha küçük, stage2.elf ise 224KB veya daha küçük olmalıdır
  • Old World önyükleyici derlemesi için ilgili readme’ye, Old World ISO imajı oluşturmak için OldWorldIsoBuilder’a bakılmalıdır

Kullanılan kodlar ve referans projeler

  • libc olarak baselibc kullanılır
  • ELF yükleyicisi ve makefile, The Homebrew Channel projesinden alınıp değiştirilmiştir
  • Bazı düşük seviye PowerPC kodları, ARC ürün yazılımı framebuffer konsol uygulaması ve yazı tipleri, libogc projesinden alınıp değiştirilmiştir
  • Bazı ARC ürün yazılımı sürücüleri, IDE ve USB, OpenBIOS projesinden alınıp değiştirilmiştir
    • OpenBIOS’un USB sürücüsü coreboot projesinden alınmıştır
  • ARC ürün yazılımı içindeki ISO9660 dosya sistemi uygulaması, lib9660 değiştirilerek kullanılır
  • ARC ürün yazılımı içindeki FAT dosya sistemi uygulaması, Petit FatFs değiştirilerek kullanılır

1 yorum

 
GN⁺ 2024-07-13
Hacker News yorumları
  • Nostalji yüzünden aklıma şu yazı geldi: https://lowendmac.com/2014/next-openstep-and-the-triumphant-...
    Amelio ve üst düzey yönetim, Wintel devleriyle rekabet etmek için yeni bir işletim sistemine ihtiyaç duyuyordu; seçenekler Windows NT lisanslamak, Solaris lisanslamak, Copland’ı küçültülmüş olarak piyasaya sürmek, Be’yi satın alıp BeOS kullanmak ya da NeXT’i satın alıp OpenStep kullanmak gibi seçeneklere daralmıştı

    • NeXT’in API’si de Windows NT ve Sun’ın Solaris’i üzerinde çalışacak şekilde taşınmıştı; NextStep işletim sisteminin tamamı da birden fazla CPU mimarisinde bare metal olarak çalışıyordu
      Başlangıçta yalnızca NeXT’in Motorola 68k iş istasyonlarında çalışırken, 32 bit Intel x86 “IBM uyumlu” PC’lere, Hewlett-Packard’ın PA-RISC iş istasyonlarına ve Sun Microsystems’ın SPARC iş istasyonlarına taşındığı belirtiliyor: https://www.wikipedia.org/wiki/OpenStep
    • Apple’ın NeXT yerine Be’yi satın aldığı zaman çizelgesini bir kez olsun görmek isterdim
    • Jobs’ın dönüşünü merkeze alan bugünkü “klasik” anlatıda Mac OS 8/9’un mühendislik başarısı epey hafife alınıyor gibi geliyor
      Mac OS X, 2001’de 10.1’e gelene kadar pratik kullanım için kolay değildi; buna rağmen iMac, iBook ve PowerBook G3 başarılı olduysa işletim sistemi de mutlaka bir rol oynamış olmalı, ama bu tür anlatılarda buna neredeyse hiç yer verilmiyor
      1997–2001 arasında ergen bir Mac tutkunu olduğuma dair anılarım nostaljiyle karışmış olabilir, ama 90’ların ortasında 7.5 kullanan bir Performa’dan 90’ların sonunda 9 kullanan bir iMac’e geçene kadar epey değişim vardı
      Geleceğin işletim sistemi olmasa bile son kullanıcı açısından 8.6/9, Windows 95/98’e kıyasla daha modern hissettiriyordu; 90’ların ortasında da yalnızca iş tarafındaki gelecek karanlık görünüyordu, yoksa 7.5 özellikle 95’ten kötü değildi
    • Sonuçta Copland’dan kurtarılabilecek parçaları toplayıp Mac OS 8 olarak piyasaya sürdüler
    • “Microsoft’tan Windows NT lisanslayıp üstüne Mac benzeri bir arayüz koyma” seçeneğinin gerçekte ne kadar ciddiye alındığını merak ediyorum
      Diğer önerilerin hepsi makul, ama bu özellikle çok aykırı görünüyor; gerçekten yaşanmamış olması büyük şans
  • Aynı geliştirici geçen yıl PPC NT 4’ü Wii’ye de taşımıştı: https://www.youtube.com/watch?v=d8BpUpr1h9U

  • İlginç bir çalışma. ARC standardı https://en.wikipedia.org/wiki/ARC_(specification) DEC Alpha Windows makinelerini ve MIPS gibi sistemleri önyüklemek için kullanılıyordu
    1998’de Intel’deki ilk EFI şartnamesi ARC’yi model almış ve ondan ilham almıştı; Intel Boot Initiative (IBI) de büyük ölçüde ARC’ye benziyordu
    EFI, yani bugünkü UEFI, kabaca ARC’ye MS COM https://en.wikipedia.org/wiki/Component_Object_Model tarzı kurulabilir GUID tabanlı arayüzlerin, yani protokollerin eklenmiş hâli gibi
    https://www.intel.com/content/dam/www/public/us/en/documents... belgesinin 8. sayfasında bu zahmetli sürecin bir kısmı anlatılıyor

  • Windows NT gerçekten ilginçti. İyi bir kitap arıyorsanız Showstopper’ı öneririm

    • O kitap harikaydı; Masters of Doom veya The Soul of a New Machine ile yan yana konabilir
  • Tam da 1998 model bondi blue iMac G3’ümü açmak için bir bahane arıyordum ki bu çıktı; tuhaf, ham ve son derece spesifik bir proje

  • Bağlamı açıklayabilir misin? NT sonuçta kapalı kaynak ve Mac için geliştirilmiş de olmamalı; bunun gerçekte ne olduğunu merak ediyorum
    Yazılımı bulma ihtimalinin ne kadar olduğunu da bilmiyorum. NT yazılımlarının çoğu Intel’e özel derlenmişti ve kaynakları da kapalıydı diye tahmin ediyorum

    • NT, taşınabilirlik göz önünde bulundurularak tasarlandığı için aynı CPU içinde bile makineye özgü kısımlar temiz biçimde ayrılmıştır
      Bu yüzden yalnızca o kısmı taşırırsanız, ilgili mimari için mevcut ikili dosyaların çalışması gerekir
      Esas nokta üç şey. 1) ARC önyükleme firmware’i: NT, i860, MIPS gibi x86 dışı sistemlerde geliştirildi ve ARC varsayılan önyükleme firmware’iydi. x86’da Vista’ya kadar NTLDR bunu emüle ediyordu. Bu proje, OpenFirmware üzerinde ARC uyumlu bir ortam sağlarken, kurulumun ilk aşamasında sürücü “disketini” okuyabilmek için önyükleme firmware’inin bir depolama aygıtı varmış gibi davranmasını sağlamak gibi ilginç bir iş de yapıyor gibi görünüyor
      2) HAL.DLL: NTOSKRNL’nin ana gövdesi donanımdan bağımsızdır; fikir, her CPU mimarisi için tek bir ikili dosya olmasıdır. Ancak çekirdeğin gerçek zamanlayıcılar veya veri yollarıyla iletişim kurması gerektiğinden, bu arayüz kodu HAL.DLL’dedir ve kurulum sırasında uygun olanı kopyalanır. Eski Windows’un x86-32 HAL listesine https://www.geoffchappell.com/studies/windows/km/hal/history... adresinden bakılabilir. Günümüzde AMD64 için olan tek sürüm büyük ölçüde çekirdeğin içine girmiş durumda. Burada ana çekirdek olduğu gibi bırakılıyor ve Mac’e özgü işlemleri halgoss üstleniyor
      3) Aygıt sürücüleri: NT ayağa kalktıktan sonra gerçek sürücüler gerekir
      1)’in belirtimleri bilindiği için emüle edilebilir olmalı; 3) ise DDK varsa ya da başka DDK’lerden çıkarım yapılarak mümkün olabilir. 2) en fazla içeriden bilgi gerektiren kısım gibi duruyor; sızan NT kaynağının o seviyeye kadar inip inmediğini görmediğim için bilmiyorum
      Uyumluluk; 32 bit PowerPC Win32 ikilileri, 16 bit x86 Win16 ikilileri ve NT4 DOS kutusunda çalışan x86 DOS programları düzeyinde. x86 Win32 çalışmaz; yalnızca Alpha’da x86 Win32 emülatörü vardı
    • NT4, PowerPC, MIPS ve Alpha mimarileri için geliştirilmişti. NT4 kaynak kodunun kayda değer bir kısmı da bir dönem sızmıştı https://www.neowin.net/news/exclusive-windows-2000--windows-...
      Yazarın o kaynağı kullandığı anlamına gelmez, ama böyle bir kaynak varsa bu işi çok daha kolaylaştırmış olmalı
      Ya da önyükleyiciyi clean-room yöntemiyle tersine mühendislik etmiş olabilir; ya da Windows iç kodlarını bilmeyi gerektirmeyecek kadar herkese açık bilgi yeterli olmuş olabilir
      PPC kod tabanı doğrudan Mac’i hedeflemiyordu; IBM/Motorola’nın başka sistemleri içindi, ancak “ortak” platform olduğu için NT4 ISO’su içindeki ikili dosyaların kendisini değiştirmeye gerek yok
      Ayrıca GitHub’da kaynak kodunu çeşitli depolarda bulmak mümkün
    • Xbox 360 PowerPC tabanlıydı ve Windows 2000’in, yani NT işletim sisteminin bir türevini çalıştırıyordu: https://en.wikipedia.org/wiki/Xbox_360_technical_specificati...
  • Eski Windows NT’yi gerçekten severdim. 90’ların sonunda düşük donanımlarda bile çalışacak kadar hafifti ve Windows 95’ten çok daha kararlıydı

    • Microsoft POSIX alt sistemini ciddi biçimde öne çıkarsaydı, UNIX ödevleri yüzünden Linux’la uğraşmam gerekmeyebilirdi
      Onun yerine ikisini dual boot ile kullanıyordum
  • Çok havalı; tüm DOS oyunlarından vazgeçtiğim dönemleri yeniden yaşayacak olma fikri beni heyecanlandırıyor

    • Bu, DOS kutusunu çalıştırabilen bir x86 emülatörü değil; PPC üzerinde yerel çalışan NT
      Yani ne yazık ki DOS oyunları olmaz
    • Windows 2000 ve XP, VDMSound kurulduğunda birçok MS-DOS oyununu oldukça iyi destekliyordu
  • Önyükleyici dosyasını beğendim: https://github.com/Wack0/maciNTosh/blob/main/boot_files/Syst...
    Ayrıca Open Firmware sözdizimi fazla zor okunuyor. Boşuna sevilmemiş değildi; kaçırılmış bir fırsattı

  • Yeni bir NT HAL yazmış olmak gerçekten etkileyici bir başarı. Saygı duyuyorum
    Belgeler en iyi ihtimalle bölük pörçük düzeyde ve mevcut HAL’lerde şans eseri ortaya çıkmamış pek çok bilinmeyen hata da vardır diye düşünüyorum