low-level development: Windows variants vs. Linux, embedded vs. device driver

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by YLK » Fri, 13 Sep 2002 15:15:42



I could use some good advice.

I am interested in acquiring some low-level development skills that
is relatively hassle-free as far as boards/hardware setup goes since
I am doing this at my own expense.

I would really appreciate some opinions regarding which
OS (Windows variants vs. Linux) would be a better platform to
start with and why?  And, embedded vs. device driver?

Someone suggested acquiring embedded Linux (RTLinux) skills but
I'm not sure that these skills are better to acquire over
- Linux device driver skills; or
- Windows variants device driver skills; or
- other?

I'm a newbie at low-level development so I hope I'm making sense.

Thank you for your attention.

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by Dan Partell » Fri, 13 Sep 2002 19:02:26


Get both.

Linux , or for that matter BSD 4.4 variants, are open source and will help
you gaining
a solid understanding of some OS design issues. System level in embeded
wrold is not
very different by system level outside it.

Writting device drivers for Windows is certainly rewarding , entertaining ,
and profitable.
Also , understanding NT based kernel from an academic point of view, is an
valuable
asset. If you have enough time and will to invest in self education, youll
be able to learn
more than one thing.


Quote:

> I could use some good advice.

> I am interested in acquiring some low-level development skills that
> is relatively hassle-free as far as boards/hardware setup goes since
> I am doing this at my own expense.

> I would really appreciate some opinions regarding which
> OS (Windows variants vs. Linux) would be a better platform to
> start with and why?  And, embedded vs. device driver?

> Someone suggested acquiring embedded Linux (RTLinux) skills but
> I'm not sure that these skills are better to acquire over
> - Linux device driver skills; or
> - Windows variants device driver skills; or
> - other?

> I'm a newbie at low-level development so I hope I'm making sense.

> Thank you for your attention.


 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by Daniel Versic » Fri, 13 Sep 2002 23:14:21



> I would really appreciate some opinions regarding which
> OS (Windows variants vs. Linux) would be a better platform to
> start with and why?  And, embedded vs. device driver?

> Someone suggested acquiring embedded Linux (RTLinux) skills but
> I'm not sure that these skills are better to acquire over
> - Linux device driver skills; or
> - Windows variants device driver skills; or
> - other?

I think all this things are pretty interesting. But for beginning I would
recommend writing a Linux device drivers on a standard architecture like
x86. Writing Linux drivers on other architectures like embedded systems
will not much differ from the experience you earn on e.g. x86. And in my
opinion the greatest advantage of Linux will be the good documentation.
You'll find a lot of books and documents about Linux device drivers
(Rubinis "Linux Device Drivers" can even be found online). Of course the
kernel itself is a great source of information.
RTLinux can be nice. But I am not sure if you really have a nice
application that needs hard realtime. Applications for simple drivers can
always be found.

Greetings, Daniel

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by James Antognin » Sat, 14 Sep 2002 02:55:12


Some things to consider:

1) Availability of source is a great advantage, one that may trump any
other feature of a competing OS. Having worked on both sides of source
availability, I speak from experience.

2) Books to learn are important. Evidently they exist for Linux, and I
know they exist for Windows (NT and its successors, that is).

3) Classes can be very, very useful. I know they exist for Windows; I
don't know about Linux. Of course classes often cost a signficant amount
of money.

4) Newsgroups to which experts contribute regularly are perhaps second
only to source-code availability in importance. I'm sure they exist for
Linux, and they obviously exist for Windows.

--
If replying by e-mail, please remove "nospam." from the address.

James Antognini

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by Dan Partell » Sat, 14 Sep 2002 08:34:35


2) Books to learn are important. Evidently they exist for Linux, and I

Quote:> know they exist for Windows

    With 2 or 3 obivious exceptions, books on NT+ device drivers and NT+
internals are
...jokes. So are most Linux books. Exception makes some books writen for 4.4
BSD and Solaris. Dont buy any books whithout consulting other ppl first, you
may feel frustrated afterwards. Most dont live up to the hype.


Quote:> Some things to consider:

> 1) Availability of source is a great advantage, one that may trump any
> other feature of a competing OS. Having worked on both sides of source
> availability, I speak from experience.

> 2) Books to learn are important. Evidently they exist for Linux, and I
> know they exist for Windows (NT and its successors, that is).

> 3) Classes can be very, very useful. I know they exist for Windows; I
> don't know about Linux. Of course classes often cost a signficant amount
> of money.

> 4) Newsgroups to which experts contribute regularly are perhaps second
> only to source-code availability in importance. I'm sure they exist for
> Linux, and they obviously exist for Windows.

