toebes@sas (01/28/86)
I have been reading the many comments that fly across about 'ripping' out the 'operating system' and writing a complete replacement (maybe UNIX). I too am not completely satisfied with the 'operating system' but before considering starting from scratch I studied it and came up with what I felt the problems were: 1) There is no way to recover previous commands or perform extensive editing on the current command. 2) The commands are somewhat inconsistant with one another (LIST and CD) though not unusable or impossible to get used to. 3) The lack of a search path makes the Execute() sequence of loading C:RUN then the command itself somewhat displeasing. Furthermore if you put RUN into ramdisk then everything else basically would have to be there too. 4) Parsing of commands is quite limited and could readily be improved by allowing piping and some form of aliasing. Although Piping may seem to be a UNIX fall through, it proves to be so useful that even MSDOS implemented it. 5) Batch files do not automatically execute. One has to tell the system that the text file it recognized as not being an object file that it contained commands to be read. 6) The Batch facility is seriously lacking. IF, LAB, SKIP and the other 'structured' statements are horrible kludges to avoid writing a batch processor. In reality, a batch processor really would have been easier instead of putting most of the information into the AmigaDOS process structures. 7) There is no 'SHELL' to assist the programmer/user in running commands. Some limited parsing and built in commands would make life easier. I know that these aren't all the problems, but I believe that it summarizes most of them. I don't believe that it is a problem that it isn't UNIX because it is an Amiga. (I happen to like many of the UNIX features) Good programmers can and should go from one system to another readily (I can see the flames coming on that one). What I feel should be done is to discuss exactly what the problems are and come up with the *BEST* fix not what appears to be the easiest to decide. Some solutions I propose to solve the above problems turn out to be quite little work when you consider the end result: for 1 - Write an AmigaDos device driver for the CON: window that allows editing to be done on *EVERYTHING* including command retreival and function key usage. With this even programs can benefit from the utility without having to account for it. The change is transparent. for 2 - Rewrite or modify those problem commands to fix them. New commands can be added to the basic set as appropriate. for 6 - Write a batch processor to be invoked on batch files that interprets their contents. There are already many of these on UNIX systems that could be readily ported. for 3,4,5,7 - 'Fix' the Execute command C:Run program so that the behavior is acceptable. I am not completely sure, but I believe that all CLI commands eventually go through Execute() or RUN before the program actually starts up. If this not the case then we should find a common point through which all commands pass and catch it there. At that point, the command can be broken up/parsed minimally as necessary to get pipes or redirection files specified. The command should then be searched for on something other than C: and if the resultant file is not an executable program, start the batch processor on it. I have been toying with these solutions to determine their feasability and so far have not found any serious problems. I want to see my Amiga much more friendly and tool oriented than it is but don't want to wait the year or two it would take to port an entire OS (If that short a time). I would like to hear other opinions on how to improve the OS with the minimum of work (and potential bugs/problems) John A. Toebes, VIII !mcnc!ncsu!sas!toebes (on clear sunny days) 120-H Northington Place Cary NC 27511