Here's the deal, I've been having some thoughts run through my head involving Thin Clients and developing a completely network based system on Debian. I'd like to get some other thoughts on ways I can accomplish this, as well as any experiences and recommendations people have.

Client
Pretty much I want a client to boot up completely over the network, either with a floppy or boot ROM on the network card, the only hardware the client has is memory, processor, video, and a NIC. No drives, sound, or fancy video. The client will load the kernel, then use a root FS via NFS (different per profile), and a specific user home directory based on the login username.

Servers
I want different profiles for clients, ie an accounting client will get accounting type programs and not engineering ones. Additionally I want the client profile to be updateable, such as using apt-get upgrade to keep with the lastest security patches nightly.

Debian
I'd like to use Debian for both the clients and the servers, as mentioned before for using APT, but also to keep the systems all using stable (hopefully sarge soon) to make sure they're 100% reliable, secure, and identical. I'd also like to develop an internal apt-repository of custom software and configurations per profile.

Making it work
Ideally this is how I'd like the process to go:
  • 1. Each department has a profile pointing to a different root FS, but the same kernel image.
    2. On login a user enters their authentication, and their home dir is loaded
    3. Software is run directly off the network, ie on copy of OpenOffice.org is on the server, but multiple clients can use it.


Benefits
  • 1. Centralized software storage location
    2. Nightly security updates for everyone
    3. Seemless software upgrading
    4. Centralized location and full backups of company data
    5. Fine-grained control of computing resources


Disadvantages
  • 1. Network limitations
    2. Unavailibity of some Win32 software
    3. Lack of "official" support


Why?
Mainly because I'm tired of supporting end users and the nuances of each of their different machines. Furthermore I'm becoming frustrated with physical disk mediums and their constant failures, resulting in constant per-client backups, disk checking/defragmentation, and performance issues. Security issues; using windows update per client or via a SUS, and virus protection per client or via the network also are becoming increasingly annoying.

I also believe this will make licensing issues less of a headache, using free/open software for one and programs that require licenses are stored on the server, making accounting for them easier and centralized.

I should also point out that I don't mean a "catch-all", different users have different requirements, hence the profiles. This only applies to people who use basic programs an services, spreadsheets, email, web work, word processing, etc. I am not interested in specific high-end tasks, such as graphic design or 3D modeling.

Please let me know of any thoughts you may have on this; ways to put such a system in place, examples, and any more limitations I am missing, thanks.[/b]