OSDev.org

The Place to Start for Operating System Developers
It is currently Tue Jun 25, 2019 5:54 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 7 posts ] 
Author Message
 Post subject: Release of tyndur 0.2.2
PostPosted: Sat Dec 26, 2009 8:32 am 
Offline
Member
Member

Joined: Sun Feb 01, 2009 6:11 am
Posts: 1067
Location: Germany
I am happy to announce the release of tyndur 0.2.2, our first release to contain enough i18n to be announced on osdev.org.

tyndur is the community OS of Lowlevel, which is probably the largest OS-Dev community in the German-speaking countries. Initially, it had a focus on serving as an example OS which could be referred to when explaining things on the Lowleve3l forums (and it still is helpful there) - this is the reason why everything is German by default. Since then it has evolved into something much larger and is actually kind of usable today. Let me give you an outline of the tyndur features:

  • Based on a microkernel
  • ATA/ATAPI and floppy support with ext2, iso9660 and FAT as file systems
  • Network support (rtl8139, sis900, e1000, ne2k, pcnet)
  • CDI almost completely used as the native driver interface, with great success in sharing drivers with other OSes so far (mainly with OSes only known on Lowlevel, but including others like Pedigree)
  • Limited POSIX support as a wrapper around native libc
  • Ported software includes Lynx, gcc, FreePascal compiler, binutils, Subversion, dropbear SSH client
  • Some basic internationalization (we would be happy to accept contributions of additional keymaps or translations!)

Images and sources are available at:


The following sections will give a short introduction to all of you who are not familiar with tyndur (all of you, I guess).

Changes since 0.2.1
  • Support for TCP servers
  • Configurable keyboard layout and some multilingual applications
  • setup as a menu driven configuration tool
  • FTP client (Paul Lange)
  • libm (Patrick Kaufmann)
  • ne2k network driver (Matthew Iselin)
  • kedit syntax highlighting for Pascal and Assembler (Alexander Hartmut Kluth)
  • Support for Shared IRQs (Max Reitz)
  • New ported software: svn, maumau, fasm, nasm, ctris
  • Lots of bug fixes

Thanks to everyone who contributed to this release!

Booting the system
Roughly speaking, the boot process of tyndur consists of two phases: It uses Multiboot to load the kernel and a few modules like disk and file system drivers which allow accessing the tyndur file system. These modules are loaded by GRUB, so their command line can be changed in the boot menu. When these modules are ready, servmgr takes over and loads more modules from the file system (e.g. network drivers).

For booting the system, servmgr needs to know the path to the file system as a module parameter (comparable with "root=..." in Linux). The default value in the boot menu is ata:/ata00_p0 for the hard disk image and ata:/cdrom for the Live CDs. Particularly for the Live CD it might be necessary to change the command line if the computer has more than one CD/DVD drive. Examples:

  • ata:/ata00_p0 means the first partition on Primary Master
  • ata:/atapi10 means a CD/DVD drive on Secondary Master
  • ata:/ata11 means a file system on an unpartitioned hard disk on Secondary Slave
  • ata:/cdrom means the first CD drive detected

Sometimes there are problems with DMA and ata (most notably on VirtualBox). In this case, try to change the boot menu entry as follows: "module /modules/ata nodma".

Terminal and shell
As soon as servmgr has finished loading the modules, you can use multiple virtual terminals. By default, you can start shells on the first to the fourth terminal. You can select the terminal using Alt-F1 to Alt-F4. Alt-F9 selects the service terminal, which contains messages from the modules loaded by servmgr. You may scroll using Shift-PgUp/Dn.

To help you on your search for executable files, I should mention that besides the current directory there are three places for executable files (the impatient ones could simply use tab completion, though ;)). First, there is file:/apps which contains the applications of the core system. Then we have file:/system/lpt-bin which contains symbolic links to the binaries of all packages installed via lpt. Both of these are in PATH, so you can start them without entering the whole path. The third one is file:/modules and contains drivers and services.

To start a program in foreground, enter its file name (or path if its neither in the current directory nor in PATH). To start it in background (use this for drivers from file:/modules) use the start command (e.g. "start /modules/ramdisk").

File system and paths
The paths used in tyndur are somewhat different from other OSes, so they are probably worth a section. As you can see in "file:/apps/sh" paths do not only consist of a directory and a file name like in Unix, but also contain a third part for the service which provides the file (and therefore there are three types of paths: A relative path looks like "../apps/sh", a service-relative one like "/apps/sh" and an absolute path like "file:/apps/sh"). So far you can compare it to DOS drive letters.

However, a typical tyndur path is a combination of multiple such paths: While ext2:/ is missing something (well, which device at all?), ata:/ata00_p0|ext2:/ gives all the information needed (oh yes, the ext2 filesystem on the ata:/ata00_p0 partition). You can even nest it deeper, for example the Live CD uses "ata:/cdrom|iso9660:/hd.img|ramoverlay:/cached|ext2:/" - the CD contains an iso9660 file system which contains an ext2 image, and there is a ramdisk in between to allow temporary write accesses to the ext2 image.

There is a service file which provides aliases to avoid such tedious paths. You can look up the mappings on the service terminal.

Network
On the first boot, the network configuration tool is started. If a driver exists for your hardware (rtl8139, sis900, e1000, ne2k, pcnet), it is detected automatically. You might need to adapt the IP address and gateway. They default to values suiting qemu when started with default parameters. For DNS, OpenDNS is used. You may change the DNS server by adding "ns=a.b.c.d" to the tcpip command line.

If the tyndur computer has access to the internet, a quick way to test the network setup is to resolve a DNS name: "cat tcpip:/dns/www.tyndur.org". Also, you can open a simple telnet-like connection to another PC: "pipe tcpip:/192.168.1.1:1234". To close the connection enter "EOF." on a line of its own.

