<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-29598026</id><updated>2007-09-06T16:04:45.828+12:00</updated><title type='text'>Minix Tips</title><link rel='alternate' type='text/html' href='http://www.minixtips.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.minixtips.com/atom.xml'/><author><name>Chris Double</name></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-29598026.post-116920906372094327</id><published>2007-01-20T01:08:00.000+13:00</published><updated>2007-05-22T17:13:56.283+12:00</updated><title type='text'>Minix Hosting Available</title><content type='html'>Would you like to have access to a Minix machine connected to the internet for running services full time? If so I have some capacity available. &lt;br /&gt;&lt;br /&gt;Update: All capacity now used, sorry.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/misc" rel="tag"&gt;misc&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2007/01/minix-hosting-available.html' title='Minix Hosting Available'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=116920906372094327' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/116920906372094327'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/116920906372094327'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115922409739889357</id><published>2006-09-26T10:39:00.000+12:00</published><updated>2006-09-26T10:41:37.413+12:00</updated><title type='text'>Introduction to Minix 3</title><content type='html'>Andy Tanenbaum has an &lt;a href="http://osnews.com/story.php/15960/Introduction-to-MINIX-3"&gt;article on OSNews introducing Minix 3&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;How often have you rebooted your TV set in the past year? Probably a lot less than you have rebooted your computer. Of course there are many "reasons" for this, but increasingly, nontechnical users don't want to hear them. They just want their computer to work perfectly all the time and never crash. &lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/misc" rel="tag"&gt;misc&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/09/introduction-to-minix-3.html' title='Introduction to Minix 3'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115922409739889357' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115922409739889357'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115922409739889357'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115469905036598757</id><published>2006-08-05T01:36:00.000+12:00</published><updated>2006-08-10T21:27:14.453+12:00</updated><title type='text'>Downtime for upgrade</title><content type='html'>There was an approximately 10 minute outage today while I updated some server software. This is the first time I've taken the Minix machine down since transitioning to the &lt;a href="http://www.minixtips.com/2006/06/server-moved.html"&gt;new dedicated server&lt;/a&gt;. With an uptime of about 40 days it seems that Minix is proving a nice stable server OS. &lt;br /&gt;&lt;br /&gt;I installed a CGI script that runs the '&lt;a href="http://www.minixtips.com/cgi-bin/uptime"&gt;uptime&lt;/a&gt;' command for those curious about the uptime of the server.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/admin" rel="tag"&gt;admin&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/08/downtime-for-upgrade.html' title='Downtime for upgrade'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115469905036598757' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115469905036598757'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115469905036598757'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115292868067533932</id><published>2006-07-15T13:54:00.000+12:00</published><updated>2006-07-15T14:11:08.420+12:00</updated><title type='text'>CVS access to Minix Source Code</title><content type='html'>The Minix source is now available by CVS. This &lt;a href="http://groups.google.com/group/comp.os.minix/browse_frm/thread/426afc23654df4b4"&gt;post on comp.os.minix&lt;/a&gt; explains the details. The command to check out the source is:&lt;br /&gt;&lt;pre&gt;cvs -d :pserver:anonymous@derelict.cs.vu.nl:/cvsup/minix co src&lt;/pre&gt;&lt;br /&gt;As well as the 'src' module there is a 'bigports' module that contains the source to a number of application ports to Minix.&lt;br /&gt;&lt;br /&gt;The repository can also be browsed via CVSWeb: &lt;a href="http://derelict.cs.vu.nl/cvsweb/cvsweb.cgi"&gt;http://derelict.cs.vu.nl/cvsweb/cvsweb.cgi&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I generated a &lt;a href="http://www.minixtips.com/files/ChangeLog.txt"&gt;ChangeLog&lt;/a&gt; using &lt;a href="http://www.red-bean.com/cvs2cl/"&gt;cvs2cl.pl&lt;/a&gt; which gives an idea of the changes being made recently to the source.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/07/cvs-access-to-minix-source-code.html' title='CVS access to Minix Source Code'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115292868067533932' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115292868067533932'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115292868067533932'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115219360685139131</id><published>2006-07-07T01:34:00.000+12:00</published><updated>2006-07-07T02:07:30.393+12:00</updated><title type='text'>wmii Window Manager for Minix 3</title><content type='html'>I've ported the &lt;a href="http://www.wmii.de/"&gt;wmii&lt;/a&gt; X11 window manager to Minix 3. Details of some of the things I changed are mentioned in my &lt;a href="http://www.minixtips.com/2006/07/port-of-wmii-window-manager-in.html"&gt;previous post on the topic&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;To install you'll need to compile from source. The source is in &lt;a href="http://www.minixtips.com/files/minix-wmii-3.1.tar.bz2"&gt;minix-wmii-3.1.tar.bz2&lt;/a&gt; (about 52Kb). To compile:&lt;br /&gt;&lt;pre&gt;$ bzcat minix-wmii-3.1.tar.bz2 | tar xvf -&lt;br /&gt;$ cd wmii-3.1&lt;br /&gt;$ make&lt;br /&gt;$ su&lt;br /&gt;&lt;...enter root password...&gt;&lt;br /&gt;# make install&lt;/pre&gt;&lt;br /&gt;You will need the X11 libraries installed. You should not use the GNU compiler, rather use the standard Minix 'cc' and 'make'. The installation will 'chmem' the installed files with reasonable values to run. It's important that you read the notes about this port and the end of this post!&lt;br /&gt;&lt;br /&gt;To use this window manager, edit your .xsession or .xinitrc file (the setup of these files is &lt;a href="http://www.minixtips.com/2006/07/tweaking-x11.html"&gt;described here&lt;/a&gt;). Remove the current code that runs 'twm' and the other programs and replace with the single line:&lt;br /&gt;&lt;pre&gt;exec wmii&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When you next start X11 the wmii 'welcome' note will appear. You can follow those instructions to get an idea of how to use this window manager. If you get stuck, pressing 'ALT+ENTER' will open an xterm.&lt;br /&gt;&lt;br /&gt;'wmii' is a very light weight window manager. When you start it you'll see a status bar at the bottom of the screen and nothing else. Pressing ALT+ENTER will open an xterm and you'll see that it takes the entire screen. If you press ALT+ENTER again the screen will split into two with an xterm above and below. This is what 'wmii' refers to as 'dynamic window layout'.&lt;br /&gt;&lt;br /&gt;You need never drag or layout windows yourself, the window manager will do it for you. You can create multiple columns, move windows above and below each other, or across into the other columns. You can switch to a 'stacked' view by pressing 'ALT+s'. Or a maximised view with 'ALT+m'. Or back to the dynamic layout with 'ALT+d'. To change from application to application in a view with the keyboard use 'ALT+j' or 'ALT+k'.&lt;br /&gt;&lt;br /&gt;'wmii' gets really powerfull though when you take advantage of 'tagging'. You can tag a particular running application with a number by pressing 'ALT+SHIFT+[0-9]'. This will assign that number as the 'tag' for the application and move the application to a view for that tag. To change to a dynamic layout for all apps with that tag press 'ALT+[0-9]'.&lt;br /&gt;&lt;br /&gt;This doesn't give much more than 'workspaces' gives in other window managers. But you can also assign multiple tags to an application in 'wmii'. And they don't need to be numbers. So I could have firefox open (running using remote X11 from another machine) and give it the tag 'browser' and by  pressing 'ALT+SHIFT+t' and typing in 'browser' and pressing enter. Or give it multiple tags by pressing 'ALT+SHIFT+t' and typing in 'browser+2'. This gives it the tags 'browser' and '2'. &lt;br /&gt;&lt;br /&gt;Pressing 'ALT+2' now will take me to that application and so will pressing 'ALT+t' and typing in 'browser' (or a partial completion). This allows you to give applications multiple tags, switch to the tag and all applications with that tag will appear, dynamically layed out by the window manager. Neat!&lt;br /&gt;&lt;br /&gt;It gets even better. 'wmii' exposes a scripting interface via a &lt;a href="http://en.wikipedia.org/wiki/9P"&gt;Plan 9 based filesystem&lt;/a&gt;. If you have Plan 9, Inferno, or some other OS that supports this filesystem you could mount it from there and manipulate the display. Since Minix doesn't have 9P support you can use the tool 'wmiir' which allows you to do this. For example, to get a directory listing of the root of the virtual filesystem:&lt;br /&gt;&lt;pre&gt;wmiir read /&lt;/pre&gt;&lt;br /&gt;This will display a list of virtual directories which you can drill down on:&lt;br /&gt;&lt;pre&gt;wmiir read /event&lt;/pre&gt;&lt;br /&gt;This reads all events that occur in 'wmii' and displays it. You'll see tag switching, focus changes, etc. With this you can write scripts to react to events. Which is how some of the utilities in 'wmii' are written - as shell scripts. You can change that status bar with:&lt;br /&gt;&lt;pre&gt;echo -n Hello! | wmiir write /bar/status/data&lt;/pre&gt;&lt;br /&gt;The 'status' script in /usr/local/etc/wmii-3/status' does this to display the current time and machine load.&lt;br /&gt;&lt;br /&gt;There is much more that can be done and browsing the &lt;a href="http://www.wmii.de/"&gt;wmii web site&lt;/a&gt; will go through the various things.&lt;br /&gt;&lt;br /&gt;This is a 'work in progress'. I've had to work around some things that I'd like to tidy up. Some current limitations are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A temporary file is created in /tmp/ that is supposed to have a random suffix but does not in this version. This is due to the lack of 'mktemp' in Minix. I'll fix this in the next release.&lt;/li&gt;&lt;li&gt;The 'tcp' port used for 'wmii' communication is hard coded to port 5000 and is not bound to the IP address of the machine. Anyone can connect to it. If your machine allows incoming connections on that port you probably don't want to run to run this version or use a firewall to block that port.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Sometimes the 'status' script exits due to not being able to connect to the 'wmii' server. You can restart it by using 'ALT+a' and choosing 'status'.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The first two these issues can be changed by editing the 'wmii' script. You'll see in there where the '5000' port and the filename is hardcoded. Unfortunately the open access to the socket is in the C source code as I did that to work around a problem I was having which I hope to resolve in the next release.&lt;br /&gt;&lt;br /&gt;This version is based on the wmii 3.1 source code. The current development snapshot for wmii is on to version 4. I'll look at porting that when I've got 3.1 stable. For those interested in hacking at the code I have a &lt;a href="http://www.minixtips.com/2006/06/git-port-updated.html"&gt;git repository&lt;/a&gt; here:&lt;br /&gt;&lt;pre&gt;git clone http://www.minixtips.com/repos/wmii/.git&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you come across any other problems or have any suggestions please leave a comment.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/x11" rel="tag"&gt;x11&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/ports" rel="tag"&gt;ports&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/07/wmii-window-manager-for-minix-3.html' title='wmii Window Manager for Minix 3'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115219360685139131' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115219360685139131'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115219360685139131'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115218796993485897</id><published>2006-07-06T23:53:00.000+12:00</published><updated>2006-07-15T12:02:10.316+12:00</updated><title type='text'>Tweaking X11</title><content type='html'>Once you've got &lt;a href="http://www.minixtips.com/2006/07/running-x11-on-minix.html"&gt;X11 up and running&lt;/a&gt; you'll probably want to change what programs are run when you start it, and tweak a few settings. With the exception of the 'chmem' section, none of this is Minix specific and you can read most any X11 tutorial on the internet to get more details.&lt;br /&gt;&lt;br /&gt;The set of programs that are run when you first log on using 'xdm', or run 'startx' from your user account are controlled by a configuration file in your home directory. If you used 'startx', the configuration file is called '.xinitrc'. If you logged in under 'xdm' then the file is '.xsession'. &lt;br /&gt;&lt;br /&gt;You can copy the default file from '/etc/X11/xinit/xinitrc' to one or both of these names and start editing it:&lt;br /&gt;&lt;pre&gt;$ cp /etc/X11/xinit/xinitrc ~/.xinitrc&lt;br /&gt;$ cp /etc/X11/xinit/xinitrc ~/.xsession&lt;/pre&gt;At the end of this file you'll see something like:&lt;br /&gt;&lt;pre&gt;# start some nice programs&lt;br /&gt;twm &amp;amp;&lt;br /&gt;xclock -geometry 50x50-1+1 &amp;amp;&lt;br /&gt;xterm -geometry 80x50+494+51 &amp;amp;&lt;br /&gt;xterm -geometry 80x20+494-0 &amp;amp;&lt;br /&gt;exec xterm -geometry 80x66+0+0 -name login&lt;/pre&gt;&lt;br /&gt;'twm' is the window manager. This is the program that allows you to drag windows around, resize, etc. If that's not running you'll only have the initial programs started in this configuration file and you won't be able to manipulate them.&lt;br /&gt;&lt;br /&gt;The last statement in the file should 'exec' a program. If it doesn't then X will run the programs and then immediately close.&lt;br /&gt;&lt;br /&gt;The default '&lt;a href="http://www.minixtips.com/2006/06/handling-out-of-memory-issues.html"&gt;chmem&lt;/a&gt;' values of programs like 'xclock' and 'xterm' are quite high. If you want more free memory I recommend lowering these. I use 2MB but could probably go lower.&lt;br /&gt;&lt;br /&gt;Minix does not have a great deal of X programs ported yet. For example there is no GUI web browser. But with X you can run programs on a remote machine (which needs to be running an X server) and have the display appear on your Minix machine. This is how I use firefox under Minix. &lt;br /&gt;&lt;br /&gt;To set this remote display up all you need to do is tell Minix to authorise the other machine to use the desktop. The 'xhost' command can do this. I have a Linux machine with IP address 192.168.1.100 and the Minix machine is 192.168.1.101. On Minix, with X started, I do:&lt;br /&gt;&lt;pre&gt;$ xhost +192.168.1.100&lt;/pre&gt;&lt;br /&gt;This uses the IP address of the Linux machine. Now from Minix I can 'ssh' to the Linux machine, and run programs there that appear on the Minix display:&lt;br /&gt;&lt;pre&gt;minix$ ssh chris@192.168.1.100&lt;br /&gt;&lt;...login...&gt;&lt;br /&gt;linux$ export DISPLAY=192.168.1.101:0.0&lt;br /&gt;linux$ konsole &amp;amp;&lt;br /&gt;linux$ firefox &amp;amp;&lt;/pre&gt;&lt;br /&gt;The DISPLAY environment variable dictates what display the program will run on. In this case I set it to the IP address of the Minix machine, and the display number (0.0). Running 'konsole' and 'firefox' will cause them to appear on Minix and I can use them normally. Remember though that they are actually running on the Linux machine - only the display is on Minix. So all file paths, etc are relative to the Linix file system.&lt;br /&gt;&lt;br /&gt;This setup works fine even using VMware. I use the 'bridged networking' option and can run Minix in VMware, running programs from the host Linix machine. For 'qemu' you may to do some additional tweaking if you are using the '-net user' option. See &lt;a href="http://groups.google.com/group/comp.os.minix/msg/712caf86420328e2"&gt;this newsgroup posting for details&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The default window manager (and only one currently available) is 'twm' which is quite basic. &lt;a href="http://www.minixtips.com/2006/07/wmii-window-manager-for-minix-3.html"&gt;I've ported 'wmii'&lt;/a&gt; which is another minimal window manager but has a little more functionality.&lt;br /&gt;&lt;br /&gt;If you have any tips on configuring X11 or programs to run with Minix please leave a comment.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/x11" rel="tag"&gt;x11&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/07/tweaking-x11.html' title='Tweaking X11'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115218796993485897' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115218796993485897'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115218796993485897'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115218512413075623</id><published>2006-07-06T23:17:00.000+12:00</published><updated>2006-07-06T23:51:57.840+12:00</updated><title type='text'>Running X11 on Minix</title><content type='html'>Minix 3 has X11 as one of the optional packages that can be installed. It works very well and I've been using it as on my main machine to test some &lt;a href="http://www.minixtips.com/2006/07/port-of-wmii-window-manager-in.html"&gt;software I've been porting&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To get started with X11 you'll first need to install the X11 package using 'packman' signed on as root:&lt;br /&gt;&lt;pre&gt;$ su&lt;br /&gt;&amp;lt;...enter root password...&gt;&lt;br /&gt;# packman&lt;br /&gt;&amp;lt;...select X11R6 package...&gt;&lt;/pre&gt;&lt;br /&gt;As part of the install you may notice the X binary has its memory value changed using '&lt;a href="http://www.minixtips.com/2006/06/handling-out-of-memory-issues.html"&gt;chmem&lt;/a&gt;'. Usually this is set to a too large value which can result in X not starting. This will depend on how much physical memory you have on your PC. If you have 512MB you will probably be alright but if you have less then I'd advise manually chaning the value to something smaller. The following command works on my 256MB VMware session:&lt;br /&gt;&lt;pre&gt;# chmem =80000000 /usr/X11R6/bin/Xorg&lt;/pre&gt;&lt;br /&gt;The higher you go the more memory X will require to run and the less free memory you'll have available for other applications. Going too low will cause it to not start at all. To do a quick test to see if X starts I recommend logging in as a non-root account and runing 'startx':&lt;br /&gt;&lt;pre&gt;$ startx&lt;/pre&gt;&lt;br /&gt;Some log information will display on the screen and after 20-30 seconds (depending on the speed of your machine) you will see X appear running the '&lt;a href="http://en.wikipedia.org/wiki/Twm"&gt;twm&lt;/a&gt;' window manager and a couple of terminal windows and a clock. You can close it down by pressing CTRL+ALT+BACKSPACE or kill the running X process:&lt;br /&gt;&lt;pre&gt;$ ps ax |grep X&lt;br /&gt;174 co 0:00 /bin/sh /usr/X11R6/bin/startx&lt;br /&gt;176 co 0:10 X:0&lt;br /&gt;$ kill 176&lt;/pre&gt;&lt;br /&gt;Remember that with X you will need have the mouse cursor over the terminal window for it to get focus so you can type into it.&lt;br /&gt;&lt;br /&gt;If it doesn't start when running 'startx' you've probably run out of memory. There is log information on the console or in '/usr/log/XLogFile.0.log' which should help track the problem down. Try increasing the 'chmem' value for the '/usr/X11R6/bin/Xorg' program. And have at least 256MB of RAM. With tuning it will run in less but these are the values I've had working.&lt;br /&gt;&lt;br /&gt;Another way of running X is to run 'xdm' logged in as 'root'. This will bring up an X session prompting for a username and password. By entering your normal username and password you can then get an X session customised for that user. When you exit X as that user it'll then take you back to the username/password request.&lt;br /&gt;&lt;br /&gt;To configure the screen size you need to create a file called '/etc/X11/xorg.conf'. This file contains quite a bit of configuration information and the easiest way to create it is to run 'xorgconfig'. This is a text mode program that will run through a series of questions to create a basic 'xorg.conf' file. &lt;br /&gt;&lt;br /&gt;When asked for the device name of the mouse enter '/dev/kbdaux'. You'll need to know things like your monitor's horizontal and vertical refresh rate and the type of video card you have (for VMware installations choose 'vmware' here). &lt;br /&gt;&lt;br /&gt;Once the 'xorg.conf' is created there are some simple changes that you can make that are quite useful. The first is enabling the scroll wheel on your mouse if you have one. Edit '/etc/X11/xorg.conf' (using something like 'mined' or 'vim') and search for 'InputDevice'. You should come up with a section like:&lt;br /&gt;&lt;pre&gt;Section "InputDevice"&lt;br /&gt;Identifier "Mouse1"&lt;br /&gt;Driver "mouse"&lt;br /&gt;Option "Buttons" "4"&lt;br /&gt;Option "Protocol" "ExplorerPS/2"&lt;br /&gt;Option "Device" "/dev/kdbaux"&lt;/pre&gt;&lt;br /&gt;Add to this section a line containing 'Option "ZAxisMapping" "4 5"'. So it will now look like:&lt;br /&gt;&lt;pre&gt;Section "InputDevice"&lt;br /&gt;Identifier "Mouse1"&lt;br /&gt;Driver "mouse"&lt;br /&gt;Option "Buttons" "4"&lt;br /&gt;Option "Protocol" "ExplorerPS/2"&lt;br /&gt;Option "ZAxisMapping" "4 5"&lt;br /&gt;Option "Device" "/dev/kdbaux"&lt;/pre&gt;&lt;br /&gt;If you start X again you can use the scroll wheel. To change the screen size search for the section 'Screen'. My 'Screen' section looks like:&lt;br /&gt;&lt;pre&gt;Section "Screen"&lt;br /&gt;  Identifier "Screen 1"&lt;br /&gt;  Device "** VMware Guest OS (generic) [vmware]"&lt;br /&gt;  Monitor "My Monitor"&lt;br /&gt;  DefaultDepth 16&lt;br /&gt;  Subsection "Display"&lt;br /&gt;    Depth 16&lt;br /&gt;    Modes "1024x768"&lt;br /&gt;    ViewPort 0 0&lt;br /&gt;  EndSubsection&lt;br /&gt;EndSection&lt;/pre&gt;&lt;br /&gt;By changing the 'Modes' option to another resolution size and restarting X you will have a different screen size. For more on configuring X any resource for Linux or other operating systems that use it will be useful.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/x11" rel="tag"&gt;x11&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/07/running-x11-on-minix.html' title='Running X11 on Minix'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115218512413075623' title='3 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115218512413075623'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115218512413075623'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115196875102940706</id><published>2006-07-04T11:06:00.000+12:00</published><updated>2006-07-04T11:19:11.046+12:00</updated><title type='text'>Port of wmii window manager in progress</title><content type='html'>Posts have been a bit lighter as I've been immersed in porting the &lt;a href="http://www.wmii.de/"&gt;wmii window manager&lt;/a&gt; to Minix. I've managed to get it running and am currently testing it.&lt;br /&gt;&lt;br /&gt;I had to do some workarounds I'm not too happy with and I'll tidy those up over the next few days before I release it. For example it currently uses about 10% CPU while it runs which I want to get down. To port it I had to do the following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use TCP sockets instead of Unix domain sockets as Minix does not have the latter&lt;/li&gt;&lt;li&gt;Modify the code to compile using 'cc' instead of 'gcc' so I can link to the X11 libraries (which were built using 'cc' in Minix 3.1.2a)&lt;/li&gt;&lt;li&gt;Convert 'long long' use to a structure containing two longs ('cc' doesn't have the 'long long' type)&lt;/li&gt;&lt;li&gt;Various socket modifications. Some of these I need to clean up before release as it's not binding the socket to the IP, it's instead using INADDR_ANY which is a security risk. This is the result of my modifications/hack not due to Minix or wmii!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;So far I like using 'wmii' - it uses less memory than the default 'twm' leaving me with much more space to run applications. This could be due to the 'chmem' sizes on the application vs 'twm' defaults of course. &lt;br /&gt;&lt;br /&gt;'wmii' uses the &lt;a href="http://en.wikipedia.org/wiki/9P"&gt;Plan 9 filesystem protocol&lt;/a&gt; to allow it to be scripted. By reading and writing from/to a virtual filesystem you can get information about running applications and change them. It's pretty neat. It comes with a tool, 'wmiir', to allow access to this virtual filesystem. It should be possible to write a Minix device driver that allowed this to be mounted to the filesystem so you could interact with 'wmii' using standard Minix utilities. This would make an interesting device driver project.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/07/port-of-wmii-window-manager-in.html' title='Port of wmii window manager in progress'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115196875102940706' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115196875102940706'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115196875102940706'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115196779005668498</id><published>2006-07-04T10:58:00.000+12:00</published><updated>2006-07-04T11:03:10.066+12:00</updated><title type='text'>Perl Updated</title><content type='html'>The version of Perl on the Minix 3.1.2a install does not include any of the modules which means that many scripts don't work correctly. This has been fixed and the new version can be obtained using 'packman'. Make sure you choose the Perl option from 'net' and not 'cdrom' to pick up the corrected version. Information obtained from &lt;a href="http://groups.google.com/group/comp.os.minix/msg/85fe987aaba0a6d1"&gt;this comp.os.minix thread&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/updates" rel="tag"&gt;updates&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/07/perl-updated.html' title='Perl Updated'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115196779005668498' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115196779005668498'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115196779005668498'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115136869662349555</id><published>2006-06-27T12:36:00.000+12:00</published><updated>2006-06-27T12:42:37.703+12:00</updated><title type='text'>Git port updated</title><content type='html'>I've updated the &lt;a href="http://www.minixtips.com/2006/06/preliminary-git-port-for-minix-3.html"&gt;Minix 3 Git port&lt;/a&gt; so retrieval of remote repositories via HTTP work. This requires the &lt;a href="http://www.minixtips.com/2006/06/curl-ported-to-minix-3.html"&gt;recent Curl port&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once installed you'll be able to retrieve directly from the Minix Git repository hosted here with something like:&lt;br /&gt;&lt;pre&gt;git clone http://www.minixtips.com/repos/minix-git.git/ minix-git&lt;/pre&gt;&lt;br /&gt;Updated source here: &lt;a href="http://www.minixtips.com/files/minix-git-1.4.0a.tar.gz"&gt;minix-git-1.4.0a.tar.gz&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/git-port-updated.html' title='Git port updated'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115136869662349555' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115136869662349555'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115136869662349555'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115136812699292369</id><published>2006-06-27T12:25:00.000+12:00</published><updated>2006-06-29T00:00:52.180+12:00</updated><title type='text'>Curl ported to Minix 3</title><content type='html'>The following files provide a port of &lt;a href="http://curl.haxx.se/"&gt;Curl&lt;/a&gt; for Minix 3:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Source: &lt;a href="http://www.minixtips.com/files/minix-curl-7.15.4-src.tar.bz2"&gt;minix-curl-7.15.4-src.tar.bz2&lt;/a&gt; (~1.5MB)&lt;/li&gt;&lt;li&gt;Binaries: &lt;a href="http://www.minixtips.com/files/minix-curl-7.15.4-bin.tar.bz2"&gt;minix-curl-7.15.4-bin.tar.bz2&lt;/a&gt; (~1MB)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The source can be built and installed with:&lt;br /&gt;&lt;pre&gt;$ gmake&lt;br /&gt;$ su&lt;br /&gt;&amp;lt;...root password...&gt;&lt;br /&gt;# gmake install&lt;/pre&gt;&lt;br /&gt;Curl is a command line utility for transferring files via protocols like HTTP, FTP, etc. It's used by the &lt;a href="http://www.minixtips.com/2006/06/git-port-updated.html"&gt;Git version control system&lt;/a&gt; to access remote repositories which is why I ported it.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/curl-ported-to-minix-3.html' title='Curl ported to Minix 3'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115136812699292369' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115136812699292369'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115136812699292369'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115133218941452731</id><published>2006-06-27T02:25:00.000+12:00</published><updated>2006-06-27T12:36:25.130+12:00</updated><title type='text'>Preliminary Git port for Minix 3</title><content type='html'>[ Updated 2006-06-27: Now includes HTTP support using the &lt;a href="http://www.minixtips.com/2006/06/curl-ported-to-minix-3.html"&gt;Minix Curl port&lt;/a&gt; ]&lt;br /&gt;&lt;br /&gt;I've done a first cut at a port of the &lt;a href="http://git.or.cz/"&gt;Git version control system&lt;/a&gt;. This is the system currently used for managing the Linux kernel. It's a distributed version control system, similar in manner to the way 'darcs' and 'arch' work.&lt;br /&gt;&lt;br /&gt;I've not got everything working yet. The 'git' protocol requires a program to be running on the server hosting the repository, which I haven't ported yet. Still, the port is useful as it is. You can publish repositories using HTTP for example and you can retrieve remote repositories using 'git' or 'http'.&lt;br /&gt;&lt;br /&gt;You can get the buildable distribution from &lt;a href="http://www.minixtips.com/files/minix-git-1.4.0a.tar.gz"&gt;minix-git-1.4.0a.tar.gz&lt;/a&gt;. It's about 850KB in size. To build you'll need your path setup as:&lt;br /&gt;&lt;pre&gt;/usr/gnu/i386-pc-minix/bin:/usr/gnu/bin:/usr/gnu/bin:$PATH&lt;/pre&gt;&lt;br /&gt;You'll need bash, as well as a variety of the GNU tools. I installed everything off 'packman'.&lt;br /&gt;&lt;br /&gt;To build just do:&lt;br /&gt;&lt;pre&gt;make&lt;br /&gt;make install&lt;br /&gt;chmem =25000000 ~/bin/*&lt;/pre&gt;&lt;br /&gt;This will do a 'local install' into a $HOME/bin directory. Add this to your path and it should work. A quick tutorial is &lt;a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html"&gt;available here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Git repository for the changes I've made is here: &lt;a href="http://www.minixtips.com/repos/minix-git.git/"&gt;http://www.minixtips.com/repos/minix-git.git/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can retrieve it with git:&lt;br /&gt;&lt;pre&gt;git clone http://www.minixtips.com/repos/minix-git.git/ minix-git&lt;/pre&gt;&lt;br /&gt;Once you have the repository it will default to the 'master' branch. To build from the repository you'll want the 'minix_1_4_0' branch - this is the one that contains my Minix changes. You can change to it with:&lt;br /&gt;&lt;pre&gt;git clone http://www.minixtips.com/repos/minix-git.git/ minix-git&lt;br /&gt;cd minix-git&lt;br /&gt;git checkout minix_1_4_0&lt;/pre&gt;&lt;br /&gt;The 'git' protocol works for retrieving remote repositories too. For example, to retrieve the original Git repository:&lt;br /&gt;&lt;pre&gt;git clone git://git.kernel.org/pub/scm/git/git.git&lt;/pre&gt;&lt;br /&gt;Be aware that this is an 'in-progress' port so will very likely have bugs. I wouldn't use it on your only copy of your important source just yet!&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/preliminary-git-port-for-minix-3.html' title='Preliminary Git port for Minix 3'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115133218941452731' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115133218941452731'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115133218941452731'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115131526153736953</id><published>2006-06-26T21:40:00.000+12:00</published><updated>2006-06-28T10:11:02.726+12:00</updated><title type='text'>How to add more virtual consoles to Minix</title><content type='html'>Matej Kosik emailed me a neat tip today, showing how to add more virtual consoles to Minix. The virtual consoles can be accessed by pressing ALT+F1, ALT+F2, etc. By default there are four consoles available. As an example, here's how Matej described adding four more:&lt;br /&gt;&lt;br /&gt;In /etc/ttytab add these lines:&lt;br /&gt;&lt;pre&gt;       ttyc4   minix   getty&lt;br /&gt;       ttyc5   minix   getty&lt;br /&gt;       ttyc6   minix   getty&lt;br /&gt;       ttyc7   minix   getty&lt;/pre&gt;In directory '/dev' perform:&lt;br /&gt;&lt;pre&gt;       mknod ttyc4 c 4 4&lt;br /&gt;       mknod ttyc5 c 4 5&lt;br /&gt;       mknod ttyc6 c 4 6&lt;br /&gt;       mknod ttyc7 c 4 7&lt;/pre&gt;In file '/usr/src/include/minix/config.h' change line:&lt;br /&gt;&lt;pre&gt;#define NR_CONS            4&lt;/pre&gt;To:&lt;pre&gt;#define NR_CONS            8&lt;/pre&gt;Go to '/usr/src/tools' and perform: &lt;br /&gt;&lt;pre&gt;make hdboot&lt;/pre&gt;&lt;br /&gt;Reboot Minix and in boot menu:&lt;br /&gt;&lt;pre&gt;       1. Start Minix 3&lt;br /&gt;       2. Start Small Minix 3&lt;br /&gt;       3. Start Custom Minix 3&lt;/pre&gt;choose option 3.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/bluishcoder/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/bluishcoder/admin" rel="tag"&gt;admin&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/how-to-add-more-virtual-consoles-to.html' title='How to add more virtual consoles to Minix'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115131526153736953' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115131526153736953'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115131526153736953'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115130427640849340</id><published>2006-06-26T18:36:00.000+12:00</published><updated>2006-06-26T18:44:36.416+12:00</updated><title type='text'>Scheme48 ported to Minix 3</title><content type='html'>I've ported &lt;a href="http://s48.org/"&gt;Scheme48&lt;/a&gt; to Minix 3. The source is available in &lt;a href="http://www.minixtips.com/files/minix-scheme48-1.3-src.tar.bz2"&gt;minix-scheme48-1.3-src.tar.bz2&lt;/a&gt; (~2MB) and the binaries in &lt;a href="http://www.minixtips.com/files/minix-scheme48-1.3-src.tar.bz2"&gt;minix-scheme48-1.3-bin.tar.bz2&lt;/a&gt; (~1MB).&lt;br /&gt;&lt;br /&gt;To compile make sure you have the GNU tools in your PATH and have &lt;a href="http://www.minixtips.com/2006/06/configure-fails-when-compiling-some.html"&gt;set 'bash' to have the appropriate memory&lt;/a&gt;. Then do:&lt;br /&gt;&lt;pre&gt;$ ./configure&lt;br /&gt;$ gmake&lt;br /&gt;$ gmake install&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You'll need to do the 'gmake install' step as root. To run:&lt;br /&gt;&lt;pre&gt; $ scheme48&lt;br /&gt;Welcome to Scheme 48 1.3 (made by chris on Mon Jun 26 18:36:43 GMT 2006)&lt;br /&gt;Copyright (c) 1993-2005 by Richard Kelsey and Jonathan Rees.&lt;br /&gt;Please report bugs to scheme-48-bugs@s48.org.&lt;br /&gt;Get more information at http://www.s48.org/.&lt;br /&gt;Type ,? (comma question-mark) for help.&lt;br /&gt;&gt; &lt;/pre&gt;&lt;br /&gt;This build includes socket support and lightweight threads. It's only lightly tested and the source has some workarounds for some things that I had difficulty porting to Minix (millisecond level timers for example). All feedback welcome of course. I'll make a newer version when I've fixed up some of the workarounds and send a patch to the S48 maintainers.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/scheme48-ported-to-minix-3.html' title='Scheme48 ported to Minix 3'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115130427640849340' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115130427640849340'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115130427640849340'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115130292570438259</id><published>2006-06-26T18:16:00.000+12:00</published><updated>2006-06-26T18:22:05.713+12:00</updated><title type='text'>'configure' fails when compiling some GNU tools</title><content type='html'>To compile a lot of software you need to be able to run the 'configure' script. To do this you should install most of the additional packages available for Minix with 'packman', especially the gcc compiler and the autoconf tools. You'll need to modify your PATH to be able to run them:&lt;br /&gt;&lt;pre&gt;export PATH=/usr/gnu/i386-pc-minix/bin:/usr/gnu/bin:$PATH&lt;/pre&gt;&lt;br /&gt;Some of the utilities installed may need their &lt;a href="http://www.minixtips.com/2006/06/handling-out-of-memory-issues.html"&gt;memory requirements changed using 'chmem'&lt;/a&gt;. For example, when running 'configure' for the first time I encountered this error:&lt;br /&gt;&lt;pre&gt;$ ./configure&lt;br /&gt;./configure: xmalloc: ./parse.y:2716: cannot allocate 64 bytes (0 bytes allocated)&lt;/pre&gt;&lt;br /&gt;To track down the command causing this problem run the 'configure' script explicity using 'sh' passing the '-x' option which displays all commands run:&lt;br /&gt;&lt;pre&gt;sh -x ./configure+ test -n&lt;br /&gt;+ test -n&lt;br /&gt;+ DUALCASE=1&lt;br /&gt;+ export DUALCASE&lt;br /&gt;...&lt;br /&gt;+ CONFIG_SHELL=/usr/local/bin/bash&lt;br /&gt;+ export CONFIG_SHELL&lt;br /&gt;+ exec /usr/local/bin/bash ./configure&lt;br /&gt;./configure: xmalloc: ./parse.y:2716: cannot allocate 64 bytes (0 bytes allocated)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This shows that 'bash' ran out of memory. Changing the memory value of 'bash' gets 'configure' working:&lt;br /&gt;&lt;pre&gt;$ su&lt;br /&gt;Password:&lt;br /&gt;# chmem +1000000 /usr/local/bin/bash&lt;br /&gt;/usr/local/bin/bash: Stack+malloc area changed from 131072 to 1131072 bytes.&lt;br /&gt;# &lt;CTRL+D&gt;&lt;br /&gt;$ ./configure&lt;br /&gt;...&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/configure-fails-when-compiling-some.html' title='&apos;configure&apos; fails when compiling some GNU tools'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115130292570438259' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115130292570438259'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115130292570438259'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115106171030557495</id><published>2006-06-23T23:07:00.000+12:00</published><updated>2006-06-23T23:25:39.726+12:00</updated><title type='text'>Minix with a static IP address</title><content type='html'>When Minix 3 is installed it defaults to using DHCP to obtain an IP address and DNS server information. With the move of this weblog to a dedicated server I was given a static IP address and couldn't use DHCP. Here's how I set up Minix to run with a static IP address.&lt;br /&gt;&lt;br /&gt;I installed Minix as normal but did not get an IP address since there is no DHCP server running on the network. Minix decides whether to use DHCP or not from the existance of an '/etc/rc.net' file. If it does not exist, the following steps are performed (this is all in '/usr/etc/rc'):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Run the 'dhcpd' daemon to obtain an IP address.&lt;/li&gt;&lt;li&gt;Run the 'nonamed' daemon for DNS queries.&lt;/li&gt;&lt;li&gt;Run '/etc/rc.daemons' if it exists.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;By creating an '/etc/rc.net' file these steps are not done, instead it is expected that '/etc/rc.net' will do what is necessary to get the network up and running. I created an '/etc/rc.net' that looked like the following:&lt;br /&gt;&lt;pre&gt;ifconfig -I /dev/ip0 -n 255.255.255.0 -h my.ip.address.here&lt;br /&gt;add_route -g my.gateway.address.here&lt;br /&gt;daemonize nonamed -L&lt;br /&gt;. /etc/rc.daemons&lt;/pre&gt;&lt;br /&gt;The first things it does is run 'ifconfig' to set the IP address. Replace 'my.ip.address.here' with the dotted IP number. This is followed by an 'add_route' to set the gateway for the network. Again, 'my.gateway.address.here' is replaced by the gateway dotted IP address. Both of these IP addresses were provided by my hosting company.&lt;br /&gt;&lt;br /&gt;The 'nonamed' daemon still needs to be run and so does the 'rc.daemons' script. This won't happen if 'rc.net' exists so it's done manually within the new 'rc.net'.&lt;br /&gt;&lt;br /&gt;Once final step is to tell Minix the IP address of the nameservers. This can be done using 'nonamed' by adding something like the following to '/etc/hosts':&lt;br /&gt;&lt;pre&gt;192.168.1.10  %nameserver&lt;br /&gt;192.168.1.11  %nameserver&lt;/pre&gt;&lt;br /&gt;Replace '192.168.1.10', etc with the IP address of the nameservers as given to you by the hosting provided. Usually '/etc/hosts' holds local domain name lookup information. The '%nameserver' is a special directive used by 'nonamed' to tell it what the IP addresses of the nameservers are. Usually it gets this from the DHCP configuration. Without DHCP it needs to be done manually.&lt;br /&gt;&lt;br /&gt;If you don't run 'nonamed' you can set the nameserver information differently by adding it to '/etc/resolv.conf'. In that case the file would look like:&lt;br /&gt;&lt;pre&gt;nameserver 192.168.1.10&lt;br /&gt;nameserver 192.168.1.11&lt;/pre&gt;&lt;br /&gt;Again, you'd replace the IP addresses with the proper nameserver ones. Without 'nonamed' this will use the network nameservers directly. &lt;br /&gt;&lt;br /&gt;If you use 'nonamed' you should not have a '/etc/resolv.conf', instead using the '/etc/hosts' method described above. 'nonamed' is essentially a local nameserver that delegates to the network ones but has some additional benenfits like caching, etc. From the man page:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;Nonamed is not  a  name  daemon.   It  can  answer  simple  queries  from /etc/hosts,  but anything else is relayed to a real name daemon.  Nonamed maintaines a small cache of replies it has seen from a name  daemon,  and will  use  this  cache  to minimize traffic if the machine is permanently connected to the Internet, or to answer requests if the machine is  often     disconnected from the Internet, i.e. a computer at home.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Once these steps are done you can bring the network up by rebooting, or running:&lt;br /&gt;&lt;pre&gt;. /etc/rc.net&lt;/pre&gt;&lt;br /&gt;You'll now have the static IP address and access to the network.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/networking" rel="tag"&gt;networking&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/admin" rel="tag"&gt;admin&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/minix-with-static-ip-address.html' title='Minix with a static IP address'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115106171030557495' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115106171030557495'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115106171030557495'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115106071920048429</id><published>2006-06-23T22:53:00.000+12:00</published><updated>2006-06-23T23:25:03.046+12:00</updated><title type='text'>Server Moved</title><content type='html'>I &lt;a href="http://www.minixtips.com/2006/06/server-downtime.html"&gt;posted before&lt;/a&gt; that I was moving the server to a new home and it's now done. The DNS has been updated for the new IP address and if you can read this post it's from Minix 3 running on a dedicated server. Hopefully no more problems with power cuts!&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/misc" rel="tag"&gt;misc&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/server-moved.html' title='Server Moved'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115106071920048429' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115106071920048429'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115106071920048429'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115097576391790687</id><published>2006-06-22T23:25:00.000+12:00</published><updated>2006-06-22T23:29:23.930+12:00</updated><title type='text'>Server Downtime</title><content type='html'>The server was down today for about 8 hours due to a power cut at home. The problems of &lt;a href="http://www.minixtips.com/2006/06/update-about-this-site.html"&gt;hosting the server at home&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The good news is I've ordered a dedicated server from &lt;a href="http://www.m5hosting.com/"&gt;M5 Hosting&lt;/a&gt; and am setting it up now. In a day or two I'll have the &lt;a href="http://www.minixtips.com"&gt;Minix Tips&lt;/a&gt; domain switch to that server and it should be much more reliable. &lt;br /&gt;&lt;br /&gt;M5 Hosting's support has been excellent so far. I'll report back here on how things go after I've been using them for a bit.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/misc" rel="tag"&gt;misc&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/server-downtime.html' title='Server Downtime'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115097576391790687' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115097576391790687'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115097576391790687'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115089512443877927</id><published>2006-06-22T00:50:00.000+12:00</published><updated>2006-06-22T01:06:51.776+12:00</updated><title type='text'>Little Smalltalk for Minix 3</title><content type='html'>I've compiled &lt;a href="http://en.wikipedia.org/wiki/Little_Smalltalk"&gt;Little Smalltalk&lt;/a&gt; version 4.5 to run under Minix 3. This version of Little Smalltalk is written in C and modified by Andy Valencia and Kyle Hayes to add additional functionality. From the Little Smalltalk site:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;Little Smalltalk is a sort of fun experiment in building a minimal smalltalk system. The source code for the interpreter is less than 1800 lines of code. The image consists of less than 4000 objects. It runs in almost no memory. In short, it's small, it's reasonably fast, it's easy to understand, and easy to modify.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;This version, thanks to Kyle, includes a Class Browser with a web based GUI. Using your browser, connect to the running Little Smalltalk instance and you can browse classes and methods. You can even modify methods through the web interface on the fly.&lt;br /&gt;&lt;br /&gt;I modified the source slightly to compile under Minix. I'll revisit the changes in a week or so to tidy it up so it still builds and runs under the original platforms. In the meantime though you can download:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.minixtips.com/files/minix-lst4.5-src.tar.bz2"&gt;minix-lst4.5-src.tar.bz2&lt;/a&gt; (Source only, ~62Kb).&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.minixtips.com/files/minix-lst4.5-bin.tar.bz2"&gt;minix-lst4.5-bin.tar.bz2&lt;/a&gt; (Source and binaries, ~148Kb).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;To build from source, make sure you have GNU gcc installed and in your PATH:&lt;br /&gt;&lt;pre&gt;export PATH=/usr/gnu/i386-pc-minix/bin:/usr/gnu/bin:$PATH&lt;/pre&gt;&lt;br /&gt;Run 'gmake' from within the lst-4.5 directory to create the 'st' executable, and then from within the 'ImageBuilder' directory to create the Smalltalk image.&lt;br /&gt;&lt;br /&gt;To run, from within the lst-4.5 directory, run 'st'. To start the web based class browser follow this example (key in the red text):&lt;br /&gt;&lt;pre&gt;$ &lt;span style="color: red"&gt;./st&lt;/span&gt;&lt;br /&gt;3227 objects in image&lt;br /&gt;-&gt; &lt;span style="color: red"&gt;File fileIn: 'classbrowser.st'.&lt;/span&gt;&lt;br /&gt;method inserted: subclass:variables:classVariables:&lt;br /&gt;method inserted: from:to:&lt;br /&gt;method inserted: position:&lt;br /&gt;...&lt;br /&gt;method inserted: showErrorOn:&lt;br /&gt;method inserted: start&lt;br /&gt;method inserted: startOn:&lt;br /&gt;file in completed&lt;br /&gt;-&gt; &lt;span style="color: red"&gt;HTTPClassBrowser new start.&lt;/span&gt;&lt;br /&gt;Socket: 3&lt;br /&gt;IP: 0.0.0.0&lt;br /&gt;Port: 6789&lt;/pre&gt;&lt;br /&gt;If you now visit http://machinename:6789/ you will be able to access the class browser. There being no GUI web browser for Minix you'll probably want to do this from some other machine, replacing 'machinename' with the name or ip address of the Minix machine. It does work with Lynx running under Minix but the text based interface is not pleasant as it uses frames. Also note that the class browser is listening on any incoming ip address so make sure port 6789 is not accessable from people you don't trust.&lt;br /&gt;&lt;br /&gt;It's not &lt;a href="http://www.squeak.org"&gt;Squeak&lt;/a&gt;, but it's still fun to play with.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/smalltalk" rel="tag"&gt;smalltalk&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/little-smalltalk-for-minix-3.html' title='Little Smalltalk for Minix 3'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115089512443877927' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115089512443877927'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115089512443877927'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115080468028743753</id><published>2006-06-20T23:48:00.000+12:00</published><updated>2006-06-21T00:36:51.183+12:00</updated><title type='text'>Update about this site</title><content type='html'>My &lt;a href="http://www.minixtips.com/2006/06/running-on-minix-3.html"&gt;first post&lt;/a&gt; to &lt;a href="http://www.minixtips.com"&gt;Minix Tips&lt;/a&gt; mentioned that I was actually hosting this site on a Minix 3 server running the httpd daemon that ships with it. &lt;br /&gt;&lt;br /&gt;In particular I mentioned that I was using &lt;a href="http://fabrice.bellard.free.fr/qemu/"&gt;qemu&lt;/a&gt; to run Minix on a User Mode Linux server I use.&lt;br /&gt;&lt;br /&gt;Unfortunately I was not able to get this setup stable enough. Qemu 0.8.1 would often segfault when running under User Mode Linux. Sometimes multiple times per hour. I had it restarting automatically but it was causing problems. I'm not sure if this is due to the UML kernel version I was using or some other interaction. I ended up moving off the UML machine and putting it on my own PC connected to the internet.&lt;br /&gt;&lt;br /&gt;This stopped the segfaults but about once a day the qemu process, and in turn Minix, would hang. It refused all connections to the outside world and I couldn't even type on the console.&lt;br /&gt;&lt;br /&gt;All is not lost though. I'm now running under &lt;a href="http://www.vmware.com/products/server/"&gt;VMware Server&lt;/a&gt;. This is a free product in beta test, although it is closed source. It is working very well and I've had no problems running Minix 3 since moving to this setup. So this weblog remains hosted on a Minix 3 server. &lt;br /&gt;&lt;br /&gt;As it's running on my PC it is prone to problems like me rebooting or the power going out (all too frequent in New Zealand in Winter!). If it stays stable for another couple of weeks I'll look at moving to a commercial hosting system.&lt;br /&gt;&lt;br /&gt;I'll still keep my eye on qemu though and try to get that running smoothly. I'm keen to make sure an open source solution is viable in case VMware Server becomes unavailable. &lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/misc" rel="tag"&gt;misc&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/update-about-this-site.html' title='Update about this site'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115080468028743753' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115080468028743753'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115080468028743753'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115080392927521472</id><published>2006-06-20T23:43:00.000+12:00</published><updated>2006-06-20T23:45:29.276+12:00</updated><title type='text'>Device Driver Development</title><content type='html'>I &lt;a href="http://groups.google.com/group/comp.os.minix/browse_frm/thread/baf499765b02f2e7/"&gt;posted a thread on comp.os.minix&lt;/a&gt; asking about device driver development tips and got pointed to &lt;a href="http://www.cs.vu.nl/~lmbronwa/es1371/"&gt;this resource&lt;/a&gt; about development of the es1371 audio driver. In particular the &lt;a href="http://www.cs.vu.nl/~lmbronwa/es1371/bachelorES1371.pdf"&gt;bachelorES1371.pdf&lt;/a&gt; file contains a good description of how a device driver is developed.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/drivers" rel="tag"&gt;drivers&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/device-driver-development.html' title='Device Driver Development'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115080392927521472' title='3 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115080392927521472'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115080392927521472'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115080324004249569</id><published>2006-06-20T23:25:00.000+12:00</published><updated>2006-06-20T23:41:47.806+12:00</updated><title type='text'>Updates to ftp, httpd, ftpd and man pages</title><content type='html'>I've received a note from &lt;a href="http://minix1.woodhull.com/asw/"&gt;Albert Woodhull&lt;/a&gt; of some updates to some of the Minix 3.1.2a software.&lt;br /&gt;&lt;br /&gt;The first is a new version of Michael Temari's ftp program, &lt;a href="http://www.minixtips.com/files/ftp101.tar.Z"&gt;ftp101.tar.Z&lt;/a&gt; (Mirrored from &lt;a href="http://minix1.woodhull.com/pub/contrib/ftp101.tar.Z"&gt;here&lt;/a&gt;).  From Albert: "It should actually have been part of the last Minix 2 (2.0.4) release, and thus of all Minix 3 releases. It fixes at least one bug. I've made some updates to the documentation. There is more information in&lt;br /&gt;&lt;a href="http://www.minixtips.com/files/ftp101.txt"&gt;ftp101.txt&lt;/a&gt; (Mirrored from &lt;a href="http://minix1.woodhull.com/pub/contrib/ftp101.txt"&gt;here&lt;/a&gt;)."&lt;br /&gt;&lt;br /&gt;There is also a new release of Michael Temari's httpd program. This release adds redirection support and is avilable for download in &lt;a href="http://www.minixtips.com/files/httpd0995.taz"&gt;httpd0995.taz&lt;/a&gt; (Mirrored from &lt;a href="http://minix1.woodhull.com/pub/contrib/httpd0995.taz"&gt;here&lt;/a&gt;). More about it is in &lt;a href="http://www.minixtips.com/files/httpd0995.txt"&gt;httpd0995.txt&lt;/a&gt; (Mirrored from &lt;a href="http://minix1.woodhull.com/pub/contrib/httpd0995.txt"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Several new man pages were also provided to me by Albert in &lt;a href="http://www.minixtips.com/files/man0606.tar.Z"&gt;man0606.tar.Z&lt;/a&gt; (Mirrored from &lt;a href="http://minix1.woodhull.com/current/2.0.4/fixes/man0606.tar.Z"&gt;here&lt;/a&gt;). They include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ftp.1 (updated for ftp 1.01, released Feb 2005)&lt;/li&gt;&lt;li&gt;http_status.5&lt;/li&gt;&lt;li&gt;httpd.8 (updated for httpd 0.995, released May 2006)&lt;/li&gt;&lt;li&gt;httpd.conf.5&lt;/li&gt;&lt;li&gt;mtools.1&lt;/li&gt;&lt;li&gt;tcpd.8&lt;/li&gt;&lt;li&gt;urlget.1&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I was also advised that Minix 3 has older source for the ftpd program that has a security vulnerability. It ships with the correct binary but not the correct source. So it's safe to run the ftpd binary but if you rebuild ftpd from source you'll get the version with the vulnerability. The corrected source is available in &lt;a href="http://www.minixtips.com/files/ftpd200.tar.Z"&gt;ftpd200.tar.Z&lt;/a&gt; (Mirrored from &lt;a href="http://minix1.woodhull.com/pub/contrib/ftpd200.tar.Z"&gt;here&lt;/a&gt;). Information about it is in &lt;a href="http://www.minixtips.com/files/ftpd200.txt"&gt;ftpd200.txt&lt;/a&gt; (Mirrored from &lt;a href="http://minix1.woodhull.com/pub/contrib/ftpd200.txt"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I believe the Minix CVS has been updated with some of this and will likely be in the next release. Thanks for the updates Albert!&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/updates" rel="tag"&gt;updates&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/updates-to-ftp-httpd-ftpd-and-man.html' title='Updates to ftp, httpd, ftpd and man pages'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115080324004249569' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115080324004249569'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115080324004249569'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115072252768353138</id><published>2006-06-20T01:01:00.000+12:00</published><updated>2006-06-20T01:08:47.693+12:00</updated><title type='text'>Minix 2 Resource Moved</title><content type='html'>Two former Minix resource sites were minix1.hampshire.edu and minix1.bio.umass.edu. These sites were run by Albert Woodhull and they were hosted on the Minix 2 operating system. &lt;br /&gt;&lt;br /&gt;Unfortunately they are no longer operational but all the information contained there is now located at &lt;a href="http://minix1.woodhull.com"&gt;minix1.woodhull.com&lt;/a&gt;. It's a great resource for all things Minix. Although geared towards support for Minix 2, Albert tells me that Minix 3 information will also be appearing. A lot of material valid for Minix 2 is also very relevant to Minix 3.&lt;br /&gt;&lt;br /&gt;Albert's name should be familiar to Minix enthusiasts. He's the co-author of the book '&lt;a href="http://www.amazon.com/gp/product/0131429388"&gt;Operating Systems Design and Implementation&lt;/a&gt;'. If you have the old sites bookmarked, please change them to the &lt;a href="http://minix1.woodhull.com"&gt;minix1.woodhull.com&lt;/a&gt; address.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/misc" rel="tag"&gt;misc&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/minix-2-resource-moved.html' title='Minix 2 Resource Moved'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115072252768353138' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115072252768353138'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115072252768353138'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115062851580991024</id><published>2006-06-18T22:55:00.000+12:00</published><updated>2006-06-18T23:01:55.816+12:00</updated><title type='text'>SpiderMonkey Javascript for Minix</title><content type='html'>I've ported the &lt;a href="http://www.mozilla.org/js/spidermonkey/"&gt;Mozilla SpiderMonkey Javascript engine&lt;/a&gt; to Minix. I used the latest CVS from branch JS_1_7_ALPHA_BRANCH, which contains some of the new Javascript 1.7 enhancements like generators and destructuring assignments.&lt;br /&gt;&lt;br /&gt;The files are available as:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Source: &lt;a href="http://www.minixtips.com/files/js-1.7-cvs-2006-06-18-src.tar.bz2"&gt;js-1.7-cvs-2006-06-18-src.tar.bz2&lt;/a&gt; (~700Kb)&lt;/li&gt;&lt;li&gt;Binary: &lt;a href="http://www.minixtips.com/files/js-1.7-cvs-2006-06-18-bin.tar.bz2"&gt;js-1.7-cvs-2006-06-18-bin.tar.bz2&lt;/a&gt; (~500Kb)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I've raised a bug in &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=341912"&gt;Mozilla's bugzilla for the port&lt;/a&gt; and it contains the patches that can be applied to the original SpiderMonkey source.&lt;br /&gt;&lt;br /&gt;To build from source on Minix you'll need GNU gcc and GNU make installed. You also need /usr/gnu/bin and /usr/gnu/i386-pc-minix/bin on your path:&lt;br /&gt;&lt;pre&gt;export PATH=/usr/gnu/i386-pc-minix/bin:/usr/gnu/bin:$PATH&lt;/pre&gt;&lt;br /&gt;You can then build from the 'src' directory with:&lt;br /&gt;&lt;pre&gt;gmake -f Makefile.ref&lt;/pre&gt;&lt;br /&gt;I tried to use readline support but when it tried to link it failed saying that libreadline.a was corrupt. I also tried the inbuilt 'editline' support but that failed to link due to virtual memory being exhausted. I'll investigate that a bit further as it's a bit hard to use when there's no command line history or anything. &lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/development" rel="tag"&gt;development&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/spidermonkey-javascript-for-minix.html' title='SpiderMonkey Javascript for Minix'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115062851580991024' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115062851580991024'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115062851580991024'/><author><name>Chris Double</name></author></entry><entry><id>tag:blogger.com,1999:blog-29598026.post-115053058761044006</id><published>2006-06-17T19:45:00.000+12:00</published><updated>2006-06-19T21:35:28.540+12:00</updated><title type='text'>Running Telnet and FTP servers with Minix</title><content type='html'>A default installation of Minix 3 includes ftpd and telnetd. These are the programs used to run FTP and Telenet servers respectively. They are not configured to run by default as they can be a security risk if not configured properly. This post outlines how to run them.&lt;br /&gt;&lt;br /&gt;FTP and Telnet are not used as much as they were in the past. Instead SSH is probably more often used for remote access to servers. FTP and Telnet are insecure in that all information is passed as 'clear text' including passwords. There is no encryption like there is with SSH. That said, they are still common protocols and are easy to setup and configure.&lt;br /&gt;&lt;br /&gt;The programs for FTP and telnet are called 'in.ftpd' and 'in.telnetd' respectively. They are designed to be run from a script called 'rc.daemons' which lives in the '/etc' directory. A default script exists with the name '/etc/rc.daemons.dist' which shows what the entries should look like.&lt;br /&gt;&lt;br /&gt;By creating '/etc/rc.daemons' with the following entries you'll have FTP and Telnet servers running at startup:&lt;br /&gt;&lt;pre&gt;# cat &gt;/etc/rc.daemons&lt;br /&gt;daemonize tcpd telnet in.telnetd&lt;br /&gt;daemonize tcpd ftp in.ftpd&lt;br /&gt;CTRL+D&lt;/pre&gt;'tcpd' is a program that accepts remote connections and passes them to other programs to do work. A line like 'tcpd telnet in.telnetd' says to run 'tcpd' listening on the telnet port (port 23) and run 'in.telnetd' to process the incoming connection. The 'daemonize' at the beginning runs 'tcpd' as a background process, known as a daemon.&lt;br /&gt;&lt;br /&gt;To run telnet and FTP without having to restart the system you can manually spawn 'tcpd' as follows:&lt;br /&gt;&lt;pre&gt;# intr -d tcpd telnet in.telnetd &amp;amp;&lt;br /&gt;# intr -d tcpd ftp in.ftpd &amp;amp;&lt;/pre&gt;The 'intr' command spawns the process with input from /dev/null and output to /dev/log. The '-d' and the '&amp;amp;' spawn the process in the background and immediately returns to the shell.&lt;br /&gt;&lt;br /&gt;You will need to put the entries in 'rc.daemons' if you want the servers to start running after a reboot.&lt;br /&gt;&lt;br /&gt;Anonymous FTP should be disabled before running 'ftpd' to be safe. To do this, edit /etc/passwd, and remove the 'ftp' user. To enable, keep the 'ftp' user and see the 'ftp' man page. To configure either of these services you should read their 'man' pages:&lt;br /&gt;&lt;pre&gt;# man telnetd&lt;br /&gt;# man ftpd&lt;/pre&gt;If you are running Minix in an emulated environment like 'qemu' you won't be able to access these servers from the host machine, or any other machine except for those participating in the 'qemu' network. This tends to limit the reason for running the server in the first place!&lt;br /&gt;&lt;br /&gt;To work around this you can pass a 'redir' option to 'qemu' which tells it to listen on a particular port on the host machine, and re-route connections from that to a port on the Minix machine. As an example, starting Minix with the following 'qemu':&lt;br /&gt;&lt;pre&gt;qemu -localtime -hda minix.img -net user -net nic -redir tcp:5023::23&lt;/pre&gt;&lt;br /&gt;This creates a port on the host machine numbered '5023' which accepts tcp connections, and passes them to the Minix emulated machine on port '23', the 'telnet' port. So by telnet-ing to port 5023 on the host you can telnet into the emulated machine:&lt;br /&gt;&lt;pre&gt;telnet localhost 5023&lt;/pre&gt;The format of the 'redir' options is {tcp or udp}:{host port}:{guest ip/name}:{guest port}. In the example above we skipped the 'guest ip/name' as it defaults to 10.0.2.15 which is assigned by default in 'qemu'.&lt;br /&gt;&lt;br /&gt;&lt;span class="technoratitag"&gt;Categories: &lt;a href="http://del.icio.us/minixtips/minix" rel="tag"&gt;minix&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/admin" rel="tag"&gt;admin&lt;/a&gt;, &lt;a href="http://del.icio.us/minixtips/networking" rel="tag"&gt;networking&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://www.minixtips.com/2006/06/running-telnet-and-ftp-servers-with.html' title='Running Telnet and FTP servers with Minix'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29598026&amp;postID=115053058761044006' title='3 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.minixtips.com/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115053058761044006'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29598026/posts/default/115053058761044006'/><author><name>Chris Double</name></author></entry></feed>