MSDOS disketten sabit diske nasıl kurulur?


19

Önyüklenebilir bir MSDos sistemim var. Geçerli PC'ye yüklemek istiyorum, böylece Disket yerine HDD'den önyükleme yapabilirim. Bunu nasıl yapabilirim?

Bunu sanal kutuda yapıyorum, ancak genel bir çözüm iyi olurdu.


2
İlk olarak, MS-DOS SATA'yı desteklemediğinden, sabit diski bile görmek için DOS için eski öykünmeyi kullandığınızdan emin olmanız gerekir. VirtualBox'ın tam olarak ne dediğinden emin değilim.
CVn


7
Bu soru, yeni retrocomputing.stackexchange.com adresinde konu hakkında olup olmayacağını merak etti . Hala emin değilim. :)
boru

@pipe cevabım 20 yıl önce ergenlik öncesi ilgi alanlarımda kazanılan bilgiye dayanıyor, bu yüzden oldukça retro olduğunu söyleyebilirim.
Jarmund

7
@ MichaelKjörling En son kontrol ettiğimde, MS-DOS'un herhangi bir sabit disk sürücüsü yoktu. BIOS tarafından sağlanan sürücülere dayanır, yani BIOS'unuz tarafından desteklenen herhangi bir sabit diskte kullanabilirsiniz.
kasperd

Yanıtlar:


30

Feragatname: Bunu en son yaptığımdan bu yana en az yirmi yıl geçti, bu yüzden bazı detayları unutmuş olabilirim.

Sistemi bir MSDOS disketinden başlattıysanız, aynı önyükleme sistemini yerel sabit sürücüye kurmanın yolu aşağıdaki gibidir:

sys a: c:

(disketin a:ve sabit sürücünün olduğu varsayılarak c:)

sysbir kabuk yerleşik ile birlikte olan dir, del, cdve diğer temel. sysKomutu kullanmanın sürücüyü sadece MSDOS ile önyüklenebilir hale getireceğini belirtmek gerekir ve bence de command.comelle kopyalamak zorunda olduğunuzu hatırlıyorum :

copy a:\command.com c:

command.commsdos'un ana bileşenidir ve bu nedenle kabuk yapılarını tutar. Bunun üzerine orada üç sistem dosyalarıdır: autoexec.bat, system.ini, ve config.sys. Bunlardan hangisinin gerekli olduğunu ( config.sysmuhtemelen) hatırlayamıyorum , ancak güvende olmak için aynı yöntemi kullanarak da kopyalayabilirsiniz command.com.

Yararlı yardımcı programları almak için bazı msdos yükleme disketlerini / görüntülerini bulmak isteyebilirsiniz. 5.0 veya daha sonra şimdiye kadar ihtiyacım yardımcı programları "hepsi" ne olduğuna inanıyorum.


DÜZENLE

Bu cevabın yorumları gerçekten doğrudur: MSDOS.SYSve IO.SYSayrıca gereklidir. sysYukarıdaki komutu çalıştırmak bunları kopyalamakla ilgilenebilir veya etmeyebilir; değilse manuel olarak yapmanız gerekir.


1
System.ini bir WIndows dosyasıdır. Diğer 2'ye kesinlikle ihtiyaç yoktur. Temel bir önyüklenebilir sistem için sadece command.com yeterlidir.
Tonny

7
@Tonny Aslında, önyüklenebilir bir MS-DOS sistemi için dört bölüme ihtiyacınız vardır: önyükleme kesimi düzgün kurulmalı ve MSDOS.SYS, IO.SYS ve COMMAND.COM, ortam veya bölümün kök dizininde bulunmalıdır. MS-DOS'un önceki sürümleri (IIRC) IO.SYS'nin diskte sabit bir konumda olmasını gerektiriyordu, ancak sonraki sürümler, önyükleme dosyaları için ayrılmış alanla biçimlendirilmemiş bir disk bile yapılabilecek şekilde bu gereksinimi gevşetiyordu. yeniden biçimlendirilmeden önyüklenebilir. COMMAND.COM tek başına yaşayamaz, ne demek istedin.
CVn

