Subj : Re: Starting a New OS called iOS To : comp.os.linux From : robertharvey Date : Mon Aug 23 2004 03:40 am perlshine007@yahoo.com (perlshine) wrote in message news:... > Hello Friends, > I am planning to write a new OS named iOS, which will be primarily > for educational purpose. .... Many of the > codes will be shamelessly copied from a GNU GPL licenced OS like linux > etc. I wish you every success with it. Might I make a few suggestions: 1. File system The architecture of file systems is due for an upgrade. There are problems with the drive-letter based ideas of Windows, and with the mountpoint ideas of *nix. 1.1 Mounting. The mounting/unmounting of removable devices in *nix is a major hurdle for untrained users, and a very out of date idea. Linux is full of daemon-based solutions, but they are not universally succesful, and are rather like walpapering over the cracks. 1.2 HotPlug. The mechanisms used to mount USB/Firewire drives in Linux are not ideal, they are confused and clumsy. Similarly the windows technique requiring a 'disconnect' from the desktop is a pain. It's time for some fresh thinking of file systems and removable devices. On the old Datapoint computers the dos-dot series of operating systems (e.g. DOS.H) worked off drive labels - e.g. Filename , filename. It was so well done that, while processing the end of week run, I have sometimes spun down two 10" disk stacks, swapped the stacks over, and spun them up again - and the wages run continued from where it had been. Whatever you do to file systems, you _must_ retain the *nix idea of links, hard and soft. They are infinitely superior to anything else in the world of fild management. I would think very seriously about providing deep attribute support of some kind. VMS & NTFS have acl and user-defined attributes. there is a great deal to be learned there. 2. Physical devices One of the grand ideas about *nix was the "everything is a file" idea, but it is getting increasingly difficult with things like usb to serial adaptors to keep track of everything. The wonderful Digiboard serial extenders' only flaw is the non-obvious names the special character devices end up with. Some rationallity is required, and perhaps a simple mechanism for mapping physical devices to device names in the file space. There is a huge amount to be said for the major-minor unit numbers, but it is not the only way to do things and is non-obvious sometimes. Some tool that maps things like hardware resources, device addresses, drivers, etc to device names would be very interesting. 3. Boot process The Linux booter is open, easily visible, and clever. But slow. Some of this involves things like mapping and then removing ram disks and things. A from-the-ground-up design should be able to boot quickly and cleanly without having to jump through hoops. Have a look at the Acorn Archimedes, and the modern RISCOS successors. Much of the OS was in rom, and the machine booted from cold to desktop in a handful of seconds. That is something to behold. 4. Device drivers I like the idea of a 'wrapper' that can use device drivers from other OS's. You will face a device driver problem, so perhaps this should be designed in from scratch. And be available for all hardware. 5. Context switching Make it pre-emptive from the start. A true RT-os can be used as a desktop one, but rarely the other way around. There is a market for RT-os so you will have a larger constituency to help you. 6. Shells & shell apps Is the shell part of the OS, or an application? There are some clever shells available on *nix, which should be good enough for you. But things like ls have a long legacy - so much so that you have to use separate commands to see ACLs on files. You should consider providing a new command to list everything about a file, for example, much as dir does on VMS or OS9 7. Graphics and desktops X already exists, so there is no need to re-invent the wheel. Ditto desktops, except that there is a lot of 'bloat' out there, and dependence on Linux structures. Perhaps you will have to make something like FVWM2 available and then let the desktop gurus port as required. .