Ask Slashdot: If You Could Assemble a "FrankenOS" What Parts Would You Use?
rnws writes: While commenting about log-structured file systems in relation to flash SSDs, I referenced Digital's Spiralog [pdf], released for OpenVMS in 1996. This got me thinking about how VMS to this day has some of, if not the best storage clustering (still) in use today. Many operating systems have come and gone over the years, particularly from the minicomputer era, and each usually had something unique it did really well. If you could stitch together your ideal OS, then which "body parts" would you use from today and reanimate from the past? I'd probably start with VMS's storage system, MPE's print handling, OS/2's Workplace Shell, AS/400's hardware abstraction and GNU's Bash shell. What would you choose?
What are these parts I keep hearing about? I use systemd.
Revive BEos and let it work with win, nix, mac and android files out of the box.
I'll freely admit that I was too much of a newbie to really appreciate Multics during the precious year or two I had access to it, but the single abstraction for memory and files seemed like a great approach...
Windows kernel, Linux UI.
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
I always wished that someone would make a smit like AIX control panel menu system for the Linux command line. If you couldn't remember the exact syntax of a command, it often came in handy for quickly getting the task done (without having to Google command examples) and then get an example of the syntax for next time.
and all new combinations are "Franken-____". how about a Franken-gate?
Maybe some people do not appreciate it, but I think that having SOM (System Object Model) and WorkplaceShell (built over SOM) gave some functionality that was never exploited properly. So, building a Frankenstein I will put over the GUI, SOM (maybe the open NOM and somFree) and the Desktop elements will be built over it. (like Workplace Shell). Check out this OS/2 reference graphic: http://www.edm2.com/index.php/...
The parts that let me play games.
Disregard everything else.
I would love for a lightweight OS that only has the dependance for gaming components like DirectX, OpenGL, etc.. While at the same time being x86/x64 compliant so I can install the applications I want on it.
Windows as it is, is so filled up with junk that it could do with getting the fat trimmed out.
So how would you do away with the operating system and still enable people to 'get something done'?
Custom OS is not about what is in it but all about what is left out. Custom OS for appliances that only has in it what is actually necessary for that appliance, maybe just maybe incorporate application into the OS rather than a separate post boot load.
I think future trend will be a shift from more flexible universal operating systems to more modular, take every out that is not necessary for this particular appliance operating system, this to simplify security and even application level features become modules added into the operating system, so one quick boot to full functionality. So a much more modular operating system.
Chaos - everything, everywhere, everywhen
I think Raskin was talking about one of his projects.
Swift card Canon Cat
You just start typing and the computer figures out what your wanting to do.
opens the word processor, spreadsheet, etc
This is my opinion based on what little I know and understand of the rumors and lies Thanks, Randal
Right. The software handling such input would be the OS, or at least its shell. We had that already too, it was called 'Active Desktop' and it sucked horribly. Today, they call it 'semantic desktop' and it still sucks. For whatever reason, MS, apple, google, and others keep trying to bring it back, and make it stick where it doesn't belong.
I'd start with a Linux version where I figure there are no known major security holes.
I'd add the ability to run Windows binaries in emulators, but they can't access other programs than themselves. If that was a problem, add a phantom disk image so it could see other files that you place in the phantom disk image. Imagine each Windows emulated program saw their own personal c:/ , and it and you can populate it with files.
I'd make sure nothing outside the OS can run in the background process, unless a security approval by the user, and an inactive window can't can't read keystrokes.
If you wanted a program to start up on bootup, you'd need to boot to a special safe mode to allow it. And this is where drivers would be installed too. Drivers would be restricted to their own filesystem and can't write over other drivers.
Allow it to run a browser and based apps too, probably in the emulator Windows.
I figure if the software you download can't get out of the Windows emulator or its own personal filesystem, it can't mess with your OS or the rest of your filesystem. If it can't record your keystrokes unless you have the window actively open, a keylogger can't get you either. The problem is that we probably don't have perfect Windows emulation. Another problem is you have to be able to trust your drivers or that is a possible vector to an attack.
As long as I can use IBM's JCL: https://en.wikipedia.org/wiki/... to run my jobs, I know I can be truly productive.
FreeBSD kernel, Solaris networking/clustering capabilities, and a sort-of Windows UI (Imagine Windows 7, not the metro interface)
something to be said for that, but I think most people would see running one program at a time as getting in the way of productivity. Personally, I do miss the simplicity of those days.
Plan 9 works just fine.
Currently, what I'd really like is something that's mostly a typical GNU/Linux system, with OS X's GUI and reliable support for Windows and Mac applications.
The problem is that we probably don't have perfect Windows emulation.
Of course we do; the emulator just emulates PC hardware, and Windows runs within that environment. Did you mean that we don't have a perfect open implementation of every Windows API?
It is pitch black. You are likely to be eaten by a grue.
Can you explain how a keylogger in Windows gets access to user input in another application without a security approval by the user when it was installed?
Hint: It needs to modify kernel structures on every reboot or install a driver to do so.
Sorry, your post has been blocked by a HOSTS file.
DCL (the VMS CLI) could also do with a major rework and enhancements.
True, but there are elements of DCL that are worth bringing forward as well - particularly the ability to define the command syntax at operating system (shell) level and bind it to programs. For those who who haven't developed under VMS, there is operating system (shell) defined syntax with which you declare what parameters, switches, options, etc. that your program desires. The syntax is robust enough to specify which options are optional, required, mutually exclusive, etc. When you build your program, you "compile" in your command syntax and at run time DCL handles syntax checking for you. Coding work for processing command line parameters is greatly reduced. You also get bonus stuff like integration to the help system and automatic shortening of non ambiguous switches.
I'm asking because I can't think of a consistent set of features that I would want in "my" best OS. I don't think there's any hope in consensus among /.ers and I don't think that individuals could come up with a single system that encompasses the different uses they put a computer to.
I would want different things from the OS depending on the activity I'm doing on a computer at a given time:
- coding.
- business activities.
- playing games.
- playing media.
Maybe there are features that consistent between all of these activities, but I would think that for the most part different usages would dictate different features and functionality.
Mimetics Inc. Twitter
VMS supports very elegant file versioning, which I found a very useful feature. By default, every time you open a file for write (and you modify the file) you get a new version of the file (kind of like copy on write at the file level). When you list the files in a directory, you can see all the versions of the file with the version number being an actual part of the file name(file.text;1, file.text;2). On a per file basis you can set how many versions you want to keep around and the file system will automatically purge the old versions as new ones are created. When opening a file you can specify any version you want, or if you don't specify a version you just get the latest.
The file system also supports specific backup related attributes that integrate with the backup system. This lets you specify that a file should be excluded from backup and if I recall, tracks if the file has been modified since the last backup.
That would pretty much get me right there.
Linux Mint & Cinnamon is by far the best UI out there at the moment. If it could flawlessly play windows games and things like photoshop I would be a happy man. All the other decisions feel about right. Ext4 for the filesystem, network manager is clean and works well, I love the file manager, bash shell and I'm pretty much done.
I'd leave ZFS for dedicated storage boxes.
Keyboard error or no keyboard present. Press F1 to continue.
Get free satoshi (Bitcoin) and Dogecoins
Autologin + run as root. Two great features.
Win 7 GUI (with Win2K Pro GUI as classic mode) with WinFS** from Longhorn Alpha and WIMBoot from Win 8.
**-What is sad is that the WinFS demo was in 2003 and here we are in 2015 and we have YET to see anybody give us what they showed in that demo! Where is the file system that can just scan vids and pics and assign metadata like "girl in blue dress" or "white truck" and let me find any file by using human expressions without requiring the user to fill in the blanks?
ACs don't waste your time replying, your posts are never seen by me.
Can you imagine being the nephew... Having this kind of technical advice on a regular basis, PLUS working at Apple. Se-weet!
lucm, indeed.
Built on type safe language, so no buffer overflows. Layered on a type-safe assembly language. Immutable everything. Defined channels between components. No memory sharing anywhere.
Our recent article in Operating Systems Review, Singularity: Rethinking the Software Stack, is a concise introduction to the Singularity project. It summarizes research in the current Singularity releases and highlights ongoing Singularity research.
Overview
Singularity is a research project focused on the construction of dependable systems through innovation in the areas of systems, languages, and tools. We are building a research operating system prototype (called Singularity), extending programming languages, and developing new techniques and tools for specifying and verifying program behavior.
Advances in languages, compilers, and tools open the possibility of significantly improving software. For example, Singularity uses type-safe languages and an abstract instruction set to enable what we call Software Isolated Processes (SIPs). SIPs provide the strong isolation guarantees of OS processes (isolated object space, separate GCs, separate runtimes) without the overhead of hardware-enforced protection domains. In the current Singularity prototype SIPs are extremely cheap; they run in ring 0 in the kernel’s address space.
Singularity uses these advances to build more reliable systems and applications. For example, because SIPs are so cheap to create and enforce, Singularity runs each program, device driver, or system extension in its own SIP. SIPs are not allowed to share memory or modify their own code. As a result, we can make strong reliability guarantees about the code running in a SIP. We can verify much broader properties about a SIP at compile or install time than can be done for code running in traditional OS processes. Broader application of static verification is critical to predicting system behavior and providing users with strong guarantees about reliability.
The law is a weapon of the government, not a protection for the likes of you. Surely you understand that.
For what it's worth, Powershell on Windows is actually pretty nice.
-- I wanna decide who lives and who dies - Crow T. Robot, MST3K
BSD style kernel .NET or Java
MacOS X multithreading
Solaris networking and filesystems
MacOS 9 system layout and management (auto install/remove via drag and drop)
Windows 7 start menu
System level support for IL - such as
Control strip from MacOS9
BeOS multimedia engine
Linux device drivers
AppleScript/REXX application scripting
OpenBSD code auditing standards, firewall
OpenVMS system partitioning, file versioning and backup
My Other Computer Is A Data General Nova III.
You do realise that most of those wishes are granted with any modern Linux install? Hardware support has gotten a lot better (mostly it's just "install and go" now), software support is either (a) native versions of the stuff you want, or (b) installable using WINE (not everything works well with WINE, but it also is much better than it used to be). Installing software on Linux is in my opinion easier than most OSes, as long as it's in the main catalogues: just go to your software manager, do a search, click install. Even for more obscure stuff, it's maybe just adding a repository, which is a simple "Google for it, then copy and paste a line or two of text". Apparently, Linux also has native ZFS support.
Or am I missing something here?
Cloud aware, built in scaling, the cluster is OS. Spin up new instances in a fraction of a second:
MirageOS is a library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms. Code can be developed on a normal OS such as Linux or MacOS X, and then compiled into a fully-standalone, specialised unikernel that runs under the Xen hypervisor.
Since Xen powers most public cloud computing infrastructure such as Amazon EC2 or Rackspace, this lets your servers run more cheaply, securely and with finer control than with a full software stack.
MirageOS uses the OCaml language, with libraries that provide networking, storage and concurrency support that work under Unix during development, but become operating system drivers when being compiled for production deployment. The framework is fully event-driven, with no support for preemptive threading.
======= And ==========
What is Mirage OS?
Mirage is an exokernel (also called a Cloud Operating System) for constructing secure, high-performance network applications across a variety of cloud computing, embedded and mobile platforms. Mirage OS was initially designed to for cloud use, which is why we call it a Cloud Operating System. Mirage OS applications are developed in a high-level functional programming language (OCaml) on a desktop OS such as Linux or Mac OSX, and is then compiled into a fully-standalone, specialised microkernel. These microkernels run directly on Xen Project hypervisor APIs. Since the Xen Project powers most public clouds such as Amazon EC2, Rackspace Cloud, and many others, Mirage lets your servers run more cheaply, securely and faster in any Xen Project based cloud or hosting service.
The law is a weapon of the government, not a protection for the likes of you. Surely you understand that.
Simple, non-nonsense interface, reliable ALT+TAB (damn you OS X!), good package manager, with all the redundant filesystem management wizardry. Good support for GPUs and the latest OpenGL/DirectX as well.
Linux kernel. Microsoft's GUI and API compatibility. 'nuff said. Linux GUI is still way behind M$.
Real-time task management. That is all.
The hardware abstraction is a fantastic feature for a growing business - upgrade your hardware across different processor groups, and you don't have to re-compile your software.
OS400 has a compilable control language, and a command creator. Take your own utilities (equivalent to your favourite scripted/powershell jobs), compile them, then create a parameter-accepting command out of them, with optional menu-driven screens and context help.
DB/2. Not the best, but it's inbuilt, and accessible with system utilities/calls, using any language on the system, including control language.
Object-oriented - everything is an object, and you can't "accidentally" execute something that isn't a program.
Somewhat more sensible command abbreviations than *nix. For example, "display" commands always start with DSP, e.g. display system status is dspsyssts, display object is dspobj, etc.
You'd be correct if you said many operating systems have these features, but they've been present on the AS400 since 1988, and are very mature/stable. I live in hope that IBM or someone more talented than I will release OS400 for x86.
They sentenced me to twenty years of boredom
BeOS has an incredibly responsive UI. I am not a software engineer so I am not sure which part of the OS is in charge of this, but it's something no other OS has been able to do, before and since: be perfectly responsive to user commands (keyboard and mouseclicks). What this means is: no matter what the computer is doing at any given time, the UI will react to the user commands. There is no file-copy too big, a computational task too complex, that the reaction to a user's command would be delayed. BeOS has spoiled me so much, because with that OS, user comes first, always.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
You mean like on Android. (Effectively. Yes, it's not the same, but in user space with few exceptions that's a big limitation of tablet computing.)
The sad thing is that I was trying to think of a variety of examples, and they were all from Microsoft. Hmm.
Yeah, he was talking about "information appliances" which would be cheap and let people do a few simple tasks without having to run special software. It's the antithesis of the general-purpose computer, which is so flexible precisely because you can run all kinds of software on it.
Still, I kind of think he was right. An operating system is just another program or set of programs, and lot of the tasks it performs are only necessary because the Von Neumann architecture is so basic. We're starting to see things now like NAS drives with fileserver and network software already installed - you'll never have to mess with drivers and filesystems with those, the hardware/firmware takes on OS functions.
TOPS-20 FTW! Now about 36-bit-word addressing on the x86....
As it so happens, we have an OS that's exactly like that. All it does it manage and load applications. Not only is the web browser completely outside the OS, the UI is largely outside of the OS as well. Of course, you need drivers and filesystems too, otherwise nothing works, but other than that it's pretty minimal. It's called Linux.
A fool and his hard drive are soon parted.
Wang VS OS with X, but that OS was so unique it really would have been impossible to port X to it, or almost anything from a UN*X system for that matter. So I would just take it ported to x86_64
TL;DR summary - at the end of the day the gamer wants a tight Windows system. The server admin wants a tight server (LAMP, WAMP, XAMP, MEAN, etc.). The hardware developer wants all the latest drivers. The R/T guys want predictable and repeatable, and Donald Trump wants it not to be produced in Mexico. However, that's not what OP asked about, and his interesting article relates to features on clustered filesystems that are cool to have and not available outside of the [really out of date/obsolete] OpenVMS.
Long Version:
Whenever someone asks about "best" OS or app or features to have in one... invariably it leads to the proponents of Windows, Linux, FreeBSD, MacOS, (and kudos to the poster who brought up BeOS!) etc. all jumping to extoll their virtues.
Ironically the OP asked about OS and everybody jumped into talking about monolithic kernels... filesystems, and only a couple discussing other elements of the OS which is queue system (OpenVMS really had that one sewn so tight it was awesome).
Interestingly tho the original ARTICLE talked about a clustered filesystem environment. It would appear OP is right on this one - only VMS did it. Some of the functionality for single-host stuff is now beat by BTRFS, but the clustered writeback, locking, and other features mentioned in the PDF are without compare in anything else today
Ehud
Tucson AZ US
Sorry, but BeOS is in an entirely different class than is TOS.
Atari's TOS was quick and responsive because it was simple, lacking many features we take for granted today like preemptive multitasking and multi processor support.
BeOS was responsive because it was a complex, full featured OS that was also well thought out and well designed.
don't forget being able to use drivers made for win X and osX...
world was created 5 seconds before this post as it is.
I just want it go go from off (not standby) to an open document in a useful application in under three seconds.
"Remember, there never were pineapple-almond cookies here."
NONE!!!!
Frankenstein'ed installs are to BE AVOIDED!!!! at all costs!!!!!!
if you want a custom install
Linux From Scratch
or
Slackware
or
Arch
there is no way in hell you can keep a Frankenstein'ed install up to date with updates
"I don't pitch OpenSUSE Linux to my friends, i let Microsoft do it for me
JCL really allows you to get down and dirty with the metal and specify exactly what you want. What cylinders to store that file on, whether there's blocking. Even useful stuff like whether the operator should put a ring in. (no kiddies, that's not putting a ring on it a'la Beyonce)
Last time I looked at WINE, it couldn't deal with devices on USB ports, and the developers explicitly stated they had no intention of ever making USB ports work.
Contribute to civilization: ari.aynrand.org/donate
Sad as it is, I'm happy with a nice, vanilla XFCE 4.12 Linux distro with a 4.x kernel.
Where is the file system that can just scan vids and pics and assign metadata like "girl in blue dress" or "white truck" and let me find any file by using human expressions without requiring the user to fill in the blanks?
Google Photos does that now. It has to rely on the machine learning system running in the cloud though, so your device has to connect to the internet.
Interesting - Windows PowerShell does exactly this if you're building powershell cmdlets.
http://www.cs.utah.edu/flux/os...
so cool back in the day, but it didn't really take hold for some reason. too bad.
Are you still on VAXen? I thought the Itanium stuff was at least newer than the Dec Alpha...
I'd use all of the parts of Plan 9, then stop there.
“Common sense is not so common.” — Voltaire
I sure do miss Jef ;(
He would occasionally show up at SVFIG (Silicon Valley Forth Interest Group), and we've all had fun chats with him.
“Common sense is not so common.” — Voltaire
True multitasking, frankenos as it's pry not possible to gather all of the patents and OS to ever run it again.
The main problem I have with QNX is with QSSL (now Blackberry). The royalties for QNX have always been high, and has made it tough for me to convince management to use it in projects. The technology is fantastic though.
“Common sense is not so common.” — Voltaire
Reliable systems have existed in the past. Windows is so bad, that people think of UNIX as reliable.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
I'd use Firefox as OS and chromium as browser.
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion. -- Spazmania (174582)
for its memory management.
I'll get my coat...
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
Assigns (randomly named identifiers for things in the file system). ARexx (fully integrated, comprehensive scripting support, don't care about the language, throughout the OS and all applications). Screens (the ability to group windows and more importantly tasks together). A design that doesn't require constant disk access and thus remains responsive at all times. I'd also choose any windowing environment that is not X11, and since we're talking Amiga anyway I'll choose Intuition (a sane windowing environment).
You can sort-of pretend all of these things exist in Windows or GNU/systemd, but in reality they are pale imitations of the original. Screens for example - that works because applications have knowledge of them, and use them intelligently, not because you just happen to be able to assign windows to a workspace manually.
I can't think of many improvements that would be possible to Linux mint Debian edition. Though it would be cool if all my devices shared all resources real time I guess. Oh, and I'd like my various desktops to have different wall papers.
I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
Systemd, avahi-daemon, pulseaudio, networkmanager. What an awesome combination of great software!
There were two things I liked about the VAX/VMS filesystem that I would port over. The first is version numbering. A file would start as filename.1 and the number would increment with each edit/save cycle.
The second thing would be logicals and overlayed directories. They worked like a stack of transparencies like the human anatomy entry in an encyclopedia. The base layer would be a read only version of the operating system. Above that would be a writable layer. Above that, for development users, would be test versions of new OS elements. Regular users wouldn't see these layers. Above that would be applications (read only) with a writeable layer above it.
The purpose of the writeable layer over the read only layer is to trap attempts to overwrite system files.
When our name is on the back of your car, we're behind you all the way!
The closest we came to that was the first NeXT machine which had an optical drive (or perhaps two), and initially, no hard drives.
Application level, we did have U3 for a bit, which would do similar... run a program, then it would exit when the USB flash drive was yanked.
I wouldn't mind some form of hypervisor where the desktop OS would be like ESXi, except with the ability to use the console for graphics with VMs. This way, it is a lot harder for a rogue program to jump from a client OS to hardware.
I'd add the ability to run Windows binaries in emulators, but they can't access other programs than themselves. If that was a problem, add a phantom disk image so it could see other files that you place in the phantom disk image. Imagine each Windows emulated program saw their own personal c:/ , and it and you can populate it with files.
So... Wine with a new WINEPREFIX for each program?
I figure if the software you download can't get out of the Windows emulator or its own personal filesystem, it can't mess with your OS or the rest of your filesystem. If it can't record your keystrokes unless you have the window actively open, a keylogger can't get you either. The problem is that we probably don't have perfect Windows emulation. Another problem is you have to be able to trust your drivers or that is a possible vector to an attack.
Run Wine in a Docker image? That's pretty well-sandboxed. and easy to set up.
Windows stability with security patches issued by Adobe flash developers, C64 loading times, iOS openess, Choice of Unity or Metro GUI, Cisco cli, Linux game support and BSD vitality.
The only hardware supported would of course be inspired by a crossover of Nokia N-Gage and Nintendo Virtual boy and use mandated by national policy.
And yet you *didn't* choose to integrate a web browser into your OS. Hmm....
Can you explain how a keylogger in Windows gets access to user input in another application without a security approval by the user when it was installed?
If I remember correctly there's a system-wide hook chain for keyboard events, and you add the logger to the chain with a system call. SetWindowsHookEx or something like that. I'm not really sure what the purpose of that function is except to install key loggers, but perhaps someone has a legitimate need for it.
As far as getting an application to run after rebooting, there are (unfortunately) a myriad of ways to go about that too.
Caveat: it's been a number of years since I used Windows so this may have changed in more recent versions.
GUI
The OS/2 and Windows shells together, complement features missing in the other. The sort of hacks you can do with REXX and the WPS don't cut it in Windows, but MSFT got the idea right when they had proper files, rather than just EAs for their shell. I even added items to a windows desktop remotely. IBM gave a lot of flexibility to the REXX api to the shell, but the SETUP string was a single element, and it could had been something akin to an environment in an INI file.
One could had done some interesting things with PIF files. For example, they could had launched an application off-path, and the same icon could have had several pages for different operating systems, so for example, the Boxer.pif could launch boxer, tko or boxer/2 for different operating systems. You put a mob of these in a directory and you could launch different applications without having to go to the desktop, or some menuing system.
So, you could have a fairly decent file patcher, and still just have a single link in the PIF file.
EXTPROC in OS/2, is the DOS version of the UNIX /! thing. Where in UNIX, you have to have perl in /usr/bin/perl or something, in the new shell, it would simply look for perl.pif, either in the pif or extproc directory. Doing this means you could run the same perl script under different environments. Extproc could be added to other languages, so one could see or launch a script under something like FAR or some other program that takes an external script.
For example, the OS/2 EWS "StartDOS" expects a REXX script as input, so if you made REXX handle EXTPROC, you could start the startDOS script as extproc /rexx StartDOS
Alternate DOS/Unix command line personalities, so that programs that look for UNIX or DOS would not have to be rewritten. Likewise, you could convert the drives into different pointers in the unix system, so that you could have multiple cwd's (eg subst c: /usr )
Run a file under a different extension. You can already do things like start OEMSETUP.BIN with the extension, and many utilities load .TMP, .MOD etc as exe files, so it's hardly a bug there. Note that in Windows 98+, the xcopy32.mod is just xcopy.exe, and works without the other files if so loaded. What it can do is to allow you to open an exe as a rar file, etc, eg open .rar rarexe.exe would instruct RAR to open it as a rar file.
Clipboard and Select interface from the command line. You could do things like 'select = ls pk*.*' , which would add the output files of the ls command to the select list, select /a is append to the list, and then /copy. /paste. /cut, /all, /move /reverse, /u would do various things to the list. @select is then a virtual list that can be used in any command that accepts lists.
Multiple desktops at session level. Something like LaTeX involves lots of little files in the path, which are largely used purely for Latex. A TeX desktop (by setting desktop=tex in the PIF), might open up a window of utilities that share more or less like the same virtual machine. You create objects in there which inherit the common Latex settings, so ye could have an Editor in there, like WinEdit, etc. When you are not playing LaTeX, these are no longer in the path. These could be in 'groups' like Win31 Progman, and you put links out to the common paths.
Multi-language interface, so one can use REXX. Lua, or a variety of other languages to access system functions. Something like 'fdisk' might report things like the size and file system of a device, and a function-call like call 'fdisk' diskfree, 'c:' could be used in any script, including command.com.
Network as a separate desktop, so one can be logged into several networks at once.
OS/2 - because choice is a terrible thing to waste.
Linux hardware support has got a lot better, as has software, but to pretend for one instant it's comparable with Windows is lying to yourself.
A versioning filesystem (VMS still seems to be the only one around).
Datatypes Next-Gen (Amiga style, but handling streaming etc).
SASOS.
Proper multiscreen (in the Amiga sense) support. Happily with dragging and overlapping.
A smart shell that knows command options, behaviour and their documentation, like I believe AS/400 does.
Devices like the Amiga has - "FTP:" is a filesystem, there are editors that export their current files through a filesystem device, and many many more.
A framework for handling compressed data like XPK for the Amiga.
They do now, but mostly because that's what's cheap. For high-end stuff, OS bypass is the buzzword of the day and as more of that stuff starts to be moved into userspace it becomes plausible to have a tiny OS and get rid of a lot of the complexity of something like a UNIX kernel ('lighweight linux or BSD' is amusing, given that the kernel of either is several MBs).
I am TheRaven on Soylent News
Try this. Launch the same applications on Yosemite and Snow Leopard and see how quickly to can tell which one is the currently active one. After SL, they dramatically reduced the visual clues (the big shadows on the active window that made it stand out were 'ugly') and they've reduced more each release. After SL, the instances where I typed things into the wrong window jumped up for me. It's a shame, because Apple used to be the company that measured this stuff...
I am TheRaven on Soylent News
It's so you can put it on a different hard disk than the one you want quick access to.
And a swap file is very easy and has even been an option on install with most distros for close to a decade. Fedora Core 1 had that option FFS, now we are up to Fedora 20+.
Had it all in the 80's. Multitasking, networked.. Just made by a company that couldn't market water in a desert.
System V was introduced in 1983.
The reason there has not been a new version released since then is because System VI couldn't run emacs.
One thing I love about xfce (I tend to use UbuntuStudio on most of my machines) is the ability to assign arbitrary keystrokes to commands in the desktop preferences. I thus use the Windows key (call it Meta if you like, but I am too used to calling it Windows, especially since it has a Windows logo on) so that Win-W launches my default word processor, and then if necessary modifiers like shift and ctrl will launch an alternative word processor. Win-T launches the terminal, Win-G does gimp, Win-Shift-G does krita, Win-E does the file manager (having got used to this one on Windows), Win-K does kodi, and so on.
Rather than rely on some dodgy AI to figure out what I want, give the user an easy way to teach it what you want, so that one can easily teach the user how to train the computer to respond. The idea that a few software engineers in a country a few thousand miles away can anticipate how I would want to use the computer is just silly, but that is what Apple, M$, and many desktop environments effectively do.
This hotkey arrangement means that I can go from off to word processor in three touches (power button, which boots to desktop*, Win-W) and about ten seconds. With windows 8, already booted and logged in, it usually takes me longer than that, and many more touches, to get a working word processor. Likewise for other common apps (Win-B does Firefox, Win-Shift-B does Chromium)..
One thing I dislike about how things are on my Linux boxes at present is a kind of 'fragmentation' in the sense that only certain bits of my environment can be directly controlled from the command line, and the command line is limited compared to a language such as Python. I would personally take the idea of sending messages in a command language that would, in practice, resemble a simplistic Lisp, as a core of all applications. UI events like changing font in a word processor or changing colour in a paint program would resolve to commands sent to a mailbox in the app somewhere. This would make the MVC paradigm much more explicit, and I would have the ability to 'log in' to a command processor built into every program (essentially stick such things into the runtime -- look at F-Script anywhere on Mac Os X for an idea about what I am describing).
In particular, if I can conceive of a simple task for, say, my word processor, I would like there to be an easy method to tell it to do this. I am a big fan of the idea of pervasive scriptability, But that does require more thought about the nature of the scripting languages: you want something data-structure based (like Lisp) that is easy to compose programmatically (so that any old scripting language can compose a script for this pervasive scripting language) and easy to pass between processes, whether local or remote (so that a script can throw a complex request to a process somewhere else to handle).
*and I take care to use encrypted containers for anything that I don't want someone with physical access to my machine to get at.
John_Chalisque
Type "Help", and get help! Comprehensive, hierarchical, actual help. Awesome.
AmigaOS had some amazing technologies - like AREXX and its intuitive file structure. It also had a very easy to use DOS implementation. NEXT was early on into network filesystems - in an integrated way. Linux is amazing for developers - it gives you access to everything right away. Put together the versatility and developer friendliness of Linux - the intuitiveness and user friendly AmigaOS, and the innovative NEXT, and you've got it (at least for me). In fact, I've already scraped together a team to build this new OS - and our team has come about 60% of the way to meet the December release date. To become easy to distribute, we based the OS on web technologies. This way you can use it both in the browser, and as a Linux / BSD X session. Look here - we just went public: http://friendos.com/
Start with the OpenSolaris rock stable (since the early 1992-2010?) ABI, add ZFS for its efficient support of flash, snapshots, encryption, RAID-z... Add BEOS/Haiku's user-meta-data indexed filesystem and AmigaDOS's backward/forward linked file allocation "table" (To turn off the computer, you switch it off, no fscking "start->shutdown" nonsense.) Graft OSX's time-machine onto ZFS's efficient copy-on-write snapshots for an improvement on VMS's auto-versioning files. Use Ubuntu's package manager, huge application repository and ATK accessibility features. Glitz it up with OSX's Quartz extreme GUI.
Since Frankenstein does have a more negative sound, my FrankenOS should definitely contain
- Cooperative Multitasking
- BSOD screens
- VI Editor as the only one allowed (Due to the complexity of the interface)
- Novell ipx/spx Netware for communications
- Floppy disk in case you need to perform manual updates
Hmmm looks like a sound description of WFW with Novell Netware connection.
How about "the ease of distribution of Slackware 2.1" (ie. came on 73 floppy disks you had to download each one via FTP over ~64K lines) ?
Well that is the very rare ideal situation of enough memory for the system in all cases and turning the machine off before it has cached much so I really don't get why you are mentioning it. What is your point exactly? That you've completely forgotten that cached stuff sometimes ends up in swap unless you take steps to make sure it does not?
If the system knows it has swap it will eventually use it unless you tell it not to.
Those are all things I do miss from the Amiga, but here are the things I most miss:
The focus paradigm. Windows and Mac use 'click to focus, focus raises window to top'.
Xmouse is 'hover mouse over window to focus, click raises'.
Amiga did 'click focuses but does not raise window'. It combines the best of both - you can focus a window that's behind another one, and you don't have to worry about tapping the mouse (or trackpad!) and changing the focus because the pointer moved. You could also double-click to raise the window, and windows had a depth widget that would raise it to the front or push it to the back of the stack.
The other thing I miss are DataTypes. The easiest way to explain DataTypes is 'Video codecs, but for everything.' Install a PNG DataType and any program that works with images suddenly understands PNGs. There are text format DataTypes, sound format, video format, etc.
I already use such a system on my home terminals. Everybody has their own SD card (a key, if you like) that contains their OS-of-choice and workspace. No matter which system they plug into, their dekstop and settings look identical and even if they were plugged in remotely, if there's an internet connection available they'll connect to the home shares. The exception is my laptop and my netbook, both of which have internal persistence (hard drives) necessarily because I also administrate the file services through them.
Political debates have me rolling my eyes so much I think I got optical whiplash. I should sue. - Foamy The Squirrel
So, an Amiga with the OS on a floppy with the write-protect tab enabled, and the applications on an Iomega Bernoulli 150 meg drive with the write-protect tab sticking out?
Oh wait, encryption. Well, I'm sure there's something on Aminet.
I updated my Mac mini from Snow Leopard to Yosemite.
So far as I can tell, the only thing better about Yosemite is that you can turn off the transparency effects.
That's it. If it wasn't for software that needed 10.7 or newer to run, I'd fuck right off back to 10.6.8.
...the religious rhetoric of TempleOS...
It was very easy to set up specific privileges for specific users/classes of users. I haven't seen anything else come close in 35 years in the business.
I also think VMS was the easiest system to administer, including a well thought out integrated help system that had the right answer for your question with minimal fuss.
If Wine was commercial software, the customer demand and highly-motivated crack team of paid developers would have resulted the software to have premium USB support 10 years ago.
My "build" of an OS out of constituent components would be:
- Pure 64-bit; never never never never never any 32-bit support whatsoever throughout the software ecosystem .NET installed, available by default, and automatically updated with no nags, but with neither one shipping any browser plugins
- The Linux kernel
- Solaris Zones (containers) able to host the latest Linux userspaces as well as an optional BSD and Solaris userspace with no virtualization
- ZFS (okay, probably the latest version from Oracle is better than what Illumos has, so let's go with that)
- An open-source version of Microsoft's WDDM as the graphics hardware abstraction layer (drivers are then built on that and are fully open source)
- The best of Linux cgroups and namespaces reconciled with Solaris Zones
- For a hypervisor (if you need to run Windows), Xen dom0/domU would be available
- Dtrace from Solaris
- kdbus
- systemd core, but omitting many/most of the optional components (available as packages but not installed by default)
- RPM for the package format, including Delta RPMs (drpms) for updates and LZMA compression on the package payloads
- aptitude or yum for the package management interface / downloader
- GNU bash
- Entire system compiled with clang by default, but with gcc available as a working alternative (competition is good; One Compiler To Rule Them All is bad for progress)
- A fully working, optimized, functionally validated Win32 and Win64 emulator (including graphics libs) supporting Windows Desktop apps that require any version of Windows from 95 to 7, for those legacy apps that just won't die
- Both the latest open source versions of Java and
- No Flash!
Additional things to bring from Amiga:
That said, don't look to Amiga as a model of stability . . . it wasn't. All it took to bring one to a red guru meditation was to attempt to read past EOF.
www.wavefront-av.com
Windows GUI, Linux kernel and CLI, ZFS filesystem, AS/400 storage addressability.
I'll admit that I am biased, as a former VMS developer for DEC, but in my opinion VMS did one thing right from the start that I have not seen any other OS duplicate before or since - the Common Language Environment. VMS defined a common calling and exception handling standard that was used by all of the 20+ programming languages supported on VMS. The system services and the common run-time library were usable from all of the languages. Yes, many of the languages needed extensions to support things such as "pass by descriptor", but it was done in a consistent fashion. There was also a naming standard that separated system and user namespaces to avoid namespace collisions. This was all documented in the standard VMS manuals and was designed to be extended as needed.
This also meant that pretty much all of the system library routines were language-independent and there were large collections of these that could be called from most languages. For a long time, Windows had something close to this with the Windows API, but in recent years it's been shifting to C++ class libraries that shut out other languages.
I still have an old ThinkPad with 256MB Ram that I have running on BeOS in a drawer.
BeOS is very responsive because EVERY thing ins threaded and they embraced multi-threading and SMP from day 1. Other OS/s use an event loop in the GUI apps while BeOS does it somewhat different. It encourages threading and not a single loop when you consume an event, process it and then go on to the next one. Events tend to spawn threads that then interact with each other. The single event consumer thing is a very old paradigm in UI design.
Another OS which is very very responsive for the same reason is Photon, the GUI running on QNX.
I miss BeOS, was really a great system.
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
So I'm not biased or anything. But VMS (real VMS) with the full POSIX support, X Window Systen, running on commodity hardware with source, well, that would be pretty cool.
If I have to make a Franken-OS, I'd like to take the concept of logical names from VMS and bake that in.
For those of you that don't know what that is, you DEFINE a name, to another name, or list of names. You can use that new name like any other name in the system, including the name of a file system. This seems useless on the surface, but the real power is that you can define a name to a list. This could be compared to your unix shell PATH on steroids that have been taking steroids. It is one of the key concepts that lets VAXcluster work. It makes a file system location work like a search path.
I'm a little rusty (is has been almost 25 years) but as I recall, on a cluster node, the logical name SYS$SYSROOT mapped to a list of SYS$SPECIFIC, SYS$COMMON, which allowed the system to have local configuration files that overlayed the cluster's common files. You could set up a logical name for anything that could be named, devices, queues, users, whatever. Very powerful.
there are 3 kinds of people:
* those who can count
* those who can't
So how would you do away with the operating system and still enable people to 'get something done'?
That's easy: you go back to the days of MS-DOS (which was nothing more than a program loader). We got plenty of stuff done back then, it was just slower and crappier because changing tasks took so long: you had to save and exit your application, then start up the other application and load your work. If you had to constantly switch between two things, it was a real PITA.
But you could "get something done". Countless secretaries got lots of work done in WordPerfect in those days.
And if you did not want to load the parse tree into your DCL instance at login time (because it would CoW the affected memory pages with an entire new parse tree for the whole of DCL IIRC - it was incredibly slow) you could link it to your program, call your program using the "unix like" alias method then have your main function call the same command line parser libs that DCL used. Bit more like the getopt() model but 100% consistent with the regular DCL experience.
Why can't women be like Hedy Lamarr - beautiful, talented and inventors of frequency-hopping spread-spectrum techn
You also get bonus stuff like integration to the help system and automatic shortening of non ambiguous switches.
I did like that - nice consistency - unlike the bastardisation that is every linux command.
I really hate commands that respond to "-h" with "Type --help for help". FFS - you parsed "-h" - how hard would it have been for you to just link that to the "--help" code!!! Or use getopt and it's more or less for free...
Why can't women be like Hedy Lamarr - beautiful, talented and inventors of frequency-hopping spread-spectrum techn
Little-known fact about Windows: you can have it do keyboard shortcuts like that too! This isn't even new; I know it was in Windows 2000 and is probably even older. The only problem is that it can't replace built-in or app-defined shortcuts, so things like Win+W won't work (On Win8, at least, that's a Search panel for Settings).
Right-click any shortcut (including from the Taskbar or Start menu/screen), and select Properties (or open Properties some other way). There will be an option for "Shortcut Key". Select the option, press the combination of meta-keys + character to use to launch the shortcut, and hit OK.
There's no place I could be, since I've found Serenity...
Or just hook the keystroke window messages in the victim apps. You can do that using the debug APIs (assuming you are executing, and the other process isn't more trusted than your process or in a different user session), or by setting Image File Execution Options (requires Admin) to tell Windows to load a specific DLL into every process...
There's no place I could be, since I've found Serenity...
BeOS is excellent in that respect, and similar to Amiga OS in that and many other ways too. It's something I still miss, being able to click a button and see it react, knowing that even though my computer's 100% busy doing something, it still has time to acknowledge my request. Another aspect I would keep from Amiga OS is the ability to still manipulate an application's windows, even when it has a requester (dialog box in Windows parlance) open. So if some application is looking for attention, I can move, resize, send to the back or minimise its window and requester to get on with other work until I'm ready to deal with the open requester. The concept of screens (as opposed to multiple desktops as is standard on Linux distros) from Amiga OS, and the REXX messaging and scripting system is something that no other OS has done so nicely or comprehensively.
So, mostly Amiga OS things for my dream OS then ;)
Yes, so true. Windows is a toy used to run games and spread viruses. Linux is what you use to get work done, from the million Android phones to the worlds largest super-computers, with desktops, tablets, and even your TV thrown in to the middle. Just plugging in a USB device into Windows is like pulling teeth - you have to let it search for drivers that it never finds and then finding a damn app that doesn't download a virus along with it is nearly impossible. And the fonts look like something from the 90s. Its a joke. Under Linux .. plug in cell phone, MTP file system shows up (and no stupid green bar locking up the desktop when I open the device like under Windows). A tap on the phone turns on USB networking and Linux sets up the network device and gives me a notification that it succeeded while removing the MTP icon (the phone won't do both at once). Tap the USB tether icon on the phone again (which is Android, also Linux), and the USB network is taken down and the MTP file system is back. Don't try it under Windows. I end up screaming at it while it looks for drivers or gives some stupid never-ending progress bar.
Hardware support under Linux beat Windows hands down.
It was originally 20 bit
No, not really. I spend more time on Windows than on Linux. In fact, until a few months ago, I hadn't touched a Linux install for a few years, however I was quite surprised at how slick it has all got now when I did get back to installing Mint on a machine I had. I was just pointing out the fact that really the "Which OS are you using?" question is starting to go the way of "Which web browser was this site designed for?" - i.e. it kind of doesn't matter any more. No, Linux' device support isn't perfect, and no, support in WINE for other software isn't perfect, but it's all a lot better than it used to be, and covers most of the requests that the post I replied to was asking for.
This applies to most OSes now though. Windows needs a lot of drivers from the Net on any machine I've ever used, and has just as many updates - more on a fresh install. Mac OS X has stupidly-large updates on a fresh install (several GB). Also, I'm not a developer. :-) I don't know of any OS anywhere that is designed to work separately to an internet connection now, so I'm not really sure what your point is...
Ooh, forgot that one. My bad. And the browser would have to be one of the awesome 1.0 versions (of pretty much anything), and doesn't get fixed for years (so pretty much IE). Or maybe Linx, because who needs images or interactive content or anything?
Yessss... And the file access capabilities of a non-jailbroken iPhone. :-) Thank you for getting me out the M$-only slump I was in! (Of course, I've heard that you could get Windows 95 on floppy disks, and it wasn't apparently much better than the Slackware example).
... since I don't really know all that much about them. (Yes, my nerd-fu is weak.) I can, however, give some features and behavioral descriptions of what I'd like to see in a "FrankenOS".
"Userspace Stuff:"
1.,"It just works". Really good hardware detection and a set of generic drivers that will at least grant basic functionality for all essential hardware.
2. Robust documentation and error messages. When something breaks, I want to know what happened in real language, even if it's just an approximation, not some string of gobbledygook that I need a degree in CS to begin to parse. I also want clear documentation on what every part of the OS *is*, and does. Configuration options, running processes, services, threads.. the whole bit.
3. Windows level gaming capacity. Dx-whatever-the-latest-and-greatest-is.
4. A "no-bullsh*t" UI. I don't want any fancy-schmancy crap like transparent windows and animations, or retarded nonsense that tries to make my desktop look and act like a phone. No stupid behaviors like if I drag a window up to the top of the screen, it changes the size/orientation of the window.. none of that. Just let me set a picture as a background, and give me good configuration options so that other things could be added in as "plugins" if I should ever, for some godforsaken reason, decide I want them. Just make them easily unpluggable for when I come to my senses. Multiple desktops are reasonable.
"Under the Hood:"
1. Native multi-level sandboxing with encryption. "The issue isn't whether you're paranoid, but whether you're paranoid enough." Nothing that accesses the internet should get within 2 layers of the core OS. Options should exist to lie to the "internet layer" about every aspect of what the system is, does, is running, etc. from window size to OS version. Nothing accessible by a browser should remotely be able to see anything outside the box the browser is contianed in, inclduing memory spaces and the like. Ability to handle encrypting everything from file systems to memory to the bootloader. I don't care if it slows things down a bit. I want "paranoid about privacy" function.
2. Modularity by design. Components should be compartmentalized, and as independent as possible. I should be able to strip out, or not include, any element of an install that isn't explicitly necessary for the funtionality I require. Do one thing, and do it well, but that's it.
3. The ability to set hard memory limits on a per-application basis, and a really nice memory management system that polices those looking for crud and cleaning.
4. Comprehensive versioning management relative to the OS itself, and the ability to "roll back" updates that make a mess due to being broken. Similarly, an in-built VM that lets you test out any prospective updates in its own sandbox prior to them being allowed to go live.
5. The ability to "hard kill and purge" any app that is found to be misbehaving. As in "immediately brute force stop it from doing what it's trying to do, and completely flush the memory space." Preferably by some keystroke combination that doesn't involve needing to have some kind of task manager always running to execute.
6. A good, intuitive, logical/physical drive management system for all OS functionality and components. Specify what drives/segments are used for OS files, swaps, temporary files, sandboxes, etc.. each with versioning control, journalling, etc.
7. Specific update management sorting. Deliberate blocking of "schedulers" and "auto-update tools" and the like.. permissable only maybe in certain areas of sandbox nests. It's manual and requries explict user enaction, or it doesn't happen, period. Same with "helpers" or any other of these bullsh*t "always on in the background" programs that companies love to infest systems with these days.
"Ideological Stuff:"
1. "Free as in Freedom, not necessarily as in Beer. But beer is good too if it can be swung."
2. "F*ck DRM"
3. "F*ck advertising and tracking a
BeOS didn't even have the concept of a wait cursor, because the system was never in a state where the user couldn't use it.
Indeed. The user was King - at all times and in all circumstances.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
Quote it to me.
Yes it gets used when the system thinks it needs it and not when it doesn't. So never come close to running out of memory and don't have the system up for months caching stuff and eventually dumping some of it into swap and it will never get used at all. I've go no idea why you want to argue against the obvious that we both agree on.
Is that dumbed down enough or do I get another pile of deranged hillbilly shit thrown in my direction because you've been having a bad day or something? WTF is your problem and why are you taking it out on me?
For QC of the build process, I'd expect the purveyors of "build your own distro" distros to ask to know what they need to play with (not everyone will answer. [SHRUG]). so, surely a first step would be to look at their buld records and feature request lists.
Birds are not dinosaur descendants;birds are dinosaurs, for all useful meanings of "birds", "are" and "dinosaurs"