1
CP / M, işletim sistemini BIOS'a (Temel Giriş / Çıkış Sistemi, donanım ve yazılım arasındaki etkileşimleri ele alır), BDOS (Temel Disk İşletim Sistemi, basit dosya işlemlerini gerçekleştirir) ve CCP'ye açıkça ayırarak bu ayrımı daha net hale getirdi. Konsol Komut İşlemcisi, komut girişini, ayrıştırma ve yürütmeyi işler). Bu modelde, MSDOS.SYS ve IO.SYS BDOS'u sağlar ve COMMAND.COM CCP'yi sağlar. IBM PC-DOS farklı isimler kullandı (IBMBIO.COM ve IBMDOS.SYS, sanırım) ama ilke tam olarak aynıydı (aslında aynı kod tabanıydı).
CVn

2
@ MichaelKjörling Ben sadece VirtualBox yüklü www.allbootdisks.com/download/iso.html bir DOS6.22 görüntü ile kendimi denedim. Drvspac.bin ve command.com, SYS komutu tarafından kopyalandı.
Tonny

2
Başlamak için boş bir sürücünüz varsa FORMAT C: /S, sürücüyü başlatmaya ve önyükleme için gerekli tüm sistem dosyalarını kopyalamaya dikkat eder.
SeanC

8
  • Eski eski komutla bir sistem disketi yapın: FORMAT A: / S komutu veya MS-DOS sistem dosyalarına sahip olanlardan önyükleme yapın ve önyükleme yapabilir
  • Command.com'un da üzerinde olduğundan emin olun, eğer değilse manuel olarak kopyalayın
  • FDD'den önyükleme yapın ve sistemi takmak istediğiniz sürücünün doğru şekilde algılandığından emin olun ve sonra sys a: c: komutunu kullanın
  • VM ortamında kullanım için http://www.allbootdisks.com/download/iso.html gibi sitelerden oluşturulabilir bir DOS ISO'su alabilirsiniz . C: \ önyüklenebilir yapmak için aynı komutu kullanın.

9
Zaten diskete boot varsa, DO NOT RUN format a: /s , bu açılış disketi yok edeceğini çünkü.
puan

Evet, tabii ki orijinal önyükleme disketini biçimlendirmemelidir.
Olağanüstü Zeka

4

böylece Disket yerine HDD'den önyükleme yapabilirim.

MS-DOS yüklemesinin, yapmak istediğinizden daha fazla iş olabileceğini unutmayın. (Diğer yanıtlardan bazıları, sabit diskten önyükleme yapılan bu hedefe ulaşarak MS-DOS'un nasıl önyüklenebilir hale getirileceğini söylüyor.)

Ancak asıl sorunun bir diğer kısmı şuydu:

mevcut PC'ye kurmak istiyorum

MS-DOS yüklendiğinde, MS-DOS önyüklenebilir hale getirme sonuçları üzerinden gidecek ve ayrıca işletim sisteminin çoğunluğunu sabit sürücüye yerleştirir. Örneğin, MS-DOS Yardımı yüklü olur.

Genel / Giriş

Bu rehberin bazıları oldukça elverişlidir. Örneğin, "FDISK" i kullandığımdan söz ediyorum. Tam olarak hangi tuş vuruşlarını kullanacağımı belirtmiyorum. Bunun bir nedeni, MS-DOS'un farklı sürümlerinin bazı farklılıkları olmasıdır. Bu cevabın çoğu DOS'un birçok sürümü için geçerlidir (MS-DOS ve hatta diğerleri de dahil olmak üzere, buradaki ayrıntıların bazıları MS-DOS'a özgüdür).

Bazı adımların daha genel olarak tanımlanmasının bir başka nedeni, bir kişinin bazı adımlara oldukça fazla zaman harcayabilmesidir (farklı sürücüleri kullanmak da dahil olmak üzere hafızayı ayarlamak gibi). Atılan bazı adımlar bazı bilgisayarlarda harika sonuç verebilir ve diğer bilgisayarlarda kırılabilir. Bellek kullanımını optimize etmek gibi bazı adımlar teknik olarak daha üstün olabilir, ancak bir kişinin zamanına değmez (istediklerini yapmak için yeterli boş "geleneksel bellek" varsa, daha özgür "geleneksel bellek" gerçekten yararlı olmayabilir.)

Son üçte biri, bazı takip adımları önererek ilk sorunun ötesine geçer.

Belirli bir işlemle ilgili sorularınız varsa (veya belirli bir görevle ilgili ek adımlar istiyorsanız), yeni (özel) bir soru oluşturmanın mantıklı olup olmayacağını düşünmenizi öneririm. Yazdıklarım hakkında bir şey belirsiz / yanlış görünüyorsa, yorumlar davet edilir.

bölme

En yaygın olarak, MS-DOS ilk önyüklenebilir bölüme yüklenir. Buna C: denir.

Zaten DOS'u (disketten) önyüklüyorsanız ve zaten bir C: varsa, bu bölümü atlayabilirsiniz.

Tipik KURULUM sürecini gerçekleştirmeden önce bu bölümü yapmanız gerekebilir. Bu genellikle FDISK adlı bir programla yapılır. BU KOMUTANIN DAHA DAHA AZ OLDUĞUNU ANLAMAK! Henüz C: adlı bir bölümünüz yoksa, FDISK çalıştırmayı deneyin. (Aslında, XFDisk adlı "üçüncü taraf" programının kullanımı daha kolay olabilir.) Microsoft'un çözümünü kullanmak istiyorsanız, en iyi bahsiniz Q263044 güncellemesiyle birlikte gelen FDISK'dir. Aksi takdirde, basit kural sonraki sürümlerin daha iyi olmasıdır (çünkü daha büyük sabit disklerle çalışma olasılıkları daha yüksektir).

Bölümü yaparken, 2GB'den küçük olması gerekir. (2GB 2.147.483.648'dir, ancak MS-DOS, 32.768 bayt daha küçük olan 2.147.450.880 bayt ile sınırlıdır.) Bu, MS-DOS'un bir sınırlamasıdır. (Windows NT 4.0, yaklaşık 16GB büyüklüğünde FAT16'yı destekleyebilir.)

