Post a Comment
This sounds like a cool little project you've got going here. Best of luck with it.
Or is this a mostly cleanroom implementation?
Just curious, cos you've accomplished a lot.
Taras
From the article:
The objective of the GNU/Fiwix project is to design and to implement a UNIX based architecture kernel exclusively for educational purposes, while keeping the kernel as simple as possible for the students' benefit.
The objectives stated above sound nearly identical to those of the MINIX operating system: http://www.cs.vu.nl/~ast/minix.html
True, but Minix is very outdated. I am glad to see there an upcoming educational system which meets the current implementation attemps of kernel developing.
It's unfortunate that the keys will be hardcoded to Spanish. Looks like a great project though.
We used BSD for this type of thing when I went through CS (1998 or so). Maybe I could do it now, but I was completely lost trying to make changes in the system.
This is a from-scratch implementation, althrough to do it, I needed to study source code of more than 50 OS projects on the inet.
Books like "The Design of the UNIX Operating System" of Maurice J Bach, help a lot.
And of course, a lot of patience and try-error loops :-)
(Ensimag, Grenoble, France), and it's very formative.
What would be interesting is a document relating the books who helped you, the specifications (such as the multiboot standard, ...), the tools you use (for example,
we used an OS loader called OSMon from which we were able to launch and relaunch our buggy OS, and to debug it through the serial line with gdb installed on an other computer)
My 2 cents about the educational aspect.
Good luck with it, give GNU/Linux a run for their money 
I think this is a great idea. i'd love to get into kernel programming, but all the kernels I've looked at (Linux, FreeBSD, Darwin) are poorly commented (from a beginners standpoint). If this is as well commented as he says it's going to be, then that will be great.
How does the design of Unix compare to Windows XP? Is Unix based on NT technology, or another programming methadology?
UNIX is older, if you websearch for UNIX history you'll find its very long and confused, the first versions were written in 1969 by technicians at a telephony company in the USA
NT was written from scratch in the 80s by a design team some of whom had previously worked on the VMS operating system, drawing cues from that OS, from O/S2 which NT was originally developed as a version of and partly from UNIX
Both have acquired some tricks from each other but the codebases are in the main separate ( NT may include some licenced and some opensource UNIX code but the opposite probably does not apply. )
"UNIX is older, if you websearch for UNIX history you'll find its very long and confused, the first versions were written in 1969 by technicians at a telephony company in the USA"
However, we're talking about POSIX and UNIX standards. The history of the UNIX OS is, except for standards and thus common things, seperate from ie. this OS or GNU/Linux.
"NT was written from scratch in the 80s by a design team some of whom had previously worked on the VMS operating system""
Liar. VMS was written from scratch in the 70s or 80s. That wasn't NT. Microsoft was still small during that time, there was no NT. There was no NT kernel. Only around '94 (90s) after MS got money from MSDOS, the VMS team made large parts of the NT kernel (of which designs currently little is over anymore. Plus it's stability is nothing next to OpenVMS). During that time, MS made the Windows GUI.
"from O/S2 which NT was originally developed as a version of and partly from UNIX"
OS/2 has nothing to do with Windows NT.
"Both have acquired some tricks from each other but the codebases are in the main separate ( NT may include some licenced and some opensource UNIX code but the opposite probably does not apply. )"
BSD is written FROM SCRATCH. GNU/Linux is written FROM SCRATCH. In fact, any current ''Unix-like'' (which is written according to POSIX and UNIX _standards_) are written from scratch.
NT has some BSDL code.
> Liar
That seems a little harsh. I just think he was misimformed.
> OS/2 has nothing to do with Windows NT
I'm no expert on this but I'm pretty sure NTFS came from OS/2's file system HPFS.
Encantat de veure programadors catalans de kernels amb talent com tu , Felicitats Jordi!.
Nice to see catalan kernel talented programers like you , keep up great work!
> I'm no expert on this but I'm pretty sure NTFS came from > OS/2's file system HPFS.
Yea I have to agree with that. OS/2 was created together by MS and IBM as far as I am aware and then MS took their own path. Windows NT 4.0 has OS/2 code in it.
When MS released Windows 95, around the 1995 period, IBM released a version of OS/2 in 1996. OS/2 can run Windows 3.1 applications because of the similar source as the Windows 3.1 OS. However, MS with Windows 95 and NT took their own path and OS/2 did not include native support for Windows 95 software because it was too expensive for them when they tried to get a license from MS. IBM thought OS/2 was something really big at that time and it was however things changed.
The things I said above is as far as my knowledge goes. I could be wrong or some of the information may not be 100%. If anyone knows better, correct me if I am wrong 
That telephony company is AT&T 
I have heard about the VMS theory too, well now I am totally confused.
The VMS theory is more than that, both systems are remarkably similar. According to an article from Mr. Mark Russinovich:
"NT's processes are virtually the same as VMS's processes (Table 2, page 118, shows a comparison of VMS and NT processes). In NT, as in VMS, the process scheduler implements 32 priority levels. The process with the highest priority is always running, and processes with equal priority are scheduled in a round-robin pattern. The system considers the 16 high-priority levels realtime or fixed priorities, because the process scheduler doesn't manipulate priority in processes the system assigns to that range. The 16 low-priority levels (except 0, which the system reserves for the idle thread that executes when nothing else can) are dynamic because the scheduler, often with the input of device drivers, bumps priorities up in reaction to various conditions, such as when the process receives input from a device. This bumping procedure is called boosting. A defining aspect of the NT and VMS schedulers is that they never lower a process' priority below the priority level the application programmed. To handle CPU hogging, in which a process burns CPU cycles without regard to other processes in the system, the scheduler boosts the priority of starved processes that haven't executed for a defined period. Both VMS 5.0 and NT 3.1 schedulers support symmetric multiprocessing (SMP), which let them execute processes simultaneously on different CPUs in order to increase applications' performance.
A major difference between NT process management and VMS process management is that NT processes contain one or more threads of execution, and NT's scheduler gives CPU time to threads, not processes. Digital didn't introduce kernel threads into VMS until version 7.0 in 1995. This addition is one of several enhancements Digital has made to VMS since NT's release that appear to be in response to NT capabilities. In turn, Microsoft added lightweight user-mode threads support to NT 4.0 in 1996, which it copied from the VMS implementation of threads.
.....
NT's I/O Manager is closely based on VMS's I/O Manager. Both OS's I/O Manager support a layered-driver model throughout the device driver stacks for different device types and implements asynchronous packet-based I/O commands, and its device drivers dynamically load and unload. Stackable and loadable drivers make NT and VMS very extensible. Either OS can divide functionality among several device drivers, with each driver implementing a different abstraction level. For example, the system can insert a fault-tolerant disk driver between a file system driver and a disk driver. This configuration lets the fault-tolerant disk driver receive a request the system sends to one logical drive (e.g., the C drive), then send the request to multiple physical drives to implement mirroring or striping. Asynchronous I/O enables applications and the kernel subsystems to initiate device requests and work while the requests are in progress, rather than wait idly for the requests to complete. NT's device driver architecture and interrupt-request priority scheme are based on VMS. Descriptions of these aspects of the I/O Manager are applicable to both OSs with little variation."
These similarities forced M$ to pay up $100Million to DEC in the mid-90s....
Thank you for that info whaaa, greatly appreciated.
Microsoft and IBM started work on their new combined project at around 1987, and called it OS/2. IBM was planning on tying it in with their new Personal System/2s, ergo the name of Operating System/2.
It originally ran on 16-bit 286s with memory protection. This cramped its style somewhat and MS and IBM came to blows over porting it to the 386. Microsoft spun off its copy of the OS/2 source code and joined it with the VMS-clone thing that Cutler always wanted.
Meanwhile, IBM was held prisoner to OS/2 by the OS/2 Team, a grass-roots group of OS/2 supporters and (occasionally) fanatics.
OS/2 2.0 G.A. was released about 1992 - that's when I got my copy of it. My copy of NT 3.1 came out around 1993, though I bought it earlier this very year.
OS/2 is still a more polished product - it wasn't until NT 4.0 that NT began to get anywhere near the end-user sophistication that OS/2 2.0 had.
>>The objectives stated above sound nearly identical to those of the MINIX operating system: http://www.cs.vu.nl/~ast/minix.html
Wasn't linux in the beginning a small project for a MINIX replica(correct me if i'm wrong). Wonder what's this project stands in 10 years into the future. After all, AFAIK linux was also just a small education project...
..and I have already forgotten what the hell was the article about. People, would it hurt so much to stick a little bit to the subject of the article?
Where is the well commented kernel source? The documentation link doesnt work, and the only downloads I could find were a boot disk image and project poster..
Wheres the source you ask? Well if you read the breif article you would realize that the source won't be released under the GPL *UNTIL* version 1.0.0
The reasoning is so that 1 person will develop it, so it will have consistancy in programming style.
--Skwirl++
Moltes gràcies. El que menys m'esperava és ser felicitat per un català. I és que som collonuts. ;-)
Many thanks. It was a surprise to be congratulated by a catalan. Indeed we are a very cool people. ;-)
To all of people that has interested in the GNU/Fiwix:
(My english is poor, so ... patience and ...ssshhh. ;-)
THANK YOU VERY MUCH, to all people that in some way, has explained his positions about this project.
Although maybe you dont know, your thoughts has been very appreciated.
Thank you again.




