Showing posts with label ideas. Show all posts
Showing posts with label ideas. Show all posts

Wednesday, June 20, 2012

What to optimize in OS #1?

Hi all again,
today I will make some notes about optimization that might be made in OS generally and in microkernel based one as well.
IPC:
Avoid copy_from/copy_to
It's a bad idea to transfer big data via kernel buffers, it's better to find a way to avoid it.
Avoid double/triple buffering
It's mostly the same as written top.
Avoid priority/time slice consuming
When you receiving a message from task you will execute procedure with your own time slice and priority - it's very sadly. To avoid this receiving thread should cut time slice from the caller's thread and set priority of it.
Well, later I will try to explain and show implementation of this great features.

Friday, July 18, 2008

Redleaf: new plans and ways

As of redleafd 0.1beta release (now it can be used for some purposes with sure) I'm take an idea, I want to implement some features for my work - it's a time sharing, job statistics, projects states etc ...
I've decided to make it via web, yes, in case of public (but restricted use) using.
What the deal I'm talking about ?
There are a complete service for each one who cares and working on open-source project, scheduling community events, working time and want to make a proof of participating and real developer state.
For example - I have a many mails from people who wants me to take they like a developers to open source project, in the past I've including everybody, but there are no effect on this - nobody works, people was enlisted and nothing else.
On real practice - I want to take a view to each of candidate to participate in project via this service. There are no service for it yet.
Also, there are a good thing for employer to avoid time loose with non right mans.
eh, you can told me about linkedin - linkedin is not really make a proof of your skills and jobs - it's suck.
So, it was a some non-technical introduction ...
I'm reserving 4-5 hours per week for redleaf, and I want to introduce technologies will used for this project:
  • - httpd - redleafd (small and fast)
  • - scheme_modula (module for the redleaf that suppose to run scheme code as quick as it possible)
  • - web ui software written on scheme
  • - parsing/collecting server side daemons on python || scheme (it depends on my research with libs)
In this case I will release in near time redleaf 0.1 (beta version can be found here - http://prdownload.berlios.de/readleaf/redleaf-0.1beta.tar.gz ), that will supports basic http stuff only.
After those I'm planning to reorganize architecture and rewrite some code, to support dynamic modules and so on for flexibility, the next stage will be a set of modules. After this stage I will implement scheme_modula and starts to write web ui and server side daemons.
In this case I'm need to anybody who knows any of the following - or all of this stuff:
  • - C and UNIX IPC
  • - Data structures and memory management techniques
  • - Scheme
  • - any of - cvs/git/svn/arch/etc ... on really good level
  • - Python
  • - html/css and optionally javascript
  • - Gimp and some creative techniques for image/icons creating
Benefits you will get working on this project: you can become famous (maybe, who knows?), you can update your skills on programming and especially on scheme programming - on real practice, you will have a short and cool name for imap account - and invitation to the newly created service ... hmm like authors.
I'm looking for you - contact me via jabber - tirra at njs.netlab.cz

Thank you.

Wednesday, July 02, 2008

Research: new ideas to system development

Doing some research on operating systems design you can choose the kernel model and in this case you can expect that microkernel is more stable, powerful and flexible compairing with monolithic design, exokernels are too platform specific and more complicable for application level platforms (i.e. embedded systems with too limited functionality). But like a bonus you will got the new area of research in this area - choosing and developing an instruments for implementation.
On this area, in my opinion, are old and good instrument is a pure C language for microkernel, for low level. But in case of many reasons C development has a long time for something bigger than microkernel, for microkernel you can extend C with macros or write your own preproccessor to extend C (like my project extC). This is good and right, but for microkernel servers and user level is better to use something else, more powerful with paradigms and more easy to develop.
It's not C++, not only in case of my hate to pluses, there are no reason to use C++ in any kind of development, C++ contain many ugly stuff and it has an ugly design overally. There are ObjectiveC, but this language will not decide our wishes.
I'm looking to functional programming languages - this way is more powerfull, well-designed lisp-like language is really simple to implement, they all has a simple syntax - and learning didn't takes a long time - it's intended to be meta-level development.
With its powerful I'm thinking about crazy things - what about to design a several DSL that can be simply implemented on Lisp/Scheme/Haskell , for different types of microkernel servers.
In example, you can research for often used language features and constructions that required for implement a filesystem, or block device driver, or network device driver etc...
I'm thinking to go deeper in this area after MuiString will ran. I promise to make a deep research, implement expiremental DSLs for this purposes and test it for perfomance and other things.
Be updated, take a look to functional programming of your research - it's a wonderful world of new features and paradigms.