Bölümü yapmak için üçüncü taraf bir yazılım kullanıyorsanız, bir bölüm "türü" tanımlayıcısı sorulabilir. 32 MB - 504 MB (528.482.304 bayt) arasında bir disk kullanıyorsanız, muhtemelen 6 numaralı bölüm türünü kullanmaktan vazgeçersiniz. Diskiniz 504 MB'den büyükse (ancak 2 GB'den küçükse), yeni DOS sürümleri kullanmayı tercih edebilir E tipi (onaltılık olarak belirtilirse 0E veya 0x0E olarak görünebilir).

Dosya Sistemi Birimi

Bölüm oluşturulduktan sonra, dosya sistemi birimini oluşturmak isteyebilirsiniz. (Bu MS-DOS kurulum içinde yapılabilir inanıyorum, ancak sadece MS-DOS sürümünüz bunu SETUP programından yapmazsa, bunu el ile yapmak isteyebilirsiniz.)

Bir diskin / bölümün biçimlendirilmesinin diskteki verilere DESTRUCTIVE olduğunu unutmayın, bu nedenle zaten çalışan, biçimlendirilmiş bir disk / bölüm üzerinde verileriniz varsa bunu yapmayın!

MS-DOS KURULUMU size bu seçeneği sunmazsa, bunu aşağıdakilerle oluşturabilirsiniz:

format C:

veya FORMAT komutunun sizin için SYS'yi de çalıştırmasını istiyorsanız, MS-DOS'un en yeni / en son sürümleri aşağıdakileri kullanmanıza izin verir:

format C: /S

Gerçek Kurulum

Devam etmeden önce üzerine yazılabilen / üzerinde değişiklik yapılabilen dosyaları yedeklemek isteyebilirsiniz. Bu, özellikle \ AUTOEXEC.BAT ve \ CONFIG.SYS (ve sistemde Win9x dosyalarınız varsa, belki \ MSDOS.SYS dosyası, "öznitelik" nedeniyle "gizli dosya" olarak işaretlenmiş olabilir. ayarlanmış).

Bölüm oluşturulduktan ve biçimlendirildikten sonra, MS-DOS'u yüklemek için MS-DOS yükleme disklerinden SETUP.EXE çalıştırın. (İsteğe bağlı olarak, resmi yükleme disklerinden başarıyla önyükleme SETUP.EXE sizin için çalıştırılır. Bu istenmeyen bir şekilde gerçekleşirse, F3 tuşuna basıldığında SETUP.EXE programından çıkmanıza izin verir.) MS-DOS yüklendikten sonra bu, disketten önyükleme yapmak yerine sabit sürücüden önyükleme yapın.