> --
> If replying by e-mail, please remove "nospam." from the address.

> James Antognini

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by YLK » Sat, 14 Sep 2002 15:52:59


Thank you everyone for your advice.    :o)

Based on your input, I think I will definitely be installing
RedHat Linux soon.  I'm currently running Win98SE with
2 HDDs.  It would be nice to setup a multi-boot system with
Win98SE, NT, 2000 and Linux.  Any recommendations on
best order of OS installation and partitioning?  Or, should I just
buy a couple more HDDs and install one OS per HDD?  Then,
on bootup, select the HDD to boot from.

Also, what books (on Linux and NT+ device drivers/internals) are
highly recommended?

Please excuse any dumb questions.  Thanks!


> 2) Books to learn are important. Evidently they exist for Linux, and I
> > know they exist for Windows

>     With 2 or 3 obivious exceptions, books on NT+ device drivers and NT+
> internals are
> ...jokes. So are most Linux books. Exception makes some books writen for 4.4
> BSD and Solaris. Dont buy any books whithout consulting other ppl first, you
> may feel frustrated afterwards. Most dont live up to the hype.



> > Some things to consider:

> > 1) Availability of source is a great advantage, one that may trump any
> > other feature of a competing OS. Having worked on both sides of source
> > availability, I speak from experience.

> > 2) Books to learn are important. Evidently they exist for Linux, and I
> > know they exist for Windows (NT and its successors, that is).

> > 3) Classes can be very, very useful. I know they exist for Windows; I
> > don't know about Linux. Of course classes often cost a signficant amount
> > of money.

> > 4) Newsgroups to which experts contribute regularly are perhaps second
> > only to source-code availability in importance. I'm sure they exist for
> > Linux, and they obviously exist for Windows.

> > --
> > If replying by e-mail, please remove "nospam." from the address.

> > James Antognini

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by Joshua Jone » Sat, 14 Sep 2002 23:16:54



> Any recommendations on
> best order of OS installation and partitioning?  Or, should I just
> buy a couple more HDDs and install one OS per HDD?  Then,
> on bootup, select the HDD to boot from.

Based on this question, you seem to be new to Linux in general.  Is
this the case?  If so, you may want to get more familiar with the OS
before doing too much low-level development.  See below.

Quote:> Also, what books (on Linux and NT+ device drivers/internals) are
> highly recommended?

