Logo

Issues

Mar - Oct 2005

Feb 2005
Jan 2005
Dec 2004
Nov 2004
Oct 2004
Sept 2004
Aug 2004
July 2004


Links

Syllable
OSNews

October 2004 Newsletter

Syllable is an in-development open source operating system for the home and small office user. The Syllable Development Newsletters are condensed reports on the past month's activity -- highlighting progress made and other project updates. For previous months, please see the links on the left of this page. Red text below denotes direct quotes from developers.

There were 510 mailing-list posts in October. (SDN now includes the syllable-kernel list, which is starting to see more activity.) Another busy month; the project saw great driver updates, a new kernel hacker, and Quake 2! Lots more worth reading about as well...

Contents




1. AEdit 1.6 beta 3

Jonas Jarvoll had been working on code for AEdit, Syllable's text editor, adding features and improvements. He announced the newest update on the list:

AEdit 1.6 beta 3 (hopefully the last one) has been released. Can be downloaded from www.nocrew.org/software/syllable.

From the ChangeLog:
  • You can also use Ctrl+Tab or Shift+Ctrl+Tab to move through opened files.
  • First compile on Syllable 0.5.4
  • Shortcut for closing buffer Ctrl+W
  • New menuitem called "Save All". This item allows the user to save all modified files at once. Very nice to have when you have a lot of files opened and what to be sure that all are saved (like when you program). Short cut has been set to Ctrl+B but can be discussed. However doesnt work on files which has not been named yet (ie. untitled files)
  • When a menuitem is disabled also the shortcut plus belonging toolbar button is disabled.
  • Added visible shortcuts to the menuitems
  • Cleaned up button_bar class (no need to keep track of number of buttons when you can have that information from the vector class itself
  • Added small icons to the menuitems
  • Replace previous icons with GTK stock items (in png format for easy change)

Lead developer Kristian Van Der Vliet was happy with the work, adding that the syllable-announce list could also be used for such news. A few side-discussions followed on choices of icon set and taking screenshots. Later on, Vanders suggested changing the version number to 2.0, after all the progress made.




2. New kernel hacker

Although Syllable's kernel is, for the most part, reliable and featureful, it still requires maintenance and updates. Jake Hamby joined the mailing list backed up with prior kernel development experience, and made his first post:

I'm new to Syllable development but have experience with FreeBSD, Linux, and BeOS kernel hacking, so I'm getting up to speed fairly quickly. The code is easy to understand and has been quite fun to hack on so far. As I'm using VMWare (4.5.2) to host Syllable, my first task is to figure out why I can only get it to work reliably with the kernel flag "enable_ata_dma=false", which makes things run much slower.

Here"s a patch with some minor fixes I've found so far. First, I added "-Wstrict-prototypes" to the CFLAGS in kernel/Makefile (copied from the Linux kernel CFLAGS) and corrected some warnings where functions were declared as "foo()" instead of "foo(void)" as is correct for ANSI C.

Also in this patchset, I commented out some local functions which were not being used, removing the remaining GCC warnings, fixed a typo ("deamon" to "daemon") in kernel/swap.c, and fixed panic() in kernel/kernel.c to use the va_list macros instead of pointer arithmetic. So these are all basically minor stylistic fixes.

Will H and Vanders welcomed Jake to the project. Shortly after, Jake posted another patch bundle, this time correcting various small glitches and bringing some code in line with the Linux 2.6 design -- better for porting drivers. His work continued with another patch:

One more patch for today. I tried building the kernel with "-O2" instead of "-O3" and got an illegal instruction crash at the beginning of the init process (before it prints anything). I looked at the difference in assembly output in kernel/init.c and noticed that the Fork() function is inlined under -O3. Since Fork() doesn't seem to be used anywhere outside of init.c, I changed it to a static inline function and commented out the prototype in include/atheos/kernel.h. This fixed the problem, and makes things cleaner since the function consists of only a single line of inline asm.

BTW, I would suggest using CFLAGS of "-O2 -mpreferred-stack-boundary=2", as Linux and FreeBSD do, instead of "-O3" when building the kernel because smaller code size is generally more important than the additional inlining. Using the "size" command on kernel.so, I get a text size (data and bss sizes are the same) of:

378602 bytes for -O3
363546 bytes for -O2 -mpreferred-stack-boundary=2

for a savings of 15K or about 4%.

Jake and Vanders exchanged ideas on improving SMP stability and enabling support for SSE instructions. Towards the end of the month, Jake posted his plans for future changes:

I am busy preparing my next "mega-patch" for the kernel which will:

* add support for SSE/SSE2 and lazy floating-point context switching,
* inline numerous short assembly language functions from intel.s,
* fix a few signal handling and fork/exec context initialization bugs,
* correct numerous typos and grammatical errors in the source code,
* improve the performance of allocating and freeing memory pages, and
* integrate the latest version of atheos/isa_io.h and "inc/io_ports.h" from Linux (the second one gives us more readable code since I was able to replace "0x20" with "PIC_MASTER_CMD", "0x43" with "PIT_MODE", and so on throughout the i8259A access code).

Just as October finished, Vanders crowned Jake the project's "Official Kernel Dude" and gave him CVS write access to the source tree. He also asked for other kernel patches to be sent to via Jake in the future.




3. Video driver updates

Another busy month for Arno Klenke, who announced updates to the NVIDIA drivers early on in October:

here is a package that contains the updated syllable nvidia drivers. Included is the updated geforce driver (now linked against the latest libsyllable) and a dedicated driver for riva cards (untested). The riva driver is basically the old nvidia driver without the geforce specific code and the new mode calculation code.

Download:
http://www.liqwyd.com/arno/nvidia.zip

A few weeks later he posted an update to fix video mode calculation, and shortly after another update with the following adjustments:

Here are two driver updates:

nvidia drivers:
Fixed loading error of the riva driver because of an undefined symbol

http://www.liqwyd.com/arno/nvidia.zip

pci busmanager:
The busmanager can now use the pci irq routing table in combination with support for intel/via/sis/ali irq routers to set an interrupt for devices that did not get it from the bios. This is important because not all bios have an option to set plug & play os to no.

http://www.liqwyd.com/arno/pci.zip

Like an unstoppable coding machine, Arno then announced another driver -- this time a brand new piece of code for Intel graphics chipsets. His mailing list post:

Here is the first version of a graphics driver for the intel i852/i855 chipset which is used in pentium m and celeron m notebooks. The driver should also work with i830, i845 and i865 chipsets. The appserver part of the driver is ported from X and the kernel driver contains code from the linux agpgart.

[ ... ]

Download:
http://www.liqwyd.com/arno/i855.zip (contains the source and binaries)

Michael Saunders was overjoyed, with the driver working perfectly on his laptop's i830GM chip. Truva had a couple of issues and Arno uploaded a version with some modifications.




4. Sourcery announcements

Every few weeks, Rick Caudill had been posting salivating screenshots and feature lists from Sourcery, his text editor/IDE for programmers. This month was no exception, as he gave some details:

I have finally found some time to work on Sourcery again :) There is a minimal amount of work left, so expect something real soon... Anyway, here are the updates:

1. All Settings work now.
2. Added a color dialog Here is the screenshot: http://freewebs.com/syldesk/screenshots/Sourcery/colors.png
3. Reworked the font dialog. Now you can change everything(including the shearing and rotation) See a screenshot here: http://freewebs.com/syldesk/screenshots/Sourcery/fonts.png
4. Fixed some more bugs :)

As always, this got some developers crying out for a release, and eventually Rick announced the news many on the list had been waiting for:

Yes, it is finally here :) Sourcery 0.1 has finally arrived :) You can download it from here:
http://www.freewebs.com/syldesk/downloads/syllable/Sourcery-bin.tar.gz

How do I install:
1. After distracting the files, type cd path_extracted_to/Sourcery in a Terminal
2. Then type in the same terminal: "install.sh"(without the quotations)
3. This will just install libcodview, but from there you can put the Sourcery directory where-ever you want

Known Bugs:
1) If using a slightly larger app font than the default, the Prefs icons aren't fully visible
2) Clicking in the white areas around those icons closes the Prefs
3) In the Properties box, should the "Code Lines" stat not include blank lines? ie just indicate actual code?
4) Opening of files is a little slow when using the file requester... I will fix this for the next release somehow :)

Then followed various comments, suggestions and cheers for the release.




5. Syllable in Linux Format