SETUP tarafından gerçekleştirilen görevler, SETUP.EXE yazılımı kullanılmadan elle gerçekleştirilebilir. Bu, SETUP.EXE'nin görevlerinin çoğu ve büyük olasılıkla tümü için oldukça az çaba sarf ederek doğrudur. Yüklemenin temel etkisi genellikle bunları yapar:

  • Önyükleme yükleyicisini yükleyen (çalıştırmaya benzer FDISK /MBR) sürücüyü "SYS" ve birincil önyükleme dosyalarını (en yaygın olarak adlandırılan IO.SYSveMSDOS.SYS ) belirtilen bölüme kopyalayın.
  • Diğer dosyaları kopyala
  • Çalıştırarak diğer dosyaları ayıklayın EXPANDBirkaç *. ?? _ dosya üzerinde
  • Temel bir \CONFIG.SYS dosya .
  • Muhtemelen aynı zamanda temel \AUTOEXEC.BAT dosya
  • MS-DOS 6 kullanıyorsanız, bazı Microsoft Windows yazılımlarının yüklenmesi hakkında da soru sorabilirsiniz. (Yazılım daha sonra da kurulabilir. Hazırlıksız, bunun SETUP /Giçin kullanıldığını düşünüyorum , ancak bunu SETUP /?doğrulamak için kullanabilirsiniz .)

Yükselt

MS-DOS 6.0, 6.2 veya 6.21 yüklediyseniz, kendi SETUP.EXE ile birlikte gelen serbest dağıtılmış MS-DOS 6.x - 6.22 STEPUP yükseltmesini yükleyerek izlemenizi öneririz.

Özellikle 6.22'nin DrvSpace'inde bazı güvenilirlik iyileştirmeleri içerdiğinden, disk sıkıştırmasıyla uğraşmayı planlıyorsanız bunu yapın.

GUI Otomatik Yüklemeyi Devre Dışı Bırak

Win95 veya Win98 ile birlikte gelen MS-DOS 7 kullanıyorsanız, genellikle \ MSDOS.SYS adlı bir metin yapılandırma dosyasını düzenleyebilirsiniz

Özellikle, BOOTGUI=0[Seçenekler] bölümüne " " eklenmesi Windows'un GUI'yi otomatik olarak yüklememesine neden olur. Daha sonra, GUI'yi otomatik olarak yüklemek isterseniz, winAUTOEXEC.BAT'ınızın altından ( çalıştırılarak ) yapılabilir (bu, özelleştirme ile sadece bazı durumlarda yapabilirsiniz). Bunu yapmanın tek gerçek dezavantajı (ki karşılaştığımı hatırlıyorum) Güvenli Mod'un GUI'yi otomatik olarak yüklemeyeceği, ki bu da trajik değildir.

Bu işlemi daha sonraki adımlardan önce listeliyorum. Bu mutlaka gerekli değildir çünkü bu adım daha önemlidir / evrenseldir. Bunun nedeni, eğer bu adım yapılacaksa, o zaman şimdi (daha sonra açıklanan birçok adımdan önce) yapılması muhtemelen mantıklıdır.

Daha Fazla Takip

Bazı ek dosyaları değiştirmek de isteyebilirsiniz

Her şey yüklendikten sonra, bazı yaygın değişiklikler öneririm:

  • MS-DOS sürücülerini MS-DOS için daha yeni sürücülerle değiştirin.
    • Özellikle fare sürücüsünü CuteMouse olarak değiştirin , çünkü çok daha az "geleneksel" bellek kullanır.
    • Ayrıca CD-ROM Sürücüsünü değiştirme konusuna bakın. OAKCDROM.SYS çok değiştirilebilir olabilir (örn. TEAC sürücüleri veya VIDE sürücüleri veya diğerleriyle)
    • SETVER kullanmak neredeyse hiç işe yaramaz. (Bazı sürüm denetimlerini gerçekleştiren bazı yazılımlarla manuel geçersiz kılmaya izin verir. SETVER bunları geçersiz kılabileceğinden bu tür kontroller oldukça işe yaramaz.)
    • MS-DOS'ta bulunan bazı sürücüler varsayılan olarak etkin değildir ve kullanılmaya değmez. Örneğin, RAMDRIVE.SYS, üçüncü taraf TDSK'den daha düşüktür ve ANSI.SYS, üstün olan "üçüncü taraf" değişikliklerinin birden fazla seçeneğine sahiptir.