Building software
For developing (or at least building) software on tyndur, there are multiple compilers available: gcc for C, FPC for Pascal and nasm, yasm and fasm for Assembly. On the Full Live CD all of them are pre-installed. On the hard disk image or on the small Live CD you can download them:
Code:
# lpt scan
# lpt get gcc
# lpt get yasm

As soon as the compilers and/or assemblers are installed, they can be used as usual (however, be patient, they are not too fast). As an editor you can use either kedit or nano (the latter is available in lpt if it's missing on your image). kedit provides syntax highlighting which can be enabled with F8. For version control, you may use Subversion.

For building C programs that consist of more than one file, you best use the "build" tool. It gathers source files from a tyndur-like directory structure and builds a binary of them. The resulting binary is called "run". For example, we could compile the tyndur shell:
Code:
# svn co svn://tyndur.org/tyndur/tags/0.2.2/src/modules/c/shell
# build

If you're patient enough, we can try something larger: Building a tyndur kernel on tyndur (takes 5 to 10 minutes in qemu). We must not use the normal standard library (therefore build -k) but need to check out the right one from Subversion:
Code:
# mkdir kernel
# cd kernel
# svn co svn://tyndur.org/tyndur/tags/0.2.2/src/include
# svn co svn://tyndur.org/tyndur/tags/0.2.2/src/lib
# svn co svn://tyndur.org/tyndur/tags/0.2.2/src/kernel
# cp kernel/src/kernel.ld .
# build -k


Have fun...
...and don't forget to provide feedback and patches. ;)

_________________
Developer of tyndur - community OS of Lowlevel (German)


Top
 Profile  
 
 Post subject: Re: Release of tyndur 0.2.2
PostPosted: Wed Dec 30, 2009 5:14 pm 
Offline
Member
Member

Joined: Sun Jan 14, 2007 9:15 pm
Posts: 2565
Location: Sydney, Australia (I come from a land down under!)
No takers? :(

I found tyndur to be fast and stable, and it certainly is not just another UNIX clone.

The only problem I really ran into was problems with ATAPI in Virtual PC, which has already been reported.

_________________
Pedigree | GitHub | Twitter | LinkedIn


Top
 Profile  
 
 Post subject: Re: Release of tyndur 0.2.2
PostPosted: Wed Dec 30, 2009 9:32 pm 
Offline
Member
Member

Joined: Thu Jul 07, 2005 11:00 pm
Posts: 1546
Very neat OS.. `sh` gives me only german error messages... also, I'm surprised that you have `lynx` but not `ping`

_________________
My new NEW blag


Top
 Profile  
 
 Post subject: Re: Release of tyndur 0.2.2
PostPosted: Thu Dec 31, 2009 1:30 am 
Offline
Member
Member

Joined: Fri Sep 04, 2009 12:39 am
Posts: 55
Very nice OS. I like how you ported practical applications like gcc, kedit, kirc, lynx, etc. I especially like the networking. I can actually visit my IRC channels and browse the Web on your OS. Very, very nice job.


Top
 Profile  
 
 Post subject: Re: Release of tyndur 0.2.2
PostPosted: Fri Jan 01, 2010 11:32 am 
Offline
Member
Member

Joined: Sun Feb 01, 2009 6:11 am
Posts: 1067
Location: Germany
Thanks. :)

earlz wrote:
`sh` gives me only german error messages... also, I'm surprised that you have `lynx` but not `ping`

Right, there are still many untranslated messages. I think those in sh will be translated eventually, but probably we won't translate all of them (unless someone steps up and volunteers, but I guess that's not very likely). The goal for this release was to get to a point where someone who doesn't understand German can get to a shell and use it.

The explanation for the missing ping might be the "practical application" thing oib111 noticed. Nobody has needed a ping so far, so nobody has bothered implementing it. The only use case in the context of a hobby OS in this state I can think of is testing if the network works. Resolving a DNS name or opening a TCP telnet connection is almost as good for that and doesn't involve implementing anything ;)

_________________
Developer of tyndur - community OS of Lowlevel (German)


Top
 Profile  
 
 Post subject: Re: Release of tyndur 0.2.2
PostPosted: Sun Apr 20, 2014 3:24 pm 
Offline
Member
Member
User avatar

Joined: Mon Mar 23, 2009 3:15 am
Posts: 124
Location: Germany
Perhaps you should give an update on the status of tyndur.

_________________
http://www.henkessoft.de/OS_Dev/OS_Dev3.htm (OSDEV)
http://www.c-plusplus.de/forum/viewforu ... is-62.html
irc.euirc.net #PrettyOS


Top
 Profile  
 
 Post subject: Re: Release of tyndur 0.2.2
PostPosted: Thu Apr 24, 2014 2:22 am 
Offline
Member
Member

Joined: Sun Feb 01, 2009 6:11 am
Posts: 1067
Location: Germany
I'll do that in detail when/if we ever release a version 0.3.0.

You made me curious, and my subjective impression was that there hasn't been that much progress since 0.2.2, so I checked the git repository - and the truth is that well over a third of the commits in the whole history is after the 0.2.2 release. So perhaps it's really just that in the beginning every tiny change is a big improvement to the OS, whereas in a larger project, small, but steady changes don't feel like you've ever done a big step.

I guess it's really about time to prepare a new release. But it needs some polishing first, and I'm not sure when we'll do that.

But the major points of a status update in short: We switched to a completely rewritten kernel (which was already part of the git tree by the time that 0.2.2 was released, but it was disabled); a lot of libc improvements for new ports; hardware driver improvements, including new support for audio and (VBE) graphics; UDP and DHCP support; many other small improvements to our native tools.

_________________
Developer of tyndur - community OS of Lowlevel (German)


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group