Debian Talks About Systemd Once Again
An anonymous reader writes: A couple of months ago the technical committee for Debian decided in favor of systemd. This is now a subject for discussion once again, and Ian Jackson says he wants a general resolution, so every developer within the Debian project can decide. After a short time, the required amount of supporters was reached, and the discussion can start once again.
and i still don't know.
Hopefully they'll come to their senses and reject the disease that Pottering has cursed the Linux ecosystem with.
A very well written proposal that outlines many of the concerns I (as a non-Debian user) and I suspect most have about systemd. It’s worming it’s way into everything for the sake of better integration, which it may deliver on, but this goes against much of the traditional Linux spirit of small self-contained bits that can be swapped out at will.
In my mind, this comes down to whether we want a better functioning OS or an OS that adheres to the mindset that I think attracted many of us to Linux in the first place. Personally I want a hackers OS that I can play with and tweak as I feel like, but I accept that many people basically want open source windows or even just zero cost windows (i.e. free as in my wallet).
I hope Debian rolls back on their decision. I doubt this will happen, but at least we’ll get some more discussion in a somewhat visible forum. I may not agree with a lot of the Debian mentality, but they are very good at thinking about and discussing things, so I think this will be good overall.
And before someone says "just use gentoo", I do, and have for almost a decade (I started using it fairly soon after it came out). The problem is that systemd, being basically a virus at this point, is causing exactly the kind of problems mentioned in the proposal. I've had to use the blacklist for the first time in a while because *McBane voice* the use flags, they do nothing!
Debian is by far the most stable of the Linux distros. systemd does not lend itself to this stability. Nothing wrong with the old init system. We all know it and its quirlks. I fell in love with UNIX because of editable text config files. Every aspect of the system needs to be editable by an admin. Linux is losing morally to OpenBSD because OpenBSD does not allow binary blobs in the system. Ever. Debian should be the same. No binary blobs of any kind. If it's not text, it doesn't belong.
I've been a Debian user for 14 years now, please do the right thing and get rid of systemD.
I've been trying systemD on another machine for about a month now, it's not terrible but it's not all it's cracked up to be either.
The part that I don't like (besides it going against the unix philosophy) is how fast it's taking over before the majority of the Linux community even had a chance to have their say. And what really gets me is, if systemd was just an init system, fine. But at the rate they are going there is going to be a systemd everything.
I was really unhappy with Debian's move to systemd, and the fact that once systemd is running as one's init system through a general upgrade, one cannot even go back to sysvinit..
Having heard that Slackware was resistant to systemd, I installed the latest version of Slackware on a netbook I have lying around, and while it's a fine project that clearly has its fans, it seems to require a lot of retraining for someone coming from Debian. I'd love to be able to stay on the venerable old Linux distro I have so many years of experience in.
The summary is completely wrong. They are not discussing systemd, just whether packages can depend on a specific init system. I thought there was some kind of moderation here?
Already switched to OpenBSD. Everyone else jump on the *BSD bandwagon, to the desktop in the next 10 years!
Keeping a tab on these changes is becoming tiresome, init?
I could see why a desktop user might want to have such a thing as systemd (not me though), or someone with no admin skills having a canned all-in-one solution for their little business or hobby website.
But for where Linux dominates, server and embedded systems, I don't believe it fits into the Unix way of doing things and makes admin harder.
Score: -1 Reasonable
Are you talking about FreeBSD ? I was able to crash it with a swapfile by writing to the swapfile after
swapoff but while it was still a memory disk.
There you go: https://bugzilla.kernel.org/
is for me that it isn't interoperable. Please correct me when I'm wrong, but AFAIK systemd never did anything to create standards their new functionality is compatible with. Instead they only support linux APIs. I recognize that their needs exceed POSIX, but their current approach "lets make everything a hard dependency" is -to be polite- hacky. It doesn't have to be an official ISO standard, a simple document that ensures exchangeability of components inside systemd, and perhaps even makes systemd cross-platform.
The decision took place in feburary. Now we have close to year-change and new features has been swallowed into systemd. People on the debian mailing list are worried that they have once talked about systemd as as init replacement. The current state of systemd is that it swallows a lot of other features into it's throath making it an uncontrollable mess.
No, I'm talking about Linux. Tried making an encrypted RAMDisk. DEAD KERNEL. Memory fills up, kernel hard lock, the end of system until reboot.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
Thank God there is still some sense in people behind Debian.
This is the same kind of attitude that had gnome and windows losing users in droves.
"We are right, our users are wrong, lets just ignore them and keep going!"
There are enough of us luddites that see systemd as a major step backwards in what makes Linux what it is that if they don't pacify us, they might have an exodus on their hands.
If systemd is the future remains to be seen. It might go the way of upstart if someone writes jet an other init system that doesn't have developers that upset so many users.
Personaly I'll be waiting as long as I can before I'll move my servers. Not because I dislike systemd, but it is has just a to big and to complex code base to use right a way.
I do wish I could deinstall a lot of the junk it depends on.
I use linux for personal but rarely any x server or GUI. i always have ssh open in my mac. i'm just wondering about all the systemd haters - if init does need to be replaced or improved why hasn't that happened? Why is it that there is 1 solution to a problem and they hate it but no one else can link to another project or effort or no other solutions? does init need fixing? replacement?
if systemd will ruin the linux ecosystem where is the project that will save it?
i dunno
Just because something exists doesn't mean everything and everyone must change to it, using your own logic, LINUX would be a micro kernel, LLVM would be the default compiler, their would be only one solution for anything (because everything else is obsolete). and the LINUX eco systems would not exist, it would be one binary blob, the installers wouldn't even give you a choice of anything, it would just say "Installing LINUX" of and there would be no distros either, because they would be all obsolete as well.
Freedom of choice (which is why GNU/LINUX exists in the first place) would be no more.
Not all change is bad, but when that change removes choice, then there is a problem. No package in all of the LINUX/UNIX eco-system is as bad as systemd.
Xorg can be replace with XFree86, LINUX with BSD, Desktop with anything. Only systemd is removing choice. That is the problem, and I am not saying remove systemd, just don't use it as the ONLY init system. I don't even think it should be the default, once it's installed it's very hard to remove without breaking the system. It should be the users choice to run systemd, it shouldn't be rammed down the users throats.
Seriously, why not OpenRC?
It solves all the deficiencies with classic init, but at the same time it doesn't have the interoperability problems and un-Unix-like feel of systemd.
Nifty! If this plays out the right way, I may be able to drop my plans to abandon Debian on my servers.
Don't forget about Mozilla. Not only have they alienated almost all Thunderbird users, but they've driven away most Firefox users, too.
Can you guys just telling you when you finish moving? you guys have been threatening to move to FreeBSD since Kernel 2.6 and it's getting old.
The problem with systemd is not systemd but all the other junk I have to install with it.
I couldn't even deinstall avahi!!
Maybe it's time ? Half of the debian developers hate systemd the other half likes it. Maybe it's time to split up?
I get to increase my knowledge of BSD which I have been putting of for ages!
Hello,
I have deployed some fedora 20 machines in the last 3-4 months, and so far I did not see anything that led me to cry foul against systemd.
Actually, the handling of the user sessions for house-keeping purposes seems much simpler now.
So I don't get all this hate. Maybe I did not look deep enough, time will tell.
Cheers
Zed: Nothing is ever easy
Break up systemd into its components and let certain functionality of it be augmented or replaced by sysvinit. The ONLY problem with systemd is that it's rather monolithic and breaks the *nix paradigm of do one thing an do one thing well. We break out the features of systemd, and let each one work in a stand-alone way, then great.
One binary for parallelized boot
One binary for syslog database
One binary for daemon chroot
and in one kernel module for interface!
GRSecurity is better.
good call. Then, instead of one distro that's 5 years out of date, we can have two distros that are ten years out of date.
But seriously, systemd sucks. I don't understand why people would take a good operating system (and this has happened with Windows (vista and 8), OSX (Yosemite), and GNU/Linux (gnome, systemd)) and ruin it for the sake of ruining it.
Copyright (c) 1990 - 2014 Dice. All rights reserved. Use of this comment is subject to certain Terms and Conditions.
People that posting for the most part are fanboi's or people that cannot take change or desire to learn or spent 5 minutes trying it found their old way didnt work didnt care to learn something new and perhaps the new would benefit them.. Obviously why Microsoft still dominates the desktop and laughing at linux.. 2014 we still cannot make a dent
Maybe Potering and his other buddies at RedHat are great, the best thing since sliced bread.... but... they are working on the wrong OS. These guys don't belong in Linux. They belong working on ReactOS! Imagine ReactOS with all of RedHat's resources behind it. It could quickly be a better Windows than Microsoft's! Meanwhile those of us who like Linux as Unix and aren't in the market for "Free Windows" can go on enjoying a better Unix than Unix. We could all be happy!
Actually, OSS was the older sound daemon. And it still works quite well in Solaris.
Spin up 100's of Linux instances in 10-20s? Boot time is insignificant for virtual servers. Oh, and guess what Amazon's web platform runs on...?
In summary: BSD Init and SysV Init are fine.
I'm starting to think GNU is the problem with "GNU/Linux" these days.
I used to use FreeBSD back in the day and I gotta say, pkgng is looking like it's pretty slick at solving the #1 reason I moved away from it (too much of a PITA to keep many heterogeneous servers up-to-date)
Anyone who talked against systemd in the debian IRC channel(s) was banned.
Anyone who talked forcefully against systemd on the debian mailing list was silently banned.
Eventually Anyone who wrote out "systemd" in a mail to the mailing list had their mails silently dropped, delayed, filtered.
(People started calling it killer rabbit)
Thank Don Armstrong (mailing list president for life) and the systemd cabal within debian.
(8 men plus all of debian-women)
.
You are correct, we should just move to Windows 10. Human readable config files and configurable systems are just stupid. All systems should be designed with the average Facebook user in mind. The people who use this shit for actual real world applications and know what they are doing should be ignore and so should their needs. The most important thing is that no thinking has to go into installing and configuring a system. How else can we get Linux on grandma Ednas desktop and finally cash out?
The #2 developer of systemd has been banned from contributing to the kernel.
The #1 developer of systemd was the main developer of PulseAudio-- does generate much confidence.
He has also just given the finger to the OSS community--makes me wonder why he doesn't do Macs or Windows.
It is being given control over critical services such as TTY and networking.
It is hard for the average techie to audit it, given it's nature. Little access to a lot of tools: valgrind, strace, ftrace.
This does not make me feel very good about systemd.
Do they still only rebuild packages once per week? They used to do that when pkgng was new and waiting up to a week for an update was a bit too long.
And I'm keeping my 0days for this.
The systemd problem will force me to stop using Debian, a prospect that I dread for a number of reasons (but mostly because changing all my servers and workstations will be a lot of work). Could it be that this is a sign I might not have to leave? Oh, please let it be so!
For those who don't know, Ian Jackson was the most vocal anti-systemd proponent on the committee. Considering that last time systemd was up for vote he tried: strategic voting, usurping the committee chairman, and finally throwing a temper-tantrum and refusing to talk to anyone for a few days. When it was all over he promised to try and reverse the committees decision with a General Resolution.
And now having failed to win on technical merits, he is back at it again trying to kill systemd via 'loose coupling'. Something that the committee declined to rule on.
I honestly can't say. I've only been messing with it in a testing/dicking around capacity, and haven't been swimming in free time for the past month or so. Hopefully someone lucky enough to be doing it full time will post and let us know.
Still, it's a damn sight better than "make buildworld" was (yes, it's been that long)
Really, you have no concept of what "flawlessly" means. Ultimately, systemd will cause Linux to become as flaky as Windows, because it shares the design philosophy.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Then your distro is broken. These are all dependencies as of version 216. Mostly standard stuff.
acl.x86_64
audit-libs.x86_64
bash.x86_64
coreutils.x86_64
cryptsetup-libs.x86_64
dbus.x86_64
diffutils.x86_64
elfutils-libelf.x86_64
elfutils-libs.x86_64
glibc-common.x86_64
glibc.x86_64
kmod-libs.x86_64
kmod.x86_64
libacl.x86_64
libblkid.x86_64
libcap.x86_64
libcurl.x86_64
libgcc.x86_64
libgcrypt.x86_64
libidn.x86_64
libseccomp.x86_64
libselinux.x86_64
pam.x86_64
qrencode-libs.x86_64
sed.x86_64
shadow-utils.x86_64
systemd-libs.x86_64
xz-libs.x86_64
It can't do event driven launches and yes it does impact desktop users. Example, your on your corporate network on a laptop and you close the lid and take a plane to somewhere else and the laptop wakes up. How can Init handle something like this and know to configure it to a new network?
This is why Sun, Apple, and Ubuntu developed their own event driven systems. System D is not good. But event driven systems can respond to events like a hack attack, excess load, and other things for servers.
Init was made for stationary mini computers with only 20 text based commands and apps. It's not designed for the hacks we use to get it to work today on modern systems
http://saveie6.com/
You have to be joking. Five minute time delay on shutdown? Don't those idiots realize what that does to anyone with a UPS? You typically get a choice of two or five minutes for the impending power loss warning. A five minute time delay makes a clean shutdown impossible by design. Of course lib-virt does the same thing now on Debian 7. Seriously.
Suit yourself.
I program for various free software videogames. Text console, 2d and 3d. I also make music, 3d models, levels, pixel art for them.
Last time I said what they were the cunts attacked and took them down. There is no room for "mysoginists" in the "free software" world anymore. Because the cunts said so.
Regardless of the quality of my work, it is far and above anything the bitches have done, and the "developers" (packagers) they imagine themselves to be.
Actually, I think the fear is that we are now watching a race to see which happens first: Does EMACS add device drivers and become self hosting before SystemD grafts in a text editor? Either one is only going to be a abomination.
Good. He is trustworthy and true against the virus.
The committie had NO RIGHT to vote on init at ALL.
It is not a BUG that systemd isn't default init.
He's the only one not bought out by REDHAT OR CANONICAL.
You are a fucking piece of shit because you put forth the falsehood that the technical committie has the RIGHT to be an oligarchy upon debian.
FUCK YOU YOU FUCKING PIECE OF SHIT CUNT!
It can't do event driven launches and yes it does impact desktop users. Example, your on your corporate network on a laptop and you close the lid and take a plane to somewhere else and the laptop wakes up. How can Init handle something like this and know to configure it to a new network?
This is why Sun, Apple, and Ubuntu developed their own event driven systems. System D is not good. But event driven systems can respond to events like a hack attack, excess load, and other things for servers.
Init was made for stationary mini computers with only 20 text based commands and apps. It's not designed for the hacks we use to get it to work today on modern systems
So why would/should that be a function of an init system, and not a function of, say, an event driven network daemon that gets started by init on bootup - and receives event notifications on you opening/closing the laptop lid (suspend/resume)? Why should that need an entirely re-written init system when it could easily be done in just a (rewritten) network daemon using the existing init system?
Sounds to me more like entirely missing the point of what the init system is supposed to do... which is *not* reconfiguring NICs, etc (those are functions of the scripts/daemons it starts).
As someone who does spin up a metric fuckload of instances in the cloud (or more specifically, has his monitoring system trigger a set of scripts to do it based on site and API traffic), I can guarantee you that you are full of shit and haven't actually had to do those things as part of your career thus far.
I -love- new technology that makes my life easier. I'm a big fan of the Vagrant -> Docker -> Deploy workflow for apps where that flexibility outweighs the overhead costs. There's now way I could manage my cluster in a sane matter without the central config management apps.
Systemd ain't the way. At best, it's a large attack surface and single point of failure. At worst, it's an anti-pattern.
Any sufficiently advanced technology is indistinguishable from magic.
-- Arthur C. Clarke
I love Debian - this messy debate is what freedom looks like. We should embrace it. This is how real progress is made.
That being said. The evolution of an init system is still needed, and there are some major problems with both systems - thus it is obvious that there is an opportunity for a third system that is more elegant than either of these two.
I think the debate has shown that neither way is correct and that a third way - probably more evolutionary and less draconian will emerge.
syselegant ? sys-e for short?
I don't see why nobody is taking the middle road here.
Why not strip out all the non-init.d stuff from systemd for now (I understand there's a light fork that does this already), add plaintext logging (easy), and see how things go (testing).
This is linux, and debian at that. We shouldn't have to deal with extremely beta ideas that change so many paradigms all at once. If they can do what I've outlined here, then we should give it a shot (not on production servers yet of course). If it catches on, then over the years we can debate how much to delegate to systemd and how much to do another way.
For one, I can see no disadvantage in keeping a plaintext log around. Sure, takes a little more space, but most systems are not that space-limited these days. Seems like it would be handy...
how funny, the fanbois seem to be the one who refuse to see that there is any issue. Remember there is a reason Linux has dominated the server market, and not Microsoft, and this process seems to want to take us away from that for the sake of something most users will probably not consider using for a long time off. It is not because of the init system by the way.
When you cant win, ad hominem.
The reason why systemd exists, and the reason why it isn't portable, are the same reason: it depends on a feature specific to the Linux kernel.
It's not up to the systemd developers to write kernel features for other OSes. If there's an "anti-standard" it's the kernel, not systemd. If the rest of the Unix world wants to implement something similar then I am sure it could be made part of a standard eventually. Until then, you've wasted space typing.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
... waiting up to a week for an update was a bit too long.
WTF are you doing in a Debian discussion?!?
"Tongue tied and twisted, just an Earth bound misfit
Yikes! All I see modded up in this thread are the power users and admins AGAINST the common user. This continuing struggle is why Linux has never and will never gain a stronghold in the desktop market until it ends. It is also why Mac OS X is gaining ground over the Windows alternative market while Linux continues to hold less than 1% of the desktop OS market.
Until you myopic Linux power users (most of whom these changes really don't matter to as they could roll their own distro or use a stripped down one) get over yourselves and realize that if you want adoption of Linux to really grow on the desktop you have to accept the needs of the less technical among the populace, you're going to be in a minority that most of the world doesn't give a shit about. But, I guess that's what makes you "special", but not in a good way.
...you do realize that the TC decision was just one about the default init system for Jessie? Nobody will stop you from not using systemd if you so wish. There is also no decision yet on how to upgrade people from wheezy to jessie, whether that upgrade should mean to switch the init system by default or whether users should stay with their existing init or be given a choice at upgrade time.
The only thing that'll make it harder to switch to non systemd is that some desktops (gnome) will depend on logind. Unless somebody creates a replacement for logind, gnome will depend on systemd but this is hardly Debian's fault. So if you want to complain about Debian "forcing" systemd on you, please complain to gnome to use logind or (better) come up with your logind variant.
It is also necessary to mention the existance of systemd-shim (but this also has to be maintained by someone...).
Would that be the Mozilla that touted its extensibility, then proceeded to break extensions with every update?
Would that be the Mozilla that insists on moving around major chunks of the UI with every release, and with no way to change it back?
Would that be the Mozilla that has become a hotbed of elitist "We know what you want, and what you want is Chrome?" assholes?
Just checking...
Il n'y a pas de Planet B.
Or it could be that such people KNOW WHAT THE FUCK THEY ARE TALKING ABOUT.
And what they are talking about is known as, "Reinventing the wheel... Badly."
You want to change things? Great. Fix things that are broken. Or add new things that give us new capabilities.
Otherwise, fuck off and *don't try to "fix" stuff that ain't broke*.
Problems I had with systemd on jessie before giving up.. 1/ When using virtualbox and mount my shared vboxsf using fstab... system died. No login prompt... nada just stuck. 2/ In another case (i still dont know the root cause) I got the emergency console with the messsage to fix the problem after login... But unfortunately I couldn't type anyhting at the prompt 3/ Jetty did'nt start. Nothing in systemd journal, nothing in /var/log/jetty). Forced the thing to use the normal init script and found the problem within 10seconds.
So my conclusion is that it's not stable at this point in time and not for main deployment.
I hope that debian is offering multiple init systems. Linux is about choice.. So let people choose... We can choose already the desktop, why not the init system?
That actually is a pretty good description of how systemd handles this.
Regards, Tobias
Debian wanted an init system for the linux kernel - and the KFree-BSD kernel, and the Hurd kernels. Reassess you suggestions in that light and don't forget it's the developers who have implement this - ask the impossible and lose developers. It is that simple.
I expect I'll get down-voted to obscurity for bringing facts to this ignorance fest/celebration of One-bookian, Unix-deluded, festival of ignorance.
Did I mention that Debian never dropped alternative init systems? Too late - cue the conservative hate.
You haven't been paying attention.
Yet again, people who don't want to learn something different. They learned the old way (so get off their lawn). There is no question the old BSD and sysv stuff has served its purpose well. For the past 10-15 years I really wished the startup would do things better. There was no reason to cling to those old ways especially with the new hardware. None at all. New stuff makes sense and isn't that hard to learn. Tear yourself away from looking at porn or games for an evening and learn it. It won't hurt, I promise. RedHat has a man ( for dummies if that helps ) page here - https://fedoraproject.org/wiki... . For most of you that's all you'll ever need to know. For guys like me - http://0pointer.de/blog/projec... .
Never see these discussions with Microsoft. It's their way (or the highway), right or wrong (mostly wrong). I didn't like it either. Spend about an hour, learn it, enjoy.
That is what really matters.
Nobody cares if individual users switch to Slackware, or FreeBSD, or whatever. In fact, Red Hat would probably prefer that.
But, if the big companies, and governments, stick with RedHat 6.5, I think that would be a big deal.
I doubt big institutions would switch away from RHEL, they like that corporate support. But, I can see big institutions holding off on buying RHEL 7, and that would be a big deal.
Technology is leaping forward by the second. The availability of very high-speed internet means that thousands of small to medium business Linux systems will be transferred to the cloud. Cloud systems will mean a huge reduction in the need for in-shop linux systems. It means, essentially, that businesses will buy computing services, will give up the systems department and that expensive "Air Conditioned" computer room, and support staff.
This is Autumn 2014, and this transition is happening now. Is this season the beginning of the autumn decline of independently installed Linux business computer systems? Have you the guts and funding to begin a cloud service or to transition to a job in a cloud service?
Will you care about making a profit, or of the differences between Systemd and the existing interface?
Leslie Satenstein Montreal Quebec Canada
Those who don't understand UNIX, are DOOMED to reinvent it! POORLY!
Someone has to connect the binaries to NSA !
I'm sysadmin using Debian for servers since it was 2.0/Hamm (back in 1999 or something). The one thing that I really like in Debian is that there are a lot of alternatives if you don't like particular software. Back in the days I was using djb daemontools to keep critical services up and running and some years ago I moved to 'runit'. Now I made some tests and it seems that 'runit' is capable of replacing /bin/init without any major problem.
The whole systemd crap is the opposite of the idea of freedom to use whatever you like. Moving to systemd because GNOME will not run on a system without X at all is just plain wrong. Debian is good for servers, desktop users probably are already moved to Ubuntu or some other user friendly distro.
Perosnally I prefer a fork of Debian!!
this goes against much of the traditional Linux spirit of small self-contained bits that can be swapped out at will.
In my mind, this comes down to whether we want a better functioning OS or an OS that adheres to the mindset that I think attracted many of us to Linux in the first place.
Personally, that principle of having many swappable self-contained bits is one of the worst qualities on UNIX.
I've been using GNU/Linux for over a decade. I know my way around most distros, and I can usually figure out what I need to do to accomplish any task... usually. The biggest problem I face now is that distros have so many small components doing their small tasks that figuring out exactly which component is responsible for a given task is no small feat.
I understand and appreciate the programming simplicity that a small component brings, but from a user's (or admin's) perspective, the operating environment is now more cluttered. As distros pick and choose their preferred swappable components, the view gets worse. Sure, I know exactly what the "finger" command does, but it's not obvious that "pinky" is an alternative, because having a lightweight finger command is apparently an important thing. Some distros will even create symlinks or scripts to provide alternative common names for their chosen packages, but there's seldom a guarantee that the input or output will be the same.
Configuration is a sort of programming, in a way. What we need is applying learned principles and good practices from software engineering and apply them to art of system construction from atomic components, instead of constructing compiled monolithic software application to do that instead. Systemd is replacing components with its own internal parts, but true way is to make a scaffolding which organizes other's components, and to demand components to declare what they do and how they differ from other substitutes. If (because) they don't do that themselves, we need some sort of accompanying manifest files that could allow components' composition into a system, and blueprint of that system should be described with yet another kind of descriptive file. Also, such method of system construction should allow hierarchical breakdown: small components could be parts of stacks and aggregations which are then given their on manifest file, so that they can be encapsulated and used as black box components in higher hierarchical levels. There should be no mixing of responsibilities and mixing of levels allowed. Dependency graphs must be de-spaghettized (just like control graphs in structured programming).