Bu değişikliklerin bilinmesi özellikle yararlı olduğunu listeliyorum. CuteMouse birçok fare sürücüsünden çok daha iyidir ve bu üstün ATAPI CD-ROM sürücüleri diğer birçok CD-ROM sürücüsünden çok daha iyidir. Sadece bu sürücülere güvenmek, çok az dezavantajı olan veya hiç olmayan birçok sistem için mevcut geleneksel belleği artırabilir (sadece iyileştirmeler!)

Ayrıca, diğer bazı / daha iyi seçeneklerle MSCDEX.EXE yerine başka sürücüler de yükleyebilirsiniz. Ancak, bazı çözümler bazı sistemlerde diğerlerinden daha iyi çalışabilir, bu yüzden burada bu tür öneriler sunmayacağım (sanki evrensel çözümlermiş gibi). MS-DOS 6.x'in birden çok önyükleme yapılandırmasını destekleme yeteneğine de bakabilirsiniz (çalıştırmaQBASIC/QHELP \ CONFIG.SYS'deki "menü" komutları hakkında çevrimiçi yardım için ). Ben CONFIX.SYS hayranıyım

4DOS

4DOS'u da yüklemenizi öneririm. C: \ 4DOS \ dizinine yükleyebilirsiniz ve DOS ile çakışmaz. Bu satırları \ CONFIG.SYS dosyasına eklemenizi öneririz:

SHELL=C:\4DOS\4DOS.Com /P SET COMPSPEC=C:\4DOS\4DOS.Com

(Eğer bunu berbat, önyükleme başarısız olabilir. Bu yüzden düzgün gitmezse kurtarmak için hazırlıklı olun. MS-DOS 6 ile F8 veya F5 veya Ctrl tutmak yardımcı olabilir. MS-DOS önceki sürümlerinde, kurtarma büyük olasılıkla başka bir diskten önyükleme yapın.)

Birkaç kişi, uyumsuzluğun kusurlu olabileceği son derece nadir senaryolar nedeniyle 4DOS'u sevmiyor, ancak çoğu insan bunu son derece uyumlu ve çok güzel özellikler sağladığını (DOS'un çeşitli bellek bölümleriyle daha iyi çalışabilme yeteneği dahil) seviyor.

Bellek Müdahalesi

Bazı basit manuel optimizasyondan daha düşük olduğu zamanlar olsa da, MS-DOS 6 MemMaker.exe bazı iyi optimizasyon gerçekleştirebilirsiniz.

