Search Members Help

» Welcome Guest
[ Log In :: Register ]

 

[ Track This Topic :: Email This Topic :: Print this topic ]

reply to topic new topic new poll
Topic: isolinux/memdisk, suggested feature< Next Oldest | Next Newest >
 Post Number: 1
mionica Search for posts by this member.

Avatar



Group: Members
Posts: 49
Joined: Apr. 2005
PostIcon Posted on: Sep. 11 2005,20:14  Skip to the next post in this topic. Ignore posts   QUOTE

In attention of: xoben

Sir,

   I was wondering if it woudn't be possible to include a isolinux / memdisk pair of commands in EasyBoot.

   For a while, I have been using patched CDShell copies in order to achieve desired functionality, such as running floppy images using memdisk (much faster than your approach), and running live linux distros (INSERT, Paragon etc) from the same CD, while at the same time having distinct isolinux.cfg files.
   Then, it occured to me that, if the author of CDShell got the permission to embody into his product parts of the SysLinux code, seemingly there would be no reason for you not to do the same.

   I have found these two to be particularly useful for several reasons; outstanding are:
   - memdisk: in-RAM image loading leads to extremely fast boots;
   - memdisk: compressed images (.igz's) also favor loading speed a great deal, especially for small tools such as Gujin, MemTest86+, PCISniff etc
   - isolinux: this is currently the best way of booting linux kernels off the CDs (well, a DOS image containing a CDROM driver & LoadLin, and a kernel & initial ramdisk on the CDROM would also work - but slower and lacking elegance)
   You may find at least the latter item of importance, since relevant tools start moving towards Linux (for example, Paragon Partition Manager 7 clearly beats Symantec Partition Magic 8.05), and though some may have DOS versions, these lack fuctionality because of DOS architecture (for example: Paragon Drive Backup 7 Recovery CD, the Linux version, has both NTFS R/W access and CD burning support! all with a visual interface of course)

   My suggested approach would be adding three commands to EasyBoot:
       memdisk <image>
       isolincfg <path to cfg file>
       isolinux [command]
   These would be consistent with your current approach; I personally would enjoy more having run -inram <image> and isolinux [-c <cfg file>] [command], but parameter parsing seems something you try avoid.

   I assume these would be great improvements for EB version 6 ;)

   Regards,
   Mircea.
Offline
Top of Page Profile Contact Info 
 Post Number: 2
mionica Search for posts by this member.

Avatar



Group: Members
Posts: 49
Joined: Apr. 2005
PostIcon Posted on: Nov. 22 2005,19:59 Skip to the previous post in this topic. Skip to the next post in this topic. Ignore posts   QUOTE

Sir,

I would greatly appreciate an answer, including - but not limited to ;) - a  negative one.

Also, if this mattered, I am quite skilled an assembly language programmer (x86 realmode, at least). I should be delighted to offer my assistance, if it would help. Actually, the main reason for me not writing my own graphical multi-boot system, is that I couldn't possibly find the required time for a project of this scale. However, I would do my best to help the development of EB, as this is a tool I'm personally interested in.

If I managed to pique your interest, please contact me by E-mail.
Also, if you fail to respond, I'll assume I'm simply bugging you. Since my purpose is not even near that objective, I will simply cease posting requests and suggestion in your forums.

Regards,
Mircea.
Offline
Top of Page Profile Contact Info 
 Post Number: 3
xoben Search for posts by this member.

Avatar



Group: Super Administrators
Posts: 2200
Joined: Nov. 2004
PostIcon Posted on: Nov. 22 2005,21:17 Skip to the previous post in this topic. Skip to the next post in this topic. Ignore posts   QUOTE

Thank you mionica.

As a shareware product, EasyBoot cannot include code of ISOLINUX/MEMDISK.
Offline
Top of Page Profile Contact Info 
 Post Number: 4
mionica Search for posts by this member.

Avatar



Group: Members
Posts: 49
Joined: Apr. 2005
PostIcon Posted on: Nov. 23 2005,22:50 Skip to the previous post in this topic. Skip to the next post in this topic. Ignore posts   QUOTE

Sir,

---

Summary

I have found a perfectly legal way of attaining the desired functionality, despite the fact that SYSLINUX is indeed licensed under GPL2.

---

Abstract

Though GPL wouldn't allow you to use parts of the SYSLINUX code in your shareware product, your software can still - perfectly legal - use the unmodified binary snapshots of isolinux and/or memdisk, to attain the aforementioned level of functionality.