Michael Saunders announced that he'd featured Syllable in a Linux magazine, in his Hot Picks section. As with much of the recent publicity work, this aimed to generate awareness of and interest around the OS -- and hopefully pull in a few more developers. His post:

I've written a review of Syllable for Linux Format. LXF is the UK's best-selling newsstand Linux magazine, with around 30,000 circulation; not quite as many eyeballs as with our recent Slashdotting and OSNewsing, but the readers are likely to take a greater interest.

Also, on the coverdisc is 0.5.3, LiveCD 4 and the Dock update. The text is on page 44 of issue 59 -- on the shelves today, and should reach America and other European countries in a few weeks.

So if you see LXF in your local newsagent, have a gander!

William Hoggarth and Kristian Van Der Vliet were pleased, and looked forward to finding it in the shops.




6. Native IRC and FTP client thoughts

Currently, Syllable can access IRC channels thanks to the BitchX port. William Hoggarth wondered if a native client was in development; he mentioned AIRC, an old AtheOS program which was so dated (and difficult to compile) that writing a new one from scratch could be more fruitful. Additionally, he noted that Daniel O'Neill was interested in a client -- and Daniel replied:

Aye, extremely interested in fact! I actually just finished doing up the concept interface, and have a good share of the network code for it done, as well as the server code (info, error, warning) handler.

Throw a new aIRC up on Kamidake when you get a chance. I haven't ever had a chance to use it, since my AtheOS days :/

AIRC coder Tom Marshall joined the discussion, explaining that he'd updated the code to compile on newer Syllable releases and planned to make a new version available soon. William then considered another type of app:

As IRC clients seems to be well covered, how about a native FTP client using the new IconDirectoryView class? or has somebody else got one tucked up their sleeve?

Damien Danneels asked if FTP sites could be mountable in the filesystem, giving a superb and seamless level of integration, so learning a dedicated client wouldn't be necessary. Daniel O'Neill offered his musings:

A very cool idea but... I fear excessively slow, thus probably not practical :p

Another couple of issues are in locking, network dependency, and how to handle 'dirty' or broken connections. I think everybody who has used SMB or NFS can relate when I say it can be a serious pain. Also, using mount and unmount in the filemanager for ftp could inadvertently pollute the mount table. How would we unmount when we're done, and when would this event occur?

On the other hand, I haven't seen this idea employed before. If you give it a twirl I wouldn't mind testing it out (even just a proof of concept), because I think if done right with all the potential issues addressed and in mind, it could be very handy (*thinking netinstall*)

Bill Sanders, Terry Glass and Daniel Gryniewicz pointed out that Plan9, Linux, OSX, BeOS and KDE/GNOME support this feature to varying degrees. Terry agreed that it'd be difficult to implement effectively, and Daniel elaborated on some of the potential problems. Jarret R linked to the LUFS project; he'd had a few problems with it but thought that, done correctly, it could be a valuable feature.

Michael Stolovitzsky commented on the idea of having a kernel-side FTP driver:

FTP is an archaic protocol. Implementing it as a kernel space driver would mean a lot of very tight work with strings and sockets. Remember Linux folks running an HTTP server in the kernel? It's the same sin. For instance, how would you manage authorization and errors? And if we're speaking of FTP then there's SSL, TSL, digest authentication and a bunch of other stuff must be implemented to make it really modern and powerful. Do you REALLY want to write all that from scratch *AND* keep it in the kernel?

Then again, something can be devised to make it possible to write userspace services that would talk to the kernel directly and provide virtual filesystem support that would be completely transparent to the application level.

At this point, the discussion went on to NFS as a comparison, with Vanders mentioning an ancient NFS-like driver that's still in the source tree here.