Aşağıdakiler dahil olmak üzere bazı farklı stratejiler vardır:

  • XMSMMGR (Win9x ile birlikte gelen yeni MS-DOS sürümlerinden bir dosya) kullanarak XMS'yi yükleme
  • Alternatif olarak, XMS'yi DEVICE=\DOS\HIMEM.SYS(\ CONFIG.SYS içinde) kullanarak yükleyin.
  • Önce XMS'yi yükleyerek EMS'yi yükleyin ( DEVICE=\DOS\HIMEM.SYSve DEVICE=\DOS\EMM386.EXE RAM(CONFIG.SYS'de) kullanarak
    • Ek parametreler iyi olabilir. Örneğin, V"VERBOSE" çıktısı sunar (en azından bazı EMM386 sürümleriyle)
    • Bazı sistemler aşağıdakilerle daha da fazla bellek alabilir: DEVICE=\DOS\EMM386.EXE RAM HIGHSCAN
    • EMM386, CPU'yu bazı uyumluluk sorunlarına neden olan Korumalı Mod'a yerleştirir
    • ALTBOOTBellek dışlama aralıkları gibi diğer bazı parametrelerin farklı sistemler üzerinde farklı etkileri vardır. Tamircilik yapmaktan çekinmeyin (deneme)
  • dos=high,umb\ CONFIG.SYS klasörüne ekle
    • Win9x noautoIFSHLP.SYS ve DBLBUFF.SYS ve SETVER.EXE yükleyerek otomatik olarak bellek kullanımı gibi bazı davranışları devre dışı bırakan " " destekleyebilir
    • Bazı MS-DOS sürümlerinin EMM386'dan önce yerleştirilmesi gerekebilir. ComputerHope göre , bu en iyi XMS sürücüsü (HIMEM.SYS) sonra yerleştirmek.
  • Daha yeni üçüncü taraf yazılımları dikkate değer bir gelişme sağlayabilir. örneğin, UMBPCI birçok sistemde çalıştı ve daha kullanışlı bellek sağladı (ve eğer işe yaradıysa, muhtemelen daha az yazılım uyumluluğu sorunuyla sonuçlandı). Bunun yerine veya ek olarak kullanılabilecek bazı ek üstün sonuçlar (muhtemelen bir miktar uyumluluk maliyetiyle - bir bilgisayarda en iyi olanın daha az iyi çalışabileceği ve hatta kabul edilebilir bir şekilde çalışamayabileceği) başka çözümler de vardır, başka bir sistemde).
    • UMBPCI'nin web sitesi: HIRAM'daki bölüm, bazı üçüncü taraf yazılımlarını kullanarak DEVICEHIGH=\DOS\HIMEM.SYSHIMEM High'ı yüklemek için etkili bir şekilde nasıl kullanabileceğinizi açıklar. (Yararlılık biraz minimal olabilir, ancak bu, tek bir dosyanın istenirse YÜKSEK yüklemeyi başaramadığımız tek kişi olduğu inancıyla ağırlaştırdığımızı hatırlayanlarımıza özellikle sapkın bir zevk sunabilir.)

Win9x'ten "auto" parametresini kullanmadığınız sürece DEVICE = yerine DEVICEHIGH = kullanarak da biraz yardım alabilirsiniz.

Bu, UMB'lerin dolmasına rağmen sürücülerin UMB'lere (geleneksel olarak EMM386 tarafından sağlanır) taşınmasına neden olur. Farklı sistemlerin farklı miktarlarda UMB'leri vardır ve farklı sistemler farklı sürücüler kullanabilir (farklı bellek miktarları kullanır), bu nedenle en iyi sonuçları bulmak için bazı deneyler gerekebilir. XMSMMGR'yi (MEM ile uyumsuzluğu olan) kullanmadığınız sürece, çalıştırmayı deneyin MEM/C(veya MEM/C|more)

LASTDRIVE = Z daha fazla bellek kullanabilir ve çoğu zaman faydalı olabilir.

Win98% windir% \ CONFIG.TXT çevrimiçi olarak kullanılabilir ve Win98'in MS-DOS 6'nın CONFIG.SYS seçeneklerine oldukça benzeyen uygulamasının bazı belgelerini sağlar.

4DOS, geleneksel bellek yerine UMB'leri kullanabilmek de dahil olmak üzere belleği kullanabilen bazı seçeneklere sahiptir. Bu nedenle, 4DOS kullanıyorsanız, komut satırı parametreleri (4DOS.Com'a) ve / veya 4DOS.Ini yapılandırma satırlarının bir etkisi olabilir. 4DOS, YARDIM çalıştırırsanız veya F1 tuşuna basarsanız 4DOS'un yardımını yüklemek için tasarlanmıştır (MS-DOS'un yardımı yerine hala kullanılabilir QBASIC/QHELP)

Ses

Daha sonra, önem verdiğiniz diğer donanımlar için destek eklemeye odaklanmanızı öneririm. Örneğin, oyun oynamak istiyorsanız sesin çalıştığından emin olun. Bu, daha fazla sürücü yüklemeyi içerebilir. Bu ULTRASND (üstün "Gravis UltraSound" için) veya BLASTER ("Creative Labs" tarafından "Sound Blaster" ve uyumlu kartlar) gibi bir ortam değişkeninin ayarlanmasını içerebilir.

Umarım ortam değişkenleri, ses kartı sürücülerini yükleme işleminin bir parçası olarak sizin için ayarlanır.

Sound Blaster 16 ses sürücüleri minimum iyileştirme sunar ve gerektiğinden daha fazla bellek alabilir. Bellek yetersizse, yazılıma bir Sound Blaster Pro'unuzun olduğunu ve sürücüsüz gitmeyi düşünün.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.