After getting comfortable with the OS, pick up "Understanding the Linux
Kernel" and "Linux Device Drivers", both O'Reilly books.  The former will
give you a good understanding of kernel internals (getting a little
outdated... O'Reilly, a new version?) and the latter will help you with
device drivers.

--
 Joshua Jones
 josh(at)homemail.com  |  jonesjos(at)us.ibm.com

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by Maxim S. Shatski » Sat, 14 Sep 2002 22:27:38


Quote:> Win98SE, NT, 2000 and Linux.  Any recommendations on
> best order of OS installation and partitioning?

Win98 first.
NT4 next.
w2k next.
Linux last. Do not install LILO to main boot record. Instead, copy
Linux's boot sector to a file, and add a line to w2k's BOOT.INI.

This works fine.

    Max

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by Ed Skinne » Sun, 15 Sep 2002 08:42:15


      Be sure you get the ***Second*** Edition of the "Linux Device
Drivers" (by Rubini and Corbet). Some stores still have the earlier
edition sitting around but you definately want the newer version. It
will have a black stripe across the upper-right corner on the front
cover and say "2nd Edition" therein. (Also, Rubini authored the first
edition alone. Corbet's name appears on the second edition. That's the
one to get.)
      Personally I don't particularly care for one book over another on
the kernel itself. None of them really stands out for me. I've got half
a dozen and, by the averaging of what they all contain, I think I've
gotten a fairly good understand of internals.
      If a Unix shell (and other parts of the programming environment)
are new to you, I highly recommend Beginning Linux Programming by Stones
and Matthew. I have my several year old copy open on my desk right now
and open to the pages on CVS. Last week I was re-reading some shell
programming stuff and, a month or so before that, I needed a refresher
on some aspects of make. For general coverage, this book gets my #1 rating.
      And you couldn't have more fun with a book other than Kernel
Projects for Linux by Gary Nutt. I've borrowed I don't know how many
kernel-level ideas from him. Great stuff!
      I ran dual-boot (Windows and Linux) for about two years. Toward
the end of that period, I realized I was running Linux the great
majority of the time and was going back to Windows for just a couple of
programs. I set a mental switch and purposefully set about finding Linux
replacements. It took a while and there were a couple of work-habits
that had to be changed but, about six months ago, I cut the cord. It's
truly a wonderful feeling when you see a Windows virus sitting in your
mailbox with absolutely nothing it can do except wait for the squish!
Wonderful!


>>Any recommendations on
>>best order of OS installation and partitioning?  Or, should I just
>>buy a couple more HDDs and install one OS per HDD?  Then,
>>on bootup, select the HDD to boot from.

> Based on this question, you seem to be new to Linux in general.  Is
> this the case?  If so, you may want to get more familiar with the OS
> before doing too much low-level development.  See below.

>>Also, what books (on Linux and NT+ device drivers/internals) are
>>highly recommended?

> After getting comfortable with the OS, pick up "Understanding the Linux
> Kernel" and "Linux Device Drivers", both O'Reilly books.  The former will
> give you a good understanding of kernel internals (getting a little
> outdated... O'Reilly, a new version?) and the latter will help you with
> device drivers.

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by YLK » Sun, 15 Sep 2002 15:15:37


Sounds like "Linux Device Drivers, 2nd Edition" by
Alessandro Rubini, Jonathan Corbet will be a good book to
start with for Linux device driver development.

Joshua, I am familiar with Unix (thus, to a certain extent, Linux) as
a user, not as an administrator.  When I do high-level software
development, I actually prefer to use the "vi" text editor under
Unix (whenever I can) rather than VC++ under Windows.
I find all the Unix tools (like, grep, find and many more) to be so
useful for software development.  I also like to view as much code in
one window as possible.  I'd love to have my own Unix box.
But, the administration part of it is new territory for me in addition to
low-level software development.

I've done some searching/homework on multi-boot systems with
Win98SE, NT4, W2K and Linux (RedHat "for now" rather than
BSD 4.4 because my "other" mentor, the one who will be supplying me with
the target system, is using it).  But, I'm being extra cautious since
I do not want to mess up too badly.  Currently, my system has
Win98SE with all sorts of applications all installed on
"one" FAT32 primary partition (namely, WIN98_SE below).
Sounds like I'll have to reinstall all the applications to
a separate partition, right?  If so, YUCK!

My Win98SE system is currently partitioned as follows:

DISK #1:    76316 MB
    C:    WIN98_SE    FAT32    4,272.1 MB / 5,051.7 MB (used)      ACTIVE PRIMARY
    D:    DATA            FAT32    9,323.8 MB / 39,660.4 MB (used)    LOGICAL
DISK #2:    38162 MB

What's the ideal partition setup for a multi-boot system with
Win98SE, NT4, W2K and Linux?

Partition Types:    FAT, FAT32, NTFS, Linux Ext2, Linux Swap,
                           NetWare, HPFS, Extended


>       Be sure you get the ***Second*** Edition of the "Linux Device
> Drivers" (by Rubini and Corbet). Some stores still have the earlier
> edition sitting around but you definately want the newer version. It
> will have a black stripe across the upper-right corner on the front
> cover and say "2nd Edition" therein. (Also, Rubini authored the first
> edition alone. Corbet's name appears on the second edition. That's the
> one to get.)
>       Personally I don't particularly care for one book over another on
> the kernel itself. None of them really stands out for me. I've got half
> a dozen and, by the averaging of what they all contain, I think I've
> gotten a fairly good understand of internals.
>       If a Unix shell (and other parts of the programming environment)
> are new to you, I highly recommend Beginning Linux Programming by Stones
> and Matthew. I have my several year old copy open on my desk right now
> and open to the pages on CVS. Last week I was re-reading some shell
> programming stuff and, a month or so before that, I needed a refresher
> on some aspects of make. For general coverage, this book gets my #1 rating.
>       And you couldn't have more fun with a book other than Kernel
> Projects for Linux by Gary Nutt. I've borrowed I don't know how many
> kernel-level ideas from him. Great stuff!
>       I ran dual-boot (Windows and Linux) for about two years. Toward
> the end of that period, I realized I was running Linux the great
> majority of the time and was going back to Windows for just a couple of
> programs. I set a mental switch and purposefully set about finding Linux
> replacements. It took a while and there were a couple of work-habits
> that had to be changed but, about six months ago, I cut the cord. It's
> truly a wonderful feeling when you see a Windows virus sitting in your
> mailbox with absolutely nothing it can do except wait for the squish!
> Wonderful!



> >>Any recommendations on
> >>best order of OS installation and partitioning?  Or, should I just
> >>buy a couple more HDDs and install one OS per HDD?  Then,
> >>on bootup, select the HDD to boot from.

> > Based on this question, you seem to be new to Linux in general.  Is
> > this the case?  If so, you may want to get more familiar with the OS
> > before doing too much low-level development.  See below.

> >>Also, what books (on Linux and NT+ device drivers/internals) are
> >>highly recommended?

> > After getting comfortable with the OS, pick up "Understanding the Linux
> > Kernel" and "Linux Device Drivers", both O'Reilly books.  The former will
> > give you a good understanding of kernel internals (getting a little
> > outdated... O'Reilly, a new version?) and the latter will help you with
> > device drivers.

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by Lee Sau Da » Tue, 17 Sep 2002 01:41:38


    YLK> Thank you everyone for your advice.  :o)

    YLK> Based on your input, I think I will definitely be installing
    YLK> RedHat Linux soon.  I'm currently running Win98SE with 2
    YLK> HDDs.  It would be nice to setup a multi-boot system with
    YLK> Win98SE, NT, 2000 and Linux.  Any recommendations on best
    YLK> order of OS installation and partitioning?  Or, should I just
    YLK> buy a couple more HDDs and install one OS per HDD?  Then, on
    YLK> bootup, select the HDD to boot from.

If you're completely new to Linux  and you can afford a new HDD driver
(and you still have an IDE/SCSI  slot for it), then I think you should
begin by  installing Linux on a  new HDD.  Having Linux  on a separate
HDD can make it  easier to start with.  And you can  easily go back if
you don't like  it.  And you don't have to go  through the troubles of
repartitioning the existing disks and shrinking existing partitions.

If you're a technical person and you think you'd be very interested in
configuring and tuning Linux, then be prepared that this initial setup
won't be  optimal.  So,  don't spend too  much time on  configuring or
customizations.  Rather, learn the new environment and pick things up.
Sooner or later,  you'll know that your initial  setup is not optimal,
and  would  plan a  complete  reinstall  to  make it  more  efficient.
(e.g. having the swap  partition(s) on separate disks, having separate
partitions for  /home, /var,  /tmp, /usr, /).   You may  even consider
another distribution  (e.g.  Debian)  instead!  You'll learn  these as
you get more familiar with the system.  Before that, you cannot easily
draft this optimal plan.  That  requires experience, and has to depend
on  your needs  and h/w  config  (e.g.  how  many disks?   capacities?
speeds?).  The  longer you're  exposed to Linux,  the better  idea you
have  about such  plans.  And  remember the  Unix  design: application
configs  are in ~/.*  files/directories and  /etc/* files/directories.
So, you know what to backup  and restore when you want the old configs
after a re-install!  :)

--


Home page: http://www.informatik.uni-freiburg.de/~danlee

 
 
 

low-level development: Windows variants vs. Linux, embedded vs. device driver

Post by Bob Robillar » Sun, 22 Sep 2002 05:01:56



> If you're completely new to Linux  and you can afford a new HDD driver
> (and you still have an IDE/SCSI  slot for it), then I think you should
> begin by  installing Linux on a  new HDD.  Having Linux  on a separate
> HDD can make it  easier to start with.  And you can  easily go back if
> you don't like  it.  And you don't have to go  through the troubles of
> repartitioning the existing disks and shrinking existing partitions.

I second that idea.

Duke

 
 
 

1. Linux vs OS2 vs NT vs Win95 vs Multics vs PDP11 vs BSD geeks

        Every machine and operating system has got its useful
purpose...

        I see no point in argueing with people which OS is better, and
which is worse, and what will survive and what wont...

        The bottom line is obviously the best OS is the one that make
the end user most productive.    Ive used quite a variety of software
from intel, ibm, MS, sun, GNU, DEC/compaq, etc,   and everything OS
has got its UPz and DOWnz, so depending on what you want to do with it
yer machine, probably determines what OS you run.

        So lets cut to the chase -  OS bashing is a waste of time,
and most of the time I'd say the person putting it down just hasn't
seen that particular OS's potential,  or should I say speciality....

      Hell,  Plan 9 has even got some interesting features.. <snicker>

       And all PC users know,  that no matter what use on a day to day
basis on the PC, that one day you will need to boot good ole ancient
DOS to do something...

2. view Microsoft Word document under unix

3. Linux Advocacy - Linux vs Windows 2000 vs Be vs OS/2

4. desktop region reverse color under some Gnome app.

5. DOS vs. Windows vs. Mac vs. Unix vs. NS

6. PLEASE EXPLANE: inetd, tcp, rpc server

7. Desktop vs Window Manager vs X11 vs OS

8. What about a new numbering for Linux?

9. Linux V.S. Windows NT V.S. Windows 95

10. low-level development

11. Real-Time task vs. device driver vs. sched_setscheduler?

12. Help - questions on Linux SCSI low-level driver