7. ColdFish atttributes

Daniel O'Neill announced that he'd added file attribute handling to ColdFish, Syllable's music player. He said it was something of a hack job, but hoped that Vanders and/or Arno could assist him with a more elegant solution. The main part of his message:

May even make ID3 obsolete, at least on Syllable :) Speaking of that, I think my next trick is a little program to read an MP3's and create appropriate attributes based on ID3 values, and maybe one for OGG, I'll take a look at it.

Oi vey I've overfilled my plate again.

Anyway, the modified source is here:
http://mypage.uniserve.com/~danoneill/coldfish.zip

I've taken a screeny too,
http://mypage.uniserve.com/~danoneill/coldattributefish.png

Now, what would be severely handy would be having the file manager display arbitrary attributes, and possibly the ability to set them. The best part is one could configure, say, /home/root/music/ to display attribute columns for "Author", "Title", "Bitrate", "Length", and "Genre". Then that preference could be saved as an attribute of the directory, or as several even.

I suppose that would only be useful in a List or Details type of view, but even so, I still think it would be slick.

Jarret R put forward some ideas for managing files and dealing with their attributes, while Terry Glass and Brent P Newhall explained the BeOS approach. Other developers also chipped in with experience from other operating systems and their personal preferences. Andrew Kennan detailed the way he'd like to see file attributes displayed:

Another option is to provide groups of attributes. A Music attribute group would include Title, Artist, Genre, Bitrate etc. A Gallery attribute group could include things like colour depth and image size.

The file browser would include the groups in it's list of views along with Icons, List and Details. A few groups such as Music would be defined globally and the user would be able to define new ones.

This could happily work in conjunction with the View, Attributes menu.

The remaining posts concentrated on UI details and how helpful certain features would be to end-users.




8. WarpSpeed window decorator

Terry Glass posted news on his WarpSpeed window decorator -- a border style around windows that apes the look of IBM's desktop OS. His message:

I'd like to announce the first test release of my new window decorator, WarpSpeed. It's based on *drumroll* IBM's OS/2 Warp 4. A screenshot can bee seen at http://zorak.42geeks.com/Syllable/WarpSpeed_Test1.png and the decorator can be downloaded from http://zorak.42geeks.com/Syllable/WarpSpeed_Test1.zip

I would appreciate any bug reports and/or complaints.

A few developers gave it a try and were pleased with the results.




9. Web browser discussion

A topic that pops up from time to time: what to do about web browsing on Syllable? KHTML-based ABrowse and ported Links2 are the two best options right now, both having their limitations, and Michael Stolovitzsky pondered about the way forward. He listed the various paths that could be taken:

1) Back to KHTML (did they get rid of all the locking/threading problems?). ABrowse is KHTML + native GUI.

2) Port of Mozilla HTML engine - nslayout, formerly known as gecko. A native UI will need to be written and the engine itself will need to be ported along with some underlying technologies that run Mozilla's guts.

3) Port of Mozilla Firefox - this is exactly the same as above, but the native Syllable UI will be dropped in favour of Firefox. This includes porting of relevant Mozilla technologies. I can not ascertain the amount of effort needed to fully port Firefox.

4) Port of the Mozilla suite - the entire Mozilla tree ported to Syllable. This includes all the porting work that needs to be done for Firefox and brings in even more.

5) Port of Dillo - while I've heard opinions that it's a fine browser, it's been also said that it's tied into GTK (porting which to Syllable is a waste of time IMO) and that it's way too strict on HTML which renders it useless for everyday Internet.

6) Links2 - which already has a native GUI but it's underwritten and frankly looks fugly.

Michael's personal proposition was to port Mozilla's Gecko and rely on Links2 in the meantime. William Rose provided a thorough explanation of porting Gecko and the sheer effort required, noting that it's currently too difficult to separate Mozilla's front and back ends: "After a lot of hunting it seemed that the guts were very firmly attached to the shell and it would make an unmaintainable mess to try and rip them out."

