Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Wed 16 Apr 2014, 21:21
All times are UTC - 4
 Forum index » Advanced Topics » Cutting edge
Puppy In-House Development
Moderators: Flash, Ian, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 2 of 16 [229 Posts]   Goto page: Previous 1, 2, 3, 4, ..., 14, 15, 16 Next
Author Message
goingnuts

Joined: 07 Dec 2008
Posts: 777

PostPosted: Mon 14 Oct 2013, 12:52    Post subject:  

Link to present tiny-Xserver-0.03 source
Back to top
View user's profile Send private message Visit poster's website 
smokey01


Joined: 30 Dec 2006
Posts: 1792
Location: South Australia

PostPosted: Mon 14 Oct 2013, 16:44    Post subject:  

If small is the goal, have you seen this:
http://www.menuetos.net/

A full X operating system with lots of apps that will fit on a floppy. It's pretty cool and seems to be actively developed, 32 & 64-bit.

Download:
http://www.menuetos.org/M32.htm
http://www.menuetos.be/download.php?CurrentMenuetOS

CatDude made a bootable ISO at a huge 1492k.

_________________
Puppy Software <-> Distros <-> Puppy Linux Tips
Back to top
View user's profile Send private message Visit poster's website 
01micko


Joined: 11 Oct 2008
Posts: 7547
Location: qld

PostPosted: Mon 14 Oct 2013, 21:27    Post subject:  

Smokey.. did you know BK was a part of that project?

http://www.goosee.com/explorer/index.html

_________________
Woof Mailing List | keep the faith Cool |
Back to top
View user's profile Send private message Visit poster's website 
Ibidem

Joined: 25 May 2010
Posts: 429
Location: State of Jefferson

PostPosted: Mon 14 Oct 2013, 23:58    Post subject:  

jamesbond wrote:
Iguleder wrote:
jamesbond - trying to build a small X Wink

You're right. I thought Xfbdev is small because it is one of (remaining few) the kdrive servers, but when counting the depedency it is not that small either. It is *still smaller* than the full Xorg, though.

On another note, amigo, technosaurus, goingnuts and ibidem have combining forces to create a working tiny X server - they have it going for x86 but I didn't follow enough to know whether they have have the generic framebuffer version which works cross-platform.

I didn't do a large amount of work--mainly got it working with musl and backported some security fixes (speaking of which, there's another one to patch...).
But yes, Xfbdev does build and run.

When compiled against tinyxlib, I will say that colors don't work quite right--hex #RGB colors are not recognized, though I know goingnuts was doing something about that.
Back to top
View user's profile Send private message 
smokey01


Joined: 30 Dec 2006
Posts: 1792
Location: South Australia

PostPosted: Tue 15 Oct 2013, 04:52    Post subject:  

Sure did. I stumbled across it many years ago but didn't realise it was still being developed.

01micko wrote:
Smokey.. did you know BK was a part of that project?

http://www.goosee.com/explorer/index.html

_________________
Puppy Software <-> Distros <-> Puppy Linux Tips
Back to top
View user's profile Send private message Visit poster's website 
amigo

Joined: 02 Apr 2007
Posts: 2166

PostPosted: Tue 15 Oct 2013, 09:18    Post subject:  

Hmm, I don't see anything on the menuet site or in their docs that would indicate that BK ever had anything to do with the project. Perhaps he simply created some examples and docs in English:
Quote:
I have a webpage dedicated to MenuetOS:

MenuetOS webpage: http://www.goosee.com/menuetos/
perhaps should read:
Code:
I have a webpage dedicated to MenuetOS:

My MenuetOS webpage: http://www.goosee.com/menuetos/
Back to top
View user's profile Send private message 
Ibidem

Joined: 25 May 2010
Posts: 429
Location: State of Jefferson

PostPosted: Wed 16 Oct 2013, 02:11    Post subject:  

Also, I noticed in the README for lazy-utils something about "being a BSD-licensed replacement for toybox and busybox"...
Busybox I can see; it's GPL, has tons of features, but the code is written for size and not clarity.
OTOH, I'm wondering why a replacement for toybox: it's clear C99, kept to a set of programs with a clear rationale, and the license is more permissive than 2-clause BSD ("0-clause BSD", which is barely outside PD).
Now, some thoughts as to minimalism:
-ls -l, and so on, are very important tools.
-cat is by design intended to open multiple files (the name comes from "concatenate", and the original version shown in "The C Language" by K&R handles multiple files).
-A loop is very simple in C, indeed simpler than in shell:
Code:

 for(int i = 1; i <= argc; i++) {
   //loop body: use argv[i]
 }

