0

First of all let me clear up some confusion arising from my potential misuse of vocabulary in the question:

By 'executable' I mean a single executable file that is build from sources containing one main function (my background is in C++) and potentially lots of classes and the like. This 'large software system' is a collection of such executables that communicate with each other and work together to achieve some goal.

I'm used to writing simple programs that have a clear entry point and exit conditions. What would be this entry point in such a software system? Which executable starts first and how do I know which one it is? There is no one global main function after all, is it? When are all other executables launched and who calls them? What other files compose such system? How are they bundled together? How is the system loaded on the target machine?

user6646922
  • 497
  • 1
  • 6
  • 15
  • Very well, thank you. – Lightness Races in Orbit Mar 13 '18 at 20:34
  • I think this question is too broad. "Large software systems" is very vague, and they way that, say, the Space Shuttle's executables worked may be very different from the way a bank's executables work. Maybe you should focus your question on how a particular operating system launches applications, or how a particular system is organized. – Kristopher Johnson Mar 13 '18 at 20:34
  • How does your computer work? How does it know what to load when you press the power button to turn it on? What applications start? What you need... is a book. – Lightness Races in Orbit Mar 13 '18 at 20:35
  • The question formed in the topic is vague indeed, but the ones I posted in the body are much more specific. When it comes to examples, let's take a comprehensive software solution for an embedded system with multiple applications taking on different tasks, but really any example will do. – user6646922 Mar 13 '18 at 20:39
  • @LightnessRacesinOrbit - if you could recommend one, please do. – user6646922 Mar 13 '18 at 20:41

1 Answers1

0

Question is way too vague, but I'll try and take a stab at it.

  1. Which executable executes first - this would depend on requirements and the developer. If it's a sequential flow, there would definitely be an order of executing executables. For parallel processing, the return codes of each executable would be examined to determine their result.
  2. Who calls other executables. This can be done by calling your initial executable from a shell script, and based on it's return code, deciding the next course of action. Instead of shell script, you can also opt for job schedulers like Tivoli or Cron jobs i believe.
  3. What other files compose the system. Well that would depend on the system being built. This is really extremely vague to even attempt to answer.
  4. How are they bundled. That would depend on the target system. Java apps could be .jar, in windows you can have .exe
  5. How is the system loaded. Again way too vague to answer
zeus1208
  • 78
  • 2
  • 9