Daneil O'Neill was in favour of continuing with KHTML, citing its performance benefits; meanwhile Vanders preferred to see a Gecko port with a Syllable GUI crafted on top. Hong Kong-based developer Hilary Cheng gave a vote to Mozilla for better rendering (particularly with different character sets), and the debate tailed off. As it stands, supporters in both camps had been poking around in the code and putting forward valid reasons for their choice of browser port, but we'll have to wait and see what happens from here...




10. Syllable on Windows

QEMU, a CPU and PC emulator capable of running various operating systems, can handle Syllable without too many hassles. Michael Saunders assembled a package for Windows that allowed users to try Syllable without complicated partitioning and installation woes:

I've created a Windows package containing a 500 MB virtual Syllable 0.5.4 disk image, along with the QEMU PC emulator. In addition there's a script to start it up using the appropriate flags and filenames. So, this means people can try out Syllable in a snap:
  • 1) Download and extract Zip archive
  • 2) Double-click 'SYLLABLE.bat'
  • 3) Enjoy!
Easier than an ultra-simplified pie which comes supplied with a comprehensive user manual and 24/7 telephone support. Recommended spec is 1.5 GHz+ with 256 MB RAM. Here's a shot:
http://msa.section.me.uk/syllable/syl-qemu.gif

After a round of testing from other Syllable developers, Michael went ahead with the package and created a dedicated web page for it. It was later announced on OSNews -- and although the slow emulation speed wasn't ideal for everyone, many were trying out the OS and talking about the results.




11. Quake 2 port progress

Daniel O'Neill was a busy bee this month, putting together the first stages of a Quake 2 port for Syllable. After tempting users and developers with this screenshot (colour scheme may cause nightmares), he posted the details:

Alright, I'm in the process of fixing a few bugs which will likely take some time, and implementing sound would be a first for me so that'll probably take a week or two alone, so I figured for anybody in a hurry to try Q2 on Syllable I'd at least put up an interim binary to play on. (I'd throw the current source up too, but it's bloody massive and I don't have an hour+ to wait for it to upload :p)

http://mypage.uniserve.com/~danoneill/quake-sweet.png - current state
http://mypage.uniserve.com/~danoneill/quake2.bin.1.zip - binaries

He also posted some info on the current limitations and bugs, including the lack of sound, problems with the keyboard and technical issues. Brent, Vanders and Michael were thrilled with the progress made.




12. SYL-CON user/developer meetup?

Following a chat on IRC, William Hoggarth and Michael Saunders considered a meetup of Syllable developers and users -- like a small convention, but friendlier and more personal. William put the idea forward on the list:

We IRC regulars have been kicking around the idea of having a meet for Syllable developers. We reckon there are at least 5 or 6 people from the UK who would be up for it. It would be cool if people from other countries could turn up too. With the price of European flights being as low as they are at the moment, this a real possbility.

This is just an idea at the moment, so we're just floating it on the list. Who thinks they might like to come to such an event? When, where, how, what length, what activities? If you have any comments or think would like to come to such an event please post a reply.

Michael then elaborated on a few of the points and gave his own thoughts on what could work:

Just to follow up: as Will says, we have several UKers on IRC willing to come. There may be others on the list too -- AFAIK Vanders is in Bristol so we could work out an equidistant place. And having some folks from Europe and the USA would be wonderful...

I was thinking of what the Haiku folks did. (Most people here probably already know Haiku, but if not, it's an open source BeOS clone.) Their project is smaller than Syllable's, and yet they managed to organise a meetup -- so we can probably do something similar.

A meetup, general chat, discussion about the project, maybe some on-the-spot hacking (I'll bring my Syllable-installed laptop), a meal, drink at the hotel, more banter the day after, and done. That's one possibility. I'm well up for this -- anyone else?

Brian Witt thought it might be worthwhile "piggy-backing" onto a Linux convention, and other mailing list regulars chipped in with their ideas (and whether or not they could come). Brent P Newhall added a survey to the website with intiguing results; after a while, it looked feasible to organise a meetup sometime in January or February 2005, near London.



Edited by Michael Saunders. If you have any other Syllable-related news, just drop me a line.