-A very large part of the functionality you're removing relative to the standards and toybox/busybox is essential to running build scripts.
-You're not using getopt!?
-mount sure is deeply indented: using
Code:
if (0 == strcmp("loop",token)) {
        *is_loop = true;
} else if (0 == strcmp("ro",token)) {
  //continue in like vein

would be a lot nicer to read.
Back to top
View user's profile Send private message 
amigo

Joined: 02 Apr 2007
Posts: 2166

PostPosted: Wed 16 Oct 2013, 03:44    Post subject:  

Ibidem, you bring up a *big* point or two. First, why always re-invent things -a big part of the success of *nix OS's is owed to their re-use of existing tools. There are always folks (usually youngsters) who come along, see a bit of existing code and say "Oh I can do that much better". They then proceed to gut the functionality, change the accepted/expected syntax, etc, until the resulting program in no way constitutes a replacement for the original tool.

Actually, the whole idea of using *any* lite replacements -like busybox, toybox, cruchbox, etc, quickly becomes a handicap. Puppy handle this in the worst way possible. Instead of simply using the existing tools which provide the expected behaviour/features, bot the FULL and busybox versions are shipped -with an intervening shell-script in place of the real tools, which then decides which of the two versions to use. Why not simply use the right tool to start with -with the normal syntax like everywhere else?

We currently have a couple of small groups which are re-inventing *lots* of wheels at the same time. The trouble with that is that by the time you have enough re-implementations to make any difference (vis-a-vis size, license, etc), the whole cycle must be re-started because so much time has been lost.

Building a distro is a *lot* of work and all efforts should be made to re-write as little as possible. There are a couple of areas where individual distros do traditionally write their own tools -principally regarding the package format and the tools to create and manage those packages, and the boot (init script) process. Building a LiveCD distro encroaches heavily on these areas -but still when properly implemented, the user experience should be nearly identical to that of running a normally installed distro.

Unfortunately, a LiveCD is much like a 'software appliance'. Since there is a defined list of software included, it is impossible that all users will be happy with that selection. So, particular attention should be given to the concepts of modularity and extendibility. If not, then you create a situation like what exists with puppy, where every Tom and Harry is creating a derivative, spinoff, remix, remaster, etc. And these derivatives all deviate from the parent and others in incompatible ways -because the original product is not created as a modular, extendible base. All these extras which are enabled by the derivatives *could* be done in such a way that they would all work together (or provide workable alternatives) -if the concepts of modularity had been addressed and the proper infrastructure was in place.
Back to top
View user's profile Send private message 
Iguleder


Joined: 11 Aug 2009
Posts: 1775
Location: Israel, somewhere in the beautiful desert

PostPosted: Wed 16 Oct 2013, 10:52    Post subject:  

I'm unaware of any BSD-licensed busybox-like tool with good code (i. e toybuf in toybox is ugly as hell) and true minimalism. lazy-utils does not adhere to any standard, so it misses some features beyond its scope and it's fine.
_________________
My homepage
Back to top
View user's profile Send private message Visit poster's website MSN Messenger 
ICQ Number 
amigo

Joined: 02 Apr 2007
Posts: 2166

PostPosted: Wed 16 Oct 2013, 11:49    Post subject:  

I knew I'd ruffle some feathers with such comments... I simply find most implementations 'minimalism' too limiting for any sort of general use. If you want to build a really tiny system with a very defined purpose, then it can make sense to re-implement some or all of the functions of exisiting tools for the purpose. But, for any system which proposes to be of general use (by extending it, for example), the practicality of re-writing many things becomes a major burden. And, unless the new implementations implement all of the options and syntax of the normal tools, the end result will still be less than optimal. Working around the removed functionality then becomes an extra burden.

On the other hand, re-implementing things is a great education and licensing issues do provide a reasonable reason for doing so. It's just that a single person is never gonna get very far with the project as there are many hundreds of programs which are expected to be present on any sort of general-purpose system.

I recently became aware of a project called 'defora' -the fellow has done a heroic job of re-writing lots of things -any one of which could be mighty useful -especially if given the needed attention. But how can you perfect a single program while re-writing a dozen others? And how usable is the product for others? The defora fellow wrote a nice, fast browser using libgtkhtml -but most internet sites would make it crash because of the javascript. It does make a nice browser for local use, but it would need at least a couple of people devoted to improving it.

I'm just trying to stimulate some thought, so I hope nobody feels offended...
Back to top
View user's profile Send private message 
Iguleder


Joined: 11 Aug 2009
Posts: 1775
Location: Israel, somewhere in the beautiful desert

PostPosted: Wed 16 Oct 2013, 14:22    Post subject:  

lazy-utils is not intended to provide the perfect user interface or full compatibility, so extra features are nothing but a waste. of space. You get bloat when you seek more and more features.
_________________
My homepage
Back to top
View user's profile Send private message Visit poster's website MSN Messenger 
ICQ Number 
Ibidem

Joined: 25 May 2010
Posts: 429
Location: State of Jefferson

PostPosted: Thu 17 Oct 2013, 01:47    Post subject:  

Iguleder wrote:
I'm unaware of any BSD-licensed busybox-like tool with good code (i. e toybuf in toybox is ugly as hell) and true minimalism. lazy-utils does not adhere to any standard, so it misses some features beyond its scope and it's fine.


So what is the scope? It clearly isn't going to be self-hosting, since the kernel alone needs over half a dozen flags for grep...

I'm not in agreement with you about the use of a global array of chars as a scratch buffer or how often goto should be used (note: goto is acceptable, used judiciously-the question is when); but beauty is in the eye of the beholder.
Back to top
View user's profile Send private message 
Iguleder


Joined: 11 Aug 2009
Posts: 1775
Location: Israel, somewhere in the beautiful desert

PostPosted: Thu 17 Oct 2013, 06:15    Post subject:  

The scope is a cross-compiled and small distro, not a self-hosting one.
_________________
My homepage
Back to top
View user's profile Send private message Visit poster's website MSN Messenger 
ICQ Number 
Ibidem

Joined: 25 May 2010
Posts: 429
Location: State of Jefferson

PostPosted: Sat 19 Oct 2013, 13:47    Post subject:  

goingnuts wrote:
Link to present tiny-Xserver-0.03 source

You will probably want this patch (I'm posting it in git format):
Code:
commit 9cb2af3b3e39a1e25a626427a273a6801c0a163d
Author: Isaac Dunham <ibid.ag@gmail.com>
Date:   Wed Oct 16 23:30:40 2013 -0700

    Backport CVE-2013-4396 fix.

diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index 8ec4e0f..4367801 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -1301,6 +1301,7 @@ doPolyText(client, c)
                    int len;
                    GC *pGC;
                    PTclosurePtr new_closure;
+                   PTclosurePtr old_closure;
 
     /*  We're putting the client to sleep.  We need to do a few things
        to ensure successful and atomic-appearing execution of the
@@ -1325,6 +1326,7 @@ doPolyText(client, c)
                        err = BadAlloc;
                        goto bail;
                    }
+                   old_closure = c;
                    *new_closure = *c;
                    c = new_closure;
 
@@ -1333,6 +1335,7 @@ doPolyText(client, c)
                    if (!c->data)
                    {
                        xfree(c);
+                       c = old_closure;
                        err = BadAlloc;
                        goto bail;
                    }
@@ -1347,6 +1350,7 @@ doPolyText(client, c)
                    {
                        xfree(c->data);
                        xfree(c);
+                       c = old_closure;
                        err = BadAlloc;
                        goto bail;
                    }
@@ -1363,6 +1367,7 @@ doPolyText(client, c)
                        FreeScratchGC(pGC);
                        xfree(c->data);
                        xfree(c);
+                       c = old_closure;
                        err = BadAlloc;
                        goto bail;
                    }
Back to top
View user's profile Send private message 
goingnuts

Joined: 07 Dec 2008
Posts: 777

PostPosted: Wed 23 Oct 2013, 14:25    Post subject:  

@Ibidem: Thanks - I will add them.
Back to top
View user's profile Send private message Visit poster's website 
Display posts from previous:   Sort by:   
Page 2 of 16 [229 Posts]   Goto page: Previous 1, 2, 3, 4, ..., 14, 15, 16 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Cutting edge
Jump to:  

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 vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0928s ][ Queries: 13 (0.0113s) ][ GZIP on ]