First of all, EB would suffer because of GPL only if code from the SYSLINUX project would be embedded into EB. It is perfectly legal to write code (as a part of EB) which makes use of the unmodified SYSLINUX release files; this is possible because usage of SYSLINUX can in no way be restricted to human users: any user, including another computer program, is free to use it.

Therefore, in order to add isolinux/memdisk functionality to EB, you merely need to write the code which loads memdisk (or isolinux), passes them appropriate parameters, and then runs them.

Moreover, since this would not be an essential component of EB, you would not provide the SYSLINUX package with your product; instead you would deliver instructions to your users, telling them where from to download it and which files from the package would be required (to be copied to the boot folder).

The only tricky part would be implementing the possibility of changing the configuration file name (which is hardcoded in isolinux.bin). After studying GPL2 for several hours, I realized that GPL2 explicitely forbidden only the distribution of modified code, or of code based on its source files; one could easily change and use changed code, if it were not distributed in any way.

Therefore, GPL2 would not forbid EB from patching the code of isolinux.bin in memory, after loading; it would only forbid that the modified copy be actually stored on (any) physical media.

As such, the following approaches are completely legal, as per GPL2, and could be used:
* isolinux, command-driven: this would be the easier possible implementation: you'd have a command (isolinux <command line>) which would fill the keyboard buffer with the command line, add a 0x0D, then perform bootinfotable;run isolinux.bin
* isolinux, config file switcher: this would be the second easiest implementation: you'd have a command (isolincfg <file>) which would create the boot info table, load isolinux.bin, patch it in memory so that it would use <file> instead of isolinux.cfg, then run it.
* memdisk only: since this follows exactly the loading mechanism of the Linux kernel, which is not proprietary technology, you could easily write a linux kernel loader similar with the one isolinux uses, only far simpler; because you already have the ISO9660 access code, one such loader (aimed at loading memdisk only) is not to take over 150 lines of ASM code.

---

Notes

I am not a software lawyer; however, if you're interested, you might want to check my oppinions against one such person's. I have triple-thought every conclusion, and used both my common sense and my linguistic finesse; remember, law only enforces that which it states, not that which it means.

Also, an economic aspect: though it is quite clear to me that not many people would benefit such major improvements in EasyBoot, it is also apparent that the development of EasyBoot is, at present, stalled, which may eventually lead to a loss of interest in it, over time. I believe that one such improvement, though it would hit the market only after a while, would be most benefical to the EB product in itself, at least as a marketing move.

--

Again, please forgive my lenghty post. I felt however that this subject deserved a great deal of attention, and treated it accordingly.

Finally, I would be delighted to hear from you. I hope you'll be using your best judgement in this matter, and, whatever the conclusion, I would be really interested in hearing it.

Regards,
Mircea.
Offline
Top of Page Profile Contact Info 
 Post Number: 5
xoben Search for posts by this member.

Avatar



Group: Super Administrators
Posts: 2200
Joined: Nov. 2004
PostIcon Posted on: Nov. 25 2005,07:49 Skip to the previous post in this topic.  Ignore posts   QUOTE

Quote
As such, the following approaches are completely legal, as per GPL2, and could be used:
* isolinux, command-driven: this would be the easier possible implementation: you'd have a command (isolinux <command line>) which would fill the keyboard buffer with the command line, add a 0x0D, then perform bootinfotable;run isolinux.bin
* isolinux, config file switcher: this would be the second easiest implementation: you'd have a command (isolincfg <file>) which would create the boot info table, load isolinux.bin, patch it in memory so that it would use <file> instead of isolinux.cfg, then run it.
* memdisk only: since this follows exactly the loading mechanism of the Linux kernel, which is not proprietary technology, you could easily write a linux kernel loader similar with the one isolinux uses, only far simpler; because you already have the ISO9660 access code, one such loader (aimed at loading memdisk only) is not to take over 150 lines of ASM code.

Yes, it is legal to load external isolinux/memdisk modules.

PS: At present, you can use memdisk via cdshell ( http://forum.ezbsystems.net/cgi-bin/ikonboard.cgi?act=ST;f=1;t=349 ).
Offline
Top of Page Profile Contact Info 
4 replies since Sep. 11 2005,20:14 < Next Oldest | Next Newest >

[ Track This Topic :: Email This Topic :: Print this topic ]


 
reply to topic new topic new poll

» Quick Reply isolinux/memdisk
iB Code Buttons
You are posting as:

Do you wish to enable your signature for this post?
Do you wish to enable emoticons for this post?
Track this topic
View All Emoticons
View iB Code