This shows you the differences between two versions of the page.
users:pikpik:notes [2014/11/12 16:32] lionelsambuc created |
users:pikpik:notes [2014/11/12 16:32] (current) lionelsambuc created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Notes ====== | ||
+ | ===== Performance ===== | ||
+ | |||
+ | ==== Limits ==== | ||
+ | |||
+ | ^ Commit c248e23 ^ Memory ^ Storage ^ Network Speed || | ||
+ | ^ Condition | Single-user mode | Installation onto MFS | AMD Lance/PCI | Intel PRO/1000 MT | | ||
+ | ^ Minimum | 16 MiB | 598 MB<sup>1 2</sup> | 0 Bps | 0 Bps | | ||
+ | ^ Maximum | 4 GiB ? | 2 TB ? | ~1200 kBps<sup>3</sup> | ~1.19 MiB/s<sup>4</sup> | | ||
+ | |||
+ | - There might be an off-by-one error in //setup// or VirtualBox: when a VirtualBox VDI (disk) of 597 MB is created, //setup// states that the **596 MB** disk doesn't meet the requirement of 597 MB. | ||
+ | - More space is needed for normal operation. Subsystems show errors when there isn't sufficient storage space for additional tasks. | ||
+ | - The test involved using //fetch// to download a 356 MB file from the Apache Web server on Mac OS X (10.5.8) with 4 GiB of memory and a gigabit network adapter and router. MINIX ran in VirtualBox (4.1.23) with 512 MiB of memory and an SATA (AHCI) storage controller. | ||
+ | - //cd /usr; make pkgsrc-create// on //minix3_2_1_ide_20121207_1118489.iso// in Qemu 0.15.1 with 1 GiB of memory. | ||
+ | |||
+ | ==== Build times ==== | ||
+ | |||
+ | ^ Version ^ Time taken ^ Build environment | | ||
+ | | [[https://github.com/pikpik/minix/tree/building-on-darwin|custom: building-on-darwin]] | ~20 minutes | 4GiB RAM on Mac OS X (10.5.8) | | ||
+ | | current | ~3.5 hours | 1 GiB RAM in VirtualBox on Mac OS X (10.5.8) | | ||
+ | | current | ~3.5 hours | 1 GiB RAM in QEMU 0.15.1 on Windows 7 | | ||
+ | |||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | ==== Installing with ext2 ==== | ||
+ | |||
+ | <code> | ||
+ | export FSTYPE=ext2 | ||
+ | |||
+ | setup | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Building ===== | ||
+ | |||
+ | ==== Cross-compiling ==== | ||
+ | |||
+ | <code> | ||
+ | git clone git://git.minix3.org/minix.git minix | ||
+ | |||
+ | cd minix | ||
+ | |||
+ | sh build.sh -m i386 distribution | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Packages ===== | ||
+ | |||
+ | ==== How to create a package repository ==== | ||
+ | |||
+ | - Build the packages you want in pkgsrc. | ||
+ | - Find and enter into the repository (in ///usr/pkgsrc/packages/[release]/[architecture]/All//). | ||
+ | - Run the following in each //[architecture]/All// directory: | ||
+ | <code> | ||
+ | # pkg_info -X *.tgz | gzip > pkg_summary.gz | ||
+ | # pkg_info -X *.tgz | bzip2 > pkg_summary.bz2 | ||
+ | </code> | ||
+ | - Copy the //packages// directory recursively, with symbolic-links, to its destination. | ||
+ | - Point //pkg_add// or //pkgin// at the repository. See their manual pages for details. | ||
+ | |||
+ | //Voilà!// Your repository should now be up and running. | ||
+ | |||
+ | |||
+ | ===== Virtual machines ===== | ||
+ | |||
+ | ==== Using Qemu on Windows 7 ==== | ||
+ | |||
+ | Sometimes I need a virtual machine system that doesn't install anything. This means no installer, no kernel modules, and no virtual network adapter. | ||
+ | |||
+ | For this I use "Qemu-0.15.1-windows-Medium.zip," from Eric Lassauge's [[http://lassauge.free.fr/qemu/release/|Qemu release directory]]. This has everything required by the [[:usersguide:runningonqemu|Qemu tutorial]]. | ||
+ | |||
+ | |||
+ | ==== How make NE2000 work in Bochs on Windows 7 ==== | ||
+ | |||
+ | On Windows 7, [[http://bochs.sourceforge.net/|Bochs]] 2.5.1 emulates the NE2000 network adapter. By default, its settings are incompatible with MINIX. While I didn't get it working, here's how I got it recognized by MINIX. | ||
+ | |||
+ | In Bochs, I opened "networking," enabled the NE2000, and set it to use I/O address 0x300 and interrupt (or IRQ) 5. | ||
+ | |||
+ | In MINIX, I edited... | ||
+ | |||
+ | - ///bin/netconf//:<code> | ||
+ | 3) driver=dp8390; driverargs="dp8390_0_arg='DPETH0=300:5'" | ||
+ | </code> \\ (The ":5" refers to IRQ 5.) | ||
+ | - //system.conf// for "dp8390":<code> | ||
+ | irq 5; | ||
+ | |||
+ | io 0x300:20; | ||
+ | </code> \\ (Here, the ":20" is the number of ports to use. This is probably unrelated to how //DPETH0// works.) | ||
+ | |||
+ | Upon start-up I see: | ||
+ | |||
+ | <code> | ||
+ | dp8390#0: NE2000 at 300:5 | ||
+ | </code> | ||
+ | |||
+ | This is great, but next I'd have to get Bochs integrated with Windows' networking. I found out that Qemu does this far better, so I'll be using that instead. | ||
+ | |||
+ | ==== Pasting From MINIX ==== | ||
+ | |||
+ | Need to paste something from MINIX to a [[http://en.wikipedia.org/wiki/Pastebin|pastebin]] site? | ||
+ | |||
+ | 1. Install Python | ||
+ | |||
+ | <code> | ||
+ | pkgin search python | ||
+ | |||
+ | pkgin install pythonNN (python24, python25, python27, etc.) | ||
+ | |||
+ | ln -s /usr/pkg/bin/pythonN.N /usr/pkg/bin/python | ||
+ | </code> | ||
+ | |||
+ | 2. Install the Python Setuptools | ||
+ | |||
+ | <code> | ||
+ | cd /usr/pkgsrc/devel/py-setuptools | ||
+ | |||
+ | bmake bin-install | ||
+ | </code> | ||
+ | |||
+ | 3. Install Dpaster | ||
+ | |||
+ | <code> | ||
+ | cd ~ | ||
+ | |||
+ | git clone git://github.com/zodman/dpaster.git dpaster | ||
+ | |||
+ | cd dpaster | ||
+ | |||
+ | python setup.py install | ||
+ | </code> | ||
+ | |||
+ | 4. Use it | ||
+ | |||
+ | <code> | ||
+ | cat something.txt | dpaster paste | ||
+ | </code> | ||
+ | |||
+ | 5. Open it | ||
+ | |||
+ | A URL will appear. Type it into a Web browser, and then press Enter. |