User Tools

Site Tools


developersguide:obsoletetools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

developersguide:obsoletetools [2014/11/11 08:52]
127.0.0.1 external edit
developersguide:obsoletetools [2014/11/12 11:59] (current)
lionelsambuc
Line 1: Line 1:
 +====== Obsolete tools ======
 +
 +In addition to a [[.:​usefultools|number of still useful tools]], MINIX also comes
 +with several tools that were created to ease configuration ​
 +and development on MINIX without being part of any standard and are therefore
 +unlikely to be known to people familiar with other POSIX systems. Such tools
 +are now obsolete, but you may encounter them, perhaps when browsing history.
 +This page describes these tools. For more in-depth information consult their man pages.
 +
 +===== binsizes, bigmake =====
 +
 +In the remote times, MINIX'​s processes needed to know the stack allocation beforehand.
 +This was done using the [[http://​www.minix3.org/​manpages/​man1/​chmem.1.html|chmem(1)]]
 +utility. Sometimes one wanted to increase several utilities for a small period of time.
 +//​binsizes//​ did that, with some templates (normal, big, xxl) found in the ///etc// directory.
 +//bigmake// is a wrapper around make using the big template.
 +
 +===== unstack =====
 +
 +//unstack// was a debugging tool which converts a stack trace with addresses, such as the one printed
 +to the console when a segmentation fault occurs, into a one with names. It obtains
 +symbols from the symbol table of the binary from which the stack trace originated.
 +
 +It has been superseded by addr2line, now that all binaries are in ELF format and we rely (for now) on binutils for linking and such anyway.
 +
 +===== packman, binpackage(s),​ packit =====
 +
 +//packman// used to be the MINIX package manager. It allows one to install binary and source
 +packages. It has been phased out starting from MINIX 3.1.8.
 +
 +//​binpackage//​ and //​binpackages//​ automated the building process of packages;
 +//packit// was used at installation time. There was also a guide to
 +[[:​releases:​3.2.0:​developersguide:​makingpackmanpackage|making packman packages]].
 +
 +====== ACK assembly languages ======
 +
 +MINIX spawns a long timeframe; and while the C language is a firmly-established
 +standard, not such are the assembly language syntaxes. So there is a long history
 +of difficulties because of the various syntaxes which has been used with MINIX.
 +Fortunately most of this material is now obsolete, and the move is almost completed
 +toward the ATT syntax used with the GNU assembler.
 +
 +=====  Is there a Minix assembly language programming manual? ​ =====
 +
 +No, not as such **(but see below)**. ​ Minix assembly language**s** (yes, in plural form), and Unix
 +systems'​ assemblers in general, use syntaxes that are tailored to serve as compiler back ends, and as such look strange at first to those who are used to Microsoft MASM and similar assemblers. ​ There are several
 +documents about Minix assembly languages which may be helpful here:
 +
 +  * [[http://​minix1.woodhull.com/​pub/​info/​pc-ix-assem.txt | Pc-ix-assem.txt]] is the closest thing we have to a manual. It describes 16-bit Minix assembly language, as used in the first releases of Minix. The 32-bit language has additional instructions,​ but the description of syntax and pseudo-ops makes this a useful reference.
 +  * The page titled [[.:​assemblylanguageprogramming|Assembly Language Programming]] has various general informations about assembly programming.
 +  * The page titled [[.:​learningassemblyinminix|Learning Assembly Language]] expands about learning assembly programming.
 +  * The page titled [[.:​..:​ackassemblylanguage|MINIX 3 ACK Assembly Language]], derived from [[http://​www.minix3.org/​doc/​pseudoops.html | Minix assembly pseudo-ops, sections, and comments]], has answers from Kees Bot to questions that were asked on the comp.os.minix newsgroup years ago about these aspects of Minix assembly programming.
 +  * [[http://​minix1.woodhull.com/​pub/​info/​pc-ack-assem.txt | Pc-ack-assem.txt]] a brief discussion by Kees Bot of the evolution of Minix'​s assembly language through different versions of Minix.
 +  * [[http://​minix1.woodhull.com/​pub/​info/​assm_example.txt | Assm_example.txt]] is a simple assembly language "Hello World" illustrating how an assembly program can be assembled and linked. This demo was written for Minix 1.5, a modern version would be slightly different.
 +  * //​Mini-manual://​ Soon after I answered the question above, "Is there a Minix assembly language programming manual?"​ in the negative, somebody posted a pointer to a nice document entitled [[http://​www.users.csbsju.edu/​~cburch/​cs/​350/​handouts/​x86.html | Introduction to Intel x86 Assembly Language in Minix]] on the comp.os.minix newsgroup. (The above link is to an html document, there is also a [[http://​www.users.csbsju.edu/​%7Ecburch/​cs/​portfolio/​x86.pdf | PDF version]] available). The author is Carl Burch of St John's University (Minnesota, USA). This document describes the language recognized by the open-source assembler [[http://​nasm.sourceforge.net/​ | NASM]], which is somewhat similar to the assembly language of Minix.
 +  * [[http://​www.minix3.org/​doc/​intelman.html | Intel and AMD Architecture and Programming Manuals]] are available on the web. These companies want people to program for their products, of course, and they provide lots of information. ​
 +  * There is a  [[http://​my.execpc.com/​%7Egeezer/​os/​pm.htm | Protected Mode Tutorial]] ​ [[http://​my.execpc.com/​~geezer/​os/​pm.htm | here]], a site maintained by Chris Giese. The page is oriented toward programming MS-DOS applications,​ but it offers a good brief overview of how protected mode works.
 +  * Wangzhi (quakewang@mail.whut.edu.cn) provided a translation into English of a [[http://​www.woodhull.com/​newfaq/​faq/​MinixAsMn.html ​ | Minix Assembly Language Manual]], originally written in Chinese by Mao Yao and Yang Songhua. It includes a number of examples written by Wangzhi. The previous link is to an HTML version. He also provided a [[http://​www.woodhull.com/​newfaq/​faq/​MinixAsMn.pdf | PDF version]].
 +
 +=====  Do you know of any tutorials on assembly language programming? ​ =====
 +Randall Hyde's [[http://​webster.cs.ucr.edu/​AoA.html | The Art of Assembly Language Programming website]]
 +site offers downloads of versions of his assembly programming text in three 
 +flavors: for 16-bit DOS, for 32-bit Windows, and for 32-bit Linux. There'​s a 
 +lot of other interesting stuff on this site. 
  
developersguide/obsoletetools.txt · Last modified: 2014/11/12 11:59 by lionelsambuc